:root{
  --bg:#f5f6f8; --card:#fff; --text:#1e2329; --muted:#747b84;
  --dark:#15171a; --red:#b83a2f; --red2:#8f281f; --line:#e7e9ed;
  --green:#1d8b61; --orange:#c77819; --blue:#376bd8;
  --shadow:0 12px 35px rgba(20,24,30,.07); --radius:18px;
}
*{box-sizing:border-box} body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Arial,sans-serif}
a{text-decoration:none;color:inherit}.app-shell{display:flex;min-height:100vh}
.sidebar{width:250px;background:linear-gradient(180deg,#17191c,#0f1012);color:#fff;padding:25px 18px;position:fixed;left:0;top:0;bottom:0;display:flex;flex-direction:column}
.brand{display:flex;align-items:center;gap:11px;margin:0 8px 34px}.brand-mark{width:40px;height:40px;border-radius:12px;background:var(--red);display:grid;place-items:center;font-weight:900;font-size:20px}.brand strong{display:block;letter-spacing:2px}.brand span{font-size:10px;color:#aeb1b5;letter-spacing:3px}
.sidebar-label{font-size:10px;letter-spacing:1.5px;color:#777d85;margin:18px 10px 8px}.sidebar nav{display:grid;gap:4px}.sidebar nav a{padding:11px 12px;border-radius:10px;color:#bfc3c8;font-size:14px}.sidebar nav a:hover,.sidebar nav a.active{background:rgba(255,255,255,.08);color:#fff}.sidebar nav a.active{border-left:3px solid #e25b4d;padding-left:9px}
.sidebar-bottom{margin-top:auto}.user-mini{border-top:1px solid #2a2d31;padding:16px 5px;display:flex;gap:10px;align-items:center}.user-mini strong{display:block;font-size:13px}.user-mini small{color:#888;font-size:11px}.avatar{width:36px;height:36px;border-radius:50%;background:#eee;color:#333;display:grid;place-items:center;font-weight:700}.avatar.small{width:31px;height:31px;background:#eceff3}.logout{display:block;color:#aaa;font-size:13px;padding:8px}
.main{margin-left:250px;width:calc(100% - 250px);padding:28px 34px}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.eyebrow{font-size:10px;color:var(--red);font-weight:800;letter-spacing:2px}.topbar h1{font-size:28px;margin:4px 0 0}.top-actions{display:flex;align-items:center;gap:10px}.icon-btn{border:1px solid var(--line);background:#fff;border-radius:12px;width:42px;height:42px}.profile-pill{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:5px 12px 5px 5px;font-size:13px}
.grid{display:grid;gap:18px}.stats{grid-template-columns:repeat(4,minmax(0,1fr));}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.stat{padding:20px}.stat-top{display:flex;justify-content:space-between;color:var(--muted);font-size:13px}.stat-value{font-size:28px;font-weight:800;margin:10px 0 4px}.trend{font-size:12px;color:var(--green)}.trend.down{color:var(--red)}
.two{grid-template-columns:1.35fr .65fr}.three{grid-template-columns:repeat(3,1fr)}.section{padding:22px}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.section-head h2{font-size:17px;margin:0}.muted{color:var(--muted)}.btn{display:inline-flex;align-items:center;gap:7px;border:0;border-radius:11px;padding:10px 14px;font-weight:700;font-size:13px;cursor:pointer}.btn-primary{background:var(--red);color:#fff}.btn-dark{background:var(--dark);color:#fff}.btn-light{background:#f1f2f4;color:#333}
.building-card{overflow:hidden}.building-image{height:220px;background-size:cover;background-position:center;position:relative}.building-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.7))}.building-info{position:absolute;bottom:17px;left:18px;color:#fff}.building-info h3{margin:0 0 4px;font-size:20px}.building-info span{font-size:12px;opacity:.85}.building-body{padding:18px}.building-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.meta{background:#f7f7f8;padding:10px;border-radius:10px}.meta small{display:block;color:var(--muted);font-size:10px}.meta strong{display:block;margin-top:3px}
.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;color:#8a9098;font-size:11px;text-transform:uppercase;letter-spacing:.5px;padding:11px 12px;border-bottom:1px solid var(--line)}.table td{padding:14px 12px;border-bottom:1px solid #f0f1f3}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:700}.badge.green{background:#e7f6ef;color:#17714f}.badge.red{background:#fdebe9;color:#a22e25}.badge.orange{background:#fff2df;color:#a86213}.badge.blue{background:#e9efff;color:#315cc0}
.progress{height:8px;background:#eceef1;border-radius:10px;overflow:hidden}.progress span{display:block;height:100%;background:var(--red);border-radius:10px}
.floor{border:1px solid var(--line);border-radius:14px;padding:15px;margin-bottom:12px}.floor-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.floor-head strong{font-size:14px}.units{display:flex;flex-wrap:wrap;gap:10px}.unit{width:82px;height:62px;border-radius:12px;background:#f4f5f6;display:grid;place-items:center;text-align:center;border:1px solid #e4e6e9}.unit strong{font-size:14px}.unit small{font-size:9px;color:var(--muted)}.unit.occupied{background:#fff0ee;border-color:#f3c8c3}.unit.available{background:#ecf8f2;border-color:#c8e9d9}.unit.maintenance{background:#fff5e8;border-color:#f3d6aa}
.hero{border-radius:20px;min-height:280px;background-size:cover;background-position:center;position:relative;overflow:hidden;color:#fff}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.78),rgba(0,0,0,.12))}.hero-content{position:relative;z-index:1;padding:35px;max-width:600px}.hero h2{font-size:32px;margin:6px 0}.hero p{color:#ddd}.kpis{display:flex;gap:12px;flex-wrap:wrap}.kpi{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.15);padding:10px 13px;border-radius:12px}.kpi b{display:block}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.field label{display:block;font-size:12px;font-weight:700;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 12px;background:#fff;font:inherit}.field textarea{min-height:110px;resize:vertical}.full{grid-column:1/-1}
.login-page{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr;background:#111}.login-visual{background-image:linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,.05)),url('../images/immeuble-reference.jpg');background-size:cover;background-position:center;display:flex;align-items:end;padding:55px;color:#fff}.login-visual h1{font-size:42px;max-width:520px;margin:0 0 12px}.login-visual p{max-width:500px;color:#ddd}.login-box{background:#f7f7f8;display:flex;align-items:center;justify-content:center;padding:35px}.login-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:35px;width:min(430px,100%);box-shadow:var(--shadow)}.login-card .brand{margin:0 0 30px}.login-card h2{font-size:25px;margin:0 0 6px}.login-card .subtitle{color:var(--muted);font-size:13px;margin-bottom:25px}.login-card .field{margin-bottom:15px}.login-card button{width:100%;justify-content:center;padding:13px}.alert{padding:11px 13px;border-radius:10px;background:#fdebea;color:#9c2b24;font-size:13px;margin-bottom:15px}
@media(max-width:1050px){.stats{grid-template-columns:repeat(2,1fr)}.two{grid-template-columns:1fr}.sidebar{width:220px}.main{margin-left:220px;width:calc(100% - 220px)}}
@media(max-width:750px){.sidebar{position:static;width:100%;height:auto}.app-shell{display:block}.main{margin:0;width:100%;padding:20px}.sidebar nav{grid-template-columns:repeat(2,1fr)}.login-page{grid-template-columns:1fr}.login-visual{display:none}.stats,.three,.form-grid{grid-template-columns:1fr}.topbar{align-items:flex-start}.profile-pill span:last-child{display:none}}
