@font-face{font-family:IBM Plex Sans;src:url(/fonts/ibm-plex-sans-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/ibm-plex-sans-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/fonts/ibm-plex-sans-600.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}:root{--font:"IBM Plex Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--radius-sm:6px;--radius-md:10px;--radius-card:12px;--radius-lg:14px;--radius-full:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--text-h1:28px;--text-h2:22px;--text-title:16px;--text-body:14px;--text-caption:12px;--anim-fast:.12s;--anim-medium:.16s;--anim-deliberate:.24s;--sidebar-width:256px;--topbar-height:60px;--control-height:40px}:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#e6eae8;--surface:#f8faf9;--surface-hover:#fcfdfc;--surface-pressed:#edf0ee;--selected:#dce9e6;--border:#d6dcd8;--border-strong:#b6bfba;--control-border:#859089;--focus:#1f847a;--text:#1c2622;--text-2:#46524c;--text-3:#5f6b63;--on-accent:#fff;--accent:#156c63;--accent-hover:#0f5b52;--accent-pressed:#0a453e;--accent-soft:#e2efec;--success:#3e8c6b;--success-text:#2d7355;--success-soft:#e3f1ea;--warning:#b9772a;--warning-text:#8f5a1c;--warning-soft:#f6ecdd;--danger:#c2503c;--danger-text:#a8402e;--danger-soft:#f8e8e4;--info:#1f847a;--info-text:#17695f;--info-soft:#dfefec;--bar-idle:#bad6d2;--shadow-sm:0 1px 2px #14203a0f;--shadow-md:0 2px 8px #14203a14;--shadow-lg:0 12px 32px #14203a24;--scrim:#141c1a70}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1318;--surface:#151b22;--surface-hover:#212c37;--surface-pressed:#11171d;--selected:#1d3035;--border:#2a3742;--border-strong:#3c4c5a;--control-border:#64768a;--focus:#4fb3a8;--text:#f3f6f9;--text-2:#c2cdd7;--text-3:#94a2af;--on-accent:#06201d;--accent:#4fb3a8;--accent-hover:#67c6bb;--accent-pressed:#1f847a;--accent-soft:#1c3236;--success:#74b79a;--success-text:#8fcab0;--success-soft:#1a2f28;--warning:#e0a458;--warning-text:#e8b673;--warning-soft:#33291a;--danger:#e0705e;--danger-text:#ec8b7b;--danger-soft:#38211d;--info:#4fb3a8;--info-text:#74c8be;--info-soft:#1a3034;--bar-idle:#2c5858;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 2px 8px #0006;--shadow-lg:0 12px 32px #00000080;--scrim:#0009}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--text-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;line-height:1.45}h1,h2,h3,h4,p{margin:0}h1{font-size:var(--text-h1);letter-spacing:-.01em;font-weight:600;line-height:1.2}h2{font-size:var(--text-h2);font-weight:600;line-height:1.25}h3{font-size:var(--text-title);font-weight:600;line-height:1.3}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}:focus{outline:none}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.muted{color:var(--text-2)}.subtle{color:var(--text-3)}.caption{font-size:var(--text-caption)}.mono{font-family:var(--font-mono);letter-spacing:.04em}.nowrap{white-space:nowrap}.tnum{font-variant-numeric:tabular-nums}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stack{gap:var(--space-4);flex-direction:column;display:flex}.stack-lg{gap:var(--space-6);flex-direction:column;display:flex}.stack-sm{gap:var(--space-2);flex-direction:column;display:flex}.row{align-items:center;gap:var(--space-3);display:flex}.row-wrap{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.spacer{flex:auto}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important}}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-height);padding:0 var(--space-4);border-radius:var(--radius-md);font-size:var(--text-body);white-space:nowrap;transition:background-color var(--anim-fast) ease-out, border-color var(--anim-fast) ease-out, color var(--anim-fast) ease-out;background:0 0;border:1px solid #0000;font-weight:500;line-height:1;text-decoration:none;display:inline-flex}.btn:disabled{opacity:.55}.btn.is-busy{opacity:.85}.btn-sm{min-height:32px;padding:0 var(--space-3);border-radius:8px;font-size:13px}.btn-primary{background:var(--accent);color:var(--on-accent);font-weight:600}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:active:not(:disabled){background:var(--accent-pressed)}.btn-secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn-secondary:hover:not(:disabled){background:var(--surface-pressed)}.btn-ghost{color:var(--text-2)}.btn-ghost:hover:not(:disabled){background:var(--surface-pressed);color:var(--text)}.btn-danger{background:var(--danger);color:#fff;font-weight:600}[data-theme=dark] .btn-danger{color:#1d0e0b}.btn-danger:hover:not(:disabled){filter:brightness(.93)}.btn-danger-ghost{color:var(--danger-text)}.btn-danger-ghost:hover:not(:disabled){background:var(--danger-soft)}.icon-btn{border-radius:var(--radius-md);width:36px;height:36px;color:var(--text-2);transition:background-color var(--anim-fast) ease-out;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.icon-btn:hover:not(:disabled){background:var(--surface-pressed);color:var(--text)}.icon-btn:disabled{opacity:.4}.icon-btn-dot{border-radius:var(--radius-full);background:var(--danger);width:8px;height:8px;box-shadow:0 0 0 2px var(--surface);position:absolute;top:7px;right:7px}.link-quiet{color:inherit;text-decoration:none}.link-quiet:hover{color:var(--accent);text-decoration:underline}.link{color:var(--accent);background:0 0;border:0;padding:0;font-weight:500;text-decoration:none}.link:hover{text-decoration:underline}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:15px;height:15px;animation:.7s linear infinite spin;display:inline-block}.spinner-lg{width:26px;height:26px;color:var(--accent);border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.loading-block{justify-content:center;align-items:center;min-height:220px;display:flex}.skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--surface-pressed), var(--border), var(--surface-pressed));background-size:200% 100%;animation:1.4s ease-in-out infinite shimmer;display:block}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.skeleton-rows{padding:var(--space-2) var(--space-5);flex-direction:column;display:flex}.skeleton-row{align-items:center;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--border);grid-template-columns:36px 1fr 120px;display:grid}.skeleton-row:last-child{border-bottom:0}.skeleton-circle{border-radius:50%;width:36px;height:36px}.skeleton-line{height:12px}.skeleton-short{width:60%}.skeleton-tall{height:26px;margin-top:var(--space-2);width:45%}.skeleton-tile{border-radius:var(--radius-md);width:48px;height:48px}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field-label{color:var(--text);font-size:13px;font-weight:500}.field-required{color:var(--danger-text)}.field-hint{font-size:var(--text-caption);color:var(--text-3)}.field-message{font-size:var(--text-caption);color:var(--danger-text)}.field-error .input{border-color:var(--danger)}.input{width:100%;min-height:var(--control-height);padding:0 var(--space-3);border:1px solid var(--control-border);border-radius:var(--radius-md);background-color:var(--surface-hover);color:var(--text);transition:border-color var(--anim-fast) ease-out, box-shadow var(--anim-fast) ease-out}[data-theme=dark] .input{background-color:var(--surface-pressed)}.input::placeholder{color:var(--text-3)}.input:hover:not(:disabled){border-color:var(--text-2)}.input:focus,.input:focus-visible{border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb, var(--focus) 22%, transparent);outline:none}.input:disabled{opacity:.6}.textarea{min-height:84px;padding:var(--space-2) var(--space-3);resize:vertical;line-height:1.45}.select{appearance:none;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='%236b776f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:34px}[data-theme=dark] .select{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='%2394a2af' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}.code-input{font-family:var(--font-mono);letter-spacing:.4em;text-align:center;min-height:52px;font-size:22px}.form-grid{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.form-error{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger-text);font-size:13px}input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);vertical-align:middle;margin:0}.search{flex:260px;min-width:180px;max-width:380px;position:relative}.search-icon{color:var(--text-3);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-input{padding-left:36px;padding-right:32px}.search-input::-webkit-search-cancel-button{display:none}.search-clear{border-radius:var(--radius-sm);color:var(--text-3);background:0 0;border:0;padding:6px;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.search-clear:hover{background:var(--surface-pressed);color:var(--text)}.chips{border-radius:var(--radius-md);background:var(--surface-pressed);flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.field .chips{align-self:flex-start}.chip{min-height:32px;padding:0 var(--space-3);color:var(--text-2);white-space:nowrap;background:0 0;border:0;border-radius:8px;align-items:center;gap:6px;font-size:13px;font-weight:500;display:inline-flex}.chip:hover{color:var(--text)}.chip-active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}[data-theme=dark] .chip-active{background:var(--surface-hover)}.chip-count{color:var(--text-3);font-size:12px}.badge{border-radius:var(--radius-full);font-size:var(--text-caption);white-space:nowrap;align-items:center;gap:5px;padding:2px 9px;font-weight:500;line-height:18px;display:inline-flex}.badge-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.badge-neutral{background:var(--surface-pressed);color:var(--text-2)}[data-theme=dark] .badge-neutral{background:var(--surface-hover)}.badge-accent{background:var(--accent-soft);color:var(--accent)}[data-theme=dark] .badge-accent{color:var(--accent-hover)}.badge-info{background:var(--info-soft);color:var(--info-text)}.badge-success{background:var(--success-soft);color:var(--success-text)}.badge-warning{background:var(--warning-soft);color:var(--warning-text)}.badge-danger{background:var(--danger-soft);color:var(--danger-text)}.avatar{background:var(--accent);color:var(--on-accent);letter-spacing:.02em;border-radius:50%;flex:none;justify-content:center;align-items:center;font-weight:600;display:inline-flex}[data-theme=dark] .avatar{background:var(--accent-soft);color:var(--accent-hover)}.avatar-28{width:28px;height:28px;font-size:11px}.avatar-32{width:32px;height:32px;font-size:12px}.avatar-36{width:36px;height:36px;font-size:13px}.avatar-44{width:44px;height:44px;font-size:15px}.avatar-56{width:56px;height:56px;font-size:19px}.person{align-items:center;gap:var(--space-3);min-width:0;display:flex}.person-text{flex-direction:column;min-width:0;display:flex}.person-name{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.person-sub{font-size:var(--text-caption);color:var(--text-2)}.card{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface)}.card-padded{padding:var(--space-5) var(--space-6)}.card-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-4);display:flex}.card-header-text{min-width:0}.card-subtitle{margin-top:2px;font-size:13px}.card-header-action{flex:none}.kpi-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(230px,1fr));display:grid}.kpi{align-items:center;gap:var(--space-4);padding:var(--space-5);min-width:0;display:flex}.kpi-icon{border-radius:var(--radius-md);flex:none;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.kpi-icon-accent{background:var(--accent-soft);color:var(--accent)}.kpi-icon-warning{background:var(--warning-soft);color:var(--warning)}.kpi-icon-danger{background:var(--danger-soft);color:var(--danger)}.kpi-icon-success{background:var(--success-soft);color:var(--success)}.kpi-text{flex-direction:column;flex:1;min-width:0;display:flex}.kpi-grid:has(.kpi-hint) .kpi-text{justify-content:center;min-height:69px}.kpi-label{color:var(--text-2);font-size:13px}.kpi-value{font-size:26px;font-weight:600;line-height:1.25}.kpi-unit{color:var(--text-2);font-size:14px;font-weight:400}.kpi-hint{font-size:var(--text-caption);color:var(--text-2)}.meter{border-radius:var(--radius-full);background:var(--border);width:100%;height:6px;overflow:hidden}.meter-fill{border-radius:inherit;height:100%;transition:width var(--anim-deliberate) ease-out;display:block}.meter-fill-accent{background:var(--accent)}.meter-fill-warning{background:var(--warning)}.meter-fill-danger{background:var(--danger)}.notice{align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid #0000;font-size:13px;display:flex}.notice-icon{flex:none;margin-top:1px}.notice-text{flex:1;min-width:0}.notice-title{font-weight:600;display:block}.notice-action{flex:none;align-self:center}.notice-info{background:var(--info-soft);border-color:color-mix(in srgb, var(--info) 25%, transparent);color:var(--info-text)}.notice-warning{background:var(--warning-soft);border-color:color-mix(in srgb, var(--warning) 30%, transparent);color:var(--warning-text)}.notice-danger{background:var(--danger-soft);border-color:color-mix(in srgb, var(--danger) 30%, transparent);color:var(--danger-text)}.notice-success{background:var(--success-soft);border-color:color-mix(in srgb, var(--success) 30%, transparent);color:var(--success-text)}.table-block{min-width:0}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--text-body)}.table th{padding:10px var(--space-4);border-bottom:1px solid var(--border);color:var(--text-2);font-size:var(--text-caption);text-align:left;white-space:nowrap;font-weight:500}.table th:first-child,.table td:first-child{padding-left:var(--space-6)}.table th:last-child,.table td:last-child{padding-right:var(--space-6)}.table td{padding:11px var(--space-4);border-bottom:1px solid var(--border);vertical-align:middle}.table tbody tr:last-child td{border-bottom:0}.align-right{text-align:right!important}.align-center{text-align:center!important}.row-clickable{cursor:pointer}.row-chevron{width:36px;height:36px;color:var(--text-3);vertical-align:middle;justify-content:center;align-items:center;display:inline-flex}.table tbody tr{transition:background-color var(--anim-fast) ease-out}.row-clickable:hover{background:var(--surface-pressed)}.row-selected{background:var(--selected)!important}.table-check{width:44px;padding-right:0!important}.check-hit{cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.th-sort{color:inherit;font:inherit;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.th-sort:hover,.th-sort-active{color:var(--text)}.th-sort-idle{opacity:.45}.align-right .th-sort{flex-direction:row-reverse}.pager{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4) var(--space-2) var(--space-6);border-top:1px solid var(--border);display:flex}.toolbar{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.selection-bar{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-6);background:var(--selected);border-bottom:1px solid var(--border);flex-wrap:wrap;font-size:13px;font-weight:500;display:flex}.empty{align-items:center;gap:var(--space-2);padding:var(--space-10) var(--space-6);text-align:center;flex-direction:column;display:flex}.empty-icon{width:48px;height:48px;margin-bottom:var(--space-1);background:var(--surface-pressed);color:var(--text-2);border-radius:50%;justify-content:center;align-items:center;display:flex}.empty-icon-danger{background:var(--danger-soft);color:var(--danger)}.empty-title{font-size:15px;font-weight:600}.empty-text{max-width:420px;font-size:13px}.empty-action{margin-top:var(--space-3)}.dialog{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);width:min(520px,100vw - 32px);max-height:calc(100dvh - 48px);color:var(--text);box-shadow:var(--shadow-lg);padding:0;overflow:hidden}.dialog[open]{animation:dialog-in var(--anim-medium) ease-out}.dialog::backdrop{background:var(--scrim);animation:fade-in var(--anim-medium) ease-out}@keyframes dialog-in{0%{opacity:0;transform:translateY(6px)scale(.985)}}@keyframes fade-in{0%{opacity:0}}.dialog-sm{width:min(420px,100vw - 32px)}.dialog-lg{width:min(720px,100vw - 32px)}.dialog-inner{flex-direction:column;max-height:calc(100dvh - 48px);display:flex}.dialog-header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);padding:var(--space-5) var(--space-6) var(--space-3);display:flex}.dialog-title{font-size:18px}.dialog-title:focus{outline:none}.dialog-description{margin-top:4px;font-size:13px}.dialog-close{flex:none;margin:-6px -8px 0 0}.dialog-body{padding:var(--space-2) var(--space-6) var(--space-5);flex:auto;overflow-y:auto}.dialog-footer{justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-6);border-top:1px solid var(--border);background:var(--surface-pressed);display:flex}.dialog-drawer{border-width:0 0 0 1px;border-radius:0;width:min(460px,100vw);height:100dvh;max-height:100dvh;margin:0 0 0 auto}.dialog-drawer[open]{animation:drawer-in var(--anim-deliberate) ease-out}.dialog-drawer .dialog-inner{height:100%;max-height:100dvh}@keyframes drawer-in{0%{opacity:0;transform:translate(24px)}}.popover{z-index:60;border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-lg);animation:popover-in var(--anim-fast) ease-out;position:fixed;overflow:hidden}@keyframes popover-in{0%{opacity:0;transform:translateY(-3px)}}.menu{padding:var(--space-1);flex-direction:column;display:flex}.menu-item{align-items:center;gap:var(--space-2);width:100%;min-height:36px;padding:0 var(--space-3);color:var(--text);text-align:left;background:0 0;border:0;border-radius:8px;font-size:13px;display:flex}.menu-item:hover:not(:disabled),.menu-item:focus-visible{background:var(--surface-pressed)}.menu-item:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.menu-item:disabled{opacity:.45}.menu-item-icon{color:var(--text-2);display:flex}.menu-item-danger,.menu-item-danger .menu-item-icon{color:var(--danger-text)}.notif-panel{flex-direction:column;max-height:min(460px,70vh);display:flex}.notif-head{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);font-weight:600}.notif-list{overflow-y:auto}.notif-item{gap:var(--space-2);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);display:flex}.notif-item:last-child{border-bottom:0}.notif-unread{background:var(--accent);border-radius:50%;flex:none;width:8px;height:8px;margin-top:6px}.notif-read{flex:none;width:8px}.notif-title{font-size:13px;font-weight:500}.notif-body{color:var(--text-2);font-size:12px}.notif-time{color:var(--text-3);margin-top:2px;font-size:11px}.toasts{right:var(--space-5);bottom:var(--space-5);z-index:80;gap:var(--space-2);pointer-events:none;flex-direction:column;width:min(400px,100vw - 32px);display:flex;position:fixed}.toast{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-lg);pointer-events:auto;animation:toast-in var(--anim-deliberate) ease-out;font-size:13px;display:flex}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.toast-icon{flex:none;display:flex}.toast-success .toast-icon{color:var(--success)}.toast-danger .toast-icon{color:var(--danger)}.toast-info .toast-icon{color:var(--info)}.toast-message{flex:1;min-width:0}.toast-action{border-radius:var(--radius-sm);color:var(--accent);background:0 0;border:0;flex:none;padding:4px 8px;font-size:13px;font-weight:600}.toast-action:hover{background:var(--surface-pressed)}.toast-close{border-radius:var(--radius-sm);color:var(--text-3);background:0 0;border:0;flex:none;padding:6px;display:flex}.toast-close:hover{background:var(--surface-pressed);color:var(--text)}.deflist{flex-direction:column;margin:0;display:flex}.deflist-row{justify-content:space-between;align-items:baseline;gap:var(--space-4);padding:var(--space-2) 0;border-bottom:1px solid var(--border);display:flex}.deflist-row:last-child{border-bottom:0}.deflist dt{color:var(--text-2);flex:none;font-size:13px}.deflist dd{text-align:right;overflow-wrap:anywhere;min-width:0;margin:0;font-weight:500}.bars{align-items:end;gap:var(--space-2);grid-auto-columns:1fr;grid-auto-flow:column;height:170px;display:grid}.bar-col{flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;min-width:0;height:100%;display:flex}.bar-value{font-size:var(--text-caption);color:var(--text-2)}.bar-track{flex:auto;align-items:flex-end;width:100%;max-width:44px;display:flex}.bar{background:var(--bar-idle);width:100%;min-height:2px;transition:height var(--anim-deliberate) ease-out;border-radius:6px 6px 2px 2px}.bar-current{background:var(--accent)}.bar-label{color:var(--text-3);white-space:nowrap;font-size:11px}.report-filters{justify-content:space-between;align-items:flex-end;gap:var(--space-4);flex-wrap:wrap;display:flex}.report-dates{gap:var(--space-3);flex-wrap:wrap;display:flex}.report-dates .input{width:170px}.report-filters+.form-error{margin-top:var(--space-3)}.report-item{flex-direction:column;align-items:flex-start;gap:2px;display:flex}.report-notes{gap:var(--space-3) var(--space-5);grid-template-columns:max-content minmax(0,1fr);margin:0;display:grid}.report-notes dt{font-weight:500}.report-notes dd{color:var(--text-2);margin:0}.report-privacy{margin-top:var(--space-4)}@media (width<=720px){.report-notes{gap:var(--space-1);grid-template-columns:minmax(0,1fr)}.report-notes dd{margin-bottom:var(--space-3)}}.shell{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);min-height:100dvh;display:grid}.sidebar{height:100dvh;padding:var(--space-5) var(--space-4) var(--space-4);background:var(--surface);border-right:1px solid var(--border);flex-direction:column;display:flex;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:var(--space-3);padding:0 var(--space-1) var(--space-5);color:inherit;text-decoration:none;display:flex}.brand-tile{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-hover);flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.brand-tile svg{width:26px;height:26px;color:var(--accent)}.brand-name{font-size:15px;font-weight:600;line-height:1.2;display:block}.brand-sub{font-size:var(--text-caption);color:var(--text-2);display:block}.nav{gap:var(--space-5);flex-direction:column;flex:auto;display:flex}.nav-group{flex-direction:column;gap:2px;display:flex}.nav-group-label{padding:0 var(--space-3) var(--space-1);letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);font-size:11px;font-weight:600}.nav-item{align-items:center;gap:var(--space-3);min-height:40px;padding:0 var(--space-3);border-radius:var(--radius-md);color:var(--text-2);transition:background-color var(--anim-fast) ease-out, color var(--anim-fast) ease-out;border:1px solid #0000;font-weight:500;text-decoration:none;display:flex;position:relative}.nav-item:hover{background:var(--surface-pressed);color:var(--text)}.nav-item.active{background:var(--selected);border-color:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--text);font-weight:600}.nav-item.active:before{content:"";border-radius:var(--radius-full);background:var(--accent);width:3px;position:absolute;top:9px;bottom:9px;left:3px}.nav-item svg{flex:none}.sidebar-footer{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border)}.sidebar-user{align-items:center;gap:var(--space-3);min-width:0;padding:0 var(--space-1);color:inherit;text-decoration:none;display:flex}.sidebar-user-text{flex-direction:column;min-width:0;display:flex}.sidebar-user-name{font-size:13px;font-weight:600}.sidebar-user-org{font-size:var(--text-caption);color:var(--text-2)}.sidebar-actions{margin-top:var(--space-3);justify-content:flex-end;display:flex}.skip-link{top:var(--space-2);left:var(--space-2);z-index:70;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);background:var(--accent);color:var(--on-accent);font-weight:600;position:absolute;transform:translateY(-200%)}.skip-link:focus{transform:none}.main{flex-direction:column;min-width:0;display:flex}.content:focus{outline:none}.topbar{z-index:20;align-items:center;gap:var(--space-3);min-height:var(--topbar-height);padding:0 var(--space-8);background:var(--surface);border-bottom:1px solid var(--border);display:flex;position:sticky;top:0}.crumbs{align-items:center;gap:var(--space-2);min-width:0;font-size:var(--text-body);color:var(--text-2);flex:auto;margin:0;padding:0;list-style:none;display:flex}.crumbs li{align-items:center;gap:var(--space-2);min-width:0;display:flex}.crumbs li:not(:last-child):after{content:"/";color:var(--text-3)}.crumbs a{color:inherit;white-space:nowrap;text-decoration:none}.crumbs a:hover{color:var(--text);text-decoration:underline}.crumb-current{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.topbar-actions{align-items:center;gap:var(--space-1);display:flex}.menu-toggle{display:none}.content{width:100%;max-width:1320px;padding:var(--space-8);gap:var(--space-6);flex-direction:column;margin:0 auto;display:flex}.page-header{justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap;display:flex}.page-header-text{flex:320px;min-width:0}.page-subtitle{margin-top:var(--space-1);color:var(--text-2)}.page-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.grid-2{gap:var(--space-4);grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start;display:grid}.grid-even{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));display:grid}.list-plain{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.list-row{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border);min-width:0;display:flex}.list-row:last-child{border-bottom:0}.list-row-link{color:inherit;text-decoration:none}.list-row-link:hover .list-row-title{color:var(--accent)}.list-row-text{flex-direction:column;flex:auto;min-width:0;display:flex}.list-row-title{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.list-row-sub{font-size:var(--text-caption);color:var(--text-2)}.quick-actions{gap:var(--space-2);flex-direction:column;display:flex}.quick-action{align-items:center;gap:var(--space-3);width:100%;min-height:52px;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-hover);color:inherit;text-align:left;transition:border-color var(--anim-fast) ease-out, background-color var(--anim-fast) ease-out;text-decoration:none;display:flex}[data-theme=dark] .quick-action{background:var(--surface-pressed)}.quick-action:hover:not(:disabled){border-color:var(--accent);background:var(--accent-soft)}.quick-action:disabled{opacity:.55;cursor:not-allowed}.quick-action-icon{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);border-radius:8px;flex:none;justify-content:center;align-items:center;display:flex}.quick-action-text{flex-direction:column;min-width:0;display:flex}.quick-action-title{font-weight:500}.quick-action-sub{font-size:var(--text-caption);color:var(--text-2)}.setup-steps{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin:0;padding:0;list-style:none;display:grid}.setup-step{align-items:flex-start;gap:var(--space-3);height:100%;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);color:inherit;transition:border-color var(--anim-fast) ease-out;text-decoration:none;display:flex}.setup-step:hover{border-color:var(--accent)}.setup-step-mark{background:var(--accent-soft);width:26px;height:26px;color:var(--accent);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:flex}.setup-step-done .setup-step-mark{background:var(--success-soft);color:var(--success-text)}.setup-step-done .quick-action-title{color:var(--text-2);text-decoration:line-through}.inline-list{margin:var(--space-1) 0 0;padding-left:var(--space-5)}.course-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.course-card{gap:var(--space-2);flex-direction:column;min-height:132px;display:flex}.course-title{font-size:15px;font-weight:600}.course-desc{color:var(--text-2);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;flex:1;font-size:13px;display:-webkit-box;overflow:hidden}.course-meta{justify-content:space-between;align-items:center;gap:var(--space-2);font-size:var(--text-caption);color:var(--text-2);display:flex}.profile-head{align-items:center;gap:var(--space-4);min-width:0;display:flex}.big-number{font-size:34px;font-weight:600;line-height:1.15}.drawer-section{padding:var(--space-4) 0;border-top:1px solid var(--border)}.drawer-section:first-child{border-top:0;padding-top:0}.drawer-section-title{margin-bottom:var(--space-2);letter-spacing:.04em;color:var(--text-2);font-size:12px;font-weight:600}.pick-list{border:1px solid var(--border);border-radius:var(--radius-md);flex-direction:column;max-height:312px;display:flex;overflow-y:auto}.pick-row{align-items:center;gap:var(--space-3);min-height:48px;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);cursor:pointer;display:flex}.pick-row:last-child{border-bottom:0}.pick-row:hover{background:var(--surface-pressed)}.qr-box{padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:#fff;justify-content:center;display:flex}.qr-box img{width:180px;height:180px}.secret-code{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--surface-pressed);font-family:var(--font-mono);letter-spacing:.08em;overflow-wrap:anywhere;font-size:13px}.auth-page{grid-template-columns:minmax(0,5fr) minmax(0,6fr);min-height:100dvh;display:grid}.auth-aside{justify-content:space-between;gap:var(--space-8);padding:var(--space-10) var(--space-12);color:#f1f6f4;background:#0f4f48;flex-direction:column;display:flex}.auth-aside-brand{align-items:center;gap:var(--space-3);font-size:17px;font-weight:600;display:flex}.auth-aside-brand svg{color:#67c6bb;width:32px;height:32px}.auth-aside h1{max-width:420px;font-size:30px;line-height:1.25}.auth-aside-list{gap:var(--space-3);max-width:420px;margin:var(--space-6) 0 0;color:#cfe0db;flex-direction:column;padding:0;list-style:none;display:flex}.auth-aside-list li{gap:var(--space-3);align-items:flex-start;display:flex}.auth-aside-list svg{color:#67c6bb;flex:none;margin-top:2px}.auth-aside-foot{font-size:var(--text-caption);color:#a9c4bd}.auth-main{padding:var(--space-8) var(--space-5);background:var(--surface);justify-content:center;align-items:center;display:flex}.auth-card{gap:var(--space-5);flex-direction:column;width:min(400px,100%);display:flex}.auth-card h2{font-size:24px}.auth-form{gap:var(--space-4);flex-direction:column;display:flex}.auth-submit{width:100%;min-height:44px}.auth-links{justify-content:space-between;gap:var(--space-2);flex-wrap:wrap;font-size:13px;display:flex}.auth-invite-hint{text-align:center;font-size:13px}.auth-divider{align-items:center;gap:var(--space-3);color:var(--text-3);font-size:var(--text-caption);display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.password-wrap{position:relative}.password-wrap .input{padding-right:44px}.password-toggle{position:absolute;top:2px;right:2px}.center-page{min-height:100dvh;padding:var(--space-6);justify-content:center;align-items:center;display:flex}@media (hover:none) and (pointer:coarse){:root{--control-height:44px}.btn-sm,.chip,.icon-btn,.nav-item,.menu-item,.toast-action{min-height:44px}.btn-sm{padding:0 var(--space-4)}.icon-btn,.search-clear,.toast-close{justify-content:center;align-items:center;min-width:44px;min-height:44px}.th-sort{min-height:44px;margin-block:-10px}.link{align-items:center;min-height:44px;display:inline-flex}input[type=checkbox]{width:22px;height:22px}.check-hit{min-width:44px;min-height:44px}}@media (hover:none){.btn-secondary:hover:not(:disabled){background:var(--surface)}.btn-ghost:hover:not(:disabled),.icon-btn:hover:not(:disabled),.row-clickable:hover{background:0 0}}@media (width<=1290px){.hide-medium{display:none}.kpi-grid:has(>:nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=1250px){.toolbar:has(.select) .search{flex-basis:100%;max-width:none}}@media (width<=1024px){.grid-2{grid-template-columns:minmax(0,1fr)}}@media (width<=1180px){.content{padding:var(--space-6)}.topbar{padding:0 var(--space-6)}}@media (width<=1100px){.hide-narrow{display:none}}@media (width<=900px){.shell{grid-template-columns:minmax(0,1fr)}.sidebar{z-index:50;visibility:hidden;width:min(280px,84vw);transition:transform var(--anim-deliberate) ease-out, visibility var(--anim-deliberate);position:fixed;inset:0 auto 0 0;transform:translate(-105%)}.sidebar.sidebar-open{visibility:visible;box-shadow:var(--shadow-lg);transform:none}.sidebar-scrim{z-index:40;background:var(--scrim);position:fixed;inset:0}.menu-toggle{display:inline-flex}.auth-page{grid-template-columns:minmax(0,1fr)}.auth-aside{display:none}}@media (width<=640px){.content{padding:var(--space-4)}.topbar{padding:0 var(--space-4)}.form-grid{grid-template-columns:minmax(0,1fr)}.table th:first-child,.table td:first-child{padding-left:var(--space-4)}.table th:last-child,.table td:last-child{padding-right:var(--space-4)}.toolbar,.selection-bar{padding-left:var(--space-4);padding-right:var(--space-4)}.card-padded{padding:var(--space-4)}h1{font-size:24px}}
