:root,:root[data-theme=light]{background-color:#f1f4f7;--bg: #f1f4f7;--surface: #ffffff;--surface-2: #f7f9fb;--surface-3: #eef2f5;--chrome: #171c22;--chrome-2: #10151a;--chrome-fg: #a7b2bd;--chrome-fg-hover: #ffffff;--chrome-line: rgba(255, 255, 255, .07);--text: #121920;--text-muted: #5b6774;--text-faint: #8b96a2;--line: #e2e7ec;--line-strong: #cfd7df;--accent: #0b8080;--accent-2: #075f6a;--accent-soft: #e2f3f3;--accent-ring: rgba(11, 128, 128, .22);--ok: #1f8b4d;--ok-soft: #e6f6ec;--bad: #c93a34;--bad-soft: #fdecea;--warn: #92650f;--warn-soft: #fdf3de;--info-soft: #e8f3f8;--chrome-active: rgba(31, 179, 179, .24);--chrome-accent: #4fd3cf;--chrome-faint: #7f8b97;--shadow-sm: 0 1px 2px rgba(16, 24, 33, .06);--shadow: 0 1px 3px rgba(16, 24, 33, .07), 0 6px 16px rgba(16, 24, 33, .05);--shadow-lg: 0 10px 30px rgba(16, 24, 33, .14);--radius: 12px;--radius-sm: 8px;--rail-w: 244px;--rail-w-min: 68px;--topbar-h: 64px;--ease: cubic-bezier(.4, 0, .2, 1);--font: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}:root[data-theme=dark]{background-color:#0d1114;--bg: #0d1114;--surface: #161c21;--surface-2: #1b2228;--surface-3: #212a31;--chrome: #0a0e11;--chrome-2: #06090b;--chrome-fg: #8d99a4;--chrome-fg-hover: #ffffff;--chrome-line: rgba(255, 255, 255, .06);--text: #e4eaef;--text-muted: #8996a3;--text-faint: #6b7885;--line: #232c34;--line-strong: #303b45;--accent: #1fb3b3;--accent-2: #4fd3cf;--accent-soft: rgba(31, 179, 179, .14);--accent-ring: rgba(31, 179, 179, .3);--ok: #4ec27c;--ok-soft: rgba(78, 194, 124, .14);--bad: #f0675f;--bad-soft: rgba(240, 103, 95, .14);--warn: #e0a63c;--warn-soft: rgba(224, 166, 60, .14);--info-soft: rgba(42, 169, 201, .12);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow: 0 1px 3px rgba(0, 0, 0, .45), 0 8px 22px rgba(0, 0, 0, .35);--shadow-lg: 0 14px 38px rgba(0, 0, 0, .6)}@media(prefers-color-scheme:dark){:root:not([data-theme]){background-color:#0d1114;--bg: #0d1114;--surface: #161c21;--surface-2: #1b2228;--surface-3: #212a31;--chrome: #0a0e11;--chrome-2: #06090b;--chrome-fg: #8d99a4;--chrome-line: rgba(255,255,255,.06);--text: #e4eaef;--text-muted: #8996a3;--text-faint: #6b7885;--line: #232c34;--line-strong: #303b45;--accent: #1fb3b3;--accent-2: #4fd3cf;--accent-soft: rgba(31,179,179,.14);--accent-ring: rgba(31,179,179,.3);--ok: #4ec27c;--ok-soft: rgba(78,194,124,.14);--bad: #f0675f;--bad-soft: rgba(240,103,95,.14);--warn: #e0a63c;--warn-soft: rgba(224,166,60,.14);--info-soft: rgba(42,169,201,.12);--shadow-sm: 0 1px 2px rgba(0,0,0,.4);--shadow: 0 1px 3px rgba(0,0,0,.45), 0 8px 22px rgba(0,0,0,.35);--shadow-lg: 0 14px 38px rgba(0,0,0,.6)}}*{box-sizing:border-box}html,body,#root{height:100%}html{background:var(--bg)}body{margin:0;font-family:var(--font);color:var(--text);background:transparent;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-2)}::selection{background:var(--accent-ring)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.app{min-height:100%;display:flex;flex-direction:column}.imp-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:linear-gradient(90deg,#8a5d0c,#a97514);color:#fff;padding:9px 18px;font-size:13px;font-weight:600;position:relative;z-index:60}.imp-bar i{font-size:15px}.imp-bar__who{font-weight:800}.imp-bar__note{font-weight:400;opacity:.9}.imp-bar__btn{margin-left:auto;background:#fffffff2;color:#7a5410;border:0;border-radius:var(--radius-sm);padding:6px 14px;font-size:12.5px;font-weight:700;cursor:pointer;font-family:inherit;transition:transform .15s var(--ease),background .15s var(--ease)}.imp-bar__btn:hover{background:#fff;transform:translateY(-1px)}.imp-bar__btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.topbar{height:var(--topbar-h);background:var(--chrome);border-bottom:1px solid var(--chrome-line);color:var(--chrome-fg);display:flex;align-items:stretch;position:sticky;top:0;z-index:40}.brand{display:flex;align-items:center;gap:11px;padding:0 18px;flex:0 0 auto;color:#fff}.brand:hover{color:#fff}.brand__name{font-size:17px;font-weight:650;letter-spacing:-.01em}.topnav{display:flex;align-items:center;gap:2px;padding:0 6px}.topnav__item{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:var(--radius-sm);color:var(--chrome-fg);font-size:13.5px;font-weight:550;border:0;background:none;cursor:pointer;font-family:inherit;position:relative;white-space:nowrap;transition:background .16s var(--ease),color .16s var(--ease)}.topnav__item:hover{color:var(--chrome-fg-hover);background:#ffffff12}.topnav__icon i{font-size:15px;color:currentColor}.topnav__item.is-active{color:#fff;background:#ffffff1a}.topnav__item.is-active:after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:2px;border-radius:2px 2px 0 0;background:var(--accent)}.topbar__utils{margin-left:auto;display:flex;align-items:center;gap:2px;padding-right:12px}.util{background:none;border:0;color:var(--chrome-fg);cursor:pointer;display:inline-flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--radius-sm);position:relative;font-family:inherit;font-size:13px;transition:background .16s var(--ease),color .16s var(--ease)}.util:hover{color:var(--chrome-fg-hover);background:#ffffff14}.util i{font-size:16px}.util__name{color:#d6dde4;font-weight:600}.util--user{cursor:default}.util--user:hover{background:none}.util__count{position:absolute;top:2px;right:2px;background:var(--bad);color:#fff;font-size:10px;font-weight:800;line-height:1;padding:3px 5px;border-radius:999px;min-width:16px;text-align:center}.layout{display:flex;flex:1 1 auto;min-height:0}.sidebar{width:var(--rail-w);flex:0 0 var(--rail-w);background:var(--chrome-2);border-right:1px solid var(--chrome-line);color:var(--chrome-fg);display:flex;flex-direction:column;position:sticky;top:var(--topbar-h);height:calc(100vh - var(--topbar-h));overflow-x:hidden;overflow-y:auto;transition:width .2s var(--ease),flex-basis .2s var(--ease);scrollbar-width:thin;scrollbar-color:#39434c var(--chrome-2)}.sidebar::-webkit-scrollbar{width:8px}.sidebar::-webkit-scrollbar-track{background:var(--chrome-2)}.sidebar::-webkit-scrollbar-thumb{background:#39434c;border-radius:4px}.sidebar__title{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--chrome-faint);padding:18px 18px 2px;white-space:nowrap}.sidebar__sub{font-size:12.5px;color:var(--chrome-fg);padding:0 18px 12px;white-space:nowrap}.sidenav{padding:6px 10px 12px;display:flex;flex-direction:column;gap:2px}.sidenav__heading{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--chrome-faint);padding:14px 8px 6px;white-space:nowrap}.sidenav__item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;border-radius:var(--radius-sm);color:var(--chrome-fg);font-size:13.5px;font-weight:500;background:none;border:0;width:100%;font-family:inherit;text-align:left;cursor:pointer;white-space:nowrap;position:relative;transition:background .16s var(--ease),color .16s var(--ease)}.sidenav__item:hover{background:#ffffff12;color:#fff}.sidenav__item.is-active{background:var(--chrome-active);color:#fff;box-shadow:inset 3px 0 0 0 var(--chrome-accent)}.sidenav__item.is-active .sidenav__ico{color:var(--chrome-accent)}.sidenav__main{display:flex;align-items:center;gap:12px;min-width:0}.sidenav__ico{width:18px;text-align:center;font-size:14px;flex:0 0 auto;color:var(--text-faint);transition:color .16s var(--ease)}.sidenav__item:hover .sidenav__ico{color:#fff}.sidenav__count{background:#ffffff24;color:#fff;font-size:11px;font-weight:700;border-radius:999px;padding:2px 8px}.sidebar__collapse{margin-top:auto;display:flex;align-items:center;gap:12px;padding:12px 18px;border:0;border-top:1px solid var(--chrome-line);background:none;color:var(--chrome-faint);font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer;white-space:nowrap;transition:color .16s var(--ease),background .16s var(--ease)}.sidebar__collapse:hover{color:#fff;background:#ffffff0d}.sidebar__collapse i{width:18px;text-align:center;font-size:13px}.layout--collapsed .sidebar{width:var(--rail-w-min);flex-basis:var(--rail-w-min)}.layout--collapsed .sidebar__title,.layout--collapsed .sidebar__sub,.layout--collapsed .sidenav__heading,.layout--collapsed .sidenav__item>.sidenav__main>span:not(.sidenav__ico),.layout--collapsed .sidenav__count,.layout--collapsed .sidebar__collapse span{display:none}.layout--collapsed .sidenav{padding:10px 10px 12px}.layout--collapsed .sidenav__item{justify-content:center;padding:11px 0}.layout--collapsed .sidenav__main{gap:0}.layout--collapsed .sidebar__collapse{justify-content:center;padding:12px 0}.layout--collapsed .sidenav__item:after{content:attr(data-label);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px 11px;font-size:12.5px;font-weight:600;box-shadow:var(--shadow);white-space:nowrap;opacity:0;pointer-events:none;z-index:50;transition:opacity .14s var(--ease)}.layout--collapsed .sidenav__item:hover:after{opacity:1}.content{flex:1 1 auto;min-width:0}.content__head{background:var(--surface);border-bottom:1px solid var(--line);padding:20px 30px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.content__head h1{margin:0;font-size:21px;font-weight:650;letter-spacing:-.015em;color:var(--text)}.content__head p{margin:5px 0 0;color:var(--text-muted);font-size:13.5px}.content__body{padding:26px 30px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:22px 24px;margin-bottom:18px;position:relative;overflow:hidden;transition:box-shadow .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease);animation:reveal .4s var(--ease) both}.card:before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}.card:hover{box-shadow:var(--shadow);border-color:var(--line-strong);transform:translateY(-2px)}.card:hover:before{transform:scaleX(1)}.card h2{margin:0 0 8px;font-size:17px;font-weight:650;letter-spacing:-.01em}.card p{color:var(--text-muted);line-height:1.6;margin:8px 0}.card-h{margin:0 0 14px;font-size:12px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--text-faint)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-bottom:22px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:18px 20px;transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s var(--ease)}.stat:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--accent)}.stat__num{font-size:27px;font-weight:700;color:var(--accent-2);line-height:1.1;letter-spacing:-.02em}.stat__label{font-size:12.5px;color:var(--text-muted);margin-top:6px}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto;background:var(--surface);box-shadow:var(--shadow-sm)}.status-table{width:100%;border-collapse:collapse}.status-table th,.status-table td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--line);font-size:13.5px}.status-table th{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);font-weight:700;background:var(--surface-2);position:sticky;top:0}.status-table tbody tr{transition:background .14s var(--ease)}.status-table tbody tr:last-child td{border-bottom:0}.status-table tbody tr.is-clickable{cursor:pointer}.status-table tbody tr:hover{background:var(--surface-2)}.status-table tbody tr.is-clickable:hover{background:var(--accent-soft)}.badge,.pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:700;white-space:nowrap}.badge--green{background:var(--ok-soft);color:var(--ok)}.badge--gray{background:var(--surface-3);color:var(--text-muted)}.badge--amber{background:var(--warn-soft);color:var(--warn)}.badge--teal{background:var(--accent-soft);color:var(--accent-2)}.badge--red{background:var(--bad-soft);color:var(--bad)}.pill--ok{background:var(--ok-soft);color:var(--ok)}.pill--bad{background:var(--bad-soft);color:var(--bad)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 16px;border-radius:var(--radius-sm);border:1px solid transparent;font-size:13.5px;font-weight:600;cursor:pointer;font-family:inherit;transition:background .16s var(--ease),border-color .16s var(--ease),transform .16s var(--ease),box-shadow .16s var(--ease)}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--accent);color:#fff}.btn--primary:hover{background:var(--accent-2);color:#fff;transform:translateY(-1px);box-shadow:0 4px 12px var(--accent-ring)}.btn--ghost{background:var(--surface);border-color:var(--line-strong);color:var(--text)}.btn--ghost:hover{background:var(--surface-2);border-color:var(--accent);color:var(--accent-2)}.btn--danger{background:var(--bad);color:#fff}.btn--danger:hover{filter:brightness(1.08);transform:translateY(-1px)}.btn--sm{padding:6px 11px;font-size:12.5px}.btn--block{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.field{margin-bottom:15px}.field label{display:block;font-size:12.5px;font-weight:600;color:var(--text);margin-bottom:6px}.field input,.field select,.field textarea{width:100%;padding:9px 12px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);font-size:13.5px;font-family:inherit;color:var(--text);background:var(--surface);outline:none;transition:border-color .16s var(--ease),box-shadow .16s var(--ease)}.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--text-faint)}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.field input::placeholder,.field textarea::placeholder{color:var(--text-faint)}.field__hint{font-size:12px;color:var(--text-muted);margin-top:5px;line-height:1.5}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.notice{border-radius:var(--radius);padding:14px 16px;margin-bottom:16px;font-size:13px;line-height:1.6;border:1px solid transparent;border-left-width:3px}.notice--info{background:var(--info-soft);border-color:var(--accent);color:var(--text)}.notice--warn{background:var(--warn-soft);border-color:var(--warn);color:var(--text)}.notice--error{background:var(--bad-soft);border-color:var(--bad);color:var(--text)}.notice--ok{background:var(--ok-soft);border-color:var(--ok);color:var(--text)}.notice strong{font-weight:700}.page-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:12px;flex-wrap:wrap}.muted{color:var(--text-muted)}.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px}.empty{text-align:center;padding:52px 20px;color:var(--text-muted)}.empty i{font-size:32px;color:var(--text-faint);display:block;margin-bottom:14px;opacity:.6}.row{display:flex;align-items:center;gap:10px}.row--wrap{flex-wrap:wrap}.spacer{flex:1 1 auto}.spinner{display:inline-block;width:15px;height:15px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .65s linear infinite;opacity:.8}@keyframes spin{to{transform:rotate(360deg)}}.pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;flex-wrap:wrap}.pager__info{color:var(--text-muted);font-size:13px}.pager__nav{display:flex;align-items:center;gap:4px}.pager__page{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 8px;border-radius:var(--radius-sm);font-size:13.5px;font-weight:600;color:var(--text-muted);border:1px solid var(--line);background:var(--surface);transition:all .16s var(--ease)}.pager__page:hover{color:var(--accent-2);border-color:var(--accent)}.pager__page.is-active{background:var(--accent);color:#fff;border-color:var(--accent)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--chrome);padding:20px;background-image:radial-gradient(circle at 50% 0%,rgba(31,179,179,.13),transparent 55%)}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg);padding:34px;width:100%;max-width:400px}.login-card h1{margin:0 0 4px;font-size:22px;font-weight:650;display:flex;align-items:center;gap:12px;letter-spacing:-.015em}.login-card .muted{margin-bottom:22px;font-size:13px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#080c1099;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;animation:fade .16s var(--ease)}@keyframes fade{0%{opacity:0}}.modal{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-lg);width:100%;max-width:540px;max-height:90vh;overflow-y:auto;animation:rise .18s var(--ease)}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}.modal__head{padding:18px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.modal__head h3{margin:0;font-size:16px;font-weight:650}.modal__body{padding:20px 22px}.modal__foot{padding:14px 22px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:10px;background:var(--surface-2);border-radius:0 0 14px 14px}.modal__close{background:none;border:0;font-size:20px;color:var(--text-muted);cursor:pointer;line-height:1;padding:2px 6px;border-radius:6px;transition:background .14s var(--ease),color .14s var(--ease)}.modal__close:hover{background:var(--surface-3);color:var(--text)}.timeline{list-style:none;margin:0;padding:0}.timeline li{position:relative;padding:0 0 20px 28px;border-left:2px solid var(--line)}.timeline li:last-child{border-left-color:transparent;padding-bottom:0}.timeline li:before{content:"";position:absolute;left:-7px;top:2px;width:12px;height:12px;border-radius:50%;background:var(--surface);border:2px solid var(--line-strong)}.timeline li.is-done:before{background:var(--ok);border-color:var(--ok)}.timeline li.is-current:before{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-ring)}.timeline__label{font-size:13.5px;font-weight:600}.timeline__meta{font-size:12.5px;color:var(--text-muted);margin-top:2px}@keyframes reveal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.content__head{animation:reveal .3s var(--ease) both}.content__body{animation:reveal .34s var(--ease) .04s both}.stat-grid .stat{animation:reveal .38s var(--ease) both}.stat-grid .stat:nth-child(1){animation-delay:.02s}.stat-grid .stat:nth-child(2){animation-delay:.06s}.stat-grid .stat:nth-child(3){animation-delay:.1s}.stat-grid .stat:nth-child(4){animation-delay:.14s}.stat-grid .stat:nth-child(5){animation-delay:.18s}.stat-grid .stat:nth-child(6){animation-delay:.22s}.stat-grid .stat:nth-child(7){animation-delay:.26s}.stat-grid .stat:nth-child(8){animation-delay:.3s}.table-wrap{animation:reveal .34s var(--ease) both}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--surface-2) 25%,var(--surface-3) 50%,var(--surface-2) 75%);background-size:800px 100%;animation:shimmer 1.4s linear infinite;min-height:14px}.skeleton--line{height:13px;margin:8px 0}.skeleton--title{height:22px;width:40%;margin-bottom:14px}.status-table tbody tr.is-clickable{position:relative}.status-table tbody tr.is-clickable td:first-child{box-shadow:inset 0 0 0 0 var(--accent);transition:box-shadow .16s var(--ease)}.status-table tbody tr.is-clickable:hover td:first-child{box-shadow:inset 3px 0 0 0 var(--accent)}.sidenav__item{transform:translate(0)}.sidenav__item:hover{transform:translate(2px)}.layout--collapsed .sidenav__item:hover{transform:none}.badge,.pill{transition:transform .16s var(--ease)}a.badge:hover,button .badge:hover{transform:translateY(-1px)}@media(max-width:900px){.sidebar{display:none}.content__body{padding:18px 16px}.content__head{padding:16px}.topnav__item span:not(.topnav__icon){display:none}}
