/* Mafaza interface. Loaded after app.css and bootstrap. Tokens first, then shell, components, and page parts. */
:root{--ink:#16324f;--ink2:#3f5870;--concrete:#f3f5f7;--sheet:#fff;--line:#e1e6ea;--mute:#5a6773;--text:#1a2530;--deep:#0f2438;--hazard:#f2b705;--rust:#b23c22;--ok:#23795a;--blue:#1f6fb2;
--r:12px;--r-sm:8px;--lift:0 1px 2px rgba(16,36,56,.05);--rail:256px;
--bs-body-bg:var(--concrete);--bs-body-color:var(--text);--bs-border-color:#d4dbe1;--bs-border-radius:8px;--bs-border-radius-sm:7px;--bs-border-radius-lg:10px;--bs-link-color:#1a5e99;--bs-link-color-rgb:26,94,153;--bs-link-hover-color:#16324f}
body{font-size:15px;line-height:1.5;background:var(--concrete)}
a{text-underline-offset:2px}
:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* shell */
.rail{width:var(--rail);padding:0 0 14px;background:var(--deep);scrollbar-color:#35506b var(--deep)}
.brand{background:none;padding:16px 18px;margin:0;position:sticky;top:0;z-index:2;background:var(--deep)}
.rail nav{padding:0 10px}
.rail nav a,.sheets a{padding:6px 8px;border-radius:var(--r-sm);margin-bottom:1px;color:#d7e1ea;font-size:14.5px;font-weight:500}
.rail nav a i,.sheets a i{width:28px;height:28px;border-radius:7px;background:var(--fi);font-size:14px}
.sheets a i{width:24px;height:24px;font-size:12.5px;border-radius:6px}
.rail nav a:hover,.sheets a:hover{background:#1b3a58;color:#fff}
.rail a.on,.rail nav a.on,.sheets a.on{background:var(--hazard);color:var(--deep);font-weight:650}
.rail a.on i{background:var(--deep);color:var(--hazard)}
.sheets{margin:12px 10px 0;padding-top:12px;border-top:1px solid #243f5a}
.sheets-title{background:none;color:var(--hazard);padding:0 8px 6px;font-size:14px}
.sheet-group{display:flex;width:100%;justify-content:space-between;align-items:center;background:none;border:0;border-radius:var(--r-sm);color:#a9bccc;font-size:13px;font-weight:650;padding:7px 8px}
.sheet-group:hover{color:#fff}.sheet-group i{font-size:11px;transition:transform .15s}
.sheet-block.shut .sheet-group i{transform:rotate(-90deg)}.sheet-block.shut .sheet-items{display:none}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;height:60px;padding:0 28px;background:#fff;border-bottom:1px solid var(--line)}
.topbar .co{margin-right:auto;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.jump{display:flex;align-items:center;gap:9px;width:240px;height:38px;padding:0 10px;background:var(--concrete);border:1px solid var(--line);border-radius:var(--r-sm);color:var(--mute);font-size:14px}
.jump:hover{border-color:#b9c4cd}.jump span{flex:1;text-align:left}.jump kbd{background:#fff;color:var(--mute);border:1px solid var(--line);font-size:11px;padding:1px 5px}
.icon-btn{width:38px;height:38px;display:grid;place-items:center;border:0;background:none;border-radius:var(--r-sm);color:var(--ink);font-size:20px;position:relative;flex:none}.icon-btn:hover{background:var(--concrete)}
.bell b{top:2px;right:0;font-weight:700;border-radius:9px}
.avatar{width:36px;height:36px;border-radius:50%;border:0;background:var(--ink);color:#fff;font-weight:700}
.dropdown-menu{border:1px solid var(--line);border-radius:var(--r);box-shadow:0 10px 30px rgba(16,36,56,.14);padding:6px;font-size:14.5px}.dropdown-item{border-radius:6px;padding:7px 10px}.dropdown-item i{margin-right:6px}.dropdown-header{color:var(--mute);font-size:13px;white-space:normal}.dropdown-header strong{color:var(--text)}
main{padding:26px 28px 64px;max-width:1360px;margin:0 auto}
.rail-back{position:fixed;inset:0;background:rgba(15,36,56,.5);z-index:25}
#jump{border:0;border-radius:var(--r);padding:10px;width:min(520px,calc(100vw - 32px));margin-top:12vh;box-shadow:0 20px 50px rgba(16,36,56,.28)}#jump::backdrop{background:rgba(15,36,56,.45)}
#jumpList{max-height:50vh;overflow:auto;margin-top:6px;color:var(--mute);font-size:14px}#jumpList a{display:flex;justify-content:space-between;padding:8px 10px;border-radius:7px;color:var(--text);text-decoration:none}#jumpList a span{color:var(--mute);font-size:13px}#jumpList a.at,#jumpList a:hover{background:#eef3f8}

/* page header */
.page-title,.pagehead h1{font-weight:750;font-stretch:92%;font-size:28px;line-height:1.15;color:var(--ink);margin:0}
.page-title{margin-bottom:20px}
.pagehead{margin-bottom:22px}
.crumbs{display:flex;align-items:center;gap:6px;font-size:13.5px;color:var(--mute);margin-bottom:4px;min-width:0}.crumbs a{color:var(--mute);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crumbs a:hover{color:var(--ink)}.crumbs i{font-size:10px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.chip{background:#e8edf1;color:#3a4a58;font-size:12.5px;font-weight:600;padding:2px 9px;border-radius:99px}
.st-active{background:#dcf0e6;color:#1a6146}.st-planning{background:#dcebf7;color:#1a5587}.st-on_hold{background:#fcefc4;color:#6b5200}.st-completed{background:#e4e0f1;color:#4a3a78}
h2{font-size:18px;font-weight:700;margin:26px 0 12px}h3{font-size:15.5px}

/* components */
.btn{font-weight:600;--bs-btn-border-radius:8px}.btn-sm{--bs-btn-border-radius:7px;--bs-btn-padding-y:.3rem;--bs-btn-padding-x:.65rem}
.btn-outline-secondary{--bs-btn-color:#2f3f4e;--bs-btn-border-color:#cbd4db;--bs-btn-bg:#fff;--bs-btn-hover-bg:#eef2f5;--bs-btn-hover-color:#16324f;--bs-btn-hover-border-color:#b6c2cc}
.form-control,.form-select{background-color:#fff;border-color:#cdd5dc}.form-control:focus,.form-select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(31,111,178,.16)}.form-control[readonly]{background:var(--concrete)}.form-check-input:checked{background-color:var(--ink);border-color:var(--ink)}
.form-label{color:#34434f;font-weight:600}
.tiles{gap:12px;padding:0;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.tile{margin:0;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--lift)}
.tile span{color:var(--mute)}.tile strong{font-size:24px;font-stretch:92%;margin-top:2px}
.tile.warn{box-shadow:var(--lift);border-color:#efd67c;background:#fffbea}.tile.bad{box-shadow:var(--lift);border-color:#efc4b9;background:#fdf3f0}
.table{--bs-table-bg:#fff;border:1px solid var(--line);border-collapse:separate;border-spacing:0;border-radius:var(--r);overflow:hidden;box-shadow:var(--lift);background:#fff}
.table>:not(caption)>*>*{padding:.6rem .75rem;border-bottom-color:#edf0f3}
.table tbody tr:last-child>*{border-bottom:0}
.table thead th{background:#f7f9fa;color:var(--mute);font-size:13px;font-weight:650;border-bottom:1px solid var(--line)}
.table tbody tr:hover>*{--bs-table-bg-state:#f7fafc}
.table-responsive{border-radius:var(--r)}
.sched table,.perm{box-shadow:none}
.meter{height:8px;border-radius:9px;background:#e6ebef}.meter i{background:var(--blue);border-radius:9px}
.empty{background:#fff;border:1px dashed #c6d0d8;border-radius:var(--r);padding:36px 24px}.empty p{color:var(--mute)}
.form-sheet,.option,.plan-stage,.room-panel,.gantt,.chat-side,.chat-main,.elev-wrap{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--lift)}
.form-sheet{padding:20px 22px}
.chat-side,.chat-main{overflow:hidden}.chat-side{overflow-y:auto}.msg{border-radius:12px}.msg.mine{background:#dfeaf5}.chat-side a{border-radius:7px;margin:1px 5px}.chat-side a.on{background:#fff4cf}
.option{padding:12px 14px}.option.sel{border:2px solid var(--ok)}.optno{border-radius:7px}
.view3d,.render-thumb,.thumb{border-radius:var(--r-sm);overflow:hidden}
.stepper{gap:0;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--lift)}
.stepper li{border-left:1px solid var(--line)}.stepper li.done{background:#f0f8f4}
.alert{border-radius:var(--r-sm);border-width:1px}
.flash{display:flex;gap:9px;align-items:flex-start;padding:.6rem .8rem}.flash i{font-size:17px;line-height:1.3}
.alert-card{border-radius:var(--r);box-shadow:0 10px 30px rgba(16,36,56,.18)}
.g-bar{border-radius:4px;overflow:hidden}
.media-edit img,.media-edit video{border-radius:var(--r-sm)}
.linkbox input{background:var(--concrete)}
.perm-line label{display:inline-flex;gap:5px;align-items:center}
.login{background:var(--deep)}
.login-card{border-top:0;border-radius:16px;padding:32px}.login-card h1{font-weight:750}
.login-logo{border-radius:10px}

@media(max-width:991px){
.rail{left:calc(var(--rail) * -1 - 10px);z-index:30;transition:left .18s ease}.rail.open{left:0}
.topbar{padding:0 12px}main{padding:18px 14px 50px}
.jump{width:38px;padding:0;justify-content:center;background:none;border:0;font-size:18px;color:var(--ink)}.jump span,.jump kbd{display:none}
.page-title,.pagehead h1{font-size:24px}
.table{display:block;overflow-x:auto}.table-responsive .table{display:table}
}
@media print{.rail,.topbar,.btn,form,.rail-back,#jump{display:none!important}main{padding:0;max-width:none}.table,.tile,.form-sheet{box-shadow:none}.pagehead .crumbs{display:none}}
.table-danger{--bs-table-bg:#fdf1ee;--bs-table-color:#7e2a17;--bs-table-border-color:#f5ded8}.table-warning{--bs-table-bg:#fff8e0;--bs-table-border-color:#f3e6b8}
