:root{color-scheme:light;--font: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--brand: #66cc33;--brand-600: #4aa21f;--brand-700: #3a8118;--brand-100: #dcf3cc;--brand-50: #f0faea;--brand-ink: #0b1a05;--bg: #f5f7f4;--surface: #ffffff;--surface-2: #f2f5f1;--surface-3: #e9eee8;--border: #e3e8e2;--border-strong: #cfd6ce;--text: #0e1511;--text-2: #3d4841;--muted: #647067;--danger: #c4281c;--danger-50: #fdf1f0;--warn-bg: #fef6dc;--warn-fg: #7a4a06;--info: #2457c5;--side-bg: #0a0f0b;--side-bg-2: #131a14;--side-border: #1d2620;--side-text: #d9e0da;--side-muted: #7d897f;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-md: .9375rem;--fs-lg: 1.0625rem;--fs-xl: 1.375rem;--fs-2xl: 1.75rem;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-pill: 999px;--shadow-sm: 0 1px 2px rgba(14, 21, 17, .06);--shadow-md: 0 8px 24px -8px rgba(14, 21, 17, .18);--shadow-lg: 0 24px 60px -20px rgba(14, 21, 17, .35);--ring: 0 0 0 3px color-mix(in srgb, var(--brand) 45%, transparent);--sidebar-w: 256px;--sidebar-w-collapsed: 72px;--topbar-h: 64px;--ease: cubic-bezier(.2, .7, .2, 1)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--fs-md);line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{margin:0;line-height:1.2;letter-spacing:-.015em}p{margin:0}a{color:inherit;text-decoration:none}img,svg{display:block;max-width:100%}ul{margin:0;padding:0}[hidden]{display:none!important}::selection{background:var(--brand-100)}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--r-sm)}button{font:inherit;cursor:pointer}:where(.btn,button:not(.reset)){display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);height:40px;padding:0 var(--s-4);border:1px solid transparent;border-radius:var(--r-sm);background:var(--brand);color:var(--brand-ink);font-weight:600;font-size:var(--fs-md);white-space:nowrap;transition:background .15s var(--ease),box-shadow .15s var(--ease),transform .05s}:where(button:not(.reset):hover:not(:disabled)){background:var(--brand-600);color:#fff}:where(button:not(.reset):active:not(:disabled)){transform:translateY(1px)}button:disabled{opacity:.55;cursor:not-allowed}button.ghost{background:var(--surface);color:var(--text);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}button.ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}button.danger-solid{background:var(--danger);color:#fff}button.danger-solid:hover:not(:disabled){background:#a21f15}button.icon{width:36px;height:36px;padding:0;font-size:1.05rem}button.sm{height:32px;padding:0 var(--s-3);font-size:var(--fs-sm)}input,select,textarea{font:inherit;color:var(--text);width:100%;height:40px;padding:0 var(--s-3);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);transition:border-color .15s,box-shadow .15s}input::placeholder{color:#8a948c}input:hover,select:hover{border-color:#b9c2b8}input:focus-visible,select:focus-visible{border-color:var(--brand-600);box-shadow:var(--ring)}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:36px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23647067' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}input[type=checkbox]{width:16px;height:16px;padding:0;accent-color:var(--brand-600);cursor:pointer}input[type=date]{padding-right:var(--s-2)}.muted{color:var(--muted)}.small{font-size:var(--fs-sm)}.grow{flex:1;min-width:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.error-text{color:var(--danger);font-size:var(--fs-sm);display:flex;gap:var(--s-2);align-items:center}.error{color:var(--danger);font-size:var(--fs-sm)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}button svg,.btn svg{flex:none}.shell{display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100vh;transition:grid-template-columns .22s var(--ease)}.shell.collapsed{grid-template-columns:var(--sidebar-w-collapsed) minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:2px;padding:var(--s-4) var(--s-3);background:var(--side-bg);color:var(--side-text);overflow:hidden auto;z-index:30}.brand{padding:var(--s-1) var(--s-2) var(--s-5);min-height:56px;display:flex;align-items:center}.brand img{height:auto}.brand-full{width:132px}.brand-icon{width:30px;display:none;margin:0 auto}.collapsed .brand-full{display:none}.collapsed .brand-icon{display:block}.nav-section{padding:var(--s-5) var(--s-3) var(--s-2);font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--side-muted);white-space:nowrap}.collapsed .nav-section{visibility:hidden;height:var(--s-4);padding:0}.navitem{position:relative;display:flex;align-items:center;gap:var(--s-3);width:100%;height:42px;padding:0 var(--s-3);border:0;border-radius:var(--r-sm);background:transparent;color:var(--side-text);font-weight:500;font-size:var(--fs-md);text-align:left;white-space:nowrap;transition:background .15s,color .15s}.navitem svg{width:18px;height:18px;flex:none;opacity:.85}.navitem:hover:not(:disabled){background:var(--side-bg-2);color:#fff}.navitem.active{background:color-mix(in srgb,var(--brand) 16%,var(--side-bg));color:#fff}.navitem.active svg{color:var(--brand);opacity:1}.navitem.active:before{content:"";position:absolute;left:-12px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--brand)}.navitem:focus-visible{box-shadow:inset 0 0 0 2px var(--brand)}.collapsed .navitem{justify-content:center;padding:0}.collapsed .navitem span{display:none}.sidebar .spacer{flex:1}.side-foot{border-top:1px solid var(--side-border);padding-top:var(--s-3);margin-top:var(--s-2)}.content{min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:20;height:var(--topbar-h);display:flex;align-items:center;gap:var(--s-4);padding:0 var(--s-6);background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--border)}.topbar .menu-btn{display:inline-flex;flex:none}.crumbs{display:flex;flex-direction:column;min-width:0;line-height:1.25}.crumbs .section{font-size:var(--fs-xs);color:var(--muted)}.crumbs .title{font-weight:600;font-size:var(--fs-lg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar .spacer{flex:1}.searchbtn{display:flex;align-items:center;gap:var(--s-3);width:300px;height:40px;padding:0 var(--s-3);background:var(--surface-2);color:var(--muted);border:1px solid var(--border);font-weight:400;box-shadow:none}.searchbtn:hover:not(:disabled){background:var(--surface);color:var(--text);border-color:var(--border-strong)}.searchbtn svg{width:16px;height:16px}.searchbtn kbd{margin-left:auto;font:500 11px var(--font);border:1px solid var(--border-strong);background:var(--surface);border-radius:6px;padding:1px 6px;color:var(--muted)}.usermenu{position:relative}.usermenu>button.reset{display:flex;align-items:center;gap:var(--s-2);padding:3px var(--s-2) 3px 3px;border:1px solid transparent;background:transparent;border-radius:var(--r-pill);color:var(--text)}.usermenu>button.reset:hover{background:var(--surface-2)}.usermenu .who{font-size:var(--fs-sm);line-height:1.2;text-align:left}.usermenu .who b{display:block;font-weight:600}.usermenu .who span{color:var(--muted);font-size:var(--fs-xs)}.avatar{width:34px;height:34px;border-radius:50%;background:var(--brand);color:var(--brand-ink);display:grid;place-items:center;font-size:var(--fs-xs);font-weight:700;flex:none;letter-spacing:.02em}.avatar.sm{width:30px;height:30px;font-size:11px}.avatar.sq{border-radius:var(--r-sm)}.avatar.off{background:var(--surface-3);color:var(--muted)}.banner{background:var(--warn-bg);color:var(--warn-fg);padding:var(--s-2) var(--s-6);font-size:var(--fs-sm);border-bottom:1px solid #f1e2a8}main{padding:var(--s-8) var(--s-6) 64px;width:100%;max-width:1360px;margin:0 auto;animation:page-in .28s var(--ease)}@keyframes page-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.scrim{display:none}@media (max-width: 900px){.shell,.shell.collapsed{grid-template-columns:minmax(0,1fr)}.sidebar{position:fixed;inset:0 auto 0 0;width:min(300px,86vw);transform:translate(-102%);transition:transform .25s var(--ease);box-shadow:var(--shadow-lg)}.shell.drawer-open .sidebar{transform:none}.shell.drawer-open .scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:25;background:#050a068c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.collapsed .navitem{justify-content:flex-start;padding:0 var(--s-3)}.collapsed .navitem span{display:inline}.collapsed .brand-full{display:block}.collapsed .brand-icon{display:none}.collapsed .nav-section{visibility:visible;height:auto;padding:var(--s-5) var(--s-3) var(--s-2)}.topbar{padding:0 var(--s-4);gap:var(--s-3)}.topbar .menu-btn{display:inline-flex}.searchbtn{width:40px;padding:0;justify-content:center}.searchbtn span,.searchbtn kbd,.usermenu .who{display:none}main{padding:var(--s-5) var(--s-4) 48px}.banner{padding:var(--s-2) var(--s-4)}}.searchbtn:hover:not(:disabled){color:var(--text)}.login{background:#fff}main.wide{max-width:none;padding:var(--s-4) var(--s-5) var(--s-5)}@media (max-width: 900px){main.wide{padding:var(--s-3) var(--s-3) var(--s-4)}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--s-5);box-shadow:var(--shadow-sm)}.page-header{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s-4);flex-wrap:wrap;margin-bottom:var(--s-6)}.page-header h1{font-size:var(--fs-2xl);font-weight:700}.page-header p{margin-top:var(--s-1);color:var(--muted);font-size:var(--fs-md)}.actions{display:flex;gap:var(--s-2);align-items:center;flex-wrap:wrap}.toolbar{display:flex;gap:var(--s-3);align-items:center;margin-bottom:var(--s-4);flex-wrap:wrap}.toolbar .field-search{flex:1 1 260px;max-width:360px}.toolbar select{width:auto;min-width:180px}.toolbar .count{margin-left:auto;color:var(--muted);font-size:var(--fs-sm)}.field-search{position:relative}.field-search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--muted);pointer-events:none}.field-search input{padding-left:36px}.seg{display:inline-flex;padding:3px;gap:2px;background:var(--surface-3);border-radius:var(--r-sm)}.seg button{height:32px;padding:0 var(--s-3);background:transparent;color:var(--muted);font-weight:500;font-size:var(--fs-sm);border-radius:6px;box-shadow:none}.seg button:hover:not(:disabled){background:transparent;color:var(--text)}.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.seg button svg{width:15px;height:15px}.badge{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 10px;border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:600}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge.ok{background:var(--brand-50);color:var(--brand-700)}.badge.off{background:var(--danger-50);color:var(--danger)}.badge.warn{background:var(--warn-bg);color:var(--warn-fg)}.badge.plain:before{display:none}.chips{display:inline-flex;gap:6px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-pill);font-size:var(--fs-xs);font-weight:500;color:var(--text-2)}label.chip{cursor:pointer;height:28px}label.chip:has(input:checked){background:var(--brand-50);border-color:color-mix(in srgb,var(--brand) 55%,white);color:var(--brand-700)}.chip input{width:14px;height:14px}.table-card{padding:0;overflow:auto}table.data{width:100%;border-collapse:separate;border-spacing:0}table.data th,table.data td{text-align:left;padding:0 var(--s-4);height:56px;border-bottom:1px solid var(--border);vertical-align:middle}table.data thead th{position:sticky;top:0;z-index:1;height:44px;background:var(--surface-2);color:var(--muted);font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}table.data thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}table.data thead th.sortable:hover{color:var(--text)}table.data tbody tr{transition:background .12s}table.data tbody tr:hover:not(.detail){background:var(--surface-2)}table.data tbody tr:last-child td{border-bottom:0}table.data tr.detail td{height:auto;padding:var(--s-3) var(--s-4) var(--s-4);background:var(--surface-2)}.cell-user{display:flex;align-items:center;gap:var(--s-3);min-width:0}.cell-user b{font-weight:600;display:block}.cell-user span{color:var(--muted);font-size:var(--fs-sm)}.empty-row{text-align:center;color:var(--muted)}.kebab{position:relative;display:inline-block}.menu{position:absolute;right:0;top:calc(100% + 4px);z-index:40;list-style:none;min-width:190px;padding:var(--s-1);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-md);animation:pop .12s var(--ease)}.menu.up{top:auto;bottom:calc(100% + 4px)}@keyframes pop{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:none}}.menu button{width:100%;height:36px;justify-content:flex-start;background:transparent;color:var(--text);font-weight:500;font-size:var(--fs-sm);border-radius:6px;box-shadow:none}.menu button:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.menu button.danger{color:var(--danger)}.menu button.danger:hover:not(:disabled){background:var(--danger-50);color:var(--danger)}.menu .head{padding:var(--s-3);border-bottom:1px solid var(--border);margin-bottom:var(--s-1);font-size:var(--fs-sm)}.menu .head b{display:block}.menu .head span{color:var(--muted);font-size:var(--fs-xs);word-break:break-all}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:var(--s-4);background:#080e0a80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade .15s}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal{width:min(560px,100%);max-height:90vh;overflow:auto;padding:0;border-radius:var(--r-lg);box-shadow:var(--shadow-lg);animation:pop .18s var(--ease)}.modal.sm{width:min(420px,100%)}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-5) var(--s-6);border-bottom:1px solid var(--border)}.modal-head h3{font-size:var(--fs-lg)}.modal-body{padding:var(--s-6)}.modal-foot{display:flex;justify-content:flex-end;gap:var(--s-2);padding:var(--s-4) var(--s-6);border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 var(--r-lg) var(--r-lg)}.stack{display:grid;gap:var(--s-4)}.stack label{display:grid;gap:6px;font-size:var(--fs-sm);font-weight:600;color:var(--text-2)}.stack label.inline{display:flex;align-items:center;gap:var(--s-2);font-weight:500}.stack .label{font-size:var(--fs-sm);font-weight:600;color:var(--text-2);margin-bottom:6px}.two{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3)}.skeleton{position:relative;overflow:hidden;background:var(--surface-3);border-radius:var(--r-sm)}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:shimmer 1.3s infinite}@keyframes shimmer{to{transform:translate(100%)}}.empty-state{display:grid;justify-items:center;gap:var(--s-2);text-align:center;padding:var(--s-10) var(--s-4);color:var(--muted);border:1px dashed var(--border-strong);border-radius:var(--r-md);background:var(--surface)}.empty-state .ico{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:var(--surface-2);color:var(--muted)}.empty-state .ico svg{width:20px;height:20px}.empty-state b{color:var(--text);font-size:var(--fs-md)}.spinner{width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toasts{position:fixed;right:var(--s-4);bottom:var(--s-4);z-index:80;display:grid;gap:var(--s-2);width:min(380px,calc(100vw - 32px))}.toast{display:flex;gap:var(--s-3);align-items:flex-start;padding:var(--s-3) var(--s-4);background:var(--text);color:#fff;border-radius:var(--r-md);box-shadow:var(--shadow-md);font-size:var(--fs-sm);animation:pop .2s var(--ease)}.toast.ok svg{color:var(--brand)}.toast.err svg{color:#ff8a80}.toast svg{width:18px;height:18px;flex:none;margin-top:1px}.palette-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:grid;place-items:start center;padding:14vh var(--s-4) 0;background:#080e0a80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade .12s}.palette{width:min(580px,100%);padding:0;overflow:hidden;border-radius:var(--r-lg);box-shadow:var(--shadow-lg)}.palette .pinput{position:relative;border-bottom:1px solid var(--border)}.palette .pinput svg{position:absolute;left:var(--s-4);top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--muted)}.palette input{height:56px;border:0;border-radius:0;padding:0 var(--s-4) 0 48px;font-size:var(--fs-lg);box-shadow:none!important}.palette ul{list-style:none;max-height:340px;overflow:auto;padding:var(--s-2)}.palette li button{width:100%;height:44px;justify-content:flex-start;gap:var(--s-3);background:transparent;color:var(--text);font-weight:500;border-radius:var(--r-sm);box-shadow:none}.palette li.sel button,.palette li button:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.palette li .hint{margin-left:auto;color:var(--muted);font-size:var(--fs-xs);font-weight:400}.palette .none{padding:var(--s-6);text-align:center;color:var(--muted)}@media (max-width: 600px){.page-header h1{font-size:var(--fs-xl)}.two{grid-template-columns:1fr}.modal-head,.modal-body,.modal-foot{padding-left:var(--s-4);padding-right:var(--s-4)}table.data th,table.data td{padding:0 var(--s-3)}.toolbar .field-search{max-width:none}.toolbar select{flex:1}}.palette li button.reset{display:flex;align-items:center;padding:0 var(--s-3);border:0;text-align:left}.palette li button.reset svg{width:18px;height:18px;color:var(--muted);flex:none}.palette li.sel button.reset{background:var(--surface-2)}table.data button.ghost.icon{background:transparent;border-color:transparent;box-shadow:none;color:var(--muted)}table.data button.ghost.icon:hover:not(:disabled){background:var(--surface-3);color:var(--text)}table.data .chev svg{width:16px;height:16px;transition:transform .15s var(--ease)}table.data .chev[aria-expanded=true] svg{transform:rotate(90deg)}.avatar.sm{background:var(--brand-100);color:var(--brand-700)}.avatar.sm.off{background:var(--surface-3);color:var(--muted)}@media (max-width: 760px){.hide-sm{display:none}.toolbar .field-search{flex:1 1 100%;max-width:none}.toolbar select{flex:1 1 140px;min-width:0}.toolbar .seg{width:100%;margin-left:0!important}.toolbar .seg button{flex:1}.toolbar .count{margin-left:0}.page-header .actions{width:100%}.page-header .actions>button{flex:1}}.stack label.chip{display:inline-flex;flex-direction:row;font-weight:500;font-size:var(--fs-xs);color:var(--text-2)}.cell-user>div{min-width:0}.cell-user span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hint{font-weight:400;color:var(--muted);font-size:var(--fs-xs)}@media (max-width: 760px){table.data th,table.data td{padding:0 var(--s-2)}table.data th:first-child,table.data td:first-child{width:40px;padding-left:var(--s-2)}.cell-user{gap:var(--s-2)}.cell-user>div{max-width:42vw}}.cell-user span:not(.avatar){display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-user .avatar{display:grid;overflow:visible;text-overflow:clip}.modal.lg{width:min(860px,100%)}.checklists{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4)}.checklist{display:grid;gap:var(--s-2);align-content:start;min-width:0}.checklist-head{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-sm)}.checklist-head .pill{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 7px;border-radius:var(--r-pill);background:var(--brand-50);color:var(--brand-700);font-size:var(--fs-xs);font-weight:600}.linklike{margin-left:auto;background:none;border:0;padding:0;color:var(--brand-700);font-size:var(--fs-xs);font-weight:600;cursor:pointer}.linklike:hover:not(:disabled){text-decoration:underline}.linklike:disabled{opacity:.4;cursor:default}.checklist-body{list-style:none;margin:0;padding:var(--s-1);height:280px;overflow:auto;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface)}.checklist-body label{display:flex!important;flex-direction:row!important;align-items:center;gap:var(--s-3);padding:7px var(--s-2);border-radius:6px;font-weight:500!important;font-size:var(--fs-sm);color:var(--text)!important;cursor:pointer}.checklist-body label:hover{background:var(--surface-2)}.checklist-body label:has(input:checked){background:var(--brand-50)}@media (max-width: 700px){.checklists{grid-template-columns:1fr}.checklist-body{height:200px}}.note{padding:var(--s-3);border-radius:var(--r-sm);background:var(--brand-50);color:var(--text-2);font-size:var(--fs-sm);line-height:1.45}.modal{display:flex;flex-direction:column;overflow:hidden;max-height:min(90vh,900px)}.modal-head,.modal-foot{flex:none}.modal-body{flex:1 1 auto;min-height:0;overflow:auto}.modal .checklist-body{height:clamp(150px,26vh,280px)}.login-wrap{position:relative;min-height:100vh;display:grid;place-items:center;padding:var(--s-6) var(--s-4);overflow:hidden;isolation:isolate;background:#050a06}.login-wrap:before{content:"";position:absolute;z-index:-2;inset:-20% -10% auto;height:80%;background:radial-gradient(60% 60% at 50% 0%,rgba(102,204,51,.32),transparent 70%),radial-gradient(40% 40% at 85% 30%,rgba(58,129,24,.35),transparent 70%)}.login-wrap:after{content:"";position:absolute;z-index:-1;top:0;right:0;bottom:0;left:0;opacity:.5;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(70% 60% at 50% 35%,#000,transparent);mask-image:radial-gradient(70% 60% at 50% 35%,#000,transparent)}.login-box{width:100%;max-width:408px;display:grid;gap:var(--s-8);justify-items:center;animation:page-in .45s var(--ease)}.logo img{width:min(220px,56vw);height:auto;margin:0 auto}.login{width:100%;display:grid;gap:var(--s-5);padding:var(--s-8);border-radius:var(--r-lg);background:#fffffff7;border:1px solid rgba(255,255,255,.6);box-shadow:0 30px 80px -20px #0009}.login h1{font-size:var(--fs-xl);font-weight:700}.login .lead{color:var(--muted);font-size:var(--fs-md);margin-top:var(--s-1)}.field{display:grid;gap:6px;font-size:var(--fs-sm);font-weight:600;color:var(--text-2)}.field .head{display:flex;justify-content:space-between;align-items:baseline}.field .head a{font-weight:500;color:var(--brand-700);font-size:var(--fs-sm)}.field .head a:hover{text-decoration:underline}.input-icon{position:relative}.input-icon>svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:17px;height:17px;color:#8a948c;pointer-events:none}.input-icon input{padding-left:38px;height:44px;font-weight:400}.input-icon .eye{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:36px;height:36px;padding:0;background:transparent;color:var(--muted);border:0;box-shadow:none}.input-icon .eye:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.input-icon .eye svg{position:static;transform:none;width:18px;height:18px;color:inherit}.login .submit{height:46px;font-size:var(--fs-md)}.login .alert{display:flex;gap:var(--s-2);align-items:center;padding:var(--s-3);border-radius:var(--r-sm);background:var(--danger-50);color:var(--danger);font-size:var(--fs-sm);font-weight:500}.login .alert svg{width:16px;height:16px;flex:none}.footer-note{color:#d9e0da8c;font-size:var(--fs-xs);text-align:center}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--s-4);margin-bottom:var(--s-8)}.stat{display:flex;gap:var(--s-4);align-items:center;padding:var(--s-5)}.stat .ico{width:44px;height:44px;flex:none;border-radius:var(--r-sm);display:grid;place-items:center;background:var(--brand-50);color:var(--brand-700)}.stat .ico svg{width:22px;height:22px}.stat .label{color:var(--muted);font-size:var(--fs-sm)}.stat strong{display:block;font-size:var(--fs-2xl);font-weight:700;line-height:1.15;letter-spacing:-.02em}.stat .sub{color:var(--muted);font-size:var(--fs-xs)}.section-title{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-md);font-weight:600;margin:var(--s-8) 0 var(--s-3)}.section-title .pill{margin-left:0}.pill{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 7px;border-radius:var(--r-pill);background:var(--surface-3);color:var(--text-2);font-size:var(--fs-xs);font-weight:600}.tip{color:var(--muted);font-size:var(--fs-sm);display:flex;align-items:center;gap:var(--s-2);margin:var(--s-4) 0 0}.tip svg{width:15px;height:15px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--s-4)}.grid.cards{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.list{display:grid;gap:var(--s-2)}.report{--h: 140;position:relative;display:flex;flex-direction:column;padding:0;overflow:hidden;color:inherit;transition:transform .18s var(--ease),box-shadow .18s var(--ease),border-color .18s}.report:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--brand) 60%,var(--border))}.report:focus-visible{box-shadow:var(--ring)}.cover{position:relative;height:124px;overflow:hidden;color:#fff;background:radial-gradient(120% 100% at 100% 0%,hsl(var(--h) 70% 34% / .85),transparent 60%),radial-gradient(90% 90% at 0% 100%,hsl(calc(var(--h) + 24) 60% 26% / .9),transparent 60%),linear-gradient(160deg,hsl(var(--h) 55% 13%),hsl(calc(var(--h) - 6) 60% 8%));background-size:cover;background-position:center}.cover:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(255,255,255,.13) 1px,transparent 1px);background-size:14px 14px;-webkit-mask-image:linear-gradient(135deg,#000,transparent 70%);mask-image:linear-gradient(135deg,#000,transparent 70%)}.cover .mark{position:absolute;left:var(--s-4);bottom:var(--s-3);width:30px;opacity:.95}.cover .initials{position:absolute;right:var(--s-3);bottom:-10px;font-size:64px;font-weight:800;letter-spacing:-.04em;color:#ffffff1a;line-height:1;-webkit-user-select:none;user-select:none}.report .body{display:grid;gap:4px;padding:var(--s-4)}.tag{font-size:11px;letter-spacing:.08em;font-weight:600;color:var(--brand-700)}.report .name{font-weight:600;font-size:var(--fs-md);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.6em}.report .when{font-size:var(--fs-xs);color:var(--muted);display:flex;align-items:center;gap:6px}.report .when:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--brand)}.star{position:absolute;top:var(--s-3);right:var(--s-3);z-index:2;width:32px;height:32px;padding:0;border-radius:50%;background:#ffffffeb;color:#2a342d;box-shadow:var(--shadow-sm);border:0}.star:hover:not(:disabled){background:#fff;color:#2a342d;transform:scale(1.08)}.star svg{width:16px;height:16px}.star.on{color:#e0a100}.star.on:hover:not(:disabled){color:#e0a100}.report.plain .body{padding-right:52px}.report.plain .star{background:var(--surface-2)}.report.row-item{flex-direction:row;align-items:center;gap:var(--s-4);padding:var(--s-3) var(--s-4)}.report.row-item .thumb{width:40px;height:40px;border-radius:var(--r-sm);flex:none;display:grid;place-items:center;font-weight:700;font-size:var(--fs-sm);color:#fff;background:linear-gradient(160deg,hsl(var(--h) 60% 22%),hsl(var(--h) 65% 12%))}.report.row-item .grow{display:grid;gap:1px}.report.row-item .name{min-height:0;-webkit-line-clamp:1}.report.row-item .star{position:static;flex:none}.report.row-item .when{flex:none}.report.skel{pointer-events:none}.report.skel .cover{background:var(--surface-3)}.report.skel .cover:before{display:none}.back{display:inline-flex;align-items:center;gap:var(--s-2);color:var(--muted);font-size:var(--fs-sm);font-weight:500}.back:hover{color:var(--text)}.back svg{width:16px;height:16px}.viewer{display:flex;gap:var(--s-4);align-items:stretch}.pages{flex:0 0 210px;display:flex;flex-direction:column;gap:2px;max-height:calc(100vh - 220px);overflow:auto;padding:var(--s-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);align-self:flex-start}.pageitem{position:relative;justify-content:flex-start;text-align:left;height:38px;background:transparent;color:var(--text-2);font-weight:500;font-size:var(--fs-sm);box-shadow:none}.pageitem:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.pageitem.active{background:var(--brand-50);color:var(--brand-700)}.embed-wrap{position:relative;flex:1;min-width:0}.embed{height:calc(100vh - 220px);min-height:480px;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--border);background:var(--surface)}.embed iframe{width:100%;height:100%;border:0}.embed-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;align-content:center;gap:var(--s-3);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border);color:var(--muted);font-size:var(--fs-sm)}.embed-loading .spinner{width:28px;height:28px;border-width:3px;color:var(--brand-600)}@media (max-width: 900px){.viewer{flex-direction:column}.pages{flex:none;flex-direction:row;max-height:none;overflow-x:auto;width:100%}.pageitem{width:auto;white-space:nowrap}.embed{height:calc(100vh - 260px)}}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--s-4);align-items:start}.group-card{display:grid;gap:var(--s-3)}.group-head{display:flex;align-items:center;gap:var(--s-3)}.group-head .avatar{width:38px;height:38px;border-radius:10px;font-size:var(--fs-md)}.group-card .lbl{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.report-item{display:flex;align-items:center;gap:var(--s-2);border:1px solid var(--border);border-radius:var(--r-sm);padding:4px 4px 4px var(--s-3);font-size:var(--fs-sm);font-weight:500;background:var(--surface);transition:border-color .15s,background .15s}.report-item:hover{border-color:var(--border-strong);background:var(--surface-2)}.report-item .grow{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-item .doc{color:var(--muted);display:grid}.report-item .doc svg{width:15px;height:15px}.filters{display:flex;gap:var(--s-4);align-items:flex-end;flex-wrap:wrap;margin-bottom:var(--s-4)}.filters label{display:grid;gap:6px;font-size:var(--fs-xs);font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.filters input{width:160px}.presets{display:flex;gap:var(--s-2);flex-wrap:wrap;margin-left:auto}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--s-4);margin-bottom:var(--s-4)}.kpi{display:grid;gap:2px;padding:var(--s-5)}.kpi .label{color:var(--muted);font-size:var(--fs-sm);display:flex;align-items:center;gap:var(--s-2)}.kpi .label svg{width:15px;height:15px;color:var(--brand-700)}.kpi strong{font-size:var(--fs-2xl);font-weight:700;letter-spacing:-.02em;line-height:1.2}.kpi .sub{color:var(--muted);font-size:var(--fs-xs)}.chart-title{font-size:var(--fs-md);font-weight:600;margin-bottom:var(--s-4);display:flex;justify-content:space-between;align-items:center}.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:var(--s-4);margin-top:var(--s-4)}.chart-wrap{position:relative}.linechart{width:100%;height:auto;overflow:visible}.grid-line{stroke:var(--border);stroke-width:1}.axis{fill:var(--muted);font-size:11px;font-family:var(--font)}.series{stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round;fill:none}.series.s1{stroke:var(--text)}.series.s2{stroke:var(--brand-600)}.area.s2{fill:url(#areaGrad);stroke:none}.dot{stroke:var(--surface);stroke-width:2}.dot.s1{fill:var(--text)}.dot.s2{fill:var(--brand-600)}.cross{stroke:var(--border-strong);stroke-dasharray:3 3}.tip-box{position:absolute;z-index:3;pointer-events:none;transform:translate(-50%,-110%);padding:var(--s-2) var(--s-3);background:var(--text);color:#fff;border-radius:var(--r-sm);font-size:var(--fs-xs);white-space:nowrap;box-shadow:var(--shadow-md)}.tip-box b{display:block;margin-bottom:2px}.legend{display:flex;gap:var(--s-5);justify-content:center;font-size:var(--fs-sm);color:var(--muted);margin-top:var(--s-3)}.sw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px}.sw.s1{background:var(--text)}.sw.s2{background:var(--brand-600)}.bars{display:grid;gap:var(--s-3)}.bar-row{display:grid;grid-template-columns:minmax(100px,38%) 1fr 36px;gap:var(--s-3);align-items:center;font-size:var(--fs-sm)}.bar-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2)}.bar-track{background:var(--surface-3);border-radius:var(--r-pill);height:8px;overflow:hidden}.bar-fill{display:block;height:100%;background:var(--brand);border-radius:var(--r-pill);transition:width .5s var(--ease)}.bar-fill.alt{background:var(--text)}.bar-n{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}@media (max-width: 600px){.filters label,.filters input{width:100%}.filters{gap:var(--s-3)}.presets{margin-left:0}.login{padding:var(--s-6) var(--s-5)}}.pageitem{display:flex;align-items:center;width:100%;padding:0 var(--s-3);border:0;border-radius:var(--r-sm)}.input-icon .eye{display:grid;place-items:center;border-radius:var(--r-sm)}@media (max-width: 600px){.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-2);margin-bottom:var(--s-6)}.stat{flex-direction:column;align-items:flex-start;gap:var(--s-2);padding:var(--s-3)}.stat .ico{width:32px;height:32px}.stat .ico svg{width:17px;height:17px}.stat strong{font-size:var(--fs-xl)}.stat .label{font-size:var(--fs-xs)}.stat .sub{display:none}.grid,.grid.cards{grid-template-columns:1fr}.report.row-item .when{display:none}}.viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);height:36px;margin-bottom:var(--s-3)}.viewer .pages{flex:0 0 188px;max-height:calc(100vh - var(--topbar-h) - 92px)}.embed{height:calc(100vh - var(--topbar-h) - 92px);min-height:520px}@media (max-width: 900px){.viewer .pages{flex:none;max-height:none}.embed{height:calc(100vh - var(--topbar-h) - 140px);min-height:420px}}.rules{list-style:none;display:grid;gap:6px;font-size:var(--fs-sm);color:var(--muted)}.rules li{display:flex;align-items:center;gap:var(--s-2)}.rules li svg{width:15px;height:15px;padding:2px;border-radius:50%;background:var(--surface-3);color:transparent;flex:none}.rules li.ok{color:var(--text)}.rules li.ok svg{background:var(--brand);color:var(--brand-ink)}.login .stack{gap:var(--s-4)}.login .stack label.field{font-size:var(--fs-sm)}
