@import url("compat.css");
:root {
  --ink: #203044;
  --muted: #66758a;
  --bg: #f5f7fb;
  --surface: rgba(255,255,255,.92);
  --line: #dfe6ef;
  --brand: #496b98;
  --brand-dark: #2d4d75;
  --lilac: #cfc8ee;
  --mint: #bfe2d3;
  --peach: #f2d2bc;
  --sky: #bfdceb;
  --rose: #efc6cf;
  --warning: #bc792c;
  --danger: #aa4457;
  --success: #3f7c67;
  --shadow-sm: 0 8px 24px rgba(34,57,82,.08);
  --shadow: 0 22px 60px rgba(34,57,82,.13);
  --radius-sm: 12px;
  --radius: 20px;
  --radius-lg: 30px;
  --sidebar: 272px;
  --ease: cubic-bezier(.22,.8,.28,1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0; color: var(--ink); background:
  radial-gradient(circle at 8% 8%, rgba(207,200,238,.35), transparent 26rem),
  radial-gradient(circle at 96% 92%, rgba(191,226,211,.34), transparent 30rem), var(--bg);
  font-family: Inter, "Segoe UI", Roboto, Arial, sans-serif; line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; }
button, [role="button"], a { -webkit-tap-highlight-color: transparent; }
a { color: var(--brand-dark); }
img { max-width: 100%; }
:focus-visible { outline: 3px solid rgba(73,107,152,.32); outline-offset: 3px; }
.sr-only { position:absolute!important; width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.skip-link { position:fixed; left:1rem; top:-5rem; z-index:1000; padding:.7rem 1rem; border-radius:10px; background:#fff; box-shadow:var(--shadow); }
.skip-link:focus { top:1rem; }

/* App shell */
.app-shell { min-height:100vh; display:grid; grid-template-columns:var(--sidebar) minmax(0,1fr); }
.sidebar { position:sticky; top:0; height:100vh; z-index:40; padding:22px 16px; display:flex; flex-direction:column; color:#eef5ff; background:linear-gradient(168deg,#263d5b 0%,#345779 52%,#476d82 100%); box-shadow:8px 0 36px rgba(21,39,60,.14); }
.brand { display:flex; align-items:center; gap:12px; min-height:50px; padding:4px 10px 20px; color:#fff; text-decoration:none; }
.brand-mark { width:43px;height:43px;display:grid;place-items:center;border-radius:15px;background:linear-gradient(145deg,rgba(255,255,255,.28),rgba(255,255,255,.08));border:1px solid rgba(255,255,255,.25);box-shadow:inset 0 1px rgba(255,255,255,.24);font-weight:800; }
.brand-copy strong,.brand-copy small { display:block; }.brand-copy strong{font-size:.91rem;letter-spacing:.02em}.brand-copy small{font-size:.7rem;opacity:.72}
.nav-label { margin:16px 12px 7px; font-size:.66rem; font-weight:800; text-transform:uppercase; letter-spacing:.13em; opacity:.58; }
.sidebar-nav { display:grid; gap:5px; }
.nav-link { position:relative; display:flex; align-items:center; gap:11px; min-height:45px; padding:10px 12px; border-radius:13px; color:rgba(255,255,255,.78); text-decoration:none; transition:.2s var(--ease); }
.nav-link:hover { color:#fff;background:rgba(255,255,255,.09);transform:translateX(2px); }.nav-link.is-active{color:#fff;background:rgba(255,255,255,.16);box-shadow:inset 3px 0 var(--mint)}
.nav-link svg,.nav-link i { width:20px;text-align:center;opacity:.92 }.nav-link .nav-count{margin-left:auto;min-width:24px;padding:2px 6px;border-radius:20px;background:rgba(255,255,255,.16);font-size:.7rem;text-align:center}
.sidebar-footer { margin-top:auto; padding-top:16px; border-top:1px solid rgba(255,255,255,.13); }
.user-chip { display:flex;align-items:center;gap:10px;padding:9px;border-radius:14px;background:rgba(255,255,255,.08) }.avatar{width:37px;height:37px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--peach);color:var(--brand-dark);font-weight:800}.user-chip strong,.user-chip small{display:block;max-width:145px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-chip strong{font-size:.79rem}.user-chip small{font-size:.69rem;opacity:.68}
.app-main { min-width:0; padding:0 30px 46px; }
.topbar { min-height:76px; display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:30;background:rgba(245,247,251,.82);backdrop-filter:blur(18px);border-bottom:1px solid rgba(223,230,239,.72) }
.menu-toggle { display:none }.topbar-title{min-width:0}.topbar-title h1{font-size:1.08rem;margin:0}.topbar-title p{margin:1px 0 0;color:var(--muted);font-size:.78rem}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:9px}.icon-btn{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);border-radius:13px;color:var(--ink);background:rgba(255,255,255,.85);cursor:pointer;transition:.2s var(--ease)}.icon-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm)}
.page { max-width:1560px; margin:0 auto; padding-top:25px; }.page-header{display:flex;align-items:flex-end;gap:22px;margin:3px 0 25px}.page-header h2{margin:0;font-size:clamp(1.55rem,2.3vw,2.25rem);letter-spacing:-.035em}.eyebrow{margin:0 0 5px;color:var(--brand);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em}.page-header p{margin:5px 0 0;color:var(--muted)}.page-header-actions{margin-left:auto;display:flex;gap:9px;flex-wrap:wrap}

/* Components */
.btn { display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:9px 15px;border:1px solid transparent;border-radius:12px;font-weight:700;font-size:.84rem;text-decoration:none;cursor:pointer;transition:.2s var(--ease) }.btn:hover{transform:translateY(-2px)}.btn-primary{background:linear-gradient(145deg,var(--brand),var(--brand-dark));color:#fff;box-shadow:0 8px 20px rgba(45,77,117,.22)}.btn-secondary{background:#fff;border-color:var(--line);color:var(--ink)}.btn-ghost{background:transparent;color:var(--brand-dark)}.btn-danger{background:#fff0f2;color:var(--danger);border-color:#f1ced5}.btn-sm{min-height:34px;padding:6px 10px;font-size:.75rem}.btn[disabled]{opacity:.5;pointer-events:none}
.grid { display:grid;gap:18px }.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:20px}.content-grid{grid-template-columns:minmax(0,1.55fr) minmax(290px,.7fr)}.card{min-width:0;background:var(--surface);border:1px solid rgba(218,227,237,.92);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-header{display:flex;align-items:center;gap:12px;padding:19px 20px 14px}.card-header h3{margin:0;font-size:1rem}.card-header p{margin:2px 0 0;color:var(--muted);font-size:.77rem}.card-actions{margin-left:auto}.card-body{padding:0 20px 20px}.stat-card{position:relative;overflow:hidden;display:flex;align-items:center;gap:15px;padding:18px}.stat-card::after{content:"";position:absolute;width:100px;height:100px;border-radius:50%;right:-45px;top:-48px;background:var(--tone,var(--sky));opacity:.44}.stat-icon{width:48px;height:48px;display:grid;place-items:center;flex:0 0 auto;border-radius:16px;background:color-mix(in srgb,var(--tone,var(--sky)) 62%,white);color:var(--brand-dark)}.stat-content small{display:block;color:var(--muted);font-size:.75rem}.stat-value{display:block;font-size:1.7rem;line-height:1.2;font-weight:800;letter-spacing:-.04em}.stat-trend{font-size:.7rem;color:var(--success)}
.badge,.status { display:inline-flex;align-items:center;gap:6px;width:max-content;max-width:100%;padding:4px 9px;border-radius:999px;background:#eef2f7;color:#536175;font-size:.7rem;font-weight:800;white-space:nowrap}.status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status-active{background:#e5f4ed;color:var(--success)}.status-warning{background:#fff3df;color:var(--warning)}.status-danger{background:#fdecef;color:var(--danger)}.status-info{background:#e9f2f8;color:var(--brand)}.status-closed{background:#edf0f4;color:#687487}
.table-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:13px}.search-box{position:relative;flex:1;min-width:210px}.search-box input{padding-left:38px}.search-box svg,.search-box i{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--muted)}.field,.search-box input,select,textarea,input[type="text"],input[type="email"],input[type="password"],input[type="date"],input[type="number"],input[type="search"]{width:100%;min-height:42px;padding:9px 12px;border:1px solid #d9e1eb;border-radius:11px;background:#fff;color:var(--ink);transition:.18s}.field:focus,.search-box input:focus,select:focus,textarea:focus,input:focus{border-color:#7b97b7;box-shadow:0 0 0 4px rgba(73,107,152,.1);outline:0}textarea{min-height:110px;resize:vertical}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.form-group label{display:block;margin:0 0 6px;font-size:.77rem;font-weight:750}.form-group small{display:block;margin-top:5px;color:var(--muted)}.form-group.full{grid-column:1/-1}.required::after{content:" *";color:var(--danger)}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}.data-table{width:100%;border-collapse:separate;border-spacing:0;min-width:760px;background:#fff}.data-table th{position:sticky;top:0;z-index:1;padding:11px 13px;background:#f2f5f9;color:#5d6b7d;font-size:.68rem;text-align:left;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}.data-table td{padding:12px 13px;border-top:1px solid #edf1f5;font-size:.79rem;vertical-align:middle}.data-table tr:hover td{background:#fafcff}.data-table td strong{display:block}.data-table td small{color:var(--muted)}.table-actions{display:flex;gap:5px}.empty-state{padding:48px 18px;text-align:center;color:var(--muted)}.empty-state .empty-icon{width:64px;height:64px;display:grid;place-items:center;margin:0 auto 13px;border-radius:22px;background:#eef3f8;color:var(--brand)}
.timeline{position:relative;display:grid;gap:0;padding-left:6px}.timeline::before{content:"";position:absolute;left:17px;top:13px;bottom:15px;width:2px;background:var(--line)}.timeline-item{position:relative;display:grid;grid-template-columns:24px minmax(0,1fr);gap:12px;padding-bottom:18px}.timeline-dot{width:13px;height:13px;margin:6px 0 0 5px;z-index:1;border:3px solid #fff;border-radius:50%;background:var(--brand);box-shadow:0 0 0 2px var(--sky)}.timeline-content{padding:11px 13px;border-radius:13px;background:#f7f9fc}.timeline-meta{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:.68rem}.timeline-content p{margin:5px 0 0;font-size:.79rem}
.progress{height:8px;overflow:hidden;border-radius:999px;background:#e8edf3}.progress-bar{height:100%;width:var(--progress,0%);border-radius:inherit;background:linear-gradient(90deg,var(--brand),#72a9ad);transition:width .8s var(--ease)}
.dropzone{display:grid;place-items:center;min-height:155px;padding:22px;border:2px dashed #cbd6e2;border-radius:16px;background:#f9fbfd;text-align:center;cursor:pointer;transition:.2s}.dropzone:hover,.dropzone.is-dragging{border-color:var(--brand);background:#f1f6fa}.dropzone input{display:none}.dropzone strong,.dropzone small{display:block}.dropzone small{color:var(--muted)}.file-list{display:grid;gap:8px;margin-top:12px}.file-item{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:11px;background:#fff}.file-item-name{min-width:0;flex:1}.file-item-name strong,.file-item-name small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-item-name small{color:var(--muted)}
.tabs{display:flex;gap:4px;overflow-x:auto;padding:4px;background:#e9eef4;border-radius:13px}.tab{flex:0 0 auto;padding:8px 13px;border:0;border-radius:10px;background:transparent;color:var(--muted);font-weight:700;font-size:.76rem;cursor:pointer}.tab[aria-selected="true"],.tab.is-active{background:#fff;color:var(--brand-dark);box-shadow:0 2px 8px rgba(30,54,80,.09)}[data-tab-panel][hidden]{display:none!important}
.toast-stack{position:fixed;right:20px;bottom:20px;z-index:100;display:grid;gap:9px;width:min(370px,calc(100vw - 32px))}.toast{display:flex;align-items:flex-start;gap:10px;padding:13px 14px;border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:13px;background:#fff;box-shadow:var(--shadow);animation:toast-in .35s var(--ease)}.toast.is-success{border-left-color:var(--success)}.toast.is-error{border-left-color:var(--danger)}.toast button{margin-left:auto;border:0;background:none;cursor:pointer}.toast.is-leaving{animation:toast-out .25s ease forwards}
.modal-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:20px;background:rgba(18,32,49,.48);backdrop-filter:blur(5px);opacity:0;visibility:hidden;transition:.2s}.modal-backdrop.is-open{opacity:1;visibility:visible}.modal{width:min(680px,100%);max-height:min(88vh,820px);overflow:auto;border-radius:22px;background:#fff;box-shadow:var(--shadow);transform:translateY(16px) scale(.985);transition:.25s var(--ease)}.is-open .modal{transform:none}.modal-header,.modal-footer{display:flex;align-items:center;gap:12px;padding:18px 20px}.modal-header{border-bottom:1px solid var(--line)}.modal-header h3{margin:0}.modal-header .icon-btn{margin-left:auto}.modal-body{padding:20px}.modal-footer{justify-content:flex-end;border-top:1px solid var(--line)}body.modal-open{overflow:hidden}

/* Login */
.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(380px,.84fr) minmax(500px,1.35fr);overflow:hidden;background:#f7f8fc}.login-panel{z-index:2;display:grid;align-content:center;padding:clamp(32px,7vw,100px);background:rgba(255,255,255,.94);box-shadow:18px 0 70px rgba(38,58,80,.1)}.login-form{width:min(420px,100%);margin:auto}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:54px}.login-brand .brand-mark{color:#fff;background:linear-gradient(145deg,var(--brand),var(--brand-dark))}.login-form h1{margin:0;font-size:clamp(2rem,4vw,3rem);line-height:1.06;letter-spacing:-.05em}.login-intro{margin:12px 0 30px;color:var(--muted)}.password-wrap{position:relative}.password-wrap input{padding-right:48px}.password-toggle{position:absolute;right:5px;top:5px;width:34px;height:34px;border:0;border-radius:9px;background:transparent;color:var(--muted);cursor:pointer}.login-options{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:13px 0 22px;font-size:.76rem}.check{display:flex;align-items:center;gap:7px}.check input{width:16px;height:16px;accent-color:var(--brand)}.login-submit{width:100%;min-height:49px}.login-aside{position:relative;overflow:hidden;display:grid;place-items:center;isolation:isolate;background:linear-gradient(145deg,#dce9f3,#e7e1f3 50%,#d6ece4)}#login-scene{position:absolute;inset:0;width:100%;height:100%;z-index:-2}.login-aside::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,transparent 45%,rgba(35,58,79,.18))}.login-message{width:min(640px,78%);padding:30px;border:1px solid rgba(255,255,255,.58);border-radius:28px;color:#fff;background:rgba(44,72,98,.22);backdrop-filter:blur(18px);box-shadow:var(--shadow);text-shadow:0 1px 15px rgba(25,47,66,.22)}.login-message h2{margin:0 0 9px;font-size:clamp(1.7rem,3vw,3rem);line-height:1.08;letter-spacing:-.035em}.login-message p{margin:0;max-width:50ch}.login-footer{margin-top:34px;color:var(--muted);font-size:.7rem}

@keyframes toast-in{from{opacity:0;transform:translateX(25px)}}@keyframes toast-out{to{opacity:0;transform:translateX(25px)}}
@keyframes shimmer{to{background-position:-200% 0}}.skeleton{border-radius:8px;color:transparent!important;background:linear-gradient(90deg,#edf1f5 25%,#f8fafc 45%,#edf1f5 65%);background-size:200% 100%;animation:shimmer 1.4s infinite}

@media (max-width:1120px){.stats-grid{grid-template-columns:repeat(2,1fr)}.content-grid{grid-template-columns:1fr}.login-panel{padding:55px}.login-message{width:86%}}
@media (max-width:860px){.app-shell{display:block}.sidebar{position:fixed;left:0;top:0;width:min(var(--sidebar),85vw);transform:translateX(-105%);transition:.28s var(--ease)}.sidebar.is-open{transform:none}.sidebar-scrim{position:fixed;inset:0;z-index:35;background:rgba(22,38,55,.4);opacity:0;visibility:hidden;transition:.2s}.sidebar-scrim.is-open{opacity:1;visibility:visible}.app-main{padding:0 18px 35px}.menu-toggle{display:grid}.topbar{min-height:66px}.login-page{grid-template-columns:1fr}.login-panel{min-height:100vh}.login-aside{display:none}}
@media (max-width:600px){.app-main{padding-inline:13px}.page{padding-top:17px}.page-header{align-items:flex-start;flex-direction:column;margin-bottom:18px}.page-header-actions{margin-left:0;width:100%}.page-header-actions .btn{flex:1}.stats-grid{grid-template-columns:1fr;gap:11px}.card-header,.card-body{padding-left:15px;padding-right:15px}.form-grid{grid-template-columns:1fr}.form-group.full{grid-column:auto}.modal-backdrop{padding:8px}.modal{border-radius:18px}.topbar-title p{display:none}.login-panel{padding:28px 22px}.login-brand{margin-bottom:42px}.table-toolbar>*{width:100%}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.skeleton{animation:none}}
@media print{body{background:#fff;color:#000}.sidebar,.topbar,.page-header-actions,.btn,.table-toolbar,.toast-stack,.modal-backdrop,.no-print{display:none!important}.app-shell{display:block}.app-main{padding:0}.page{max-width:none;padding:0}.card{border:0;box-shadow:none;break-inside:avoid}.table-wrap{overflow:visible;border:0}.data-table{min-width:0}.data-table th{position:static;background:#eee}.data-table th,.data-table td{padding:6px;border-color:#aaa}.badge,.status{border:1px solid #999;color:#000;background:none}}
