/*
  AMANE IMMO — Disponibilites V2
  Structured UI system: institutional real-estate command center.
*/

/* 00. Tokens */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --deep:#0D1520;
  --navy:#1C2635;
  --panel:#172333;
  --surface:#1E2F42;
  --surface-2:#142131;
  --card:#1E2F42;
  --card2:#142131;
  --sand:#F6C999;
  --ivory:#F0EDE8;
  --white:#F0EDE8;
  --muted:rgba(240,237,232,.58);
  --faint:rgba(240,237,232,.34);
  --hairline:rgba(246,201,153,.12);
  --border:rgba(246,201,153,.22);
  --ok:#52B87A;
  --res:#E8A44A;
  --sold:#C95050;
  --steel:#7BA7D4;
  --ok-bg:rgba(82,184,122,.10);
  --res-bg:rgba(232,164,74,.10);
  --sold-bg:rgba(201,80,80,.10);
  --steel-bg:rgba(123,167,212,.10);
  --sand-soft:rgba(246,201,153,.10);
  --sand-border:rgba(246,201,153,.22);
  --ok-b:rgba(82,184,122,.28);
  --res-b:rgba(232,164,74,.28);
  --sold-b:rgba(201,80,80,.30);
  --steel-b:rgba(123,167,212,.30);
  --sb-w:260px;
  --top-h:56px;
  --r-1:2px;
  --r-2:3px;
  --r-3:4px;
  --s-1:4px;
  --s-2:8px;
  --s-3:12px;
  --s-4:16px;
  --s-5:20px;
  --s-6:24px;
  --s-7:28px;
  --s-8:32px;
}

/* 01. Base */
html,body{height:100%;background:var(--deep);color:var(--ivory);font-family:"Barlow",sans-serif;font-size:13px;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0;background-image:linear-gradient(rgba(246,201,153,.024) 1px,transparent 1px),linear-gradient(90deg,rgba(246,201,153,.024) 1px,transparent 1px);background-size:72px 72px;pointer-events:none}
body::after{content:"";position:fixed;inset:0;background:linear-gradient(135deg,rgba(246,201,153,.045),transparent 28%,rgba(82,184,122,.025) 72%,transparent);pointer-events:none}
a{color:inherit}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
::selection{background:rgba(246,201,153,.22);color:var(--ivory)}
.is-hidden{display:none}

/* 02. Typography */
.page-title,.brand-name-xl,.sb-logo-name,.stat-card-n,.pcs-n,.unit-title{font-family:"Bebas Neue",sans-serif;letter-spacing:2px}
.overline,.brand-kicker,.breadcrumb,.section-title,.form-label,.chip,.btn-primary,.btn-secondary,.btn-danger,.btn-sm,.welcome-sub,.project-card-meta,.activity-head,.activity-meta{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:1.4px}
.page-title{font-size:52px;line-height:.9;color:var(--ivory)}
.page-sub{margin-top:var(--s-2);color:var(--muted);font-family:"Barlow Condensed",sans-serif;font-size:10px;letter-spacing:1.6px;text-transform:uppercase}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin:0 0 var(--s-4);padding-bottom:var(--s-3);border-bottom:1px solid var(--hairline);color:var(--muted);font-size:10px}
.muted{color:var(--muted)}

/* 03. App Shell */
.app{position:relative;z-index:1;display:flex;height:100vh;overflow:hidden;background:linear-gradient(135deg,var(--deep),#111B29 54%,#0A1018)}
.main{display:flex;flex:1;flex-direction:column;min-width:0;overflow:hidden}
.content{flex:1;overflow-y:auto;padding:var(--s-6) var(--s-7) 64px}
.content::-webkit-scrollbar,.sidebar::-webkit-scrollbar{width:4px;height:4px}
.content::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background:rgba(246,201,153,.20)}
.topbar{height:var(--top-h);flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding:0 var(--s-7);background:rgba(28,38,53,.96);border-bottom:1px solid var(--border)}
.topbar-left,.topbar-right{display:flex;align-items:center;gap:var(--s-3);min-width:0}
.topbar-right{flex-shrink:0}
.hamburger{display:none;width:36px;height:36px;border:1px solid var(--hairline);border-radius:var(--r-1);background:transparent;color:var(--sand);font-size:18px}
.breadcrumb{display:flex;align-items:center;gap:var(--s-2);min-width:0;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.breadcrumb span:last-child{color:var(--ivory)}
.breadcrumb a{text-decoration:none}
.breadcrumb a:hover{color:var(--sand)}
.breadcrumb-sep{color:var(--faint)}
.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-6);margin-bottom:var(--s-6)}
.back-btn{display:inline-flex;margin-bottom:var(--s-5);color:var(--muted);text-decoration:none;font-family:"Barlow Condensed",sans-serif;font-size:10px;letter-spacing:1.4px;text-transform:uppercase}
.back-btn:hover{color:var(--sand)}

/* 04. Sidebar */
.sidebar{z-index:50;display:flex;flex-direction:column;flex-shrink:0;width:var(--sb-w);height:100vh;overflow-y:auto;background:var(--navy);border-right:1px solid var(--border)}
.sb-top{padding:var(--s-6) var(--s-5) var(--s-5)}
.sb-logo-name{display:block;color:var(--sand);font-size:24px;line-height:.9}
.sb-logo-tag{display:block;margin-top:var(--s-2);color:var(--muted);font-family:"Barlow Condensed",sans-serif;font-size:8px;letter-spacing:2px;text-transform:uppercase}
.sb-nav{flex:1;padding:var(--s-2) 0}
.sb-divider{height:1px;margin:var(--s-3) var(--s-5);background:var(--border)}
.sb-item{position:relative;display:flex;align-items:center;gap:10px;min-height:38px;padding:9px var(--s-5);color:var(--muted);text-decoration:none;font-family:"Barlow Condensed",sans-serif;font-size:12px;letter-spacing:.9px;text-transform:uppercase;transition:background .15s,color .15s}
.sb-item:hover{background:rgba(246,201,153,.045);color:var(--ivory)}
.sb-item.active{color:var(--sand);background:rgba(246,201,153,.065)}
.sb-item.active::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--sand)}
.sb-icon{flex-shrink:0;width:15px;color:currentColor;font-size:12px;opacity:.82}
.sb-label{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sb-project .sb-label{font-family:"Barlow",sans-serif;font-size:11px;letter-spacing:.2px;text-transform:none}
.sb-badge{border:1px solid rgba(82,184,122,.28);border-radius:var(--r-1);background:var(--ok-bg);color:var(--ok);padding:1px 6px;font-size:8px;font-weight:700}
.sb-bottom{padding:var(--s-4) var(--s-5) var(--s-6);border-top:1px solid var(--hairline)}
.sb-role-badge,.role-tag,.project-tag{display:inline-block;border:1px solid currentColor;border-radius:var(--r-1);padding:3px 9px;font-family:"Barlow Condensed",sans-serif;font-size:9px;letter-spacing:1px;text-transform:uppercase}
.sb-role-badge{margin-bottom:var(--s-4)}
.role-admin{color:var(--sand);background:rgba(246,201,153,.08);border-color:rgba(246,201,153,.34)}
.role-commercial{color:var(--ok);background:var(--ok-bg);border-color:rgba(82,184,122,.32)}
.role-partenaire{color:var(--steel);background:var(--steel-bg);border-color:rgba(123,167,212,.32)}
.sb-user{display:flex;align-items:center;gap:var(--s-3);margin-bottom:var(--s-4)}
.sb-avatar,.avatar{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:34px;height:34px;border:1px solid var(--border);border-radius:50%;background:rgba(246,201,153,.10);color:var(--sand);font-family:"Barlow Condensed",sans-serif;font-size:12px;font-weight:600}
.sb-user-info{min-width:0;display:flex;flex-direction:column}
.sb-user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ivory);font-family:"Barlow Condensed",sans-serif;font-size:13px;font-weight:500}
.sb-user-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px}
.sb-logout{display:block;border:1px solid rgba(240,237,232,.10);border-radius:var(--r-1);padding:8px;color:var(--faint);text-align:center;text-decoration:none;font-family:"Barlow Condensed",sans-serif;font-size:9px;letter-spacing:1.8px;text-transform:uppercase}
.sb-logout:hover{border-color:rgba(201,80,80,.35);color:var(--sold)}
.sb-overlay{display:none;position:fixed;inset:0;z-index:49;background:rgba(0,0,0,.55)}

/* 05. Login */
.login-body{overflow:hidden}
.login-shell{position:relative;z-index:1;min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) 480px;background:var(--deep)}
.login-editorial{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:64px;background:linear-gradient(135deg,rgba(28,38,53,.96),rgba(13,21,32,.78));border-right:1px solid var(--border)}
.login-editorial::before{content:"";position:absolute;inset:0;background:linear-gradient(118deg,transparent 0 49%,rgba(246,201,153,.055) 49.1% 49.6%,transparent 49.8%),repeating-linear-gradient(90deg,rgba(246,201,153,.018) 0 1px,transparent 1px 112px);pointer-events:none}
.login-brand,.login-proof-grid,.login-showcase{position:relative;z-index:2}
.brand-kicker,.overline{display:block;color:var(--sand);font-size:10px}
.brand-name-xl{display:block;margin:var(--s-5) 0 var(--s-4);color:var(--sand);font-size:82px;line-height:.86;letter-spacing:8px}
.brand-line{display:block;width:72px;height:1px;margin:var(--s-7) 0;background:linear-gradient(90deg,var(--sand),transparent)}
.login-brand p{max-width:520px;color:var(--muted);font-family:"Barlow Condensed",sans-serif;font-size:18px;font-weight:300;line-height:1.7}
.login-watermark{position:absolute;right:24px;top:50%;transform:translateY(-50%) rotate(180deg);writing-mode:vertical-rl;font-family:"Bebas Neue",sans-serif;font-size:clamp(90px,12vw,168px);letter-spacing:16px;color:rgba(246,201,153,.045);pointer-events:none}
.login-proof-grid{display:flex;flex-wrap:wrap;gap:var(--s-2)}
.login-proof-grid span{border:1px solid var(--border);border-radius:var(--r-1);background:rgba(246,201,153,.08);padding:7px 10px;color:var(--sand);font-family:"Barlow Condensed",sans-serif;font-size:9px;letter-spacing:1.5px;text-transform:uppercase}
.login-showcase{width:min(640px,100%);margin:var(--s-7) 0}
.login-window{border:1px solid var(--border);border-radius:var(--r-3);background:rgba(30,47,66,.68);padding:var(--s-5)}
.login-window-top{display:flex;align-items:center;gap:7px;padding-bottom:var(--s-3);margin-bottom:var(--s-4);border-bottom:1px solid var(--hairline)}
.login-window-top span{width:7px;height:7px;border-radius:50%}
.login-window-top span:nth-child(1){background:var(--sold)}
.login-window-top span:nth-child(2){background:var(--res)}
.login-window-top span:nth-child(3){background:var(--ok)}
.login-window-top strong{margin-left:auto;color:var(--muted);font-family:"Barlow Condensed",sans-serif;font-size:9px;letter-spacing:2px;text-transform:uppercase}
.login-screen-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:var(--s-4)}
.login-mini-card{border:1px solid var(--hairline);border-radius:var(--r-3);background:rgba(255,255,255,.035);padding:var(--s-4)}
.login-mini-card b{display:block;font-family:"Bebas Neue",sans-serif;font-size:42px;line-height:.9}
.login-mini-card em{font-style:normal;color:var(--muted);font-family:"Barlow Condensed",sans-serif;font-size:8px;letter-spacing:1.5px;text-transform:uppercase}
.login-mini-card.ok b{color:var(--ok)}
.login-mini-card.res b{color:var(--res)}
.login-mini-card.sold b{color:var(--sold)}
.login-heat{display:grid;gap:10px}
.login-heat div{display:grid;grid-template-columns:120px 1fr;gap:var(--s-3);align-items:center}
.login-heat span{color:var(--muted);font-family:"Barlow Condensed",sans-serif}
.login-heat i{height:8px;display:flex;overflow:hidden;background:rgba(255,255,255,.06);border-radius:var(--r-1)}
.login-heat small{display:block;height:100%}
.login-heat small:nth-child(1){background:var(--sold)}
.login-heat small:nth-child(2){background:var(--res)}
.login-heat small:nth-child(3){background:var(--ok)}
.login-heat-a small:nth-child(1){width:44%}
.login-heat-a small:nth-child(2){width:16%}
.login-heat-a small:nth-child(3){width:40%}
.login-heat-b small:nth-child(1){width:32%}
.login-heat-b small:nth-child(2){width:18%}
.login-heat-b small:nth-child(3){width:50%}
.login-heat-c small:nth-child(1){width:18%}
.login-heat-c small:nth-child(2){width:12%}
.login-heat-c small:nth-child(3){width:70%}
.login-panel{display:flex;align-items:center;justify-content:center;padding:56px 60px}
.login-card{width:100%;animation:fadeUp .4s ease both}
.login-card-head{margin-bottom:var(--s-8)}
.login-card h1{margin:10px 0 6px;color:var(--ivory);font-family:"Barlow Condensed",sans-serif;font-size:30px;letter-spacing:.5px}
.login-card p{color:var(--muted);font-size:12px;line-height:1.55}
.login-note{margin-top:var(--s-5);text-align:center;color:var(--faint);font-family:"Barlow Condensed",sans-serif;font-size:9px;letter-spacing:1.5px;text-transform:uppercase}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}

/* 06. Forms and Buttons */
.btn-primary,.btn-secondary,.btn-danger,.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;border-radius:var(--r-1);padding:9px 18px;font-family:"Barlow Condensed",sans-serif;font-size:10px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s,color .15s,transform .15s}
.btn-primary{border:1px solid var(--sand);background:var(--sand);color:var(--deep)}
.btn-primary:hover{filter:brightness(1.04);transform:translateY(-1px)}
.btn-secondary,.btn-ghost{border:1px solid rgba(240,237,232,.16);background:transparent;color:var(--muted)}
.btn-secondary:hover,.btn-ghost:hover{border-color:var(--border);color:var(--sand)}
.btn-danger{border:1px solid rgba(201,80,80,.34);background:transparent;color:var(--sold)}
.btn-wide{width:100%;min-height:46px}
.btn-sm{border:1px solid rgba(240,237,232,.14);border-radius:var(--r-1);background:transparent;color:var(--muted);padding:6px 9px;font-family:"Barlow Condensed",sans-serif;font-size:9px;letter-spacing:1px;text-transform:uppercase;white-space:nowrap}
.btn-sm:hover{border-color:var(--border);color:var(--sand)}
.btn-del:hover{border-color:rgba(201,80,80,.34);color:var(--sold)}
.form-group{display:block;margin-bottom:var(--s-4)}
.form-label{display:block;margin-bottom:var(--s-2);color:var(--muted);font-size:9px}
.form-input,select.form-input,textarea.form-input,.range-input{border:1px solid rgba(240,237,232,.12);border-radius:var(--r-1);background:rgba(255,255,255,.04);color:var(--ivory);outline:none;transition:border-color .15s,background .15s}
.form-input,select.form-input,textarea.form-input{width:100%;padding:11px 13px;font-family:"Barlow",sans-serif;font-size:13px}
.range-input{width:88px;padding:6px 8px;font-size:11px}
.form-input:focus,.range-input:focus{border-color:rgba(246,201,153,.35);background:rgba(246,201,153,.035)}
.form-input::placeholder{color:rgba(240,237,232,.24)}
.form-hint{margin-top:6px;color:var(--muted);font-size:11px;line-height:1.45}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4)}
.alert{margin-bottom:var(--s-5);border-radius:var(--r-1);padding:11px 13px;font-family:"Barlow Condensed",sans-serif;font-size:12px}
.alert-error{border:1px solid rgba(201,80,80,.34);background:var(--sold-bg);color:#E28383}
.alert-success{border:1px solid rgba(82,184,122,.30);background:var(--ok-bg);color:var(--ok)}

/* 07. Components */
.sync-indicator{display:flex;align-items:center;gap:7px;color:var(--muted);font-family:"Barlow Condensed",sans-serif;font-size:9px;letter-spacing:1.5px;text-transform:uppercase}
.sync-dot{width:6px;height:6px;border-radius:50%;animation:pulse 2.5s infinite}
.sync-dot.green{background:var(--ok)}
.sync-dot.yellow{background:var(--res)}
.sync-dot.red{background:var(--sold)}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-3);margin-bottom:var(--s-6)}
.stat-card{position:relative;overflow:hidden;border:1px solid var(--hairline);border-radius:var(--r-3);background:linear-gradient(180deg,var(--surface),var(--panel));padding:var(--s-4) var(--s-5)}
.stat-card::after{content:"";position:absolute;right:0;top:14px;bottom:14px;width:1px;background:var(--hairline)}
.stat-card-n{margin-bottom:7px;font-size:48px;line-height:.9}
.stat-card-l{color:var(--muted);font-family:"Barlow Condensed",sans-serif;font-size:9px;letter-spacing:1.5px;text-transform:uppercase}
.stat-card.ok .stat-card-n,.pcs.ok .pcs-n{color:var(--ok)}
.stat-card.res .stat-card-n,.pcs.res .pcs-n{color:var(--res)}
.stat-card.sold .stat-card-n,.pcs.sold .pcs-n{color:var(--sold)}
.stat-card.tot .stat-card-n{color:var(--sand)}
.badge,.pill{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-1);padding:3px 9px;font-family:"Barlow Condensed",sans-serif;font-size:8px;font-weight:600;letter-spacing:1px;text-transform:uppercase}
.b-ok,.pill-ok{border:1px solid rgba(82,184,122,.30);background:var(--ok-bg);color:var(--ok)}
.b-res,.pill-res{border:1px solid rgba(232,164,74,.30);background:var(--res-bg);color:var(--res)}
.b-sold,.pill-sold{border:1px solid rgba(201,80,80,.34);background:var(--sold-bg);color:var(--sold)}
.b-info{border:1px solid rgba(123,167,212,.32);background:var(--steel-bg);color:var(--steel)}
.pending-tag{display:inline-block;margin-top:10px;border:1px solid rgba(232,164,74,.30);border-radius:var(--r-1);background:var(--res-bg);color:var(--res);padding:4px 8px;font-family:"Barlow Condensed",sans-serif;font-size:8px;letter-spacing:1px;text-transform:uppercase}
.toast{position:fixed;right:22px;bottom:22px;z-index:200;border:1px solid var(--border);border-radius:var(--r-2);background:var(--surface);padding:12px 18px;color:var(--ivory);font-family:"Barlow Condensed",sans-serif;font-size:12px;letter-spacing:.7px;opacity:0;transform:translateY(18px);pointer-events:none;transition:opacity .25s,transform .25s}
.toast.show{opacity:1;transform:translateY(0)}
.toast.success{border-color:rgba(82,184,122,.30);color:var(--ok)}
.toast.error{border-color:rgba(201,80,80,.34);color:#E28383}
.toast.info{border-color:var(--border);color:var(--sand)}

/* 08. Dashboard */
.welcome-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);margin-bottom:var(--s-6);border:1px solid var(--border);border-radius:var(--r-3);background:linear-gradient(90deg,rgba(246,201,153,.08),rgba(30,47,66,.50));padding:var(--s-4) var(--s-5)}
.welcome-text{color:var(--ivory);font-family:"Barlow Condensed",sans-serif;font-size:16px;letter-spacing:.2px}
.welcome-text strong{color:var(--sand)}
.welcome-sub{margin-top:2px;color:var(--muted);font-size:10px}
.partner-ribbon{border-color:rgba(123,167,212,.32);background:linear-gradient(90deg,rgba(123,167,212,.12),rgba(30,47,66,.42))}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--s-5)}
.dash-main{min-width:0}
.activity-panel,.heatmap-card,.project-card,.unit-card,.floor-block,.admin-table-wrap,.profile-panel{border:1px solid var(--hairline);border-radius:var(--r-3);background:linear-gradient(180deg,var(--surface),var(--panel));overflow:hidden}
.activity-panel{align-self:start}
.activity-head{border-bottom:1px solid var(--hairline);padding:14px 16px;color:var(--muted);font-size:10px}
.activity-item{padding:13px 16px;border-bottom:1px solid rgba(246,201,153,.06)}
.activity-item:last-child{border-bottom:0}
.activity-msg{color:var(--ivory);font-size:12px;line-height:1.45}
.activity-meta{margin-top:5px;color:var(--muted);font-size:9px}
.heatmap-card{padding:var(--s-4);margin-bottom:var(--s-6)}
.heat-row{display:grid;grid-template-columns:150px minmax(140px,1fr) 96px;gap:var(--s-3);align-items:center;padding:10px 0;border-bottom:1px solid rgba(246,201,153,.06);text-decoration:none}
.heat-row:last-child{border-bottom:0}
.heat-row:hover .heat-name{color:var(--sand)}
.heat-name{color:var(--ivory);font-family:"Barlow Condensed",sans-serif;font-size:12px;letter-spacing:.8px}
.heat-bar{display:flex;height:8px;overflow:hidden;border-radius:var(--r-1);background:rgba(240,237,232,.07)}
.heat-seg{height:100%;transition:width .4s}
.seg-sold{background:var(--sold)}
.seg-res{background:var(--res)}
.seg-ok{background:var(--ok)}
.heat-count{text-align:right;color:var(--muted);font-family:"Barlow Condensed",sans-serif;font-size:9px;letter-spacing:1px;text-transform:uppercase}
.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}
.project-card{display:block;color:inherit;text-decoration:none;transition:border-color .2s,transform .2s}
.project-card:hover{border-color:rgba(246,201,153,.26);transform:translateY(-2px)}
.project-card-head{padding:18px 20px 14px;border-bottom:1px solid rgba(246,201,153,.08)}
.project-card-name{margin-bottom:4px;color:var(--sand);font-family:"Barlow Condensed",sans-serif;font-size:20px;font-weight:600;letter-spacing:.8px}
.project-card-meta{color:var(--muted);font-size:10px}
.project-card-sources{margin-top:7px;color:var(--steel);font-family:"Barlow Condensed",sans-serif;font-size:9px;letter-spacing:1.2px;text-transform:uppercase}
.project-card-body{padding:14px 20px 16px}
.project-card-stats{display:flex;gap:18px;margin-bottom:14px}
.pcs{display:flex;flex-direction:column;gap:2px}
.pcs-n{font-size:26px;line-height:1}
.pcs-l{color:var(--muted);font-family:"Barlow Condensed",sans-serif;font-size:8px;letter-spacing:1px;text-transform:uppercase}
.progress-bar{height:3px;overflow:hidden;border-radius:var(--r-1);background:rgba(240,237,232,.08)}
.progress-fill{display:flex;height:100%;width:0%;transition:width .45s}
.progress-fill span{height:100%}
.project-card-footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(246,201,153,.06);background:rgba(0,0,0,.15);padding:10px 20px}
.project-card-livraison{color:var(--muted);font-family:"Barlow Condensed",sans-serif;font-size:10px;letter-spacing:1px;text-transform:uppercase}
.project-card-arrow{opacity:0;color:var(--sand);transition:opacity .2s,transform .2s}
.project-card:hover .project-card-arrow{opacity:1;transform:translateX(3px)}

/* 09. Programme */
.filter-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:var(--s-5);padding:var(--s-4) 0;border-bottom:1px solid var(--hairline);background:linear-gradient(180deg,var(--deep),rgba(13,21,32,.95))}
.fl{margin-right:2px;color:var(--muted);font-family:"Barlow Condensed",sans-serif;font-size:9px;letter-spacing:2px;text-transform:uppercase}
.sep-v{width:1px;height:18px;margin:0 4px;background:var(--border)}
.chip{border:1px solid rgba(240,237,232,.12);border-radius:var(--r-1);background:transparent;color:var(--muted);padding:6px 12px;font-size:9px;transition:border-color .15s,color .15s,background .15s}
.chip:hover{border-color:var(--border);color:var(--sand)}
.chip.on{border-color:var(--sand);background:var(--sand);color:var(--deep);font-weight:700}
.search-box{position:relative;margin-left:auto}
.search-box input{width:220px;border:1px solid rgba(246,201,153,.15);border-radius:var(--r-1);background:rgba(255,255,255,.04);color:var(--ivory);padding:7px 12px 7px 28px;font-family:"Barlow",sans-serif;font-size:12px;outline:none}
.search-box input::placeholder{color:var(--muted)}
.s-ico{position:absolute;left:8px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:12px}
.view-switch{display:flex;gap:6px;margin-left:4px}
.floor-block{margin-bottom:var(--s-3);animation:up .3s ease both}
@keyframes up{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
.floor-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);cursor:pointer;border-bottom:1px solid rgba(246,201,153,.08);background:var(--navy);padding:13px 18px}
.floor-head:hover{background:var(--surface-2)}
.floor-title{color:var(--sand);font-family:"Barlow Condensed",sans-serif;font-size:15px;font-weight:600;letter-spacing:.8px}
.floor-sub{margin-top:2px;color:var(--muted);font-family:"Barlow Condensed",sans-serif;font-size:9px;letter-spacing:1px;text-transform:uppercase}
.floor-right{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.chev{color:var(--muted);font-size:14px;transition:transform .2s}
.chev.open{transform:rotate(180deg)}
.floor-body.off{display:none}
table{width:100%;border-collapse:collapse}
thead tr{border-bottom:1px solid var(--hairline);background:rgba(13,21,32,.70)}
th{cursor:pointer;user-select:none;padding:10px 14px;text-align:left;color:var(--muted);font-family:"Barlow Condensed",sans-serif;font-size:8px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase}
tbody tr{border-bottom:1px solid rgba(246,201,153,.055);transition:background .1s}
tbody tr:hover{background:rgba(246,201,153,.04)}
td{padding:11px 14px;color:var(--ivory);font-size:12px;vertical-align:middle}
.td-id{color:var(--sand);font-family:"Barlow Condensed",sans-serif;font-size:14px;font-weight:600;letter-spacing:.5px}
.td-sub{display:block;margin-top:2px;color:var(--muted);font-family:"Barlow Condensed",sans-serif;font-size:8px;letter-spacing:1px;text-transform:uppercase}
.td-price{font-family:"Barlow Condensed",sans-serif;font-size:13px;font-weight:500}
.td-m{color:var(--muted);font-size:11px}
.card-view-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:var(--s-3)}
.unit-card{display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-4)}
.unit-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-3)}
.unit-title{color:var(--sand);font-size:24px;line-height:1}
.unit-meta{color:var(--muted);font-size:12px;line-height:1.6}
.unit-spec-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2);border-top:1px solid var(--hairline);padding-top:var(--s-3)}
.unit-spec{display:flex;flex-direction:column;gap:2px}
.unit-spec span{color:var(--muted);font-family:"Barlow Condensed",sans-serif;font-size:8px;letter-spacing:1.2px;text-transform:uppercase}
.unit-spec strong{color:var(--ivory);font-family:"Barlow Condensed",sans-serif;font-size:13px;font-weight:500}
.unit-actions{display:flex;gap:8px;margin-top:auto}

/* 10. Admin and Profile */
.admin-table-wrap{overflow-x:auto}
.admin-table{min-width:780px}
.admin-table th{background:rgba(13,21,32,.80);padding:10px 16px}
.admin-table td{border-bottom:1px solid rgba(246,201,153,.06);padding:13px 16px;font-size:12px}
.th-actions{text-align:right}
.user-cell{display:flex;align-items:center;gap:10px}
.user-name{color:var(--ivory);font-family:"Barlow Condensed",sans-serif;font-size:13px;font-weight:500}
.user-email{color:var(--muted);font-size:11px}
.project-tags{display:flex;gap:4px;flex-wrap:wrap}
.project-tag{border-color:var(--border);background:rgba(246,201,153,.08);color:var(--sand);font-size:8px;letter-spacing:.6px}
.project-tag-warning{color:var(--res);border-color:var(--res-b);background:var(--res-bg)}
.row-actions{display:flex;gap:8px;justify-content:flex-end}
.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px}
.active-dot{background:var(--ok)}
.inactive-dot{background:var(--sold)}
.tools-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-4)}
.admin-search{max-width:300px}
.admin-project-section{margin-top:30px}
.project-card-static{cursor:default}
.project-card-static:hover{transform:none;border-color:var(--hairline)}
.sheet-label{margin-bottom:6px}
.sheet-url{font-size:11px;color:var(--muted);word-break:break-all;line-height:1.55}
.sheet-url-secondary{margin-top:6px}
.slide-overlay{display:none;position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.55)}
.slide-overlay.open{display:block}
.slide-panel{position:fixed;right:0;top:0;z-index:90;display:flex;flex-direction:column;width:400px;max-width:100vw;height:100vh;border-left:1px solid var(--border);background:var(--navy);transform:translateX(400px);transition:transform .28s ease}
.slide-panel.open{transform:translateX(0)}
.panel-head{display:flex;align-items:center;justify-content:space-between;height:var(--top-h);padding:0 var(--s-5);border-bottom:1px solid var(--border)}
.panel-title{color:var(--sand);font-family:"Barlow Condensed",sans-serif;font-size:14px;letter-spacing:1.4px;text-transform:uppercase}
.panel-close{width:34px;height:34px;border:1px solid var(--hairline);border-radius:var(--r-1);background:transparent;color:var(--muted);font-size:18px}
.panel-body{flex:1;overflow-y:auto;padding:var(--s-5)}
.panel-footer{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--hairline);padding:var(--s-4) var(--s-5)}
.panel-actions{display:flex;gap:8px;margin:-4px 0 16px}
.form-hint-spaced{margin-bottom:10px}
.projects-check-grid{display:grid;gap:8px}
.check-item{display:flex;align-items:center;gap:9px;border:1px solid rgba(240,237,232,.10);border-radius:var(--r-1);background:rgba(255,255,255,.035);padding:10px}
.check-item label{color:var(--ivory);font-family:"Barlow Condensed",sans-serif;font-size:12px;letter-spacing:.8px;cursor:pointer}
.check-item input{accent-color:var(--sand)}

/* 11. States */
.empty-state,.loading-state,.error-state{border:1px solid var(--hairline);border-radius:var(--r-2);background:rgba(30,47,66,.55);padding:28px;text-align:center;color:var(--muted);font-family:"Barlow Condensed",sans-serif;font-size:12px;letter-spacing:1px;text-transform:uppercase}
.error-state{border-color:rgba(201,80,80,.34);background:var(--sold-bg);color:#DF7777}
.loading-state{display:grid;gap:10px;text-align:left}
.skeleton-line,.skeleton-card,.skeleton-cell{position:relative;overflow:hidden;background:rgba(240,237,232,.06)}
.skeleton-line{height:10px;border-radius:var(--r-1)}
.skeleton-card{height:74px;border:1px solid var(--hairline);border-radius:var(--r-3)}
.skeleton-table{display:grid;gap:8px}
.skeleton-row{display:grid;grid-template-columns:1.2fr .8fr .7fr .7fr .8fr .9fr 1fr .8fr;gap:8px}
.skeleton-cell{height:28px;border-radius:var(--r-1)}
.skeleton-line::after,.skeleton-card::after,.skeleton-cell::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(246,201,153,.10),transparent);animation:shimmer 1.5s linear infinite}
@keyframes shimmer{to{transform:translateX(100%)}}

/* 12. Responsive */
@media(max-width:1120px){
  .dashboard-grid{grid-template-columns:1fr}
  .activity-panel{display:none}
  .heat-row{grid-template-columns:120px 1fr 74px}
}
@media(max-width:900px){
  html,body{font-size:14px}
  .login-shell{display:block}
  .login-editorial{display:none}
  .login-panel{min-height:100vh;padding:34px 26px}
  .sidebar{position:fixed;left:-260px;top:0;bottom:0;transition:left .28s;z-index:50}
  .sidebar.open{left:0}
  .sb-overlay.open{display:block}
  .hamburger{display:inline-flex;align-items:center;justify-content:center}
  .content{padding:var(--s-4) var(--s-4) 60px}
  .topbar{padding:0 var(--s-4)}
  .page-title{font-size:42px}
  .page-header{align-items:flex-start;flex-direction:column}
  .stats-row{grid-template-columns:repeat(2,1fr)}
  .projects-grid,.card-view-grid{grid-template-columns:1fr}
  .form-row{grid-template-columns:1fr}
  .form-input,select.form-input,textarea.form-input{font-size:16px}
  .search-box{width:100%;margin-left:0}
  .search-box input{width:100%;font-size:16px}
  .filter-bar{position:relative;top:auto;overflow-x:auto;flex-wrap:nowrap;padding-bottom:var(--s-3)}
  .filter-bar>*{flex-shrink:0}
  .heat-row{grid-template-columns:1fr}
  .heat-count{text-align:left}
  .welcome-bar{align-items:flex-start;flex-direction:column}
  .tools-row{align-items:stretch;flex-direction:column}
  .admin-search{max-width:none}
  .topbar-right .btn-primary span,.topbar-right .btn-secondary span{display:none}
  .td-m,th:nth-child(2),td:nth-child(2),th:nth-child(3),td:nth-child(3),th:nth-child(4),td:nth-child(4),th:nth-child(5),td:nth-child(5),th:nth-child(6),td:nth-child(6),th:nth-child(9),td:nth-child(9){display:none}
  .slide-panel{width:100%;transform:translateX(100%)}
  .skeleton-row{grid-template-columns:1fr .9fr .8fr}
  .skeleton-row .skeleton-cell:nth-child(n+4){display:none}
}
