.workspace-tabs[data-v-cebd5204]{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:var(--control-gap);padding:8px var(--workspace-inset);border-bottom:1px solid var(--c-divider);background:var(--c-surface)}.workspace-tablist[data-v-cebd5204]{display:flex;gap:6px;flex:1;min-width:0;overflow-x:auto}.workspace-tab[data-v-cebd5204]{display:flex;align-items:center;flex-shrink:0;border:1px solid var(--c-divider);border-radius:var(--r-control);background:var(--c-surface)}.workspace-tab.active[data-v-cebd5204]{border-color:var(--c-brand);background:var(--c-brand-weak)}.workspace-tab button[data-v-cebd5204]{border:0;background:transparent;color:var(--c-text-2);white-space:nowrap}.workspace-tab.active [role=tab][data-v-cebd5204]{color:var(--c-brand-strong);font-weight:600}.workspace-tab-close[data-v-cebd5204]{width:28px;padding:4px}.user-menu[data-v-cebd5204]{position:relative;flex-shrink:0;margin:0}.user-menu summary[data-v-cebd5204]{display:flex;align-items:center;gap:6px;height:32px;max-width:min(200px,38vw);padding:4px 8px;border-radius:var(--r-control);color:var(--c-text-2);font-size:var(--fs-base);list-style:none;cursor:pointer}.user-menu summary[data-v-cebd5204]::-webkit-details-marker{display:flex}.user-menu summary[data-v-cebd5204]:focus-visible{outline:2px solid var(--c-brand);outline-offset:2px}.user-name[data-v-cebd5204]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-options[data-v-cebd5204]{position:absolute;right:0;top:calc(100% + 4px);width:150px;padding:4px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-panel);box-shadow:var(--shadow-popover)}.user-menu-options button[data-v-cebd5204]{width:100%;text-align:left;margin:0}.workspace-tab-context-menu[data-v-cebd5204]{position:fixed;z-index:20;display:flex;flex-direction:column;padding:4px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-panel);box-shadow:var(--shadow-popover)}.workspace-tab-context-menu button[data-v-cebd5204]{width:100%;text-align:left;padding:4px 8px;background:transparent;border:0;cursor:pointer;font-size:var(--fs-base)}.workspace-tab-context-menu button[data-v-cebd5204]:hover{background-color:var(--c-brand-weak)}.workspace-tab-context-menu button[data-v-cebd5204]:disabled{opacity:.5;cursor:not-allowed}.remote-picker[data-v-c5090c62]{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:4px;width:240px;max-width:100%;min-width:0}.label[data-v-c5090c62]{font-size:var(--fs-base);line-height:normal}.remote-picker.label-inline[data-v-c5090c62]{display:block}.remote-trigger[data-v-c5090c62],input[data-v-c5090c62],.clear-selection[data-v-c5090c62]{height:32px;padding:4px 10px;margin:0;box-sizing:border-box;font-size:var(--fs-base);border-radius:var(--r-control)}.remote-trigger[data-v-c5090c62]{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--c-surface);border:1px solid var(--c-border);text-align:left;font-weight:400}.remote-trigger>span[data-v-c5090c62]:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.remote-dropdown[data-v-c5090c62]{position:fixed;z-index:100;overflow-y:auto;width:280px;max-width:calc(100vw - 24px);box-sizing:border-box;padding:8px;border:1px solid var(--c-border);border-radius:var(--r-control);background:var(--c-surface);box-shadow:var(--shadow-popover);display:grid;gap:8px}.remote-filter-input[data-v-c5090c62]{width:100%;min-width:0;border:1px solid var(--c-control-border)}.remote-options[data-v-c5090c62]{max-height:220px;overflow-y:auto;display:grid;grid-auto-rows:max-content;align-content:start}.remote-options-empty-more[data-v-c5090c62]{min-height:32px}.remote-option[data-v-c5090c62]{display:grid;gap:2px;width:100%;height:auto;min-height:32px;padding:6px 8px;margin:0;box-sizing:border-box;text-align:left;border:0;border-radius:var(--r-tag);font-size:var(--fs-base);background:var(--c-surface);overflow-wrap:anywhere}.remote-option.active[data-v-c5090c62]{background:var(--c-surface-soft)}.remote-option small[data-v-c5090c62]{color:var(--c-text-2)}p[data-v-c5090c62]{margin:0;font-size:var(--fs-base)}.selected-tags[data-v-c5090c62]{display:flex;flex-wrap:wrap;gap:4px;min-width:0}.selected-tag[data-v-c5090c62]{display:flex;min-width:0;align-items:center;gap:4px;max-width:100%}.selected-tag>span[data-v-c5090c62]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selected-tag button[data-v-c5090c62]{flex-shrink:0;margin:0}.teaching-picker[data-v-d03055ef]{padding:8px var(--workspace-inset);border-bottom:1px solid var(--c-divider);display:grid;gap:8px}.controls[data-v-d03055ef]{display:flex;align-items:flex-end;flex-wrap:wrap;gap:8px}.context-actions[data-v-d03055ef]{display:flex;align-items:center;gap:8px}.controls button[data-v-d03055ef]{height:32px;font-size:var(--fs-base);box-sizing:border-box;margin:0}p[data-v-d03055ef]{margin:0}.error[data-v-d03055ef]{color:var(--c-danger-fg)}.row-action-button[data-v-55da636c]{position:relative;color:var(--c-brand);border:0;border-radius:var(--r-control);background:transparent;cursor:pointer;margin:0}.row-action-button.row-action-danger[data-v-55da636c]{color:var(--c-danger-fg)}.row-action-button[data-v-55da636c]:focus-visible{outline:2px solid var(--c-brand);outline-offset:2px}.row-action-button[data-v-55da636c]:disabled{opacity:.5;cursor:not-allowed}svg[data-v-55da636c]{flex:0 0 14px}.row-action-label[data-v-55da636c]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.row-action-tooltip[data-v-55da636c]{position:fixed;z-index:10000;max-width:min(240px,calc(100vw - 16px));padding:4px 8px;border-radius:var(--r-tag);background:var(--c-text-1);color:var(--c-surface);font-size:var(--fs-xs);line-height:18px;white-space:normal;overflow-wrap:anywhere;pointer-events:none}:root{--c-page: #e3ede8;--c-surface: #ffffff;--c-surface-soft: #f7fbf9;--c-head: #e6f0ea;--c-row-alt: #eef6f1;--c-hover: #d3eadc;--c-sidebar: #0d362e;--c-sidebar-deep: #092b24;--c-sidebar-raised: #17493e;--c-sidebar-text: rgb(240 250 246 / 95%);--c-sidebar-text-2: rgb(198 226 216 / 86%);--c-sidebar-text-3: rgb(154 193 180 / 78%);--c-sidebar-hover: rgb(255 255 255 / 6%);--c-sidebar-active: rgb(255 255 255 / 14%);--c-sidebar-divider: rgb(255 255 255 / 9%);--c-sidebar-ring: rgb(134 220 191 / 16%);--c-sidebar-shadow: 10px 0 28px rgb(8 34 28 / 14%);--c-sidebar-accent: #86dcbf;--c-border: #d7e5dd;--c-divider: #e7efe9;--c-control-border: #cbd9d5;--c-overlay: rgb(9 43 36 / 46%);--r-control: 6px;--r-panel: 8px;--r-tag: 4px;--shadow-panel: 0 1px 2px rgb(16 54 45 / 6%), 0 10px 26px rgb(16 54 45 / 7%);--shadow-popover: 0 4px 12px rgb(16 54 45 / 12%);--shadow-footer: 0 -4px 14px rgb(16 54 45 / 8%);--c-text-1: #183c38;--c-text-2: #5b6f68;--c-text-3: #81918a;--c-brand: #167562;--c-brand-strong: #105c4d;--c-brand-weak: #e9f5ed;--c-focus: #77cdbb;--c-success-fg: #1d6b53;--c-success-bg: #e7f4ec;--c-info-fg: #2a5f9e;--c-info-bg: #e9f1fb;--c-info-fill: rgb(30 100 220 / 15%);--c-warn-fg: #96610a;--c-warn-bg: #fdf1dc;--c-danger-fg: #b42318;--c-danger-bg: #fceceb;--c-idle-fg: #64756f;--c-idle-bg: #eef2f0;--fs-hint: 11px;--fs-xs: 12px;--fs-sm: 13px;--fs-base: 14px;--fs-lg: 16px;--fs-metric: 20px;--row-h: 32px;--dur-ui: .11s;--font-ui: "PingFang SC", "Microsoft YaHei", system-ui, sans-serif}:root[data-density=standard]{--row-h: 40px}:root[data-density=legacy]{--c-page: #f5f8f7;--c-surface-soft: #ffffff;--c-head: #ffffff;--c-row-alt: #ffffff;--c-hover: #ffffff;--c-border: #e0e9e4;--c-divider: #e8eeea;--r-control: 9px;--r-panel: 16px;--shadow-panel: none;--row-h: 42px;--c-sidebar: #0f3c33;--c-sidebar-deep: #0b3029;--c-sidebar-raised: #0f3c33;--c-sidebar-hover: rgb(255 255 255 / 12%);--c-sidebar-active: rgb(255 255 255 / 12%);--c-sidebar-accent: transparent;--c-sidebar-ring: transparent;--c-sidebar-shadow: none}:root{font-family:var(--font-ui);color-scheme:light;color:var(--c-text-1);background:var(--c-page);font-size:var(--fs-base);font-synthesis:none;--workspace-inset: 12px;--panel-inset: 16px;--layout-gap: 12px;--control-gap: 8px}*{box-sizing:border-box}body{margin:0;background:var(--c-page)}button,input,select,textarea{font:inherit}textarea{min-height:90px;padding:8px 10px;resize:vertical}.permission-main{display:grid;gap:var(--layout-gap)}.permission-main h1{margin:0}.permission-toolbar{display:grid;grid-template-columns:auto minmax(150px,220px) auto minmax(180px,1fr) auto minmax(180px,1fr);gap:10px;align-items:center}.permission-toolbar .permission-inline{grid-column:2 / -1}.permission-toolbar label{margin:0}.permission-inline,.permission-switch{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;margin:0}.permission-inline input,.permission-switch input{width:auto}.permission-action{display:grid;grid-template-columns:minmax(0,1fr) 160px 80px;gap:16px;align-items:center;padding:13px 0;border-top:1px solid var(--c-divider)}.permission-action strong,.permission-action small{display:block;overflow-wrap:anywhere}.permission-action small,.permission-policy{color:var(--c-text-2);font-size:12px}@media(max-width:960px){.permission-toolbar{grid-template-columns:1fr}.permission-action{grid-template-columns:minmax(0,1fr) auto}.permission-action select,.permission-policy{grid-column:1}}.homework-main{display:grid;gap:var(--layout-gap)}.homework-main .eyebrow{margin:12px 0 0}.homework-main h1{margin:0}.homework-form{max-width:720px}.homework-heading{display:flex;justify-content:flex-end;align-items:center;gap:var(--control-gap)}.homework-create-button{width:auto;margin:0;white-space:nowrap}.homework-list-panel .panel-heading h2{margin:0}.homework-list-panel>.muted{margin:var(--control-gap) 0 var(--layout-gap)}.homework-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--control-gap)}.homework-filters label{margin:0}.homework-filters input,.homework-filters select{margin-top:8px}.homework-list-summary{display:flex;justify-content:space-between;align-items:center;min-height:54px;font-size:13px;color:var(--c-text-2)}.homework-table-scroll{overflow-x:auto}.homework-table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}.homework-table th,.homework-table td{padding:0 8px;border-bottom:1px solid var(--c-divider);vertical-align:middle}.homework-table th{height:30px;color:var(--c-text-2);background:var(--c-head);font-size:var(--fs-sm);font-weight:600;white-space:nowrap}.homework-table td{height:var(--row-h);background:var(--c-surface)}.homework-table td:first-child strong,.homework-table td:first-child small{display:block}.homework-table td:first-child small{color:var(--c-text-2);margin-top:4px}.homework-action{color:var(--c-brand);font-weight:600;white-space:nowrap}.homework-action.text-button{margin:0;padding:0;cursor:pointer}.homework-dialog{width:min(1000px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--c-border);border-radius:var(--r-panel);box-shadow:var(--shadow-panel);overflow:auto}.homework-dialog::backdrop{background:#122e2885}.homework-dialog-heading{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:var(--control-gap);padding:var(--workspace-inset) var(--panel-inset);border-bottom:1px solid var(--c-divider);background:var(--c-surface)}.homework-dialog-heading h2{margin:0;font-size:var(--fs-lg)}.homework-dialog-heading .secondary{margin:0}.homework-dialog>.homework-form{max-width:none;margin:0;border:0;border-radius:0}.homework-editor-embedded .account-main{max-width:none;padding:var(--workspace-inset)}.homework-editor-embedded .homework-form{max-width:none}@media(max-width:960px){.homework-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.homework-dialog-heading{padding:var(--workspace-inset) var(--panel-inset)}.homework-editor-embedded .account-main{padding:var(--workspace-inset)}.homework-heading{align-items:flex-start;flex-direction:column}.homework-filters{grid-template-columns:1fr}}.authenticated-layout{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100vh}.app-content{min-width:0}.sidebar{position:sticky;top:0;z-index:1;height:100vh;overflow-y:auto;display:flex;flex-direction:column;padding:var(--workspace-inset) 10px;background:var(--c-sidebar);color:var(--c-sidebar-text);box-shadow:inset -1px 0 0 var(--c-sidebar-divider),var(--c-sidebar-shadow)}.sidebar-brand{display:flex;align-items:center;gap:9px;margin-bottom:12px;padding:8px 10px 14px;border-bottom:1px solid var(--c-sidebar-divider);font-size:var(--fs-lg);font-weight:600;letter-spacing:2.5px;color:var(--c-surface);text-decoration:none;background:linear-gradient(90deg,rgb(111 211 182 / 8%),transparent);border-radius:var(--r-control) var(--r-control) 0 0}.sidebar-brand:before{content:"";width:3px;height:15px;flex:0 0 3px;border-radius:3px;background:var(--c-sidebar-accent);opacity:.9}.sidebar-context{display:grid;gap:3px;margin:0 2px var(--layout-gap);padding:9px 11px;border-radius:var(--r-control);background:var(--c-sidebar-raised)}.sidebar-context span,.sidebar-note{color:var(--c-sidebar-text-3);font-size:var(--fs-hint);letter-spacing:.04em}.sidebar-context strong{font-size:var(--fs-sm);font-weight:600;color:var(--c-surface);overflow-wrap:anywhere}.sidebar-nav{display:grid;align-content:start;gap:3px}.sidebar-link,.sidebar-directory{position:relative;display:flex;align-items:center;gap:8px;min-height:32px;height:auto;padding:4px 10px;padding-left:var(--nav-indent, 14px);border:0;border-radius:var(--r-control);background:transparent;color:var(--c-sidebar-text-2);font-size:var(--fs-sm);font-weight:400;letter-spacing:.01em;line-height:1.4;text-align:left;text-decoration:none;transition:background-color var(--dur-ui) ease,color var(--dur-ui) ease}.sidebar-link:hover,.sidebar-directory:hover{background:var(--c-sidebar-hover);color:var(--c-sidebar-text)}.sidebar-link.router-link-exact-active{background:var(--c-sidebar-active);color:var(--c-surface);font-weight:600;box-shadow:inset 0 0 0 1px var(--c-sidebar-ring)}.sidebar-link.router-link-exact-active:before{content:"";position:absolute;left:5px;top:9px;bottom:9px;width:2px;border-radius:2px;background:var(--c-sidebar-accent)}.sidebar-directory{width:100%;min-height:30px;margin-top:14px;padding-top:3px;padding-bottom:3px;font-size:var(--fs-sm);font-weight:600;letter-spacing:.02em;color:var(--c-sidebar-text);cursor:pointer}.sidebar-directory.is-child{min-height:28px;margin-top:6px;font-weight:500;color:var(--c-sidebar-text-2)}.sidebar-chevron{width:12px;height:12px;flex:0 0 12px;margin-left:auto;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;color:var(--c-sidebar-text-2);opacity:.95;transform:rotate(0);transition:transform var(--dur-ui) ease}.sidebar-chevron.expanded{transform:rotate(90deg)}.sidebar-directory:hover .sidebar-chevron{opacity:1}.sidebar-item-icon{width:16px;flex:0 0 16px;text-align:center;font-size:var(--fs-sm);line-height:1;color:var(--c-sidebar-text-3)}.sidebar-item-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar :focus-visible{outline-offset:-2px}.sidebar-note{margin:auto 10px 0;padding-top:10px;border-top:1px solid var(--c-sidebar-divider);line-height:1.6}@media(prefers-reduced-motion:reduce){.sidebar-link,.sidebar-directory,.sidebar-chevron{transition:none}}button{cursor:pointer;height:32px;padding:4px 10px;border:1px solid var(--c-control-border);border-radius:var(--r-control);font-size:var(--fs-base);line-height:22px;background:var(--c-surface-soft);color:var(--c-brand);transition:background-color var(--dur-ui) ease,border-color var(--dur-ui) ease}button:disabled{opacity:.6;cursor:wait}a{color:inherit;text-decoration:none}h1,h2,p{margin-top:0}h1{font-size:var(--fs-lg);font-weight:600;line-height:1.4}h2{font-size:var(--fs-lg);margin-bottom:var(--control-gap)}label{display:block;font-size:var(--fs-xs);line-height:16px;color:var(--c-text-2);margin:0 0 4px}input,select,textarea{width:100%;border:1px solid var(--c-control-border);border-radius:var(--r-control);font-size:var(--fs-base);line-height:22px;background:var(--c-surface);color:var(--c-text-1)}input:not([type=checkbox]):not([type=radio]),select{height:32px;padding:4px 10px}select{width:min(240px,100%);max-width:min(240px,100%);min-width:0}input[type=checkbox],input[type=radio]{width:16px;height:16px;padding:0;accent-color:var(--c-brand);flex-shrink:0}input[type=file]{padding:0 8px 0 0}input[type=file]::file-selector-button{height:30px;margin-right:8px;padding:4px 10px;border:0;border-right:1px solid var(--c-control-border);font:inherit;background:var(--c-surface-soft);color:var(--c-brand)}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid var(--c-focus);outline-offset:3px}.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.welcome-panel{background:var(--c-sidebar-deep);color:#fff;padding:32px 8%;display:flex;flex-direction:column;position:relative;overflow:hidden}.welcome-panel:after{content:"";position:absolute;width:440px;height:440px;border:1px solid rgb(255 255 255 / 12%);border-radius:50%;right:-180px;bottom:-150px;box-shadow:0 0 0 70px #ffffff08,0 0 0 140px #ffffff05;pointer-events:none}.brand{font-size:var(--fs-lg);font-weight:600;letter-spacing:3px}.brand span{display:block;font-size:var(--fs-xs);font-weight:400;letter-spacing:1px;opacity:.7;margin-top:6px}.welcome-copy{margin:auto 0;padding:32px 0;z-index:1}.welcome-copy>p{line-height:1.6;color:#d1e8e2eb;font-size:var(--fs-sm)}.eyebrow{font-size:var(--fs-xs);letter-spacing:3px;color:#6fd3b6eb;margin-bottom:var(--control-gap)}.welcome-footer{font-size:var(--fs-xs);opacity:.65;margin-bottom:0;line-height:1.6}.login-panel{display:grid;place-items:center;padding:32px 24px;background:var(--c-surface-soft)}.login-card{width:100%;max-width:360px}.mark{display:grid;place-items:center;width:40px;height:40px;background:var(--c-brand-weak);color:var(--c-brand);border-radius:var(--r-panel);margin-bottom:16px;font-size:var(--fs-lg);font-weight:600}.muted{color:var(--c-text-2);font-size:var(--fs-sm);line-height:1.6}.primary{border:none;background:var(--c-brand);color:#fff;width:auto;margin:0}.login-card .primary{width:100%;margin-top:16px}.homework-form>button{margin:12px 8px 0 0}.primary:hover:not(:disabled){background:var(--c-brand-strong)}.primary,.secondary,.text-button{white-space:nowrap}.login-hint{text-align:center;color:var(--c-text-3);font-size:var(--fs-xs);line-height:1.6;margin:var(--layout-gap) 0 0}.error{padding:8px 10px;border-radius:var(--r-control);background:var(--c-danger-bg);color:var(--c-danger-fg);font-size:var(--fs-sm);line-height:1.6;margin-top:var(--control-gap)}.topbar{display:flex;gap:var(--control-gap);align-items:center;padding:var(--control-gap) var(--workspace-inset);border-bottom:1px solid var(--c-border);background:var(--c-surface)}.text-button{border:0;background:none;color:var(--c-brand);margin-left:auto;padding:4px 10px}.account-main{width:100%;max-width:none;margin:0;padding:var(--workspace-inset)}.account-main h1{margin-bottom:8px}.account-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:var(--layout-gap);margin-top:0}.panel{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-panel);box-shadow:var(--shadow-panel);padding:var(--panel-inset)}.account-grid label,.homework-form>label{margin:0 0 4px}.panel h2{font-size:var(--fs-lg)}.panel-heading>h2{margin:0}.panel-heading{display:flex;align-items:center;justify-content:space-between}.status,.badge{display:inline-flex;align-items:center;gap:5px;min-height:20px;border-radius:var(--r-tag);padding:0 7px;font-size:var(--fs-xs);font-weight:500;background:var(--c-success-bg);color:var(--c-success-fg)}.badges{display:flex;gap:var(--control-gap);flex-wrap:wrap;margin:var(--layout-gap) 0}.menu-chip{border:1px solid var(--c-border);border-radius:var(--r-control);padding:4px 10px;font-size:var(--fs-sm)}dl{font-size:var(--fs-sm);display:grid;grid-template-columns:78px 1fr;gap:var(--control-gap);line-height:1.5}dt{color:var(--c-text-3)}dd{margin:0;overflow-wrap:anywhere}.secondary{border:1px solid var(--c-control-border);color:var(--c-brand);background:var(--c-surface-soft);margin:0}.empty-state{padding:16px 0;color:var(--c-text-2);font-size:var(--fs-sm);line-height:1.6}.privacy-note{border-top:1px solid var(--c-divider);margin-top:var(--layout-gap);padding-top:var(--control-gap);color:var(--c-text-3);font-size:var(--fs-xs);line-height:1.6}summary{cursor:pointer;color:var(--c-brand);font-size:var(--fs-sm)}.permission-list{max-height:220px;overflow:auto;color:var(--c-text-2);font-size:var(--fs-xs);line-height:1.7}@media(max-width:640px){.authenticated-layout{display:block}.sidebar{position:static;height:auto;padding:var(--workspace-inset);box-shadow:inset 0 -1px 0 var(--c-sidebar-divider)}.sidebar-brand{margin-bottom:0;padding:0 4px var(--layout-gap);border-bottom:0;font-size:var(--fs-lg)}.sidebar-context,.sidebar-note{display:none}.sidebar-nav{display:flex;align-items:center;overflow-x:auto;gap:6px;padding-bottom:16px}.sidebar-link,.sidebar-directory{display:inline-flex;flex:0 0 auto;width:auto;height:32px;min-height:32px;margin-top:0;padding:4px 12px;white-space:nowrap;font-size:var(--fs-sm)}.sidebar-directory.is-child{margin-top:0}.sidebar-directory .sidebar-chevron{margin-left:4px}.sidebar-link.router-link-exact-active:before{top:10px;bottom:10px}.login-page{grid-template-columns:1fr}.welcome-panel{padding:24px}.welcome-copy,.welcome-footer{display:none}.login-panel{padding:24px 20px 40px}.account-grid{grid-template-columns:1fr}.topbar>.muted{display:none}.panel{padding:var(--panel-inset)}.account-main{padding:var(--workspace-inset)}}.app-content{min-width:0;background-color:var(--c-page);background-image:radial-gradient(circle at 88% 2%,rgb(22 117 98 / 7%) 0,transparent 46%),linear-gradient(rgb(16 84 66 / 3%) 1px,transparent 1px),linear-gradient(90deg,rgb(16 84 66 / 3%) 1px,transparent 1px);background-size:auto,24px 24px,24px 24px}:root[data-density=legacy] .app-content{background-image:none}:root:not([data-density=legacy]) table{border-collapse:separate;border-spacing:0}:root:not([data-density=legacy]) thead th{position:sticky;top:0;z-index:2;height:30px;padding:0 8px;text-align:left;white-space:nowrap;font-size:var(--fs-sm);font-weight:600;color:var(--c-text-2);background:var(--c-head);border-bottom:1px solid var(--c-border)}:root:not([data-density=legacy]) tbody td{height:var(--row-h);padding:4px 8px;vertical-align:middle;font-size:var(--fs-base);color:var(--c-text-1);background:var(--c-surface);border-bottom:1px solid var(--c-divider);transition:background-color var(--dur-ui) ease}:root:not([data-density=legacy]) tbody td small{display:block;margin-top:2px;font-size:var(--fs-xs);line-height:1.5;color:var(--c-text-3)}:root:not([data-density=legacy]) tbody tr:last-child>td{border-bottom:0}:root:not([data-density=legacy]) table tbody tr:nth-child(2n)>td{background:var(--c-row-alt)}:root:not([data-density=legacy]) table tbody tr:hover:nth-child(n)>td,:root:not([data-density=legacy]) table tbody tr:focus-within:nth-child(n)>td{background:var(--c-hover)}:root:not([data-density=legacy]) table tbody tr:hover:nth-child(n)>td:first-child,:root:not([data-density=legacy]) table tbody tr:focus-within:nth-child(n)>td:first-child{box-shadow:inset 2px 0 0 var(--c-brand)}:root:not([data-density=legacy]) th.col-actions,:root:not([data-density=legacy]) td.col-actions{position:sticky;right:0;z-index:1;text-align:right;box-shadow:-1px 0 0 var(--c-divider)}:root:not([data-density=legacy]) thead th.col-actions{z-index:3}.table-scroll,.table-wrap{background:var(--c-surface);border-radius:var(--r-control)}.ui-table{width:100%}.ui-cell-ellipsis{display:block;max-width:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ui-num{text-align:right;font-variant-numeric:tabular-nums;color:var(--c-text-2);font-size:var(--fs-sm)}.ui-hint{font-size:var(--fs-hint);color:var(--c-text-3);line-height:1.6}.ui-tag{display:inline-flex;align-items:center;gap:5px;min-height:20px;padding:0 7px;border-radius:var(--r-tag);font-size:var(--fs-xs);font-weight:500;white-space:nowrap;color:var(--c-idle-fg);background:var(--c-idle-bg)}.ui-tag:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.ui-tag--success,.status--success,.badge--success{color:var(--c-success-fg);background:var(--c-success-bg)}.ui-tag--info,.status--info,.badge--info{color:var(--c-info-fg);background:var(--c-info-bg)}.ui-tag--warn,.status--warn,.badge--warn{color:var(--c-warn-fg);background:var(--c-warn-bg)}.ui-tag--danger,.status--danger,.badge--danger{color:var(--c-danger-fg);background:var(--c-danger-bg)}.ui-tag--idle,.status--idle,.badge--idle{color:var(--c-idle-fg);background:var(--c-idle-bg)}.ui-page{display:grid;gap:var(--layout-gap);align-content:start;min-width:0;padding:var(--workspace-inset)}.ui-page-head,.ui-panel-head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--control-gap);min-height:32px}.ui-page-head h1,.ui-panel-head h2{margin:0;font-size:var(--fs-lg);font-weight:600}.ui-page-head .ui-head-actions,.ui-panel-head .ui-head-actions{margin-left:auto;display:flex;align-items:center;gap:var(--control-gap)}.ui-stat-strip{display:flex;align-items:center;flex-wrap:wrap;gap:var(--control-gap);min-height:32px;padding:0 var(--panel-inset);border:1px solid var(--c-border);border-radius:var(--r-panel);background:var(--c-surface-soft);font-size:var(--fs-sm);color:var(--c-text-2)}.ui-filter-bar{display:flex;align-items:stretch;flex-wrap:nowrap;gap:var(--control-gap);padding:10px var(--panel-inset) var(--panel-inset);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-panel);box-shadow:var(--shadow-panel)}.ui-filter-bar.is-bare{padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}.ui-filter-bar.is-stacked{margin-block-end:var(--layout-gap)}.ui-filter-bar label{display:grid;gap:4px;margin:0}.ui-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ui-filter-bar label.ui-field-inline{gap:0}.ui-filter-query,.ui-filter-query-actions,.ui-filter-tools{display:flex;align-items:flex-end;align-content:flex-end;flex-wrap:wrap;gap:var(--control-gap);min-width:0}.ui-filter-query{flex:1 1 auto;padding-right:var(--control-gap);border-right:1px solid var(--c-border)}.ui-filter-query-actions{flex:0 0 auto;gap:4px;align-content:flex-start}.ui-filter-tools{flex:0 1 auto;justify-content:flex-end;margin-left:auto}.ui-filter-bar.is-single-zone .ui-filter-query{padding-right:0;padding-bottom:0;border-right:0;border-bottom:0}@media(max-width:960px){.ui-filter-bar{flex-wrap:wrap}.ui-filter-query{flex:1 1 100%;padding-right:0;padding-bottom:var(--control-gap);border-right:0;border-bottom:1px solid var(--c-divider)}.ui-filter-tools{flex:1 1 100%;justify-content:flex-start;margin-left:0}}.ui-panel{min-width:0;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-panel);box-shadow:var(--shadow-panel)}.ui-table-panel{overflow:hidden}.ui-panel-head{padding:var(--control-gap) var(--panel-inset);border-bottom:1px solid var(--c-divider)}.ui-pager{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--control-gap);padding:var(--control-gap) var(--panel-inset);border-top:1px solid var(--c-divider);background:var(--c-surface-soft);font-size:var(--fs-sm);color:var(--c-text-2)}.ui-form-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:var(--layout-gap);align-items:start}.ui-form-section,.ui-side-card{padding:var(--panel-inset);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-panel);box-shadow:var(--shadow-panel)}.ui-form-section+.ui-form-section,.ui-side-card+.ui-side-card{margin-top:var(--layout-gap)}.ui-form-section h2,.ui-side-card h2{margin:0 0 var(--panel-inset);font-size:var(--fs-base);font-weight:600}.ui-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--layout-gap) var(--panel-inset)}.ui-form-grid label{display:grid;gap:4px;min-width:0;margin:0}.ui-form-grid .ui-wide{grid-column:1 / -1}.ui-readonly-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--layout-gap) var(--panel-inset)}.ui-readonly-grid dt{color:var(--c-text-3);font-size:var(--fs-xs)}.ui-readonly-grid dd{margin:2px 0 0;font-size:var(--fs-base);overflow-wrap:anywhere}.ui-readonly{background:var(--c-surface-soft);border-color:var(--c-border);color:var(--c-text-2)}.ui-page-actions{display:flex;justify-content:flex-end;gap:var(--control-gap);padding:var(--control-gap) var(--panel-inset);border:1px solid var(--c-border);border-radius:var(--r-panel);background:var(--c-surface)}.ui-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--layout-gap)}.ui-metric{padding:var(--control-gap) var(--panel-inset);border:1px solid var(--c-border);border-radius:var(--r-panel);background:var(--c-surface)}.ui-metric strong{display:block;font-size:var(--fs-metric);font-weight:600;font-variant-numeric:tabular-nums;color:var(--c-text-1)}.ui-metric span{font-size:var(--fs-xs);color:var(--c-text-3)}.ui-timeline{margin:0;padding-left:16px;font-size:var(--fs-sm);color:var(--c-text-2);line-height:1.8}.ui-timeline li::marker{color:var(--c-brand)}.ui-compare-old{color:var(--c-text-3);text-decoration:line-through}.ui-compare-new{color:var(--c-brand);font-weight:500}.ui-state-block{display:grid;place-items:center;gap:var(--control-gap);min-height:calc(var(--row-h) * 6);padding:var(--panel-inset);text-align:center;font-size:var(--fs-sm);color:var(--c-text-2);background:var(--c-surface)}.ui-state-block--error{color:var(--c-danger-fg);background:var(--c-danger-bg)}.ui-skeleton-row{height:var(--row-h);border-radius:var(--r-tag);background:var(--c-row-alt);border-bottom:1px solid var(--c-divider)}.ui-state-skeleton{width:100%;display:grid;gap:0}.ui-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.ui-footnote{font-size:var(--fs-xs);color:var(--c-text-3);line-height:1.6}@media(max-width:960px){.ui-form-layout{grid-template-columns:minmax(0,1fr)}.ui-form-grid,.ui-readonly-grid,.ui-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.ui-form-grid,.ui-readonly-grid,.ui-metric-grid{grid-template-columns:minmax(0,1fr)}}@media(prefers-reduced-motion:reduce){:root{--dur-ui: 0s}tbody td,button{transition:none}}.row-action-group{display:inline-flex;align-items:center;gap:4px;vertical-align:middle;white-space:nowrap}:is(.actions,.controls,.class-actions,.toolbar,.row-actions):has(>button.row-action-button){column-gap:4px;row-gap:4px}
