@import "https://fonts.googleapis.com/css2?family=Cairo:wght@400;600;700&family=IBM+Plex+Sans+Arabic:wght@400;500;600;700&display=swap";:root{--brand-orange:#ec8a4c;--brand-orange-600:#d9772f;--brand-orange-700:#bc631f;--brand-orange-100:#fbeee1;--brand-orange-50:#fdf7f1;--brand-taupe:#574e48;--brand-taupe-700:#6b615a;--brand-taupe-300:#b7afa8;--ink:#2e2a27;--ink-muted:#7a726b;--line:#e7e2dc;--line-strong:#d8d1c8;--surface:#fff;--surface-sunken:#f7f4f0;--surface-raised:#fff;--sidebar-bg:#4c443f;--sidebar-bg-deep:#423b36;--sidebar-ink:#ede7e1;--sidebar-ink-muted:#b4a99f;--success:#3f9c5b;--success-bg:#e8f3ec;--warning:#e0a53b;--warning-bg:#fbf2df;--danger:#d1503f;--danger-bg:#fae8e4;--info:#3e7cb1;--info-bg:#e5eef5;--priority:#d9772f;--neutral-badge:#8a817a;--neutral-badge-bg:#efebe6;--font-display:"Cairo", "IBM Plex Sans Arabic", system-ui, sans-serif;--font-body:"IBM Plex Sans Arabic", "Cairo", system-ui, sans-serif;--fs-display:28px;--lh-display:36px;--fs-h1:22px;--lh-h1:30px;--fs-h2:18px;--lh-h2:26px;--fs-h3:15px;--lh-h3:22px;--fs-body:14px;--lh-body:22px;--fs-sm:13px;--lh-sm:20px;--fs-caption:12px;--lh-caption:16px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--r-sm:6px;--r-md:10px;--r-lg:14px;--r-pill:999px;--shadow-sm:0 1px 2px #2e2a270f, 0 1px 3px #2e2a270d;--shadow-md:0 4px 12px #2e2a2714, 0 2px 4px #2e2a270d;--shadow-lg:0 12px 32px #2e2a2724, 0 4px 10px #2e2a2714;--sidebar-w:248px;--sidebar-w-collapsed:68px;--topbar-h:60px;--content-max:1320px}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0;overflow-x:hidden}.hidden{display:none!important}body{font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);color:var(--ink);background:var(--surface-sunken);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);margin:0;font-weight:700}::selection{background:var(--brand-orange-100)}:focus-visible{outline:2px solid var(--brand-orange);outline-offset:2px;border-radius:4px}svg{flex-shrink:0;width:18px;height:18px}.report-donut .donut-wrap svg{flex-shrink:0;width:120px;height:120px}.report-line svg{flex-shrink:initial;width:100%;height:90px}.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.muted{color:var(--ink-muted)}.right{text-align:right}[dir=rtl] .right{text-align:left}.nowrap{white-space:nowrap}.app-shell{min-height:100vh}.sidebar{width:var(--sidebar-w);background:linear-gradient(180deg, var(--sidebar-bg) 0%, var(--sidebar-bg-deep) 100%);color:var(--sidebar-ink);top:0;z-index:20;flex-direction:column;height:100vh;transition:width .18s;display:flex;position:fixed;inset-inline-start:0}.sidebar-brand{height:var(--topbar-h);align-items:center;gap:var(--sp-3);padding:0 var(--sp-5);border-bottom:1px solid #ffffff14;display:flex}.sidebar-brand img{filter:brightness(0)invert();opacity:.96;width:auto;height:26px}.sidebar-brand .brand-fallback{font-family:var(--font-display);letter-spacing:.2px;font-size:18px;font-weight:700}.sidebar-brand .brand-fallback b{color:var(--brand-orange)}.sidebar-nav{padding:var(--sp-4) var(--sp-3);scrollbar-color:var(--sidebar-ink-muted) transparent;scrollbar-width:thin;flex:1;overflow-y:auto}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-track{background:0 0}.sidebar-nav::-webkit-scrollbar-thumb{background:var(--sidebar-ink-muted);border-radius:2px}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:var(--sidebar-ink)}.nav-group{margin-bottom:var(--sp-5)}.nav-group-label{text-transform:uppercase;letter-spacing:.09em;color:var(--sidebar-ink-muted);padding:0 var(--sp-3) var(--sp-2);font-size:11px;font-weight:600}.nav-item{align-items:center;gap:var(--sp-3);padding:9px var(--sp-3);border-radius:var(--r-sm);color:var(--sidebar-ink);font-size:var(--fs-sm);margin-bottom:2px;font-weight:500;transition:background .12s,color .12s;display:flex}.nav-item svg{opacity:.85;flex-shrink:0;width:18px;height:18px}.nav-item:hover{background:#ffffff12}.nav-item.active{background:var(--brand-orange);color:#fff;box-shadow:var(--shadow-sm)}.nav-item.active svg{opacity:1}.nav-item .nav-badge{border-radius:var(--r-pill);background:#ffffff2e;margin-inline-start:auto;padding:1px 7px;font-size:11px;font-weight:600}.nav-item.active .nav-badge{background:#0000002e}.sidebar-collapse{color:var(--sidebar-ink-muted);padding:var(--sp-3) var(--sp-5);align-items:center;gap:var(--sp-2);font-size:var(--fs-caption);background:0 0;border:none;border-top:1px solid #ffffff14;display:flex}.sidebar-collapse:hover{color:var(--sidebar-ink)}.app-shell.collapsed .sidebar{width:var(--sidebar-w-collapsed)}.app-shell.collapsed .main-col{margin-inline-start:var(--sidebar-w-collapsed)}.app-shell.collapsed .nav-group-label,.app-shell.collapsed .nav-item span,.app-shell.collapsed .sidebar-brand .brand-fallback,.app-shell.collapsed .sidebar-collapse span,.app-shell.collapsed .nav-badge{display:none}.app-shell.collapsed .nav-item{justify-content:center}.main-col{min-width:0;min-height:100vh;flex-direction:column;margin-inline-start:var(--sidebar-w);transition:margin-inline-start .18s;display:flex}.topbar{height:var(--topbar-h);background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:var(--sp-4);padding:0 var(--sp-6);z-index:15;display:flex;position:sticky;top:0}.topbar .search{flex:1;max-width:460px;position:relative}.topbar .search input{border:1px solid var(--line-strong);border-radius:var(--r-pill);width:100%;height:38px;padding:0 var(--sp-4) 0 38px;background:var(--surface-sunken);font-size:var(--fs-sm);color:var(--ink)}[dir=rtl] .topbar .search input{padding:0 38px 0 var(--sp-4)}.topbar .search svg{inset-inline-start:12px;width:18px;height:18px;color:var(--ink-muted);position:absolute;top:10px}.topbar .search input:focus{border-color:var(--brand-orange);background:#fff;outline:none}.topbar-spacer{flex:1}.topbar-actions{align-items:center;gap:var(--sp-2);display:flex}.nav-toggle{display:none}.icon-btn{border-radius:var(--r-sm);width:38px;height:38px;color:var(--brand-taupe);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex;position:relative}.icon-btn:hover{background:var(--surface-sunken)}.icon-btn svg{width:20px;height:20px}.icon-btn .dot{top:6px;background:var(--danger);color:#fff;border-radius:var(--r-pill);border:2px solid var(--surface);justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 3px;font-size:10px;font-weight:700;display:flex;position:absolute;inset-inline-end:6px}.lang-toggle{border:1px solid var(--line-strong);border-radius:var(--r-pill);height:34px;font-size:var(--fs-caption);align-items:stretch;font-weight:600;line-height:1;display:inline-flex;overflow:hidden}.lang-toggle a,.lang-toggle button{min-width:38px;color:var(--ink-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;justify-content:center;align-items:center;padding:0 12px;text-decoration:none;display:inline-flex}.lang-toggle a+a,.lang-toggle button+button{border-inline-start:1px solid var(--line-strong)}.lang-toggle a:hover,.lang-toggle button:hover{color:var(--ink)}.lang-toggle a.active,.lang-toggle button.active{background:var(--brand-taupe);color:#fff}.user-menu{align-items:center;gap:var(--sp-2);border-radius:var(--r-sm);padding:4px 8px;display:flex}.user-menu:hover{background:var(--surface-sunken)}.avatar{background:var(--brand-orange-100);width:32px;height:32px;color:var(--brand-orange-700);font-weight:700;font-size:var(--fs-sm);font-family:var(--font-display);border-radius:50%;justify-content:center;align-items:center;display:flex}.user-menu .who{line-height:1.1}.user-menu .who b{font-size:var(--fs-sm);font-weight:600;display:block}.user-menu .who small{color:var(--ink-muted);font-size:11px}.user-menu svg{width:16px;height:16px;color:var(--ink-muted)}.page{padding:var(--sp-6);max-width:var(--content-max);width:100%;margin:0 auto}.page-head{align-items:flex-start;gap:var(--sp-4);margin-bottom:var(--sp-5);display:flex}.page-head .titles{flex:1;min-width:0}.breadcrumb{font-size:var(--fs-caption);color:var(--ink-muted);align-items:center;gap:6px;margin-bottom:4px;display:flex}.breadcrumb a:hover{color:var(--brand-orange-600)}.page-title{font-size:var(--fs-display);line-height:var(--lh-display)}.page-sub{color:var(--ink-muted);font-size:var(--fs-sm);margin-top:2px}.page-actions{gap:var(--sp-2);align-items:center;display:flex}.btn{align-items:center;gap:var(--sp-2);height:38px;padding:0 var(--sp-4);border-radius:var(--r-sm);font-size:var(--fs-sm);white-space:nowrap;border:1px solid #0000;justify-content:center;font-weight:600;transition:background .12s,border-color .12s,box-shadow .12s;display:inline-flex}.btn svg{width:16px;height:16px}.btn-primary{background:var(--brand-orange);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--brand-orange-600)}.btn-secondary{color:var(--brand-taupe);border-color:var(--line-strong);background:#fff}.btn-secondary:hover{border-color:var(--brand-taupe-300);background:var(--surface-sunken)}.btn-ghost{color:var(--brand-taupe);background:0 0}.btn-ghost:hover{background:var(--surface-sunken)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{filter:brightness(.95)}.btn-sm{height:32px;font-size:var(--fs-caption);padding:0 12px}.btn-block{width:100%}.badge{border-radius:var(--r-pill);font-size:var(--fs-caption);white-space:nowrap;align-items:center;gap:5px;padding:2px 10px;font-weight:600;line-height:18px;display:inline-flex}.badge .bdot{background:currentColor;border-radius:50%;width:6px;height:6px}.badge.success{background:var(--success-bg);color:#2c7344}.badge.warning{background:var(--warning-bg);color:#9a6d12}.badge.danger{background:var(--danger-bg);color:#a83b2c}.badge.info{background:var(--info-bg);color:#2f5f8a}.badge.neutral{background:var(--neutral-badge-bg);color:#6a615a}.badge.priority{background:var(--brand-orange-100);color:var(--brand-orange-700)}.flag-priority{color:var(--priority);font-weight:600;font-size:var(--fs-caption);align-items:center;gap:4px;display:inline-flex}.flag-priority svg{width:14px;height:14px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card-head{align-items:center;gap:var(--sp-3);padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--line);display:flex}.card-head h2{font-size:var(--fs-h2);flex:1}.card-head .link{font-size:var(--fs-caption);color:var(--brand-orange-600);font-weight:600}.card-body,.card-pad{padding:var(--sp-5)}.grid{gap:var(--sp-4);display:grid}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (width<=1100px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (width<=720px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.stat .stat-ico{border-radius:var(--r-md);background:var(--brand-orange-100);width:38px;height:38px;color:var(--brand-orange-700);margin-bottom:var(--sp-3);justify-content:center;align-items:center;display:flex}.stat .stat-ico svg{width:20px;height:20px}.stat .stat-ico.green{background:var(--success-bg);color:#2c7344}.stat .stat-ico.red{background:var(--danger-bg);color:#a83b2c}.stat .stat-ico.blue{background:var(--info-bg);color:#2f5f8a}.stat .stat-ico.amber{background:var(--warning-bg);color:#9a6d12}.stat-label{font-size:var(--fs-caption);color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.stat-value{font-family:var(--font-display);margin-top:4px;font-size:26px;font-weight:700;line-height:1.1}.stat-value small{color:var(--ink-muted);font-size:14px;font-weight:600}.stat-meta{font-size:var(--fs-caption);align-items:center;gap:5px;margin-top:6px;display:flex}.stat.border-warning{border-inline-start:4px solid var(--warning)}.stat.border-danger{border-inline-start:4px solid var(--danger)}.stat.border-info{border-inline-start:4px solid var(--info)}.trend-up{color:var(--success)}.trend-down{color:var(--danger)}.danger-text{color:var(--danger);font-weight:600}.pool{padding:var(--sp-4);border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-sunken);flex-direction:column;gap:2px;display:flex}.pool .p-name{font-size:var(--fs-caption);color:var(--ink-muted);font-weight:600}.pool .p-val{font-family:var(--font-display);font-size:18px;font-weight:700}.pool .p-cur{color:var(--ink-muted);font-size:11px;font-weight:600}.table-wrap{overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}table.data thead th{text-align:start;color:var(--ink-muted);font-weight:600;font-size:var(--fs-caption);text-transform:uppercase;letter-spacing:.03em;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line-strong);background:var(--surface-sunken);white-space:nowrap;position:sticky;top:0}table.data tbody td{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line);vertical-align:middle}table.data tbody tr:hover{background:var(--brand-orange-50)}table.data tbody tr:last-child td{border-bottom:none}table.data .t-strong{color:var(--ink);font-weight:600}table.data .t-ref{color:var(--brand-orange-700);font-weight:600}table.data td.right,table.data th.right{text-align:end}.row-link{cursor:pointer}.t-actions{justify-content:flex-end;gap:4px;display:flex}.row-menu{display:inline-block;position:relative}.row-menu>summary{cursor:pointer;border-radius:var(--r-sm);width:30px;height:30px;color:var(--ink-muted);justify-content:center;align-items:center;list-style:none;display:inline-flex}.row-menu>summary::-webkit-details-marker{display:none}.row-menu>summary:hover,.row-menu[open]>summary{background:var(--surface-sunken);color:var(--ink)}.row-menu .row-menu-list{z-index:30;inset-inline-end:0;border:1px solid var(--line-strong);border-radius:var(--r-md);min-width:180px;box-shadow:var(--shadow-lg);background:#fff;flex-direction:column;padding:4px;display:flex;position:absolute;top:calc(100% + 4px)}.row-menu .row-menu-item{border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--ink);text-align:start;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;width:100%;padding:8px 10px;font-family:inherit;display:flex}.row-menu .row-menu-item:hover{background:var(--brand-orange-50)}.row-menu .row-menu-item.danger{color:var(--danger)}.row-menu .row-menu-item svg{flex:none;width:16px;height:16px}.cellsub{flex-direction:column;line-height:1.25;display:flex}.cellsub small{color:var(--ink-muted);font-size:11px}.filter-bar{gap:var(--sp-2);margin-bottom:var(--sp-4);flex-wrap:wrap;align-items:center;display:flex}.filter-bar .spacer{flex:1}.select,.input,.field input,.field select,.field textarea{border:1px solid var(--line-strong);border-radius:var(--r-sm);height:38px;padding:0 var(--sp-3);font-size:var(--fs-sm);color:var(--ink);background:#fff;font-family:inherit}.select{padding-inline-end:28px}.input:focus,.select:focus,.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand-orange);outline:none}.chip{background:var(--brand-orange-100);height:30px;color:var(--brand-orange-700);border-radius:var(--r-pill);font-size:var(--fs-caption);align-items:center;gap:6px;padding:0 10px;font-weight:600;display:inline-flex}.chip button{color:inherit;background:0 0;border:none;display:flex}.tabs{border-bottom:1px solid var(--line);margin-bottom:var(--sp-5);gap:2px;display:flex}.tab{padding:10px var(--sp-4);font-size:var(--fs-sm);color:var(--ink-muted);border-top:none;border-bottom:2px solid #0000;background:0 0;border-inline:none;font-weight:600}.tab:hover{color:var(--ink)}.tab.active{color:var(--brand-orange-700);border-bottom-color:var(--brand-orange)}.seg{border:1px solid var(--line-strong);border-radius:var(--r-sm);display:inline-flex;overflow:hidden}.seg button{font-size:var(--fs-caption);color:var(--ink-muted);background:#fff;border:none;padding:8px 14px;font-weight:600}.seg button.active{background:var(--brand-taupe);color:#fff}.detail-head{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--shadow-sm);margin-bottom:var(--sp-5)}.detail-head .top{align-items:flex-start;gap:var(--sp-4);flex-wrap:wrap;display:flex}.detail-head h1{font-size:var(--fs-h1);align-items:center;gap:var(--sp-3);display:flex}.detail-head .ref{color:var(--brand-orange-700);font-weight:700}.meta-grid{gap:var(--sp-4);margin-top:var(--sp-4);padding-top:var(--sp-4);border-top:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.meta-grid .m-label{text-transform:uppercase;letter-spacing:.04em;color:var(--ink-muted);font-size:11px;font-weight:600}.meta-grid .m-val{font-size:var(--fs-sm);margin-top:2px;font-weight:600}.timeline{padding-inline-start:var(--sp-5);position:relative}.timeline:before{content:"";inset-inline-start:7px;background:var(--line-strong);width:2px;position:absolute;top:6px;bottom:6px}.tl-item{padding-bottom:var(--sp-5);position:relative}.tl-item:last-child{padding-bottom:0}.tl-dot{inset-inline-start:calc(-1 * var(--sp-5) + 1px);border:3px solid var(--brand-orange);background:#fff;border-radius:50%;width:14px;height:14px;position:absolute;top:2px}.tl-dot.done{border-color:var(--success);background:var(--success)}.tl-dot.muted{border-color:var(--line-strong)}.tl-title{font-weight:600;font-size:var(--fs-sm)}.tl-meta{font-size:var(--fs-caption);color:var(--ink-muted);margin-top:1px}.list-row{align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line);display:flex}.list-row:last-child{border-bottom:none}.list-row:hover{background:var(--surface-sunken)}.list-ico{border-radius:var(--r-md);flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.list-ico svg{width:16px;height:16px}.list-row .l-body{flex:1;min-width:0}.list-row .l-title{font-size:var(--fs-sm);font-weight:500}.list-row .l-time{color:var(--ink-muted);white-space:nowrap;font-size:11px}.unread{background:var(--brand-orange);border-radius:50%;width:8px;height:8px;margin-top:7px}.field{margin-bottom:var(--sp-4)}.field>label{font-size:var(--fs-caption);color:var(--brand-taupe);margin-bottom:6px;font-weight:600;display:block}.field .req{color:var(--danger)}.field input,.field select,.field textarea{width:100%}.field textarea{height:auto;min-height:84px;padding:var(--sp-3);resize:vertical;line-height:1.5}.field .help{color:var(--ink-muted);margin-top:5px;font-size:11px}.field.error input,.field.error select{border-color:var(--danger)}.field .err-msg{color:var(--danger);margin-top:5px;font-size:11px}.form-grid{gap:0 var(--sp-5);grid-template-columns:1fr 1fr;display:grid}@media (width<=640px){.form-grid{grid-template-columns:1fr}}fieldset.fs{border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-5);margin:0 0 var(--sp-5)}fieldset.fs legend{font-family:var(--font-display);font-weight:700;font-size:var(--fs-h3);color:var(--brand-taupe);padding:0 8px}.uploader{border:2px dashed var(--line-strong);border-radius:var(--r-md);padding:var(--sp-6);text-align:center;color:var(--ink-muted);background:var(--surface-sunken);cursor:pointer;transition:border-color .15s,background .15s}.uploader svg{width:28px;height:28px;color:var(--brand-taupe-300)}.uploader:hover,.uploader.drag-over{border-color:var(--brand);background:var(--info-bg)}.uploader .uploader-hint{font-size:var(--fs-sm);margin-top:var(--sp-1)}.uploader .uploader-browse{color:var(--brand);cursor:pointer;text-decoration:underline}.uploader-file-info{align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);font-size:var(--fs-sm);text-align:start;display:flex}.uploader-file-info .file-name{text-overflow:ellipsis;white-space:nowrap;color:var(--ink);flex:1;overflow:hidden}.uploader-file-info .file-size{color:var(--ink-muted);white-space:nowrap}.uploader-file-info .file-remove{cursor:pointer;color:var(--ink-muted);padding:0 var(--sp-1);background:0 0;border:none;font-size:16px;line-height:1}.uploader-file-info .file-remove:hover{color:var(--danger)}.overlay{z-index:50;opacity:0;pointer-events:none;background:#2e2a2773;transition:opacity .15s;display:flex;position:fixed;inset:0}.overlay.open{opacity:1;pointer-events:auto}.modal{border-radius:var(--r-lg);box-shadow:var(--shadow-lg);background:#fff;width:min(560px,92vw);max-height:88vh;margin:auto;transition:transform .15s;overflow:auto;transform:translateY(8px)}.overlay.open .modal{transform:translateY(0)}.drawer{box-shadow:var(--shadow-lg);background:#fff;width:min(540px,96vw);height:100vh;margin-inline-start:auto;transition:transform .18s;overflow:auto;transform:translate(100%)}[dir=rtl] .drawer{transform:translate(-100%)}.overlay.open .drawer{transform:translate(0)}.modal-head,.drawer-head{align-items:center;gap:var(--sp-3);padding:var(--sp-5);border-bottom:1px solid var(--line);background:#fff;display:flex;position:sticky;top:0}.modal-head h3,.drawer-head h3{font-size:var(--fs-h2);flex:1}.modal-body,.drawer-body{padding:var(--sp-5)}.modal-foot,.drawer-foot{gap:var(--sp-2);padding:var(--sp-4) var(--sp-5);border-top:1px solid var(--line);background:#fff;justify-content:flex-end;display:flex;position:sticky;bottom:0}.banner{gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);font-size:var(--fs-sm);margin-bottom:var(--sp-4);border:1px solid #0000;align-items:flex-start;display:flex}.banner svg{flex-shrink:0;width:18px;height:18px;margin-top:1px}.banner.info{background:var(--info-bg);color:#2f5f8a;border-color:#cfe0ee}.banner.warning{background:var(--warning-bg);color:#9a6d12;border-color:#f0e0b8}.banner.danger{background:var(--danger-bg);color:#a83b2c;border-color:#f1cfc8}.banner.success{background:var(--success-bg);color:#2c7344;border-color:#cfe6d6}.empty{text-align:center;padding:var(--sp-12) var(--sp-6);color:var(--ink-muted)}.empty svg{width:48px;height:48px;color:var(--brand-taupe-300);margin-bottom:var(--sp-3)}.empty h3{color:var(--brand-taupe);margin-bottom:6px}.pager{align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--line);font-size:var(--fs-sm);color:var(--ink-muted);justify-content:flex-end;display:flex}.pager .pg{border:1px solid var(--line-strong);border-radius:var(--r-sm);background:#fff;justify-content:center;align-items:center;width:32px;height:32px;display:inline-flex}.pager .pg.active{background:var(--brand-taupe);color:#fff;border-color:var(--brand-taupe)}.portal-body{background:var(--surface-sunken)}.portal-top{border-bottom:1px solid var(--line);align-items:center;gap:var(--sp-6);height:64px;padding:0 var(--sp-8);z-index:15;background:#fff;display:flex;position:sticky;top:0}.portal-top .p-logo img{height:30px}.portal-nav{gap:var(--sp-2);display:flex}.portal-nav a{border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--brand-taupe);padding:8px 14px;font-weight:600}.portal-nav a:hover{background:var(--surface-sunken)}.portal-nav a.active{background:var(--brand-orange-100);color:var(--brand-orange-700)}.portal-main{max-width:1100px;padding:var(--sp-8) var(--sp-6);margin:0 auto}.hero{background:linear-gradient(120deg, var(--brand-taupe) 0%, #6a5f57 100%);color:#fff;border-radius:var(--r-lg);padding:var(--sp-8);position:relative;overflow:hidden}.hero:after{content:"";inset-inline-end:-40px;background:radial-gradient(circle,#ec8a4c59,#0000 70%);width:240px;height:240px;position:absolute;top:-40px}.hero h1{color:#fff;font-size:var(--fs-display)}.hero p{color:#ffffffd9;max-width:60ch;margin:8px 0 0}.hero .btn-primary{margin-top:var(--sp-5)}.pcard{border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-5);box-shadow:var(--shadow-sm);background:#fff}.pcard .pc-ico{border-radius:var(--r-md);background:var(--brand-orange-100);width:42px;height:42px;color:var(--brand-orange-700);margin-bottom:var(--sp-3);justify-content:center;align-items:center;display:flex}.pcard h3{font-size:var(--fs-h3)}.pcard p{color:var(--ink-muted);font-size:var(--fs-sm);margin:6px 0 0}.auth-wrap{grid-template-columns:1fr 1fr;min-height:100vh;display:grid}@media (width<=860px){.auth-wrap{grid-template-columns:1fr}.auth-art{display:none}}.auth-art{background:linear-gradient(150deg, var(--brand-taupe) 0%, #3f3833 100%);color:#fff;padding:var(--sp-12);flex-direction:column;justify-content:center;display:flex;position:relative;overflow:hidden}.auth-art:after{content:"";inset-inline-end:-80px;background:radial-gradient(circle,#ec8a4c66,#0000 70%);width:380px;height:380px;position:absolute;top:30%}.auth-art img{filter:brightness(0)invert();width:auto;height:40px;margin-bottom:var(--sp-8);align-self:flex-start}.auth-art h2{color:#fff;max-width:18ch;font-size:30px;line-height:1.25}.auth-art p{color:#fffc;margin-top:var(--sp-4);max-width:42ch}.auth-form{padding:var(--sp-8);justify-content:center;align-items:center;display:flex}.auth-card{width:min(380px,100%)}.auth-card .logo-sm{height:34px;margin-bottom:var(--sp-6)}.error-wrap{min-height:100vh;padding:var(--sp-6);background:var(--surface-sunken);justify-content:center;align-items:center;display:flex}.error-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);width:min(460px,100%);box-shadow:var(--shadow-lg);padding:var(--sp-8);text-align:center}.error-card .logo-sm{width:auto;height:34px;margin-bottom:var(--sp-6)}.error-badge{border-radius:var(--r-lg);width:64px;height:64px;margin:0 auto var(--sp-5);background:var(--brand-orange-100);color:var(--brand-orange-700);justify-content:center;align-items:center;display:flex}.error-badge.danger{background:var(--danger-bg);color:#a83b2c}.error-badge svg{width:30px;height:30px}.error-code{font-family:var(--font-display);color:var(--brand-taupe);font-size:56px;font-weight:700;line-height:1}.error-card h1{font-size:var(--fs-h1);margin-top:var(--sp-3)}.error-card p{color:var(--ink-muted);font-size:var(--fs-sm);margin:var(--sp-3) 0 0}.error-actions{gap:var(--sp-2);margin-top:var(--sp-6);flex-wrap:wrap;justify-content:center;display:flex}.flex{display:flex}.between{justify-content:space-between}.items-center{align-items:center}.gap-2{gap:var(--sp-2)}.gap-3{gap:var(--sp-3)}.gap-4{gap:var(--sp-4)}.mt-2{margin-top:var(--sp-2)}.mt-3{margin-top:var(--sp-3)}.mt-4{margin-top:var(--sp-4)}.mt-5{margin-top:var(--sp-5)}.mt-6{margin-top:var(--sp-6)}.mb-0{margin-bottom:0}.mb-3{margin-bottom:var(--sp-3)}.mb-4{margin-bottom:var(--sp-4)}.mb-5{margin-bottom:var(--sp-5)}.money{font-variant-numeric:tabular-nums;font-weight:600}.money.neg{color:var(--danger)}.divider{background:var(--line);height:1px;margin:var(--sp-4) 0}.kpi-row{gap:var(--sp-5);flex-wrap:wrap;display:flex}.hr-strong{border:none;border-top:1px solid var(--line-strong);margin:var(--sp-5) 0}.hide{display:none!important}.nav-backdrop{z-index:18;opacity:0;pointer-events:none;background:#2e2a2773;transition:opacity .18s;position:fixed;inset:0}@media (width<=860px){.page-head{align-items:stretch;gap:var(--sp-3);flex-direction:column}.page-head .page-actions{flex-wrap:wrap;justify-content:flex-start}.sidebar{top:0;bottom:0;height:100vh;box-shadow:var(--shadow-lg);z-index:40;transition:transform .2s;position:fixed;inset-inline-start:0;transform:translate(-100%)}[dir=rtl] .sidebar{transform:translate(100%)}.app-shell.nav-open .sidebar{transform:translate(0)}.app-shell.nav-open .nav-backdrop{opacity:1;pointer-events:auto}.sidebar-collapse{display:none}.app-shell.collapsed .sidebar{width:var(--sidebar-w)}.main-col{margin-inline-start:0}.nav-toggle{border-radius:var(--r-sm);width:38px;height:38px;color:var(--brand-taupe);background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.nav-toggle:hover{background:var(--surface-sunken)}.nav-toggle svg{width:22px;height:22px}.topbar{padding:0 var(--sp-4);gap:var(--sp-3)}.page{padding:var(--sp-4)}.topbar-actions{margin-inline-start:var(--sp-2)}.topbar .lang-toggle{margin-inline-end:4px}}.grid-5{grid-template-columns:repeat(5,1fr)}@media (width<=1100px){.grid-5{grid-template-columns:repeat(2,1fr)}}@media (width<=720px){.grid-5{grid-template-columns:1fr}}.grid-6{grid-template-columns:repeat(6,1fr)}@media (width<=1100px){.grid-6{grid-template-columns:repeat(3,1fr)}}@media (width<=720px){.grid-6{grid-template-columns:1fr}}.warning-text{color:var(--warning);font-weight:600}.section-title{font-family:var(--font-display);font-size:18px;font-weight:700}.group-head{font-family:var(--font-display);border-bottom:1px solid var(--line);align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.check-inline{font-size:var(--fs-sm);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.chips{gap:var(--sp-2);flex-wrap:wrap;display:flex}.row-warning{background:var(--warning-bg)}.row-danger{background:var(--danger-bg)}tr.row-link.row-warning:hover{background:#f7e8c9}tr.row-link.row-danger:hover{background:#f6dcd5}.report-card{padding:var(--sp-4);color:inherit;flex-direction:column;gap:10px;text-decoration:none;transition:box-shadow .15s,transform .15s;display:flex}.report-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000014}.report-card-ico{border-radius:var(--r-md,10px);background:var(--brand-orange-100);width:40px;height:40px;color:var(--brand-orange-700);justify-content:center;align-items:center;display:flex}.report-card-ico svg{width:22px;height:22px}.report-card-body h3{margin-bottom:4px;font-size:16px;font-weight:700}.report-card-body p{font-size:var(--fs-sm)}.report-card-open{font-size:var(--fs-sm);color:var(--brand-orange-700);align-items:center;gap:4px;font-weight:600;display:inline-flex}.report-card-open svg{width:14px;height:14px}.chart-title{font-size:var(--fs-sm);color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px;font-weight:700}.report-bar .bar-row{grid-template-columns:120px 1fr 90px;align-items:center;gap:10px;margin-bottom:6px;display:grid}.report-bar .bar-label{font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.report-bar .bar-track{background:var(--surface-sunken);border-radius:var(--r-pill);height:14px;overflow:hidden}.report-bar .bar-fill{border-radius:var(--r-pill);min-width:2px;height:100%}.report-bar .bar-value{font-size:var(--fs-sm);text-align:end}.report-line .line-axis{justify-content:space-between;margin-top:4px;display:flex}.report-line .axis-tick{color:var(--ink-muted);font-size:10px}.report-donut .donut-wrap{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.donut-legend{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.donut-legend li{font-size:var(--fs-sm);align-items:center;gap:6px;display:flex}.donut-legend .legend-dot{border-radius:3px;flex-shrink:0;width:10px;height:10px}.donut-legend .legend-pct{color:var(--ink-muted);margin-inline-start:auto}.stacked-bar{border-radius:var(--r-pill);background:var(--surface-sunken);height:18px;display:flex;overflow:hidden}.stacked-bar .seg{height:100%}.seg-success{background:var(--success)}.seg-info{background:var(--info)}.seg-warning{background:var(--warning)}.seg-danger{background:var(--danger)}.seg-neutral{background:var(--ink-muted)}.inline-bar{background:var(--surface-sunken);border-radius:var(--r-pill);height:12px;overflow:hidden}.inline-bar-fill{border-radius:var(--r-pill);min-width:2px;height:100%}.trip-delay.is-incomplete{opacity:.72}.delay-seg{font-size:var(--fs-sm);border-bottom:1px dotted var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding:5px 0;display:flex}.delay-seg:last-child{border-bottom:none}.delay-seg .seg-name{min-width:150px;font-weight:600}.delay-seg .seg-detail{font-size:var(--fs-caption)}.page>.banner{margin-bottom:var(--sp-5)}.nav-item.is-soon{opacity:.5;cursor:default}.nav-item.is-soon:hover{background:0 0}.repeat-row{position:relative}.check-inline{color:var(--ink);align-items:center;gap:8px;font-weight:500;display:flex}.check-inline input{width:auto;height:auto}.section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);margin:0 0 var(--sp-3);font-size:11px;font-weight:700}.banner ul{margin:4px 0 0;padding-inline-start:18px}.banner ul li{margin:2px 0}
