:root{--bg: #F1F2EE;--bg-elev: #F7F7F4;--bg-card: #FFFFFF;--sand: #E5E5DF;--ink: #1F2228;--ink-2: #3A3E45;--ink-3: #6B6F77;--ink-4: #9CA0A6;--line: #E2E3DE;--line-2: #EAEBE6;--navy: #15345B;--navy-2: #0E2745;--blue: #BFD7EA;--blue-ink: #1E4D74;--mint: #CBE4D0;--mint-ink: #2E6B45;--sage: #AEBFA8;--sage-ink: #3E5A3E;--lavender: #C9B7E8;--lavender-ink: #4F3E73;--pink: #F4B6C8;--pink-ink: #8B3654;--coral: #F58A76;--coral-ink: #9C3B26;--peach: #F2C2A4;--peach-ink: #7A3F1F;--marigold: #F2C2A4;--marigold-ink: #7A3F1F;--brown: #A9894D;--shadow-sm: 0 1px 2px rgba(34,34,34,.04);--shadow-md: 0 4px 14px rgba(34,34,34,.06);--shadow-lg: 0 10px 30px rgba(34,34,34,.08);--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 20px;--r-pill: 999px;--sans: "Inter", ui-sans-serif, system-ui, -apple-system, sans-serif;--display: "Poppins", "Inter", system-ui, sans-serif;--mono: "JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:inherit}a{color:inherit}.app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{border-right:1px solid var(--line);background:var(--bg-card);padding:22px 14px 16px;display:flex;flex-direction:column;gap:22px;position:sticky;top:0;height:100vh}.main{min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:30;background:#f1f2eed9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:12px 32px;display:flex;align-items:center;gap:14px}.topbar-search{flex:1;max-width:460px;display:flex;align-items:center;gap:8px;padding:9px 14px;background:var(--bg-card);border:1px solid var(--line);border-radius:var(--r-pill);transition:border-color .12s}.topbar-search:focus-within{border-color:var(--navy)}.topbar-search input{border:0;outline:0;background:transparent;flex:1}.topbar-search kbd{font-family:var(--mono);font-size:11px;padding:2px 6px;background:var(--bg);border-radius:4px;color:var(--ink-3)}.icon-btn{position:relative;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:var(--bg-card);border:1px solid var(--line);color:var(--ink-2);transition:background .12s}.icon-btn:hover{background:var(--bg-elev)}.icon-btn .dot-notif{position:absolute;top:6px;right:8px;width:7px;height:7px;background:var(--coral);border-radius:50%;border:2px solid var(--bg-card)}.page-wrap{padding:28px 32px 60px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:28px}.page-eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin:0 0 8px}.page-title{font-family:var(--display);font-weight:600;font-size:30px;letter-spacing:-.015em;margin:0;line-height:1.1;color:var(--ink)}.page-sub{color:var(--ink-3);margin:8px 0 0;max-width:64ch;font-size:14px}.brand{display:flex;align-items:center;gap:11px;padding:0 6px 18px;border-bottom:1px solid var(--line)}.brand-mark{width:36px;height:36px;background:var(--navy);border-radius:12px;display:grid;place-items:center;color:#fff;font-family:var(--display);font-weight:600;font-size:18px;flex:none;letter-spacing:-.02em}.brand-name{font-family:var(--display);font-weight:600;font-size:17px;letter-spacing:-.01em}.brand-name .small-i{font-weight:400;font-style:italic}.brand-sub{font-size:11px;color:var(--ink-3);margin-top:1px;letter-spacing:.02em}.nav-group{display:flex;flex-direction:column;gap:2px}.nav-label{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);padding:0 10px 6px}.nav-item{display:flex;align-items:center;gap:11px;padding:9px 12px;border-radius:10px;color:var(--ink-2);text-decoration:none;font-size:14px;font-weight:500;border:0;background:transparent;width:100%;text-align:left;cursor:pointer;transition:background .12s}.nav-item:hover{background:var(--bg);color:var(--ink)}.nav-item.active{background:var(--navy);color:#fff;box-shadow:var(--shadow-sm)}.nav-count{margin-left:auto;font-size:11px;color:var(--ink-3);background:var(--bg);border-radius:var(--r-pill);padding:2px 8px;font-weight:500;font-variant-numeric:tabular-nums}.nav-item.active .nav-count{background:#ffffff2e;color:#fff}.nav-ico{color:currentColor;opacity:.85;flex:none}.who{margin-top:auto;border-top:1px solid var(--line);padding-top:14px;display:flex;align-items:center;gap:11px}.avatar{width:32px;height:32px;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:600;flex:none}.who-name{font-size:13px;font-weight:500;line-height:1.1}.who-role{font-size:11px;color:var(--ink-3);margin-top:3px}.card{background:var(--bg-card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.row{display:flex;align-items:center;gap:10px}.spacer{flex:1}.muted{color:var(--ink-3)}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.btn{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--bg-card);color:var(--ink);font-size:13px;font-weight:500;line-height:1.2;transition:background .12s,border-color .12s,box-shadow .12s}.btn:hover{background:var(--bg-elev)}.btn.primary{background:var(--navy);border-color:var(--navy);color:#fff}.btn.primary:hover{background:var(--navy-2)}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:var(--bg)}.btn.danger{color:var(--coral-ink);background:var(--bg-card);border-color:var(--line)}.btn.danger:hover{background:#fdece7;border-color:var(--coral)}.btn.sm{padding:5px 11px;font-size:12px}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--r-pill);font-size:12px;font-weight:500;background:var(--bg);color:var(--ink-2);white-space:nowrap;line-height:1.5}.pill .dot{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.7}.pill.blue{background:var(--blue);color:var(--blue-ink)}.pill.mint{background:var(--mint);color:var(--mint-ink)}.pill.sage{background:var(--sage);color:#fff}.pill.lav{background:var(--lavender);color:var(--lavender-ink)}.pill.pink{background:var(--pink);color:var(--pink-ink)}.pill.coral{background:var(--coral);color:#fff}.pill.mari,.pill.peach{background:var(--peach);color:var(--peach-ink)}.pill.navy{background:var(--navy);color:#fff}.pill.cream{background:var(--sand);color:var(--ink-2)}.tbl{width:100%;border-collapse:collapse;font-size:13.5px}.tbl thead th{text-align:left;font-weight:500;color:var(--ink-3);font-size:12px;padding:12px 18px;border-bottom:1px solid var(--line);background:var(--bg-elev);position:sticky;top:0}.tbl thead tr:first-child th:first-child{border-top-left-radius:var(--r-lg)}.tbl thead tr:first-child th:last-child{border-top-right-radius:var(--r-lg)}.tbl tbody td{padding:14px 18px;border-bottom:1px solid var(--line-2);vertical-align:middle}.tbl tbody tr:last-child td{border-bottom:0}.tbl tbody tr{transition:background .12s}.tbl tbody tr:hover{background:var(--bg);cursor:pointer}.tbl .num{font-variant-numeric:tabular-nums}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--line)}.search{flex:1;min-width:200px;display:flex;align-items:center;gap:8px;padding:7px 12px;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-pill)}.search input{border:0;outline:0;background:transparent;flex:1}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--r-pill);background:var(--bg-elev);border:1px solid var(--line);font-size:12.5px;font-weight:500;cursor:pointer;color:var(--ink-2);transition:background .12s,color .12s}.chip:hover{background:var(--bg)}.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}.chip.on .chip-count{color:#ffffffb3}.chip-count{font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}.pipeline{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;width:100%}.pipeline-step{padding:10px 12px;background:var(--bg-elev);border:1px solid var(--line);color:var(--ink-3);border-radius:var(--r-md);font-size:12px;font-weight:500;display:flex;align-items:center;gap:8px;position:relative}.pipeline-step .step-num{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--bg);font-size:11px;color:var(--ink-3);flex:none}.pipeline-step.done{background:var(--mint);border-color:transparent;color:var(--mint-ink)}.pipeline-step.done .step-num{background:#2e6b452e;color:var(--mint-ink)}.pipeline-step.active{background:var(--navy);border-color:var(--navy);color:#fff}.pipeline-step.active .step-num{background:#ffffff38;color:#fff}.pipeline-mini{display:inline-flex;gap:3px;align-items:center}.pipeline-mini .seg{width:16px;height:4px;border-radius:2px;background:var(--line)}.pipeline-mini .seg.done{background:var(--sage)}.pipeline-mini .seg.active{background:var(--navy)}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start}.section-title{font-family:var(--display);font-size:15px;font-weight:600;letter-spacing:-.005em;color:var(--ink);margin:0 0 14px}.kv{display:grid;grid-template-columns:110px 1fr;gap:8px 14px;font-size:13.5px}.kv dt{color:var(--ink-3);padding-top:1px}.kv dd{margin:0;color:var(--ink)}.li-row{display:grid;grid-template-columns:68px 1fr auto auto;gap:16px;padding:16px 20px;border-bottom:1px solid var(--line-2);align-items:center}.li-row:last-child{border-bottom:0}.li-thumb{width:68px;height:84px;border-radius:var(--r-md);display:grid;place-items:center;font-size:10px;font-weight:600;color:#fff;letter-spacing:.06em}.li-thumb.uv{background:linear-gradient(160deg,var(--blue) 0%,#9DBFD9 100%);color:var(--blue-ink)}.li-thumb.eng{background:linear-gradient(160deg,var(--peach) 0%,#D89878 100%);color:var(--peach-ink)}.li-thumb.std{background:linear-gradient(160deg,var(--sand) 0%,#C9C9C2 100%);color:var(--ink-2)}.li-title{font-weight:600;font-size:14px}.li-meta{font-size:12.5px;color:var(--ink-3);margin-top:3px}.li-tags{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.file-tile{border:1px solid var(--line);border-radius:var(--r-md);padding:12px 14px;display:flex;align-items:center;gap:14px;background:var(--bg-elev)}.file-thumb{width:44px;height:44px;background:var(--bg-card);border:1px solid var(--line);border-radius:var(--r-sm);display:grid;place-items:center;font-size:10px;font-weight:600;color:var(--ink-3)}.file-name{font-size:13px;font-weight:600}.file-meta{font-size:12px;color:var(--ink-3);margin-top:2px}.timeline{display:flex;flex-direction:column}.t-item{display:grid;grid-template-columns:22px 1fr;gap:14px;padding-bottom:16px;position:relative}.t-item:not(:last-child):before{content:"";position:absolute;left:10px;top:22px;bottom:-2px;width:2px;background:var(--line);border-radius:2px}.t-dot{width:11px;height:11px;border-radius:50%;background:var(--mint);margin-top:5px;box-shadow:0 0 0 3px var(--bg-card),0 0 0 4px var(--mint);z-index:1}.t-dot.muted{background:var(--bg);box-shadow:0 0 0 3px var(--bg-card),0 0 0 4px var(--line)}.t-title{font-size:13.5px;font-weight:500}.t-meta{font-size:12px;color:var(--ink-3);margin-top:2px}.kpi-card{padding:20px 22px}.kpi-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.kpi-ico{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;flex:none}.kpi-label{font-size:12.5px;color:var(--ink-3);font-weight:500}.kpi-value{font-family:var(--display);font-weight:600;font-size:30px;margin-top:10px;line-height:1.1;letter-spacing:-.02em;color:var(--ink)}.kpi-sub{color:var(--ink-3);font-size:12px;margin-top:6px}.kpi-trend{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:500}.kpi-trend.up{color:var(--mint-ink)}.kpi-trend.dn{color:var(--coral-ink)}.divider{height:1px;background:var(--line);margin:16px 0;border:0}.role-banner{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:var(--r-pill);background:var(--mint);color:var(--mint-ink);font-size:12px;font-weight:500}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--mint-ink);box-shadow:0 0 #2e6b4580;animation:pulse 2s infinite}@keyframes pulse{0%{box-shadow:0 0 #2e6b4580}70%{box-shadow:0 0 0 6px #2e6b4500}to{box-shadow:0 0 #2e6b4500}}.sidebar{transition:width .22s cubic-bezier(.4,0,.2,1),padding .22s}.app.collapsed{grid-template-columns:72px 1fr}.app.collapsed .sidebar{padding:22px 10px 14px;gap:18px}.app.collapsed .brand{padding:0 0 16px;border-bottom:1px solid var(--line);justify-content:center;gap:0}.app.collapsed .brand>div{display:none}.app.collapsed .nav-label{opacity:0;visibility:hidden;padding:0;height:0;overflow:hidden}.app.collapsed .nav-item{justify-content:center;padding:9px}.app.collapsed .nav-item>span:not(.nav-ico){display:none}.app.collapsed .who{justify-content:center}.app.collapsed .who>div,.app.collapsed .who>button{display:none}.collapse-btn{position:absolute;top:32px;left:100%;transform:translate(-50%);width:22px;height:22px;border-radius:50%;background:var(--bg-card);border:1px solid var(--line);color:var(--ink-3);display:grid;place-items:center;cursor:pointer;z-index:40;box-shadow:var(--shadow-sm)}.collapse-btn:hover{background:var(--bg);color:var(--ink)}.sidebar{position:sticky}.sidebar-wrap{position:relative}.login-screen{min-height:100vh;display:grid;place-items:center;padding:40px 20px;background:radial-gradient(60% 50% at 20% 10%,var(--blue) 0%,transparent 60%),radial-gradient(50% 40% at 90% 80%,var(--lavender) 0%,transparent 60%),radial-gradient(50% 40% at 80% 20%,var(--mint) 0%,transparent 60%),var(--bg);background-blend-mode:normal}.login-card{width:100%;max-width:440px;background:var(--bg-card);border-radius:var(--r-xl);padding:36px 36px 32px;box-shadow:var(--shadow-lg);border:1px solid var(--line);position:relative}.login-mark{width:56px;height:56px;border-radius:18px;background:var(--navy);color:#fff;font-family:var(--display);font-weight:700;font-size:26px;display:grid;place-items:center;margin-bottom:24px;box-shadow:0 8px 20px #15345b38}.login-title{font-family:var(--display);font-weight:600;font-size:24px;letter-spacing:-.015em;margin:0}.login-sub{color:var(--ink-3);margin:6px 0 26px;font-size:14px}.field-label{display:block;font-size:12px;font-weight:500;color:var(--ink-2);margin-bottom:8px}.field-input{width:100%;padding:11px 14px;background:var(--bg-card);border:1px solid var(--line);border-radius:var(--r-md);font-size:14px;font-family:var(--sans);transition:border-color .12s,box-shadow .12s;outline:0}.field-input:focus{border-color:var(--navy);box-shadow:0 0 0 3px #15345b14}.field-group{margin-bottom:16px}.field-help{font-size:12px;color:var(--ink-3);margin-top:6px}.login-quick{margin-top:28px;padding-top:24px;border-top:1px dashed var(--line)}.login-quick-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);font-weight:600;margin-bottom:12px}.role-tile{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-card);cursor:pointer;transition:background .12s,border-color .12s;width:100%;text-align:left}.role-tile:hover{background:var(--bg-elev);border-color:var(--navy)}.role-tile-name{font-weight:600;font-size:13.5px}.role-tile-sub{font-size:12px;color:var(--ink-3);margin-top:2px}.login-foot{margin-top:28px;text-align:center;font-size:12px;color:var(--ink-3)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#22222252;display:grid;place-items:center;z-index:100;padding:20px}.pwd-field{border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-card);transition:border-color .12s,box-shadow .12s;overflow:hidden}.pwd-field:focus-within{border-color:var(--navy);box-shadow:0 0 0 3px #15345b14}.pwd-field[data-empty=true]{background:var(--bg-elev)}.pwd-field-row{display:flex;align-items:center;gap:4px;padding:4px 6px 4px 14px}.pwd-field-input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-family:var(--mono);font-size:15px;letter-spacing:.06em;font-feature-settings:"ss01","tnum";padding:11px 0;color:var(--ink)}.pwd-field-input::placeholder{font-family:var(--sans);letter-spacing:0;color:var(--ink-4);font-size:13.5px}.pwd-field-actions{display:flex;align-items:center;gap:2px;flex:none}.pwd-icon-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;width:32px;height:32px;border-radius:8px;display:grid;place-items:center;color:var(--ink-3);cursor:pointer;transition:background .12s,color .12s}.pwd-icon-btn:hover:not(:disabled){background:var(--bg-elev);color:var(--ink)}.pwd-icon-btn:disabled{opacity:.4;cursor:not-allowed}.pwd-field-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px 8px 12px;background:var(--bg-elev);border-top:1px solid var(--line-2)}.pwd-field[data-empty=true] .pwd-field-foot{background:transparent;border-top-color:transparent;padding-top:4px}.pwd-generate{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--bg-card);border:1px solid var(--line);border-radius:var(--r-pill);padding:6px 14px 6px 10px;font-size:12.5px;font-weight:500;color:var(--ink-2);display:inline-flex;align-items:center;gap:7px;cursor:pointer;transition:background .12s,color .12s,transform .12s,border-color .12s;font-family:inherit}.pwd-generate:hover{background:var(--navy);color:#fff;border-color:var(--navy)}.pwd-generate[data-pulse="1"] svg{animation:pwd-spin .6s cubic-bezier(.4,0,.2,1)}@keyframes pwd-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pwd-strength{display:inline-flex;align-items:center;gap:8px}.pwd-strength-bar{display:inline-block;width:64px;height:4px;border-radius:2px;background:var(--line);position:relative;overflow:hidden}.pwd-strength-bar:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:2px;background:var(--ink-3);transition:width .2s,background .2s;width:0%}.pwd-strength-bar.s0:after{width:8%;background:var(--coral)}.pwd-strength-bar.s1:after{width:25%;background:var(--coral)}.pwd-strength-bar.s2:after{width:50%;background:var(--peach)}.pwd-strength-bar.s3:after{width:75%;background:var(--sage)}.pwd-strength-bar.s4:after{width:100%;background:var(--mint-ink)}.pwd-strength-label{font-size:11.5px;color:var(--ink-3);font-weight:500;letter-spacing:.02em}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:24px}.tabs .tab{position:relative;display:inline-flex;align-items:center;gap:8px;padding:12px 16px;background:transparent;border:0;color:var(--ink-3);font-size:13.5px;font-weight:500;cursor:pointer;text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .12s,border-color .12s}.tabs .tab:hover{color:var(--ink)}.tabs .tab.active{color:var(--ink);border-bottom-color:var(--navy)}.tabs .tab-count{font-size:11px;background:var(--bg);border-radius:var(--r-pill);padding:1px 7px;color:var(--ink-3);font-weight:500}.tabs .tab.active .tab-count{background:var(--blue);color:var(--blue-ink)}.modal{width:100%;max-width:460px;padding:28px;background:var(--bg-card);border-radius:var(--r-xl);box-shadow:var(--shadow-lg)}.appbar{position:sticky;top:0;z-index:30;background:#f1f2eed9;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:14px 32px;display:flex;align-items:center;gap:28px}.appbar-brand{display:flex;align-items:center;text-decoration:none;color:inherit;flex:none}.appbar-nav{display:flex;align-items:center;gap:4px;margin-left:8px}.appbar-link{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:var(--r-pill);color:var(--ink-2);text-decoration:none;font-size:13.5px;font-weight:500;transition:background .12s,color .12s}.appbar-link:hover{background:var(--bg);color:var(--ink)}.appbar-link.active{background:var(--navy);color:#fff}.appbar-right{margin-left:auto;display:flex;align-items:center;gap:12px;flex:none}.appbar-user{display:flex;align-items:center;gap:10px;padding:4px 4px 4px 12px;border-left:1px solid var(--line);margin-left:4px}.appbar-user-meta{display:flex;flex-direction:column;min-width:0;max-width:140px}.appbar-user-meta .who-name{font-size:13px;font-weight:500;line-height:1.15;overflow:hidden;text-overflow:ellipsis}.appbar-user-meta .who-role{font-size:11px;color:var(--ink-3)}.page-shell{padding:28px 32px 60px;max-width:1480px;margin:0 auto}@media (max-width: 880px){.appbar{padding:12px 18px;gap:14px;flex-wrap:wrap}.appbar-right .topbar-search,.appbar-user-meta{display:none}.page-shell{padding:20px 18px 48px}}.toast-stack{position:fixed;bottom:20px;right:20px;z-index:200;display:flex;flex-direction:column;gap:10px;max-width:380px;pointer-events:none}.toast{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;background:var(--bg-card);border:1px solid var(--line);border-left-width:3px;border-radius:var(--r-md);box-shadow:var(--shadow-md);pointer-events:auto;font-size:13px;animation:mtg-toast-in .22s cubic-bezier(.16,1,.3,1)}.toast.success{border-left-color:var(--mint-ink)}.toast.error{border-left-color:var(--coral)}.toast.info{border-left-color:var(--navy)}.toast-ico{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;flex:none;margin-top:1px}.toast.success .toast-ico{background:var(--mint);color:var(--mint-ink)}.toast.error .toast-ico{background:var(--coral);color:#fff}.toast.info .toast-ico{background:var(--blue);color:var(--blue-ink)}.toast-title{font-weight:600;color:var(--ink);line-height:1.3}.toast-msg{color:var(--ink-3);font-size:12.5px;margin-top:3px;line-height:1.4}.toast-close{background:transparent;border:0;cursor:pointer;width:22px;height:22px;border-radius:6px;display:grid;place-items:center;color:var(--ink-3);flex:none}.toast-close:hover{background:var(--bg);color:var(--ink)}@keyframes mtg-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes mtg-spin{to{transform:rotate(360deg)}}.page-loader{display:grid;place-items:center;min-height:40vh;padding:40px 20px}.page-loader-card{display:flex;flex-direction:column;align-items:center;gap:18px}.page-loader-mark{position:relative;width:64px;height:64px;border-radius:20px;background:var(--navy);display:grid;place-items:center;color:#fff;box-shadow:0 12px 32px #15345b38}.page-loader-ring{position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:24px;border:2px solid var(--line);border-top-color:var(--navy);animation:mtg-spin .9s linear infinite}.page-loader-label{font-size:13.5px;color:var(--ink-3);font-weight:500}.code-block{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-md);font-family:var(--mono);font-size:12.5px;color:var(--ink-2);word-break:break-all;line-height:1.4}.code-block .copy-btn{background:var(--bg-card);border:1px solid var(--line);border-radius:6px;padding:4px 8px;font-size:11.5px;cursor:pointer;flex:none;display:inline-flex;align-items:center;gap:5px;font-family:var(--sans)}.code-block .copy-btn:hover{background:var(--bg-elev)}.menu-pop{position:absolute;z-index:50;background:var(--bg-card);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-md);padding:6px;min-width:200px}.menu-pop button{width:100%;text-align:left;background:transparent;border:0;padding:8px 12px;border-radius:var(--r-sm);font-size:13px;color:var(--ink-2);display:flex;align-items:center;gap:10px;cursor:pointer;font-family:inherit}.menu-pop button:hover{background:var(--bg-elev);color:var(--ink)}.menu-pop button.danger{color:var(--coral-ink)}.menu-pop button.danger:hover{background:var(--coral-soft, #FBD9CF)}.menu-pop .menu-divider{height:1px;background:var(--line-2);margin:4px 0}.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-scroll>.tbl,.table-scroll>table{min-width:720px}.grid-kpi-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.grid-kpi-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:24px}.grid-2col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.grid-side{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:22px;align-items:start}.mobile-menu-btn{display:none;width:36px;height:36px;place-items:center;border-radius:10px;background:var(--bg-card);border:1px solid var(--line);color:var(--ink-2);cursor:pointer;flex:none}.mobile-menu-btn:hover{background:var(--bg-elev)}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#22222252;z-index:80;animation:mtg-fade-in .18s ease}.sidebar-backdrop.show{display:block}@keyframes mtg-fade-in{0%{opacity:0}to{opacity:1}}@media (max-width: 1280px){.topbar{padding:12px 24px}.page-wrap{padding:24px 24px 56px}.grid-kpi-4{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-grid{grid-template-columns:minmax(0,1fr) 300px}.grid-side{grid-template-columns:minmax(0,1fr) 320px}.appbar-user-meta{max-width:110px}}@media (max-width: 1024px){.app{grid-template-columns:72px 1fr}.app .sidebar{padding:22px 10px 14px;gap:18px}.app .brand{padding:0 0 16px;justify-content:center;gap:0}.app .brand>div{display:none}.app .nav-label{opacity:0;visibility:hidden;padding:0;height:0;overflow:hidden}.app .nav-item{justify-content:center;padding:9px}.app .nav-item>span:not(.nav-ico){display:none}.app .nav-count{display:none}.app .who{justify-content:center}.app .who>div,.app .who>button:not(.icon-btn){display:none}.collapse-btn{display:none}.detail-grid,.grid-side{grid-template-columns:1fr}.grid-kpi-4,.grid-kpi-3{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{padding:10px 20px;gap:10px}.topbar-search{max-width:none}.page-wrap{padding:20px 20px 48px}.page-head{flex-wrap:wrap;align-items:flex-start;gap:16px;margin-bottom:22px}.page-title{font-size:26px}}@media (max-width: 768px){.app{grid-template-columns:1fr}.sidebar-wrap{position:fixed;top:0;left:0;bottom:0;z-index:90;transform:translate(-100%);transition:transform .22s cubic-bezier(.4,0,.2,1);pointer-events:none}.sidebar-wrap.mobile-open{transform:translate(0);pointer-events:auto}.app .sidebar{width:280px;height:100vh;padding:22px 14px 16px;gap:22px;position:relative;box-shadow:var(--shadow-lg)}.app .brand{padding:0 6px 18px;justify-content:flex-start;gap:11px}.app .brand>div{display:block}.app .nav-label{opacity:1;visibility:visible;padding:0 10px 6px;height:auto;overflow:visible}.app .nav-item{justify-content:flex-start;padding:9px 12px}.app .nav-item>span:not(.nav-ico){display:inline}.app .nav-count{display:inline-flex}.app .who{justify-content:flex-start}.app .who>div{display:block}.app .who>button{display:grid}.mobile-menu-btn{display:grid}.topbar{padding:10px 14px;gap:8px}.topbar-search{padding:7px 12px}.topbar-search kbd{display:none}.page-wrap{padding:16px 14px 40px}.page-shell{padding:18px 14px 40px}.grid-kpi-4,.grid-kpi-3,.grid-2col{grid-template-columns:1fr;gap:12px}.page-title{font-size:22px}.page-sub{font-size:13px}.page-head{gap:12px;margin-bottom:18px}.pipeline{grid-template-columns:none;display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:6px;padding-bottom:4px}.pipeline-step{flex:0 0 auto;min-width:140px}.kv{grid-template-columns:1fr;gap:2px 0}.kv dt{padding-top:8px;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.kv dt:first-of-type{padding-top:0}.li-row{grid-template-columns:56px 1fr;grid-template-areas:"thumb body" "actions actions";padding:14px 16px;gap:12px}.li-row>:nth-child(1){grid-area:thumb}.li-row>:nth-child(2){grid-area:body;min-width:0}.li-row>:nth-child(3),.li-row>:nth-child(4){grid-area:actions;justify-self:start}.li-thumb{width:56px;height:70px}.modal-backdrop{padding:12px;align-items:flex-end}.modal{max-width:100%;padding:22px 20px;border-radius:var(--r-lg)}.tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap}.tabs .tab{flex:0 0 auto}.toolbar{padding:12px 14px;gap:8px}.search{min-width:0}.login-card{padding:28px 22px 26px}.login-title{font-size:22px}.appbar{padding:10px 14px;gap:8px;flex-wrap:wrap}.appbar-right{gap:8px}.appbar-user{padding-left:8px}.appbar-user-meta{display:none}.toast-stack{left:12px;right:12px;max-width:none;bottom:12px}}@media (max-width: 480px){.topbar-search{padding:7px 10px}.page-title{font-size:20px}.page-eyebrow{font-size:10px}.btn{padding:8px 12px;font-size:12.5px}.btn.sm{padding:5px 9px;font-size:11.5px}.toolbar{padding:10px 12px}.login-mark{width:48px;height:48px;font-size:22px;border-radius:14px;margin-bottom:18px}.kpi-card{padding:16px 18px}.kpi-value{font-size:26px}}
