@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--radius-sm:.25rem;--radius-lg:.5rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.start{inset-inline-start:var(--spacing)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.table{display:table}}:root{--ink:#16130f;--muted:#78736b;--line:#e2dfd8;--line-soft:#efede7;--accent:#ff9000;--accent-hover:#ea8100;--accent-active:#cc6f00;--on-accent:#14100a;--red:#c8371f;--green:#1e8e4e;--bg:#f6f5f2;--surface:#fff;--surface-sunken:#faf9f6;--hover:#f1efea;--line-strong:#d8d4cb;--faint:#c3beb4;--faint-ink:#b3aea4;--side-bg:#0e0e0d;--side-ink:#b7b2a9;--side-hover:#1d1c1a;--side-line:#232220;--side-muted:#8a857c;--side-group:#6b665e;--tag-green-bg:#e9f4ec;--tag-green-fg:#166b3b;--tag-amber-bg:#fff2df;--tag-amber-fg:#a85c00;--tag-red-bg:#fbebe8;--tag-red-fg:#a32b16;--tag-gray-bg:#f1efea;--tag-gray-fg:#5d5850;--amber-line:#f2ddba;--amber-ink:#7a4600;--radius-sm:4px;--radius:8px;--radius-lg:12px;--shadow-pop:0 12px 32px #14100a29;--shadow-modal:0 24px 64px #14100a47;--font:"Golos Text", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, monospace}body{font:400 14px/1.5 var(--font);color:var(--ink);background:var(--bg);margin:0}*{box-sizing:border-box}a{color:var(--accent-active);text-decoration:none}a:hover{color:var(--accent-hover)}h1{font:800 30px/1.13 var(--font);letter-spacing:-.02em;margin:0 0 6px}h2{font:700 22px/1.2 var(--font);letter-spacing:-.01em;margin:0}h3{font:700 17px/1.3 var(--font);margin:0}.kicker{font:600 11px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 6px}.sub{color:var(--muted);margin:0 0 22px;font-size:13px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.spread{justify-content:space-between}.num,td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.app-shell{grid-template-columns:var(--side-w,240px) minmax(0, 1fr);min-height:100vh;transition:grid-template-columns .18s;display:grid}.app-shell.collapsed{--side-w:64px}.app-side{background:var(--side-bg);flex-direction:column;height:100vh;display:flex;position:sticky;top:0;overflow:hidden}.app-side-head{justify-content:space-between;align-items:center;gap:10px;padding:18px 16px 14px;display:flex}.app-logo{min-width:0;font:800 17px/1 var(--font);letter-spacing:-.03em;color:#fff;align-items:center;text-decoration:none;display:flex}.app-logo:hover b,.app-logo-mark:hover{filter:brightness(1.08)}.app-logo i{padding-right:4px;font-style:normal}.app-logo b{background:var(--accent);color:var(--on-accent);border-radius:5px;padding:3px 5px 4px;font-weight:800}.app-logo-mark{border-radius:var(--radius);background:var(--accent);width:32px;height:32px;color:var(--on-accent);font:800 16px/1 var(--font);place-items:center;text-decoration:none;display:none}.app-brand{display:none}.app-side-product{border-bottom:1px solid var(--side-line);font:600 11px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--side-muted);white-space:nowrap;text-overflow:ellipsis;margin-bottom:6px;padding:0 16px 14px;overflow:hidden}.app-collapse{width:24px;height:24px;color:var(--side-muted);cursor:pointer;background:0 0;border:none;border-radius:5px;flex:none;place-items:center;padding:0;font-size:13px;display:grid}.app-collapse:hover{background:var(--side-hover);color:#fff}.app-nav{flex-direction:column;flex:1;gap:1px;min-height:0;padding:4px 10px;display:flex;overflow-y:auto}.app-nav a,.app-nav button{width:100%;min-height:34px;color:var(--side-ink);font:500 13.5px/1 var(--font);white-space:nowrap;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:10px;padding:8px 10px;text-decoration:none;transition:background .15s,color .15s;display:flex;position:relative}.app-nav a svg,.app-nav button svg{flex:none}.app-nav a:hover,.app-nav button:hover{background:var(--side-hover);color:#fff}.app-nav a[aria-current=page],.app-nav button[aria-current=page]{background:var(--accent);color:var(--on-accent);font-weight:600}.app-nav a span,.app-nav button span{text-overflow:ellipsis;flex:1;overflow:hidden}.app-nav>div{display:contents}.app-nav-group{font:600 10.5px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--side-group);border-top:1px solid var(--side-line);margin-top:6px;padding:16px 10px 8px}.app-shell.collapsed .app-nav-group{color:#0000;height:0;margin:10px 4px;padding:0;overflow:hidden}.app-nav-badge{background:var(--accent);color:var(--on-accent);font:700 11px/1 var(--font);font-variant-numeric:tabular-nums;text-align:center;border-radius:20px;flex:none;padding:3px 6px;font-style:normal}.app-nav a[aria-current=page] .app-nav-badge{background:var(--on-accent);color:var(--accent)}.app-nav-badge.alarming{background:var(--red);color:#fff}.app-nav-badge.soon{color:var(--muted);background:0 0;font-weight:600;box-shadow:inset 0 0 0 1px}.app-nav a[aria-current=page] .app-nav-badge.soon{color:var(--on-accent);background:0 0}.app-side-foot{border-top:1px solid var(--side-line);flex-direction:column;gap:10px;padding:12px 16px 16px;display:flex}.app-portal{font:600 13px/1 var(--font);color:#fff;align-items:center;gap:7px;text-decoration:none;display:flex}.app-portal em{color:var(--accent);font-style:normal}.app-portal:hover{color:var(--accent)}.sync-card{font:500 12.5px/1.3 var(--font);color:var(--side-muted);align-items:center;gap:8px;display:flex}.sync-card .status-dot{background:var(--green);border-radius:50%;flex:none;width:7px;height:7px}.sync-card .status-dot.loading{background:var(--accent)}.sync-card .status-dot.bad{background:var(--red)}.app-shell.collapsed .app-logo,.app-shell.collapsed .app-side-product,.app-shell.collapsed .app-nav a span,.app-shell.collapsed .app-nav button span,.app-shell.collapsed .app-nav-badge,.app-shell.collapsed .sync-card,.app-shell.collapsed .app-portal span{display:none}.app-shell.collapsed .app-logo-mark{display:grid}.app-shell.collapsed .app-side-head{justify-content:center;padding:18px 8px 14px}.app-shell.collapsed .app-side-foot{padding:12px 8px 16px}.app-shell.collapsed .app-nav{padding:4px 8px}.app-shell.collapsed .app-nav a,.app-shell.collapsed .app-nav button,.app-shell.collapsed .app-portal{justify-content:center;padding:8px}.app-main{flex-direction:column;min-width:0;display:flex}.app-top{background:var(--surface);border-bottom:1px solid var(--line);z-index:20;justify-content:space-between;align-items:center;gap:16px;min-height:60px;padding:0 24px;display:flex;position:sticky;top:0}.app-top h2{font:700 17px/1 var(--font);align-items:baseline;gap:10px;min-width:0;display:flex}.app-top h2>span:last-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.app-top-tools{align-items:center;gap:10px;display:flex}.app-user{position:relative}.app-user-btn{border-radius:var(--radius);cursor:pointer;font:inherit;color:var(--ink);background:0 0;border:1px solid #0000;align-items:center;gap:10px;min-height:0;padding:5px 10px 5px 5px;display:flex}.app-user-btn:hover{background:var(--hover)}.app-avatar{background:var(--on-accent);width:32px;height:32px;color:var(--accent);font:700 12.5px/1 var(--font);text-transform:uppercase;border-radius:50%;flex:none;place-items:center;display:grid}.app-user-name{font:600 13px/1.25 var(--font);text-align:left;white-space:nowrap}.app-user-name small{color:var(--muted);font:400 12px/1.25 var(--font);display:block}.app-user-menu{z-index:30;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:240px;box-shadow:var(--shadow-pop);padding:6px;position:absolute;top:calc(100% + 6px);right:0}.app-user-menu-head{border-bottom:1px solid var(--line);margin-bottom:6px;padding:10px 10px 12px}.app-user-menu-head b{font-size:13px;display:block}.app-user-menu-head small{color:var(--muted);font-size:12px}.app-user-menu button,.app-user-menu .btn{text-align:left;border-radius:var(--radius-sm);background:0 0;border:none;width:100%;padding:8px 10px;font-size:13px}.app-user-menu button:hover,.app-user-menu .btn:hover{background:var(--hover)}.app-content{width:100%;min-width:0;max-width:1180px;margin:0 auto;padding:24px 24px 44px}button,.btn{min-height:38px;font:600 13.5px/1 var(--font);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);cursor:pointer;align-items:center;gap:8px;padding:0 14px;text-decoration:none;transition:background .15s,border-color .15s,color .15s;display:inline-flex}button:hover,.btn:hover{background:var(--hover);color:var(--ink)}button:active,.btn:active{background:var(--line-soft)}button.primary,.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:700}button.primary:hover,.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button.primary:active,.btn.primary:active{background:var(--accent-active);border-color:var(--accent-active)}button:disabled,.btn:disabled{opacity:.45;cursor:not-allowed}button.compact,.btn.compact{min-height:32px;padding:0 10px;font-size:13px}button.danger,.btn.danger{border-color:var(--line-soft);color:var(--tag-red-fg)}button.danger:hover,.btn.danger:hover{background:var(--tag-red-bg);color:var(--tag-red-fg)}button.link{min-height:0;color:var(--accent-active);background:0 0;border:none;padding:0;font-weight:500;text-decoration:underline}button.link:hover{color:var(--accent-hover);background:0 0}input,select,textarea{font:400 13.5px/1.3 var(--font);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);width:100%;min-height:38px;color:var(--ink);padding:8px 10px}input:focus,select:focus,textarea:focus{border-color:var(--ink);outline:none}input[type=checkbox],input[type=radio]{width:auto;min-height:0;accent-color:var(--accent)}label{color:var(--muted);margin-bottom:14px;font-size:13px;display:block}label span{font:600 12.5px/1 var(--font);color:var(--ink);margin-bottom:5px;display:block}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.card+.card{margin-top:16px}.card header,.panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 18px;display:flex}.card .body{padding:18px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.card-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;display:grid}.entity-card{color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px;text-decoration:none;transition:border-color .15s,background .15s;display:block}.entity-card:hover{border-color:var(--ink);background:var(--hover);color:var(--ink)}.entity-card b{font:700 15px/1.3 var(--font);letter-spacing:-.01em;display:block}.entity-card small{color:var(--muted);margin-top:6px;font-size:12px;display:block}.group-label{font:600 11px/1 var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);grid-column:1/-1;margin:6px 0 -4px}.metrics{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-bottom:18px;display:grid}.metrics.compact{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.metric{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.metric p{font:500 13px/1 var(--font);color:var(--muted);margin:0 0 8px}.metric b{font:800 24px/1.15 var(--font);font-variant-numeric:tabular-nums;letter-spacing:-.01em;display:block}.metric small{font:500 12.5px/1 var(--font);color:var(--muted);margin-top:5px;display:block}.metric small.green,.ok{color:var(--green)}.metric small.red,.red-text{color:var(--red)}.metric small.amber,.warn{color:var(--tag-amber-fg)}.metric small.blue{color:var(--muted)}.metric small.violet{color:var(--accent-active)}.metric.attention{border-color:var(--amber-line)}.metric.attention p,.metric.attention b{color:var(--tag-amber-fg)}.metric.done b{color:var(--green)}.metric.bad b{color:var(--red)}table{border-collapse:collapse;width:100%;font-size:14px}th{text-align:left;font:600 11px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--hover);border-bottom:1px solid var(--line);padding:10px 16px}td{border-bottom:1px solid var(--line-soft);vertical-align:middle;padding:11px 16px}tbody tr:last-child td{border-bottom:none}tbody tr:hover td{background:var(--hover)}td small{color:var(--muted);font-size:12px;display:block}td .dash,td i.dash{color:var(--faint);font-style:normal}tr.excluded td{color:var(--faint-ink)}tr.excluded td.struck{text-decoration:line-through}.filters{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.filters input{border-radius:var(--radius);flex:1;min-width:260px}.filters select{border-radius:var(--radius);width:auto;min-width:170px}td.id{font-variant-numeric:tabular-nums;font-weight:600}td.clip{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}td.dim{color:var(--muted)}th.act{width:36px}td.act{text-align:right;white-space:nowrap;width:36px}td.act a,td.act button.link{font:600 12.5px/1 var(--font);text-decoration:none}tr.group td,tbody tr.group:hover td{background:var(--hover);padding:9px 16px;font-weight:700}td.nested{padding-left:28px}tr.total td,tbody tr.total:hover td{background:var(--surface-sunken);font-weight:800}tr.total.strong td{border-top:2px solid var(--ink);padding-top:13px;padding-bottom:13px;font-size:15px}.pager{justify-content:space-between;align-items:center;margin-top:14px;display:flex}.pager .count{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}.pager nav{gap:6px;display:flex}.pager a,.pager span.page{border:1px solid var(--line);background:var(--surface);width:32px;height:32px;min-height:0;color:var(--ink);font:600 13px/1 var(--font);border-radius:6px;place-items:center;padding:0;text-decoration:none;display:grid}.pager a:hover{background:var(--hover);color:var(--ink)}.pager .here{background:var(--on-accent);border-color:var(--on-accent);color:#fff}.pager .off{color:var(--faint)}.coming-soon{margin-top:16px}.coming-soon h2{margin:10px 0 6px}.coming-soon .sub{max-width:640px;margin-bottom:10px}.coming-soon ul{color:var(--muted);margin:0;padding-left:18px;font-size:14px;line-height:1.7}.empty-result{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);text-align:center;padding:34px 22px}.empty-result b{font:700 16px/1.3 var(--font);margin-bottom:6px;display:block}.empty-result p{max-width:340px;font:400 13.5px/1.5 var(--font);color:var(--muted);margin:0 auto 14px}.row-menu{display:inline-block;position:relative}.row-menu-btn{border-radius:var(--radius-sm);width:26px;height:26px;min-height:0;color:var(--muted);background:0 0;border:none;padding:0;font-size:15px;line-height:1}.row-menu-btn:hover{background:var(--line-soft);color:var(--ink)}.row-menu-list{z-index:30;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:190px;box-shadow:var(--shadow-pop);padding:6px;position:absolute;top:calc(100% + 4px);right:0}.row-menu-list button,.row-menu-list a{text-align:left;border-radius:var(--radius-sm);width:100%;min-height:0;color:var(--ink);font:500 13px/1.3 var(--font);background:0 0;border:none;padding:8px 10px;text-decoration:none;display:block}.row-menu-list button:hover,.row-menu-list a:hover{background:var(--hover);color:var(--ink)}.row-menu-list button.danger{color:var(--tag-red-fg);border:none}.row-menu-list button.danger:hover{background:var(--tag-red-bg)}.tabs{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);gap:4px;width:fit-content;padding:4px;display:flex}.tabs a,.tabs button{min-height:0;font:500 13px/1 var(--font);color:var(--muted);background:0 0;border:none;border-radius:5px;padding:7px 12px;text-decoration:none}.tabs a:hover,.tabs button:hover{background:var(--hover);color:var(--ink)}.tabs .here{background:var(--accent);color:var(--on-accent);font-weight:600}.tabs .here:hover{background:var(--accent-hover);color:var(--on-accent)}.tabs .alarming{color:var(--red)}.tabs .alarming:hover{background:var(--tag-red-bg);color:var(--red)}.list{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.list-row{border-bottom:1px solid var(--line-soft);align-items:center;gap:12px;padding:13px 16px;transition:background .15s;display:flex}.list-row:last-child{border-bottom:none}.list-row:hover{background:var(--hover)}.list-row .title{min-width:0;font:500 14px/1.35 var(--font);color:var(--ink);flex:1}.list-row.done .title{color:var(--muted);text-decoration:line-through}.list-row .due{text-align:right;min-width:64px;font:500 12.5px/1 var(--font);font-variant-numeric:tabular-nums;color:var(--muted);flex:none}.list-row .due.soon{color:var(--ink)}.list-row .due.late{color:var(--red)}.list-row .tag{flex:none}.avatar-sm{background:var(--on-accent);width:26px;height:26px;color:var(--accent);font:700 11px/1 var(--font);text-transform:uppercase;border-radius:50%;flex:none;place-items:center;display:grid}.tag{border-radius:var(--radius-sm);font:600 12px/1 var(--font);white-space:nowrap;background:var(--tag-gray-bg);color:var(--tag-gray-fg);padding:5px 9px;display:inline-block}.tag.gray{background:var(--tag-gray-bg);color:var(--tag-gray-fg)}.tag.green{background:var(--tag-green-bg);color:var(--tag-green-fg)}.tag.amber{background:var(--tag-amber-bg);color:var(--tag-amber-fg)}.tag.red{background:var(--tag-red-bg);color:var(--tag-red-fg)}.chart-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px}.chart-card>h3{font:700 15px/1 var(--font);margin:0 0 2px}.chart-card>.unit{font:400 12.5px/1 var(--font);color:var(--muted);margin:0 0 14px}.chart-card svg{width:100%;height:auto;display:block}.chart-card .grid line{stroke:var(--line-soft);stroke-width:1px}.chart-card .axis{font-family:var(--font-mono);fill:var(--faint-ink);font-size:10px}.chart-card .ticks{font-family:var(--font);fill:var(--muted);font-size:10px}.chart-card .value{font-family:var(--font);fill:var(--ink);font-size:11px;font-weight:700}.legend-row{font:500 12.5px var(--font);color:var(--muted);flex-wrap:wrap;gap:16px;margin-top:12px;display:flex}.legend-row span{align-items:center;gap:6px;display:flex}.legend-row i{background:var(--ink);width:9px;height:2px;display:block}.legend-row i.accent{background:var(--accent)}.legend-row i.other{background:var(--faint-ink)}.donut-row{flex-wrap:wrap;flex:1;align-items:center;gap:24px;display:flex}.donut-legend{font:500 13px var(--font);color:var(--ink);flex-direction:column;gap:9px;display:flex}.donut-legend span{align-items:center;gap:8px;display:flex}.donut-legend i{background:var(--ink);border-radius:2px;width:10px;height:10px}.donut-legend i.accent{background:var(--accent)}.donut-legend i.other{background:var(--faint-ink)}.ratio{border-radius:4px;gap:2px;height:14px;display:flex;overflow:hidden}.ratio span{display:block}.ratio .ok{background:var(--green)}.ratio .warn{background:var(--accent)}.ratio .bad{background:var(--red)}.ratio .rest{background:var(--line-strong)}.ratio-values{font:500 13px var(--font);flex-wrap:wrap;gap:20px;margin-top:14px;display:flex}.ratio-values b{font:800 17px/1 var(--font);font-variant-numeric:tabular-nums;display:block}.ratio-values b.ok{color:var(--green)}.ratio-values b.warn{color:var(--accent-active)}.ratio-values b.bad{color:var(--red)}.ratio-values small{color:var(--muted);margin-top:3px;font-size:12px;display:block}.rank{flex-direction:column;gap:11px;display:flex}.rank-line{grid-template-columns:170px 1fr 60px;align-items:center;gap:12px;display:grid}.rank-line>span:first-child{font:500 13.5px/1.3 var(--font);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.rank-line .track{background:var(--hover);border-radius:3px;height:10px;display:block;overflow:hidden}.rank-line .track i{background:var(--accent);border-radius:3px;height:100%;display:block}.rank-line>b{font:700 13.5px/1 var(--font);font-variant-numeric:tabular-nums;text-align:right}.rank-line>b.up{color:var(--red)}.wide-scroll{position:relative;overflow-x:auto}.wide-scroll table{min-width:100%}.wide-scroll th:first-child,.wide-scroll td:first-child{z-index:2;border-right:1px solid var(--line);white-space:nowrap;position:sticky;left:0;box-shadow:2px 0 6px #14100a0d}.wide-scroll th:last-child,.wide-scroll td:last-child{z-index:2;border-left:1px solid var(--line);position:sticky;right:0;box-shadow:-2px 0 6px #14100a0d}.wide-scroll td:first-child{background:var(--surface);font-weight:600}.wide-scroll td:last-child{background:var(--surface-sunken);font-weight:700}.wide-scroll th:first-child,.wide-scroll th:last-child{background:var(--hover)}.wide-scroll th.day{letter-spacing:.06em;padding:9px 10px;font-size:10.5px}.wide-scroll td.day{color:var(--tag-gray-fg);padding:9px 10px}.wide-scroll tr.total td{border-top:2px solid var(--ink);background:var(--hover)}.wide-scroll tr.total td:first-child,.wide-scroll tr.total td:last-child{background:var(--hover)}.notice{border-radius:var(--radius);background:var(--tag-amber-bg);color:var(--tag-amber-fg);padding:12px 16px;font-size:14px}.notice.error{background:var(--tag-red-bg);color:var(--tag-red-fg)}.empty,.empty-scope{text-align:center;color:var(--muted);padding:40px 18px}.dropzone{border:2px dashed var(--line-strong);background:var(--surface);text-align:center;border-radius:10px;flex-direction:column;align-items:center;gap:10px;padding:38px 24px;transition:border-color .15s,background .15s;display:flex}.dropzone.over{border-color:var(--accent);background:#fff9f0}.dropzone-icon{background:var(--tag-amber-bg);width:44px;height:44px;color:var(--tag-amber-fg);border-radius:10px;place-items:center;display:grid}.dropzone b{font:700 15px/1.3 var(--font)}.dropzone small{font:400 13px/1.4 var(--font);color:var(--muted)}.file-row{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);align-items:center;gap:12px;padding:14px 16px;display:flex}.file-kind{background:var(--hover);width:38px;height:38px;color:var(--tag-gray-fg);font:700 11px/1 var(--font-mono);text-transform:uppercase;border-radius:7px;flex:none;place-items:center;display:grid}.file-thumb{object-fit:cover;border:1px solid var(--line);background:var(--hover);border-radius:7px;flex:none;width:38px;height:38px}.file-row>span:nth-child(2){flex:1;min-width:0}.file-row b{font:600 13.5px/1.3 var(--font);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.file-row small{font:400 12px/1.3 var(--font);color:var(--muted);margin-top:2px;display:block}.progress{align-items:center;gap:10px;padding:0 2px;display:flex}.progress .bar{background:var(--hover);border-radius:3px;flex:1;height:6px;overflow:hidden}.progress .bar i{background:var(--accent);border-radius:3px;height:100%;display:block}.progress .pct{font:600 12.5px/1 var(--font);font-variant-numeric:tabular-nums;color:var(--muted)}.track-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.track-row .step{font:700 12.5px/1 var(--font);background:var(--surface);color:var(--faint-ink);border:1px solid var(--line);border-radius:20px;padding:8px 13px}.track-row .step.past{background:var(--hover);color:var(--tag-gray-fg);border-color:var(--line)}.track-row .step.now{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.track-row .arrow{color:var(--faint)}.doc-block>h3{font:700 14px/1 var(--font);margin:0 0 10px}.doc-meta{border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap;gap:24px;padding:14px 0;display:flex}.doc-meta dt{font:600 11px/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}.doc-meta dd{font:600 13.5px/1 var(--font);align-items:center;gap:7px;margin:0;display:flex}.checklist{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.checklist li{border-bottom:1px solid var(--line-soft);align-items:center;gap:11px;padding:12px 14px;display:flex}.checklist li:last-child{border-bottom:none}.checklist input{flex:none;width:17px;height:17px}.checklist span{font:500 14px/1.35 var(--font)}.checklist li.done span{color:var(--muted);text-decoration:line-through}.attach{flex-wrap:wrap;gap:10px;display:flex}.attach a{color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);font:500 13px/1 var(--font);align-items:center;gap:9px;padding:9px 12px;display:flex}.attach a:hover{background:var(--hover);color:var(--ink)}.attach .file-kind{border-radius:5px;width:26px;height:26px;font-size:9px}.feed{flex-direction:column;gap:16px;display:flex}.feed li{gap:12px;display:flex}.feed .avatar-sm{width:24px;height:24px;font-size:9.5px}.feed p{font:500 13.5px/1.4 var(--font);margin:0}.feed p b{font-weight:700}.feed time{font:400 12px/1 var(--font);color:var(--muted);font-variant-numeric:tabular-nums;margin-top:3px;display:block}.chat{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);height:calc(100vh - 148px);min-height:420px;display:flex;overflow:hidden}.chat-side{border-right:1px solid var(--line);flex-direction:column;flex:none;width:264px;min-height:0;display:flex}.chat-search{border-bottom:1px solid var(--line);padding:14px 16px}.chat-search input{border-radius:7px}.chat-rooms{flex:1;min-height:0;overflow-y:auto}.chat-room{text-align:left;border:none;border-bottom:1px solid var(--bg);background:var(--surface);width:100%;color:var(--ink);border-radius:0;align-items:flex-start;gap:10px;min-height:0;padding:12px 16px;text-decoration:none;display:flex}.chat-room:hover{background:var(--hover);color:var(--ink)}.chat-room.here{background:#fff9f0}.chat-room .avatar-sm{width:34px;height:34px;font-size:12px}.chat-room .avatar-sm.group{background:var(--hover);color:var(--tag-gray-fg)}.chat-room>span:last-child{flex:1;min-width:0}.chat-room .top,.chat-room .bottom{justify-content:space-between;gap:6px;display:flex}.chat-room .bottom{margin-top:3px}.chat-room .name{font:600 13.5px/1.2 var(--font);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-room .when{font:400 11.5px/1 var(--font);color:var(--faint-ink);flex:none}.chat-room .last{font:400 12.5px/1.3 var(--font);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-room .unread{font:700 10.5px/1 var(--font);background:var(--accent);color:var(--on-accent);border-radius:20px;flex:none;padding:2px 5px}.chat-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.chat-head{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:10px;height:56px;padding:0 20px;display:flex}.chat-head b{font:700 14px/1.2 var(--font);display:block}.chat-head small{font:400 12px/1 var(--font);color:var(--muted);display:block}.chat-thread{background:var(--bg);flex-direction:column;flex:1;gap:14px;min-height:0;padding:20px;display:flex;overflow-y:auto}.bubble{max-width:420px;font:400 14px/1.45 var(--font);background:var(--hover);color:var(--ink);border-radius:12px;align-self:flex-start;padding:10px 13px}.bubble.mine{background:var(--on-accent);color:#fff;align-self:flex-end}.bubble time{text-align:right;font:400 11px/1 var(--font);font-variant-numeric:tabular-nums;color:var(--faint-ink);margin-top:5px;display:block}.bubble.mine time{color:var(--side-muted)}.chat-input{border-top:1px solid var(--line);flex:none;align-items:center;gap:10px;height:64px;padding:0 16px;display:flex}.chat-input,.chat-send{align-items:center;gap:10px;width:100%;display:flex}.chat-input input,.chat-send input{border-radius:20px;flex:1;padding:10px 13px}.chat-input button,.chat-send button{background:var(--accent);border-color:var(--accent);width:38px;height:38px;color:var(--on-accent);border-radius:50%;flex:none;padding:0;font-size:15px}.chat-input button:hover,.chat-send button:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.calendar{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.calendar-week,.calendar-grid{grid-template-columns:repeat(7,1fr);display:grid}.calendar-week div{text-align:center;background:var(--hover);font:600 11px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);padding:9px 12px}.calendar-grid{grid-auto-rows:112px}.calendar-day{border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);flex-direction:column;gap:3px;padding:6px 7px;display:flex;overflow:hidden}.calendar-day:nth-child(7n){border-right:none}.calendar-day.outside{opacity:.45}.calendar-day .num{width:20px;height:20px;font:500 12.5px/1 var(--font);color:var(--muted);border-radius:50%;place-items:center;display:grid}.calendar-day.today .num{background:var(--accent);color:var(--on-accent);font-weight:700}.calendar-day a{font:600 10.5px/1.2 var(--font);background:var(--tag-amber-bg);color:var(--tag-amber-fg);text-overflow:ellipsis;white-space:nowrap;border-radius:3px;padding:2px 5px;overflow:hidden}.calendar-day a.late{background:var(--tag-red-bg);color:var(--tag-red-fg)}.calendar-day a.done{background:var(--tag-green-bg);color:var(--tag-green-fg)}.calendar-day .more{font:600 10.5px/1 var(--font);color:var(--muted);padding:1px 5px}@keyframes modal-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes modal-backdrop-out{0%{opacity:1}to{opacity:0}}@keyframes modal-card-in{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes modal-card-out{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(12px)scale(.97)}}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0e0e0d70;place-items:center;padding:20px;animation:.18s forwards modal-backdrop-in;display:grid;position:fixed;inset:0;overflow-y:auto}.modal-backdrop.closing{animation:.16s forwards modal-backdrop-out}.modal-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);flex-direction:column;max-height:calc(100vh - 40px);animation:.2s cubic-bezier(.2,.8,.3,1) forwards modal-card-in;display:flex}.modal-backdrop.closing .modal-card{animation:.16s forwards modal-card-out}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px 14px;display:flex}.modal-head h2{font:700 17px/1.3 var(--font);margin:0 0 2px}.modal-close{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);width:30px;height:30px;min-height:0;color:var(--muted);cursor:pointer;flex:none;justify-content:center;padding:0;font-size:19px;line-height:1}.modal-close:hover{background:var(--hover);color:var(--ink)}.modal-body{padding:18px 20px 20px;overflow-y:auto}.modal-body>.card{border:none}.outlet-switcher{width:auto;max-width:220px;min-height:34px;font-size:13px}.outlet-switcher:disabled{opacity:.6}@media (prefers-reduced-motion:reduce){.app-shell,.app-nav a,.app-nav button,.entity-card,button,.btn{transition:none}.modal-backdrop,.modal-backdrop.closing,.modal-card,.modal-backdrop.closing .modal-card{animation-duration:.01ms}}@media (max-width:900px){.app-shell{grid-template-columns:64px minmax(0,1fr)}.app-shell .app-logo,.app-shell .app-side-product,.app-shell .app-nav a span,.app-shell .app-nav button span,.app-shell .app-nav-badge,.app-shell .app-side-foot .sync-card,.app-shell .app-portal span{display:none}.app-shell .app-logo-mark{display:grid}.app-shell .app-nav-group{color:#0000;background:#2a2825;height:1px;margin:10px 8px;padding:0;overflow:hidden}.app-shell .app-side{padding:16px 12px}.app-shell .app-side-head{justify-content:center}.app-shell .app-nav a,.app-shell .app-nav button,.app-shell .app-portal{justify-content:center;padding:8px}.app-collapse,.app-user-name{display:none}.app-content{padding:20px 14px 36px}.app-top{padding:0 14px}.metrics,.metrics.compact{grid-template-columns:1fr}.card{overflow-x:auto}}.app-top h2{align-items:baseline;gap:10px;min-width:0;display:flex}.app-top-product{font:600 11px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);flex:none}.app-top-sep{background:var(--line);flex:none;width:1px;height:14px}.notice.warn{background:var(--tag-amber-bg);color:var(--tag-amber-fg)}.notice.info{background:var(--hover);color:var(--muted)}tr.excluded td{opacity:.45;text-decoration:line-through}.inline-form{align-items:center;gap:8px;display:flex}.inline-form input,.inline-form select{width:auto;min-width:120px}.auth{place-items:center;min-height:100vh;padding:20px;display:grid}.auth form{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);width:360px;max-width:100%;padding:28px}.auth h1{font:800 26px/1.15 var(--font);letter-spacing:-.02em}.auth-logo{font:800 26px/1 var(--font);letter-spacing:-.03em;color:var(--ink);align-items:center;margin-bottom:18px;display:flex}.auth-logo i{padding-right:6px;font-style:normal}.auth-logo b{background:var(--accent);color:var(--on-accent);border-radius:6px;padding:3px 8px 5px;font-weight:800}.auth h1{font:700 17px/1.3 var(--font);letter-spacing:0;margin:0 0 4px}.list-row .title small{font:400 12.5px/1.3 var(--font);color:var(--muted);margin-top:2px;display:block}.chart-grid{grid-template-columns:1fr 1fr;align-items:start;gap:16px;display:grid}.chart-grid .chart-card.wide{grid-column:span 2}@media (max-width:1000px){.chart-grid{grid-template-columns:1fr}.chart-grid .chart-card.wide{grid-column:auto}}.ui-select{width:100%;display:block;position:relative}.ui-select-trigger{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;min-height:38px;font:400 13.5px/1.3 var(--font);color:var(--ink);text-align:left;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.ui-select-trigger:hover{background:var(--surface);border-color:var(--line-strong)}.ui-select-trigger svg{color:var(--muted);flex:none}.ui-select-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ui-select-value.is-empty{color:var(--muted)}.ui-select.is-disabled .ui-select-trigger{background:var(--hover);color:var(--muted);cursor:not-allowed}.ui-select-trigger.is-search{cursor:text;border-color:var(--line-strong)}.ui-select-trigger.is-search:focus-within{border-color:var(--ink)}.ui-select .ui-select-search{width:100%;min-width:0;height:auto;min-height:0;box-shadow:none;font:inherit;color:var(--ink);background:0 0;border:none;border-radius:0;outline:none;flex:1;margin:0;padding:0}.ui-select .ui-select-search::placeholder{color:var(--muted);opacity:1}.ui-select.pill .ui-select-trigger.is-search{min-width:200px}.ui-select.pill{width:auto}.ui-select.pill .ui-select-trigger{border-radius:var(--radius);font:600 13.5px/1 var(--font);white-space:nowrap;padding:9px 12px}.ui-select.pill .ui-select-trigger:hover{background:var(--hover);border-color:var(--line)}.ui-select-list{z-index:1200;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);max-width:340px;max-height:288px;box-shadow:var(--shadow-pop);padding:6px;position:fixed;overflow-y:auto}.ui-select-list button{text-align:left;border-radius:var(--radius-sm);width:100%;min-height:34px;font:400 13.5px/1.3 var(--font);color:var(--ink);white-space:normal;background:0 0;border:none;justify-content:space-between;align-items:center;gap:10px;padding:7px 10px;display:flex}.ui-select-list button.active{background:var(--hover)}.ui-select-list button.here{font-weight:600}.ui-select-list button.here svg{color:var(--accent-active);flex:none}.ui-select-list button small{color:var(--muted);margin-top:2px;font-size:12px;display:block}.ui-select-empty{color:var(--muted);text-align:center;margin:0;padding:10px;font-size:13px}.filters .ui-select{width:auto;min-width:170px}.filters .ui-select .ui-select-trigger{border-radius:var(--radius)}.auth-loading{background:var(--side-bg);align-content:center;place-items:center;gap:14px;min-height:100vh;display:grid}.auth-loading .auth-logo{color:#fff;margin:0}.auth-loading p{color:var(--side-muted);margin:0;font-size:13px}.password-field .password-row{align-items:stretch;gap:8px;display:flex}.password-field .password-row input{min-width:0;font-family:var(--font-mono);letter-spacing:.02em;flex:1;font-size:13px}.password-field .password-row button{white-space:nowrap;flex:none}.password-field small{color:var(--muted);margin-top:6px;font-size:12px;display:block}.credentials{background:var(--hover);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px;padding:14px 16px}.credentials dt{font:600 11px/1 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.credentials dd{font:600 14px/1.3 var(--font-mono);word-break:break-all;margin:0 0 12px}.credentials dd:last-child{margin-bottom:0}.skeleton{background:linear-gradient(90deg, var(--hover) 25%, var(--line-soft) 37%, var(--hover) 63%);background-size:400% 100%;animation:1.4s ease-in-out infinite skeleton-sweep;display:block}@keyframes skeleton-sweep{0%{background-position:100%}to{background-position:0}}.skeleton-page{flex-direction:column;gap:18px;display:flex}.skeleton-heading{flex-direction:column;gap:10px;margin-bottom:4px;display:flex}.skeleton-table{padding:0;overflow:hidden}.skeleton-row{border-bottom:1px solid var(--line-soft);grid-template-columns:1.6fr 1fr 1fr 1fr 1fr;align-items:center;gap:16px;padding:13px 16px;display:grid}.skeleton-row:last-child{border-bottom:none}.skeleton-rows{display:block}.skeleton-row-head{background:var(--hover);padding:11px 16px}.skeleton-page .metric .skeleton:nth-child(2){margin:6px 0 4px}.skeleton-page .entity-card .skeleton+.skeleton{margin-top:8px}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.app-content>*{animation:.22s ease-out backwards fade-up}.app-content>:nth-child(2){animation-delay:40ms}.app-content>:nth-child(3){animation-delay:80ms}.app-content>:nth-child(4){animation-delay:.12s}.app-content>:nth-child(n+5){animation-delay:.16s}.app-nav a .app-nav-bar{background:var(--on-accent);opacity:.45;transform-origin:0;border-radius:2px;height:2px;animation:1.1s ease-out infinite nav-progress;position:absolute;bottom:3px;left:10px;right:10px}@keyframes nav-progress{0%{opacity:.55;transform:scaleX(.05)}to{opacity:.15;transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){.skeleton,.app-content>*,.app-nav a .app-nav-bar{animation:none}}.segmented{grid-template-columns:repeat(var(--count), minmax(0, 1fr));background:var(--side-bg);border-radius:999px;width:fit-content;max-width:100%;padding:4px;display:grid;position:relative}.segmented-thumb{width:calc((100% - 8px) / var(--count));background:var(--accent);transform:translateX(calc(var(--index) * 100%));border-radius:999px;transition:transform .55s cubic-bezier(.22,.68,.18,1);position:absolute;top:4px;bottom:4px;left:4px}.segmented button{z-index:1;min-height:32px;font:500 13.5px/1 var(--font);color:var(--side-ink);white-space:nowrap;text-align:center;background:0 0;border:none;border-radius:999px;justify-content:center;align-items:center;padding:7px 16px;transition:color .3s;display:flex;position:relative}.segmented button:hover{color:#fff;background:0 0}.segmented button[aria-selected=true]{color:var(--on-accent);font-weight:700}.segmented button[aria-selected=true]:hover{color:var(--on-accent)}@media (prefers-reduced-motion:reduce){.segmented-thumb{transition:none}}@media (max-width:640px){.segmented button{padding:7px 10px;font-size:12.5px}}.jump-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);justify-content:space-between;align-items:center;gap:14px;padding:16px 18px;text-decoration:none;transition:background .15s,border-color .15s;display:flex}.jump-card:hover{background:var(--hover);border-color:var(--line-strong);color:var(--ink)}.jump-card b{font:700 15px/1.2 var(--font);display:block}.jump-card small{font:400 13px/1.3 var(--font);color:var(--muted);margin-top:3px;display:block}.jump-card em{color:var(--accent-active);font-size:18px;font-style:normal}.period-switch{flex-wrap:wrap;align-items:center;gap:10px;margin:16px 0 18px;display:flex}.period-switch .row{flex-basis:100%;gap:8px}.period-switch>button{min-height:36px;font:500 13.5px/1 var(--font);border-radius:999px;padding:8px 14px}.period-switch>button.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.charts-row{grid-template-columns:2fr 1fr;align-items:stretch;gap:16px;margin-top:16px;display:grid}.charts-row>.card{flex-direction:column;display:flex}.charts-row>.card>.body{flex-direction:column;flex:1;justify-content:center;display:flex}.charts-row+*{margin-top:16px}@media (max-width:900px){.charts-row{grid-template-columns:1fr}}.period-pending{background:var(--line);border-radius:2px;height:2px;display:block;overflow:hidden}.period-pending i{background:var(--accent);border-radius:2px;width:40%;height:100%;animation:1.1s ease-in-out infinite period-sweep;display:block}@keyframes period-sweep{0%{transform:translate(-100%)}to{transform:translate(350%)}}.app-content:has(.period-pending) .kpi-row{opacity:.45;pointer-events:none;transition:opacity .18s}.app-content:has(.period-pending) .charts-row{opacity:.45;pointer-events:none;transition:opacity .18s}.app-content:has(.period-pending) .jump-card{opacity:.45;pointer-events:none;transition:opacity .18s}.app-content:has(.period-pending) .metrics{opacity:.45;pointer-events:none;transition:opacity .18s}.app-content:has(.period-pending) .period-switch~.card{opacity:.45;pointer-events:none;transition:opacity .18s}.app-content:has(.period-pending) .period-switch~section{opacity:.45;pointer-events:none;transition:opacity .18s}@media (prefers-reduced-motion:reduce){.period-pending i{width:100%;animation:none}}.chart-card{position:relative}.chart-tip{z-index:5;pointer-events:none;background:var(--ink);min-width:150px;color:var(--surface);box-shadow:var(--shadow-pop);font:400 12.5px/1.5 var(--font);border-radius:9px;padding:9px 11px;position:absolute}.chart-tip b{font:700 12.5px/1.2 var(--font);margin-bottom:5px;display:block}.chart-tip span{white-space:nowrap;align-items:baseline;gap:7px;display:flex}.chart-tip i{border-radius:2px;flex:none;width:8px;height:8px}.chart-tip .chart-tip-label{opacity:.72;flex:auto}.chart-tip em{font-variant-numeric:tabular-nums;flex:none;font-style:normal;font-weight:700}.chart-card .hover-line{stroke:var(--muted);stroke-width:1px;stroke-dasharray:3 3}.chart-card .hover-dot{stroke:var(--surface);stroke-width:2px}.chart-card svg.interactive{cursor:crosshair}th.sortable{padding:0}th.sortable>button{cursor:pointer;width:100%;min-height:0;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;text-align:inherit;background:0 0;border:none;align-items:center;gap:5px;margin:0;padding:10px 16px;display:flex}th.sortable.num>button{justify-content:flex-end}th.sortable>button:hover,th.sortable.sorted>button{color:var(--ink)}:root{--sort-both:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 12'%3E%3Cpath d='M4 .5 7.5 4.6H.5zM4 11.5.5 7.4h7z'/%3E%3C/svg%3E");--sort-desc:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 12'%3E%3Cpath d='M5 1v9.2M1.4 6.8 5 10.4l3.6-3.6' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");--sort-asc:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 12'%3E%3Cpath d='M5 11V1.8M1.4 5.2 5 1.6l3.6 3.6' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}:where(th.sortable .arrow),:where(table:not([data-nosort])>thead th:not(.sortable):not([data-nosort]):not(:empty):not(:has(input))):after{content:"";vertical-align:-1px;opacity:.25;width:9px;height:11px;-webkit-mask:var(--sort-both) center / contain no-repeat;-webkit-mask:var(--sort-both) center / contain no-repeat;-webkit-mask:var(--sort-both) center / contain no-repeat;-webkit-mask:var(--sort-both) center / contain no-repeat;mask:var(--sort-both) center / contain no-repeat;background-color:currentColor;flex:none;margin-left:5px;display:inline-block}:where(table:not([data-nosort])>thead th:not(.sortable):not([data-nosort]):not(:empty):not(:has(input))){cursor:pointer;-webkit-user-select:none;user-select:none}:where(table:not([data-nosort])>thead th:not(.sortable):not([data-nosort]):not(:empty):not(:has(input))):hover{color:var(--ink)}:where(th.sortable>button:hover .arrow),:where(table:not([data-nosort])>thead th:not(.sortable):not([data-nosort]):not(:empty):not(:has(input))):hover:after{opacity:.6}th.sortable .arrow.desc,th.sortable .arrow.asc,table>thead th[data-sort-dir]:after{background-color:var(--accent);opacity:1}th.sortable .arrow.desc,table>thead th[data-sort-dir=desc]:after{-webkit-mask-image:var(--sort-desc);-webkit-mask-image:var(--sort-desc);-webkit-mask-image:var(--sort-desc);-webkit-mask-image:var(--sort-desc);mask-image:var(--sort-desc)}th.sortable .arrow.asc,table>thead th[data-sort-dir=asc]:after{-webkit-mask-image:var(--sort-asc);-webkit-mask-image:var(--sort-asc);-webkit-mask-image:var(--sort-asc);-webkit-mask-image:var(--sort-asc);mask-image:var(--sort-asc)}table>thead th[data-sort-dir]{color:var(--ink)}button.inline-expand{min-height:0;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:0;display:inline-flex}button.inline-expand .caret{opacity:.45;border-top:5px solid;border-left:4px solid #0000;border-right:4px solid #0000;flex:none;width:0;height:0;transition:transform .18s}button.inline-expand .caret.up{opacity:1;transform:rotate(180deg)}button.inline-expand:hover .caret{opacity:1}tr.expanded>td{background:var(--hover)}tr.expansion>td{background:var(--hover);padding:0}.recipe-inside{padding:14px 18px 16px;font-size:13px}.recipe-inside>b{margin-bottom:4px;display:block}.recipe-inside>p{max-width:72ch;color:var(--muted);margin:0;line-height:1.5}.recipe-inside.error{color:var(--red)}.recipe-inside table.inner{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);font-size:13px;overflow:hidden}.recipe-inside table.inner th{background:var(--surface);padding:7px 12px;font-size:10px}.recipe-inside table.inner td{padding:7px 12px}.recipe-inside table.inner tr:hover>td{background:var(--hover)}.recipe-inside table.inner tr.blocked>td{background:var(--amber-soft,#ff900012)}.recipe-inside table.inner tr.blocked>td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.recipe-inside table.inner small{color:var(--muted);margin-top:2px;font-size:11.5px;display:block}.recipe-inside-total{max-width:80ch;color:var(--muted);margin:10px 0 0;line-height:1.5}.recipe-inside-total b{color:var(--ink)}.charts-row.single{grid-template-columns:1fr}.store-line{cursor:default;grid-template-columns:minmax(90px,160px) 1fr auto 48px;align-items:center;gap:12px;padding:7px 0;transition:opacity .15s;display:grid}.store-line+.store-line{border-top:1px solid var(--line-soft)}.store-line .store-name{font-size:13.5px;font-weight:600}.store-line .store-track{background:var(--hover);border-radius:4px;height:8px;overflow:hidden}.store-line .store-track i{background:var(--accent);border-radius:4px;height:100%;transition:width .25s;display:block}.store-line b{font-variant-numeric:tabular-nums;font-size:13.5px}.store-line em{color:var(--muted);text-align:right;font-size:12.5px;font-style:normal}.hours-chart svg{width:100%;height:auto;display:block}.metric-settings{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;padding:18px;display:grid}.metric-settings-group h3{font:600 11px/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}.metric-settings label{cursor:pointer;align-items:flex-start;gap:10px;padding:7px 0;display:flex}.metric-settings label input{width:15px;height:15px;accent-color:var(--accent);margin:2px 0 0}.metric-settings label b{font-size:13.5px;font-weight:600;display:block}.metric-settings label small{color:var(--muted);font-size:12px;line-height:1.4;display:block}.metric-settings label:hover b{color:var(--accent-active)}.app-shell[data-readonly] .writes{display:none!important}.readonly-banner{border:1px solid var(--line);border-radius:var(--radius);background:var(--hover);color:var(--muted);font:500 13px/1.4 var(--font);margin:0 0 16px;padding:9px 14px}.app-shell[data-readonly] .writes-lock{pointer-events:none}.app-shell[data-readonly] .writes-lock :is(input,button,select,.ui-select){opacity:.6}.activity-dock{z-index:1000;pointer-events:none;flex-direction:column;gap:8px;width:300px;max-width:calc(100vw - 36px);display:flex;position:fixed;bottom:18px;right:18px}.activity-item{pointer-events:auto;background:var(--side-bg);color:#fff;border-radius:12px;padding:10px 12px 11px;animation:.18s ease-out activity-in;box-shadow:0 8px 28px #0e0e0d47}.activity-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.activity-head b{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.activity-head span{color:var(--accent);font-variant-numeric:tabular-nums;font-size:12px}.activity-head button{color:var(--side-muted);cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:16px;line-height:1}.activity-item small{color:var(--side-ink);margin-top:3px;font-size:12px;display:block}.activity-item.succeeded small{color:#8fd3a8}.activity-item.failed small{color:#f0a08f}.activity-bar{background:var(--side-line);border-radius:3px;height:3px;margin-top:8px;display:block;position:relative;overflow:hidden}.activity-bar em{background:var(--accent);border-radius:3px;height:100%;transition:width .6s;display:block}.activity-bar.indeterminate em{width:35%;animation:1.2s ease-in-out infinite activity-slide}.activity-item.loading{padding:8px 12px 9px}@keyframes activity-slide{0%{transform:translate(-100%)}to{transform:translate(290%)}}@keyframes activity-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.activity-item{animation:none}.activity-bar.indeterminate em{opacity:.5;width:100%;animation:none}}td.cell-editable{padding:0;position:relative}.cell-editable-btn{width:100%;color:inherit;font:inherit;text-align:right;cursor:pointer;background:0 0;border:0;border-radius:0;padding:8px 12px;transition:background .12s;display:block}.cell-editable-btn:hover{background:var(--hover)}.cell-editable-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.cell-editable:after{content:"";background:var(--accent);opacity:.55;border-radius:50%;width:4px;height:4px;position:absolute;top:6px;right:6px}.cell-popup-veil{z-index:60;position:fixed;inset:0}.cell-popup{z-index:61;background:var(--surface);border:1px solid var(--line-strong);border-radius:12px;animation:.14s ease-out cell-popup-in;position:fixed;box-shadow:0 12px 32px #0e0e0d2e}.cell-popup-head{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;padding:10px 12px;font-size:13px;display:flex}.cell-popup-head button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:18px;line-height:1}.cell-popup-list{max-height:320px;margin:0;padding:6px 4px;list-style:none;overflow:auto}.cell-popup-list li{border-radius:8px;padding:8px 10px}.cell-popup-list li:hover{background:var(--surface-sunken)}.cell-popup-list li+li{margin-top:2px}.cell-popup-line{justify-content:space-between;align-items:center;gap:8px;display:flex}.cell-popup-list small{color:var(--muted);margin-top:2px;font-size:12px;display:block}@keyframes cell-popup-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.cell-popup{animation:none}.cell-editable-btn{transition:none}}.notif-bell{width:44px;height:44px;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;justify-content:center;align-items:center;transition:background .12s,border-color .12s;display:inline-flex;position:relative}.notif-bell svg{flex:none;width:24px;height:24px}.notif-bell:hover{background:var(--hover);border-color:var(--line)}.notif-bell:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.notif-badge{background:var(--accent);min-width:20px;height:20px;color:var(--on-accent);font:700 12px/20px var(--font);text-align:center;box-shadow:0 0 0 2px var(--surface);border-radius:999px;padding:0 6px;font-style:normal;position:absolute;top:0;right:0}.notif-veil{z-index:60;position:fixed;inset:0}.notif-panel{z-index:61;background:var(--surface);border:1px solid var(--line-strong);border-radius:14px;width:340px;max-width:calc(100vw - 24px);animation:.16s ease-out notif-in;position:fixed;overflow:hidden;box-shadow:0 12px 32px #0e0e0d33}.notif-head{border-bottom:1px solid var(--line-soft);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.notif-head button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:20px;line-height:1}.notif-empty{text-align:center;color:var(--muted);padding:24px 14px;font-size:13px}.notif-list{max-height:360px;margin:0;padding:4px 0;list-style:none;overflow:auto}.notif-list li{padding:0}.notif-list li a,.notif-list li>b{color:inherit;border-left:2px solid #0000;padding:10px 14px;text-decoration:none;transition:background .12s;display:block}.notif-list li a:hover{background:var(--surface-sunken)}.notif-list li:not(.read) a,.notif-list li:not(.read)>b{border-left-color:var(--accent)}.notif-list li.read{opacity:.6}.notif-list .notif-line{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;justify-content:space-between;align-items:center;gap:8px;font-size:11px;display:flex}.notif-dot{background:var(--accent);border-radius:50%;width:6px;height:6px;display:inline-block}.notif-list b{margin-top:2px;font-size:13px;font-weight:600;display:block}.notif-list .notif-body{color:var(--muted);margin-top:2px;font-size:12px;display:block}.notif-footer{text-align:center;color:var(--accent-active);border-top:1px solid var(--line-soft);padding:10px 14px;font-size:13px;text-decoration:none;display:block}.notif-footer:hover{background:var(--surface-sunken)}@keyframes notif-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.notif-panel{animation:none}.notif-bell{transition:none}}@media print{body{background:#fff}.app-shell{display:block}.app-side,.app-top,.activity-dock,.notif-bell,.period-switch,.writes,.row-menu,.refresh,.btn{display:none!important}.app-main{display:block}.app-content{padding:12px}.card{box-shadow:none;break-inside:avoid;border:1px solid #d8d4cb}table{break-inside:auto}tr{break-inside:avoid}.kpi-row{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.metrics{grid-template-columns:repeat(4,1fr)}a{color:inherit;text-decoration:none}@page{size:A4;margin:12mm}}.risk-review{display:inline-block;position:relative}.risk-review>button{cursor:pointer;font:inherit;border:0;padding:3px 8px 3px 10px}.risk-review>button em{opacity:.6;margin-left:6px;font-style:normal}.risk-review>button:disabled{opacity:.5;cursor:default}.risk-review-menu{z-index:40;background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;min-width:170px;padding:4px;animation:.12s ease-out notif-in;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 8px 24px #0e0e0d1f}.risk-review-menu button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;width:100%;padding:6px 8px;display:block}.risk-review-menu button:hover{background:var(--surface-sunken)}.risk-review-menu button.here{background:var(--hover)}.app-top{flex-wrap:wrap;row-gap:8px;padding-block:8px}.app-top-tools{flex-wrap:wrap;justify-content:flex-end;row-gap:8px;min-width:0}@media (max-width:1400px){.app-user-name{display:none}}.activity-head span{margin-left:auto}.portal{min-height:100vh}.portal-content{max-width:960px;margin:0 auto}.app-logo.on-light{color:var(--ink)}.portal-top{justify-content:space-between}.portal-nav{align-items:center;gap:16px;display:flex}.portal-link{font:600 13.5px/1 var(--font);color:var(--muted);white-space:nowrap}.portal-link:hover{color:var(--accent-active)}.portal-link.here{color:var(--ink);border-bottom:2px solid var(--ink);margin-bottom:-21px;padding-bottom:20px;font-weight:700}.portal-link.here:hover{color:var(--ink)}.portal-link{position:relative}.portal-link .app-nav-bar{background:var(--accent);transform-origin:0;border-radius:2px;height:2px;animation:1.1s ease-out infinite nav-progress;position:absolute;bottom:-6px;left:0;right:0}.portal-link.here .app-nav-bar{bottom:-2px}@media (prefers-reduced-motion:reduce){.portal-link .app-nav-bar{animation:none}}.portal-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:20px;display:flex}.portal-head h1{margin:0}.portal-divider{background:var(--line);width:1px;height:26px}.connection-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:32px;padding:18px 20px;display:flex}.connection-card b{font:700 15px/1 var(--font);margin-bottom:6px;display:block}.connection-card .addr{font:400 13.5px/1.4 var(--font-mono);color:var(--muted)}.connection-card .state{font:400 13.5px/1.4 var(--font);color:var(--muted)}.connection-card .state.bad{color:var(--red)}.portal-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.portal-card{background:var(--surface);border:1px solid var(--line);color:var(--ink);border-radius:10px;flex-direction:column;gap:14px;padding:20px;transition:background .15s,border-color .15s;display:flex}.portal-card:hover{background:var(--hover);border-color:var(--line-strong);color:var(--ink)}.portal-card-icon{background:var(--on-accent);width:44px;height:44px;color:var(--accent);border-radius:9px;place-items:center;display:grid}.portal-card b{font:700 16px/1.2 var(--font);margin-bottom:5px;display:block}.portal-card small{font:400 13px/1.45 var(--font);color:var(--muted);display:block}@media (max-width:860px){.portal-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.portal-nav{flex-wrap:wrap;gap:8px 10px;min-width:0}.portal-divider{display:none}}.user-cell{align-items:center;gap:10px;min-width:0;display:flex}.user-cell b{font-weight:600;display:block}.user-cell small{font:400 12.5px/1.3 var(--font);color:var(--muted);margin-top:2px;display:block}
