.login-page{min-height:100vh;background:radial-gradient(ellipse at top left,rgba(37,99,235,.08),transparent 50%),radial-gradient(ellipse at bottom right,rgba(124,58,237,.08),transparent 50%),var(--c-bg);display:flex;align-items:center;justify-content:center;padding:var(--s-6);font-family:var(--font)}.login-container{width:100%;max-width:1000px;display:grid;grid-template-columns:1fr;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-xl);box-shadow:var(--sh-xl);overflow:hidden;animation:login-in var(--dur-slow) var(--ease-out)}@keyframes login-in{0%{opacity:0;transform:translateY(10px) scale(.995)}to{opacity:1;transform:translateY(0) scale(1)}}@media (min-width: 900px){.login-container{grid-template-columns:1.05fr 1fr}}.login-hero{position:relative;overflow:hidden;background:linear-gradient(155deg,#1e3a8a,#2563eb 55%,#4f46e5);color:#eff6ff;padding:var(--s-10) var(--s-8);display:flex;align-items:center}.login-hero-inner{position:relative;z-index:1;max-width:400px}.login-hero-logo{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--r-lg);background:#ffffff26;backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);color:#fff;font-weight:700;font-size:16px;letter-spacing:.05em;margin-bottom:var(--s-6)}.login-hero h1{font-size:var(--fs-3xl);font-weight:700;color:#fff;letter-spacing:-.02em;margin:0 0 var(--s-3)}.login-hero-tagline{font-size:var(--fs-md);color:#ffffffd1;margin:0 0 var(--s-8);line-height:1.6}.login-hero-features{list-style:none;padding:0;margin:0 0 var(--s-8);display:flex;flex-direction:column;gap:var(--s-3)}.login-hero-features li{display:flex;align-items:flex-start;gap:var(--s-2);font-size:var(--fs-sm);color:#ffffffeb;line-height:1.5}.login-hero-features svg{color:#86efac;flex-shrink:0;margin-top:2px}.login-hero-badge{display:inline-flex;align-items:center;gap:var(--s-2);padding:6px 12px;background:#ffffff1f;border:1px solid rgba(255,255,255,.2);border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:500}.login-hero-decor{position:absolute;border-radius:50%;filter:blur(48px);opacity:.45;pointer-events:none}.login-hero-decor-1{width:280px;height:280px;background:#60a5fa;bottom:-100px;right:-100px}.login-hero-decor-2{width:200px;height:200px;background:#c4b5fd;top:-70px;right:40px}.login-form-panel{padding:var(--s-10) var(--s-8);display:flex;align-items:center;background:var(--c-surface)}.login-form-inner{width:100%;max-width:340px;margin:0 auto}.login-form-header{margin-bottom:var(--s-6)}.login-form-header h2{font-size:var(--fs-xl);font-weight:700;color:var(--c-text);letter-spacing:-.01em;margin:0 0 var(--s-1)}.login-form-header p{font-size:var(--fs-sm);color:var(--c-text-muted)}.login-section-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--c-text-subtle);font-weight:600;margin-bottom:var(--s-2)}.login-profile-list{display:flex;flex-direction:column;gap:6px}.login-profile-item{display:flex;align-items:center;gap:var(--s-3);padding:10px 12px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r);font:inherit;text-align:left;cursor:pointer;transition:border-color var(--dur-fast),background var(--dur-fast)}.login-profile-item:hover{border-color:var(--c-primary);background:var(--c-primary-soft)}.login-profile-avatar{width:34px;height:34px;border-radius:var(--r);color:#fff;font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.login-profile-info{flex:1;min-width:0}.login-profile-name{font-size:var(--fs-sm);font-weight:600;color:var(--c-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.login-profile-meta{font-size:var(--fs-xs);color:var(--c-text-muted);margin-top:1px}.login-profile-arrow{color:var(--c-text-subtle);flex-shrink:0}.login-profile-item:hover .login-profile-arrow{color:var(--c-primary)}.login-divider{display:flex;align-items:center;gap:var(--s-3);color:var(--c-text-subtle);font-size:11px;text-transform:uppercase;letter-spacing:.05em;margin:var(--s-4) 0;font-weight:500}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--c-border)}.login-error{padding:9px 12px;background:var(--c-danger-soft);color:var(--c-danger);border:1px solid var(--c-danger-border);border-radius:var(--r-sm);font-size:var(--fs-sm);margin-bottom:var(--s-3)}.login-supervisor{margin-top:var(--s-5)}.login-supervisor-hint{font-size:var(--fs-xs);color:var(--c-text-subtle);text-align:center;margin-top:var(--s-2)}.login-footer{display:flex;align-items:center;justify-content:center;gap:var(--s-2);margin-top:var(--s-8);padding-top:var(--s-4);border-top:1px solid var(--c-border);font-size:var(--fs-xs);color:var(--c-text-subtle)}.login-footer svg{color:var(--c-primary)}@media (max-width: 900px){.login-page{padding:var(--s-4)}.login-hero,.login-form-panel{padding:var(--s-8) var(--s-6)}.login-hero h1{font-size:var(--fs-2xl)}}.login-supervisor-link{display:flex;align-items:center;gap:var(--s-2);padding:11px 14px;border:1px solid var(--c-border);border-radius:var(--r);background:var(--c-surface);color:var(--c-text);text-decoration:none;font-size:var(--fs-sm);font-weight:500;transition:all var(--dur-fast)}.login-supervisor-link:hover{background:var(--c-surface-alt);border-color:var(--c-border-strong);text-decoration:none}.login-supervisor-link svg:first-child{color:#7c3aed}.disc-backdrop{position:fixed;inset:0;background:#0f172ab3;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--s-4);animation:disc-fade var(--dur) var(--ease)}@keyframes disc-fade{0%{opacity:0}to{opacity:1}}.disc-modal{width:100%;max-width:560px;max-height:92vh;background:var(--c-surface);border-radius:var(--r-xl);box-shadow:var(--sh-xl);overflow:hidden;display:flex;flex-direction:column;animation:disc-in var(--dur-slow) var(--ease-out)}@keyframes disc-in{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.disc-hero{padding:var(--s-8) var(--s-6) var(--s-6);background:linear-gradient(155deg,#1e3a8a,#2563eb 55%,#7c3aed);color:#fff;text-align:center}.disc-hero-logo{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:var(--r-lg);background:#ffffff2e;border:1px solid rgba(255,255,255,.22);color:#fff;font-weight:700;font-size:14px;letter-spacing:.05em;margin-bottom:var(--s-3);backdrop-filter:blur(6px)}.disc-hero h1{font-size:var(--fs-xl);font-weight:700;margin:0 0 var(--s-2);letter-spacing:-.01em}.disc-hero p{font-size:var(--fs-sm);color:#ffffffd9;margin:0;line-height:1.5}.disc-body{flex:1;overflow-y:auto;padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-3)}.disc-block{display:flex;gap:var(--s-3);padding:var(--s-4);border-radius:var(--r);border:1px solid}.disc-block-info{background:var(--c-info-soft);border-color:var(--c-info-border)}.disc-block-warn{background:var(--c-warning-soft);border-color:var(--c-warning-border)}.disc-block-safe{background:var(--c-success-soft);border-color:var(--c-success-border)}.disc-block-icon{flex-shrink:0;width:32px;height:32px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;background:#ffffffb3}.disc-block-info .disc-block-icon{color:var(--c-info)}.disc-block-warn .disc-block-icon{color:var(--c-warning)}.disc-block-safe .disc-block-icon{color:var(--c-success)}.disc-block-content{flex:1;min-width:0}.disc-block-content h3{font-size:var(--fs-sm);font-weight:700;margin:0 0 var(--s-1);color:var(--c-text)}.disc-block-content p{font-size:var(--fs-sm);color:var(--c-text);line-height:1.55;margin:0}.disc-block-content ul{margin:0;padding-left:var(--s-4);display:flex;flex-direction:column;gap:6px;font-size:var(--fs-sm);color:var(--c-text);line-height:1.5}.disc-block-content li b{font-weight:700}.disc-meta{display:flex;align-items:center;justify-content:center;gap:6px;padding-top:var(--s-2);font-size:var(--fs-xs);color:var(--c-text-muted)}.disc-meta svg{color:var(--c-primary)}.disc-footer{padding:var(--s-4) var(--s-5);border-top:1px solid var(--c-border);background:var(--c-surface-hover)}.disc-ack{display:flex;align-items:center;justify-content:center;gap:var(--s-2);width:100%;padding:12px 20px;background:var(--c-primary);color:#fff;border:0;border-radius:var(--r);font:inherit;font-size:var(--fs-base);font-weight:600;cursor:pointer;transition:background var(--dur-fast),transform var(--dur-fast)}.disc-ack:hover{background:var(--c-primary-hover);transform:translateY(-1px)}.disc-ack:active{transform:translateY(0)}@media (max-width: 600px){.disc-modal{border-radius:var(--r-lg)}.disc-hero{padding:var(--s-6) var(--s-4) var(--s-5)}.disc-body{padding:var(--s-4)}.disc-block{padding:var(--s-3)}}.settings-backdrop{position:fixed;inset:0;background:#0f172a80;z-index:900;display:flex;align-items:center;justify-content:center;padding:var(--s-4);animation:fade-in var(--dur) var(--ease)}.settings-modal{width:100%;max-width:720px;max-height:92vh;background:var(--c-surface);border-radius:var(--r-xl);box-shadow:var(--sh-xl);display:flex;flex-direction:column;overflow:hidden;animation:dialog-in var(--dur-slow) var(--ease-out)}.settings-header{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-5);border-bottom:1px solid var(--c-border)}.settings-header-icon{width:40px;height:40px;border-radius:var(--r);background:var(--c-primary-soft);color:var(--c-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.settings-header-title{flex:1}.settings-header-title h2{font-size:var(--fs-lg);margin:0 0 2px;color:var(--c-text)}.settings-header-title p{font-size:var(--fs-xs);color:var(--c-text-muted)}.settings-close{padding:6px;background:transparent;border:0;border-radius:var(--r-sm);color:var(--c-text-subtle);cursor:pointer;transition:background var(--dur-fast)}.settings-close:hover{background:var(--c-surface-alt);color:var(--c-text)}.settings-tabs{display:flex;gap:2px;padding:0 var(--s-5);border-bottom:1px solid var(--c-border);background:var(--c-surface-hover)}.settings-tab{padding:10px 14px;background:none;border:0;border-bottom:2px solid transparent;font:inherit;font-size:var(--fs-sm);font-weight:500;color:var(--c-text-muted);cursor:pointer;transition:color var(--dur-fast),border-color var(--dur-fast);display:inline-flex;align-items:center;gap:6px}.settings-tab:hover{color:var(--c-text)}.settings-tab.active{color:var(--c-primary);border-bottom-color:var(--c-primary)}.settings-body{flex:1;overflow-y:auto;padding:var(--s-5)}.settings-section{margin-bottom:var(--s-5)}.settings-section:last-child{margin-bottom:0}.settings-section h3{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.03em;color:var(--c-text-muted);margin:0 0 var(--s-3);display:flex;align-items:center;gap:6px}.settings-info-grid{display:grid;grid-template-columns:140px 1fr;gap:var(--s-2);font-size:var(--fs-sm)}.settings-info-label{color:var(--c-text-muted)}.settings-info-value{color:var(--c-text);font-weight:500}.settings-disclaimer{padding:var(--s-4);background:var(--c-warning-soft);border:1px solid var(--c-warning-border);border-radius:var(--r);font-size:var(--fs-sm);color:var(--c-warning);display:flex;gap:var(--s-3)}.settings-disclaimer svg{flex-shrink:0;margin-top:2px}.settings-disclaimer ul{margin:6px 0 0 16px;padding:0;display:flex;flex-direction:column;gap:4px}.settings-card{padding:var(--s-4);background:var(--c-surface-hover);border:1px solid var(--c-border);border-radius:var(--r);margin-bottom:var(--s-3)}.settings-card-title{font-size:var(--fs-sm);font-weight:600;color:var(--c-text);margin-bottom:var(--s-2);display:flex;align-items:center;gap:6px}.settings-card-desc{font-size:var(--fs-xs);color:var(--c-text-muted);margin-bottom:var(--s-3);line-height:1.5}.settings-actions{display:flex;gap:var(--s-2);flex-wrap:wrap}.settings-warning-box{padding:var(--s-4);background:var(--c-danger-soft);border:1px solid var(--c-danger-border);border-radius:var(--r);color:var(--c-danger);font-size:var(--fs-sm);display:flex;gap:var(--s-3);margin-bottom:var(--s-4)}.settings-warning-box svg{flex-shrink:0;margin-top:2px}.settings-warning-box strong{display:block;margin-bottom:4px}.settings-confirm-input{display:flex;flex-direction:column;gap:var(--s-2);margin-bottom:var(--s-3)}.settings-confirm-input label{font-size:var(--fs-xs);color:var(--c-text-muted)}.settings-confirm-input label code{background:var(--c-surface-alt);padding:2px 6px;border-radius:var(--r-sm);font-family:var(--font-mono);color:var(--c-text);font-weight:700}.settings-confirm-input input{padding:8px 12px;border:1px solid var(--c-border);border-radius:var(--r-sm);font:inherit;font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;background:var(--c-surface)}.settings-confirm-input input:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px #2563eb1a}.settings-preview{padding:var(--s-4);background:var(--c-surface-hover);border:1px solid var(--c-border);border-radius:var(--r);margin-bottom:var(--s-3)}.settings-preview-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:var(--s-2);margin-top:var(--s-3)}.settings-preview-stat{padding:var(--s-2) var(--s-3);background:var(--c-surface);border-radius:var(--r-sm);text-align:center}.settings-preview-stat-num{font-size:var(--fs-lg);font-weight:700;color:var(--c-text);font-family:var(--font-mono)}.settings-preview-stat-label{font-size:10.5px;color:var(--c-text-muted);margin-top:2px;text-transform:uppercase;letter-spacing:.03em}.settings-danger-title{display:flex;align-items:center;gap:8px;font-size:var(--fs-md);font-weight:700;color:var(--c-danger);margin-bottom:var(--s-2)}.settings-form-grid{display:grid;grid-template-columns:1fr;gap:var(--s-3)}@media (min-width: 640px){.settings-form-grid{grid-template-columns:1fr 1fr}.settings-form-grid .full{grid-column:1 / -1}}.settings-form-grid label{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-xs);color:var(--c-text-muted)}.settings-form-grid label span{font-weight:500}.settings-form-grid input,.settings-form-grid textarea{padding:7px 10px;border:1px solid var(--c-border);border-radius:var(--r-sm);font:inherit;font-size:var(--fs-sm);background:var(--c-surface);color:var(--c-text)}.settings-form-grid input:focus,.settings-form-grid textarea:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px #2563eb1a}.settings-section-split{border-top:1px solid var(--c-border);margin-top:var(--s-4);padding-top:var(--s-4)}.settings-section-split h4{font-size:var(--fs-sm);color:var(--c-text);font-weight:600;margin:0 0 var(--s-3)}.settings-logo-upload{display:flex;align-items:center;gap:var(--s-3);grid-column:1 / -1}.settings-logo-preview{width:72px;height:72px;border-radius:var(--r);border:1px dashed var(--c-border-strong);background:var(--c-surface-hover);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.settings-logo-preview img{max-width:100%;max-height:100%;object-fit:contain}.settings-logo-preview svg{color:var(--c-text-subtle)}.settings-logo-actions{display:flex;flex-direction:column;gap:4px}.settings-logo-actions button{padding:5px 10px;border:1px solid var(--c-border);border-radius:var(--r-sm);background:var(--c-surface);font:inherit;font-size:var(--fs-xs);color:var(--c-text-muted);cursor:pointer}.settings-logo-actions button:hover{background:var(--c-surface-alt);color:var(--c-text)}.settings-profile-save{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);margin-top:var(--s-4);padding-top:var(--s-4);border-top:1px solid var(--c-border);flex-wrap:wrap}.settings-profile-saved{font-size:var(--fs-xs);color:var(--c-success);display:flex;align-items:center;gap:4px}.docs-page{max-width:900px}.docs-header{margin-bottom:var(--s-5)}.docs-title{font-size:var(--fs-2xl);font-weight:700;color:var(--c-text);letter-spacing:-.02em;margin:0 0 4px}.docs-sub{font-size:var(--fs-sm);color:var(--c-text-muted)}.docs-section{margin-bottom:var(--s-5)}.docs-section-title{font-size:var(--fs-sm);font-weight:600;color:var(--c-text-muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 var(--s-3)}.docs-draft-info{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-4);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);margin-bottom:var(--s-3);flex-wrap:wrap}.docs-draft-school{font-size:var(--fs-md);font-weight:600;color:var(--c-text)}.docs-draft-meta{font-size:var(--fs-xs);color:var(--c-text-muted);font-family:var(--font-mono);margin-top:2px}.docs-draft-stats{font-size:var(--fs-xs);color:var(--c-text-muted);margin-top:4px}.docs-status{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:600;white-space:nowrap}.docs-status-ready{background:var(--c-success-soft);color:var(--c-success)}.docs-status-warn{background:var(--c-warning-soft);color:var(--c-warning)}.docs-issues{padding:var(--s-3) var(--s-4);background:var(--c-warning-soft);border:1px solid var(--c-warning-border);border-radius:var(--r);margin-bottom:var(--s-4)}.docs-issues-title{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);font-weight:600;color:var(--c-warning);margin-bottom:var(--s-2)}.docs-issue{font-size:var(--fs-xs);color:var(--c-text);line-height:1.5;padding:3px 0}.docs-issue-more{color:var(--c-text-muted);font-style:italic}.docs-card{display:flex;gap:var(--s-4);align-items:center;padding:var(--s-4);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);margin-bottom:var(--s-2);transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.docs-card:hover{border-color:var(--c-border-strong);box-shadow:var(--sh-sm)}.docs-card-icon{flex-shrink:0;width:44px;height:44px;border-radius:var(--r);display:flex;align-items:center;justify-content:center}.docs-card-icon.tone-primary{background:var(--c-primary-soft);color:var(--c-primary)}.docs-card-icon.tone-success{background:var(--c-success-soft);color:var(--c-success)}.docs-card-icon.tone-warning{background:var(--c-warning-soft);color:var(--c-warning)}.docs-card-icon.tone-info{background:var(--c-info-soft);color:var(--c-info)}.docs-card-body{flex:1;min-width:0}.docs-card-title{font-size:var(--fs-md);font-weight:600;color:var(--c-text);margin-bottom:4px}.docs-card-desc{font-size:var(--fs-sm);color:var(--c-text-muted);line-height:1.5}.docs-card-meta{font-size:var(--fs-xs);color:var(--c-text-subtle);margin-top:6px;font-family:var(--font-mono)}.docs-card-actions{flex-shrink:0}.docs-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-3);padding:var(--s-12) var(--s-6);text-align:center;color:var(--c-text-muted)}.docs-empty-icon{width:72px;height:72px;border-radius:var(--r-xl);background:var(--c-primary-soft);color:var(--c-primary);display:flex;align-items:center;justify-content:center}.docs-empty h2{font-size:var(--fs-lg);color:var(--c-text);margin:0}.docs-empty p{font-size:var(--fs-sm);max-width:360px;line-height:1.5;margin:0}.docs-empty-actions{display:flex;gap:var(--s-2);margin-top:var(--s-2);flex-wrap:wrap;justify-content:center}.docs-footer-info{display:flex;align-items:center;gap:6px;padding-top:var(--s-3);margin-top:var(--s-4);border-top:1px solid var(--c-border);font-size:var(--fs-xs);color:var(--c-text-subtle)}.docs-footer-info svg{color:var(--c-primary)}@media (max-width: 640px){.docs-card{flex-wrap:wrap}.docs-card-actions,.docs-card-actions .btn{width:100%}}.reader-page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s-4);margin-bottom:var(--s-6);flex-wrap:wrap}.reader-page-title{font-size:var(--fs-2xl);font-weight:700;color:var(--c-text);letter-spacing:-.02em;margin:0 0 var(--s-1);line-height:1.2}.reader-page-sub{font-size:var(--fs-sm);color:var(--c-text-muted)}.reader-page-file{display:inline-flex;align-items:center;gap:6px;margin-top:var(--s-2);padding:3px 9px;background:var(--c-surface-alt);border-radius:var(--r-full);font-size:var(--fs-xs);color:var(--c-text-muted);font-family:var(--font-mono);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.reader-page-file svg{flex-shrink:0}.reader-warning{margin-top:var(--s-3);padding:10px 14px;background:var(--c-warning-soft);border:1px solid var(--c-warning-border);color:var(--c-warning);border-radius:var(--r);font-size:var(--fs-sm)}.reader-section{margin-bottom:var(--s-6);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--s-5);box-shadow:var(--sh-xs)}.reader-section-title{font-size:var(--fs-md);font-weight:600;color:var(--c-text);margin:0 0 var(--s-4)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--s-3);margin-bottom:var(--s-6)}.kpi-card{display:flex;gap:var(--s-3);align-items:flex-start;padding:var(--s-4);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-xs);transition:box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}.kpi-card:hover{box-shadow:var(--sh-md);border-color:var(--c-border-strong);transform:translateY(-1px)}.kpi-icon{flex-shrink:0;width:38px;height:38px;border-radius:var(--r);display:flex;align-items:center;justify-content:center}.kpi-icon-primary{background:var(--c-primary-soft);color:var(--c-primary)}.kpi-icon-danger{background:var(--c-danger-soft);color:var(--c-danger)}.kpi-icon-warning{background:var(--c-warning-soft);color:var(--c-warning)}.kpi-icon-info{background:var(--c-info-soft);color:var(--c-info)}.kpi-icon-purple{background:#f5f3ff;color:#7c3aed}.kpi-content{flex:1;min-width:0}.kpi-label{font-size:var(--fs-xs);color:var(--c-text-muted);font-weight:500;margin-bottom:2px}.kpi-value{font-size:var(--fs-2xl);font-weight:700;color:var(--c-text);line-height:1.1;margin-bottom:2px}.kpi-sub{font-size:var(--fs-xs);color:var(--c-text-subtle);line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filters{display:flex;gap:var(--s-2);flex-wrap:wrap;align-items:center;margin-bottom:var(--s-4)}.filters input,.filters select{border:1px solid var(--c-border);border-radius:var(--r-sm);padding:7px 10px;font:inherit;font-size:var(--fs-sm);background:var(--c-surface);color:var(--c-text)}.filters input:focus,.filters select:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px #2563eb1a}.tbl{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.tbl th{text-align:left;font-weight:600;color:var(--c-text-muted);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.03em;padding:10px;border-bottom:1px solid var(--c-border);white-space:nowrap;background:var(--c-surface-hover)}.tbl td{padding:10px;border-bottom:1px solid var(--c-border);vertical-align:top}.tbl tr.clickable{cursor:pointer}.tbl tr.clickable:hover>td{background:var(--c-surface-hover)}.tbl tr.detail-row>td{background:var(--c-surface-hover);padding:0}.tbl.inner{font-size:var(--fs-xs);margin:4px 0 8px 32px;width:calc(100% - 32px)}.tbl.inner td{border-bottom:1px dotted var(--c-border);padding:6px 8px}.b-green{background:var(--c-success-soft);color:var(--c-success)}.b-red{background:var(--c-danger-soft);color:var(--c-danger)}.b-amber{background:var(--c-warning-soft);color:var(--c-warning)}.b-blue{background:var(--c-primary-soft);color:var(--c-primary)}.b-gray{background:var(--c-surface-alt);color:var(--c-text-muted)}.up{color:var(--c-success);font-weight:600}.down{color:var(--c-danger);font-weight:600}.same{color:var(--c-text-subtle)}.flags{list-style:none;padding:0;margin:0}.flag{display:flex;align-items:flex-start;gap:var(--s-3);padding:10px 0;border-bottom:1px solid var(--c-border)}.flag:last-child{border-bottom:0}.badge-kritis{background:var(--c-danger-soft);color:var(--c-danger)}.badge-tinggi{background:var(--c-warning-soft);color:var(--c-warning)}.badge-sedang{background:var(--c-info-soft);color:var(--c-info)}.chart-scroll{max-height:560px;overflow:auto}.chart-wrap{width:100%;overflow-x:auto}.chart-svg{width:100%;height:auto;min-width:720px;display:block}.chart-empty{display:flex;flex-direction:column;align-items:center;gap:var(--s-3);padding:var(--s-8) 0;color:var(--c-text-subtle)}.flags-groups{display:flex;flex-direction:column;gap:var(--s-3)}.flags-empty{display:flex;flex-direction:column;align-items:center;gap:var(--s-3);padding:var(--s-8) 0;text-align:center;color:var(--c-success)}.flags-empty p{color:var(--c-text-muted);font-size:var(--fs-sm)}.flag-group{border:1px solid var(--c-border);border-radius:var(--r);overflow:hidden}.flag-group-danger{border-color:var(--c-danger-border)}.flag-group-warning{border-color:var(--c-warning-border)}.flag-group-info{border-color:var(--c-info-border)}.flag-group-header{display:flex;align-items:center;gap:var(--s-2);width:100%;padding:11px var(--s-4);background:var(--c-surface-hover);border:0;font:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer;text-align:left;transition:background var(--dur-fast)}.flag-group-header:hover{background:var(--c-surface-alt)}.flag-group-danger .flag-group-header{color:var(--c-danger);background:var(--c-danger-soft)}.flag-group-warning .flag-group-header{color:var(--c-warning);background:var(--c-warning-soft)}.flag-group-info .flag-group-header{color:var(--c-info);background:var(--c-info-soft)}.flag-group-icon{display:flex}.flag-group-label{flex:1}.flag-group-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:var(--r-full);background:#ffffffb3;font-size:var(--fs-xs);font-weight:700;color:inherit}.flag-group-chevron{opacity:.7;transition:transform var(--dur-fast) var(--ease)}.flag-group-chevron.open{transform:rotate(180deg)}.flag-group-list{list-style:none;margin:0;padding:var(--s-3) var(--s-4) var(--s-3) var(--s-8);display:flex;flex-direction:column;gap:var(--s-2)}.flag-group-list li{font-size:var(--fs-sm);color:var(--c-text);line-height:1.5;position:relative}.flag-group-list li:before{content:"";position:absolute;left:-14px;top:8px;width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.5}.filter-search{position:relative;flex:1;min-width:220px;max-width:320px}.filter-search input{width:100%;padding-left:34px!important}.filter-search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--c-text-subtle);pointer-events:none}.filter-reset{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;background:transparent;border:1px solid var(--c-border);border-radius:var(--r-sm);font:inherit;font-size:var(--fs-xs);color:var(--c-text-muted);cursor:pointer;transition:background var(--dur-fast),color var(--dur-fast)}.filter-reset:hover{background:var(--c-surface-alt);color:var(--c-text)}.filter-count{font-size:var(--fs-xs);color:var(--c-text-muted);margin-left:auto}.table-wrap{max-height:640px;overflow:auto;border:1px solid var(--c-border);border-radius:var(--r);margin-top:var(--s-3)}.table-sticky thead th{position:sticky;top:0;z-index:2;background:var(--c-surface-hover)}.table-empty{display:flex;flex-direction:column;align-items:center;gap:var(--s-3);padding:var(--s-8) 0;color:var(--c-text-subtle)}.table-empty p{color:var(--c-text-muted);font-size:var(--fs-sm)}.row-count{display:inline-flex;align-items:center;justify-content:center;margin-left:6px;padding:1px 7px;background:var(--c-surface-alt);border-radius:var(--r-full);font-size:10.5px;color:var(--c-text-muted);font-weight:500}.score-cell{font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:600;color:var(--c-text)}.gtk-panel{margin-bottom:var(--s-6);padding:var(--s-5);background:linear-gradient(135deg,#fafbff,#f5f3ff);border:1px solid var(--c-primary-border);border-radius:var(--r-lg);box-shadow:var(--sh-xs)}.gtk-panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s-3);margin-bottom:var(--s-4);flex-wrap:wrap}.gtk-panel-title{font-size:var(--fs-md);font-weight:600;color:var(--c-text);margin:0 0 4px}.gtk-panel-sub{font-size:var(--fs-xs);color:var(--c-text-muted);line-height:1.5}.gtk-panel-head-actions{display:flex;gap:var(--s-2);flex-wrap:wrap}.gtk-action-btn{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid var(--c-border);border-radius:var(--r-sm);background:var(--c-surface);font:inherit;font-size:var(--fs-xs);color:var(--c-text-muted);cursor:pointer;transition:all var(--dur-fast);white-space:nowrap}.gtk-action-btn:hover{background:var(--c-surface-alt);color:var(--c-text);border-color:var(--c-border-strong)}.gtk-action-btn.primary{background:var(--c-primary);border-color:var(--c-primary);color:#fff}.gtk-action-btn.primary:hover{background:var(--c-primary-hover)}.gtk-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:var(--s-3)}.gtk-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r);padding:var(--s-4);display:flex;flex-direction:column;gap:var(--s-3);box-shadow:var(--sh-xs)}.gtk-card-head{display:flex;align-items:flex-start;gap:var(--s-2)}.gtk-role-icon{width:30px;height:30px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.gtk-role-icon-guru{background:var(--c-info-soft);color:var(--c-info)}.gtk-role-icon-ks{background:var(--c-primary-soft);color:var(--c-primary)}.gtk-card-head-text{flex:1;min-width:0}.gtk-card-label{font-size:var(--fs-sm);font-weight:600;color:var(--c-text)}.gtk-card-desc{font-size:var(--fs-xs);color:var(--c-text-muted);margin-top:1px}.gtk-reco{display:flex;gap:var(--s-2);padding:var(--s-3);background:linear-gradient(135deg,#eff6ff,#faf5ff);border:1px solid var(--c-primary-border);border-radius:var(--r-sm)}.gtk-reco-star{font-size:16px;color:var(--c-primary);line-height:1;flex-shrink:0;margin-top:2px}.gtk-reco-body{flex:1;min-width:0}.gtk-reco-title{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:4px}.gtk-reco-code{background:var(--c-primary);color:#fff;padding:1px 6px;border-radius:var(--r-sm);font-family:var(--font-mono);font-size:10.5px;font-weight:700}.gtk-reco-name{font-size:var(--fs-sm);font-weight:600;color:var(--c-text)}.gtk-reco-stats{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-xs);color:var(--c-text-muted);flex-wrap:wrap}.gtk-reco-stats b{color:var(--c-text);font-family:var(--font-mono);font-size:var(--fs-sm)}.gtk-reco-reason{font-size:var(--fs-xs);color:var(--c-text-muted);line-height:1.5;margin-top:6px;font-style:italic}.gtk-tren{display:inline-flex;align-items:center;gap:2px;padding:1px 6px;border-radius:var(--r-full);font-size:10.5px;font-weight:600;font-family:var(--font-mono);white-space:nowrap}.gtk-tren.up{background:var(--c-success-soft);color:var(--c-success)}.gtk-tren.down{background:var(--c-danger-soft);color:var(--c-danger)}.gtk-tren.neutral{background:var(--c-surface-alt);color:var(--c-text-muted)}.gtk-alts{padding-top:var(--s-2);border-top:1px dashed var(--c-border)}.gtk-alts-label{font-size:10.5px;font-weight:600;color:var(--c-text-subtle);text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px}.gtk-alt-item{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:var(--fs-xs)}.gtk-alt-item.recommended{background:var(--c-primary-soft);padding:4px 8px;border-radius:var(--r-sm);margin:2px 0}.gtk-alt-item code{background:var(--c-surface-alt);padding:1px 5px;border-radius:var(--r-sm);font-family:var(--font-mono);font-size:10.5px;color:var(--c-text-muted);flex-shrink:0}.gtk-alt-name{flex:1;color:var(--c-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gtk-alt-score{color:var(--c-text-muted);font-family:var(--font-mono);font-size:11px}.gtk-all{padding-top:var(--s-2);border-top:1px dashed var(--c-border)}.gtk-card-actions{display:flex;justify-content:space-between;gap:var(--s-2);padding-top:var(--s-2);border-top:1px solid var(--c-border);margin-top:auto}.gtk-tip{display:flex;gap:var(--s-2);padding:var(--s-3) var(--s-4);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-sm);margin-top:var(--s-3);font-size:var(--fs-xs);color:var(--c-text-muted);line-height:1.5}.gtk-tip svg{flex-shrink:0;margin-top:1px;color:var(--c-primary)}.chart-row-highlight{fill:var(--c-primary-soft)}.gtk-table-badge{display:inline-flex;align-items:center;gap:3px;margin-left:6px;padding:1px 6px;border-radius:var(--r-full);background:#f5f3ff;color:#7c3aed;font-size:10px;font-weight:700;letter-spacing:.02em;vertical-align:1px}.gtk-table-badge svg{width:10px;height:10px}@media print{body.print-gtk-only *{visibility:hidden}body.print-gtk-only .gtk-panel,body.print-gtk-only .gtk-panel *{visibility:visible}body.print-gtk-only .gtk-panel{position:absolute;left:0;top:0;width:100%;margin:0;box-shadow:none;background:#fff;border-color:#ccc}body.print-gtk-only .gtk-panel-head-actions,body.print-gtk-only .gtk-card-actions{display:none}}@media print{@page{size:A4;margin:1.5cm}body{background:#fff!important}.sidebar,.sidebar-backdrop,.app-mobile-topbar{display:none!important}.app-layout{display:block!important}.app-content{padding:0!important;margin:0!important}.app-main{padding:0!important;max-width:none!important;margin:0!important}.reader-page-header button{display:none!important}.reader-page-file{background:transparent!important;padding:0!important;font-size:10px!important}.reader-section,.kpi-card,.pmm-panel,.flags-group{break-inside:avoid;page-break-inside:avoid;box-shadow:none!important;border:1px solid #ccc!important;background:#fff!important}.kpi-grid{gap:6px!important}.kpi-card{padding:8px!important}.chart-wrap{overflow:visible!important;max-height:none!important}.chart-svg{max-width:100%!important;height:auto!important}.table-wrap{max-height:none!important;overflow:visible!important;border:0!important}.tbl th{background:#f5f5f5!important;-webkit-print-color-adjust:exact}}.ai-backdrop{position:fixed;inset:0;background:#0f172a80;z-index:950;display:flex;align-items:center;justify-content:center;padding:var(--s-4);animation:fade-in var(--dur) var(--ease)}.ai-modal{width:100%;max-width:780px;max-height:92vh;background:var(--c-surface);border-radius:var(--r-xl);box-shadow:var(--sh-xl);display:flex;flex-direction:column;overflow:hidden;animation:dialog-in var(--dur-slow) var(--ease-out)}.ai-header{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-5);border-bottom:1px solid var(--c-border);background:linear-gradient(135deg,#eff6ff,#f5f3ff)}.ai-header-icon{width:40px;height:40px;border-radius:var(--r);background:linear-gradient(135deg,#7c3aed,#2563eb);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ai-header-title{flex:1}.ai-header-title h2{font-size:var(--fs-lg);margin:0 0 2px;color:var(--c-text)}.ai-header-title p{font-size:var(--fs-xs);color:var(--c-text-muted)}.ai-close{padding:6px;background:transparent;border:0;border-radius:var(--r-sm);color:var(--c-text-subtle);cursor:pointer;transition:background var(--dur-fast)}.ai-close:hover{background:var(--c-surface-alt);color:var(--c-text)}.ai-steps{display:flex;gap:2px;padding:var(--s-3) var(--s-5);border-bottom:1px solid var(--c-border);background:var(--c-surface-hover)}.ai-step{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:500;color:var(--c-text-muted)}.ai-step-num{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--c-surface-alt);color:var(--c-text-subtle);font-size:10px;font-weight:700}.ai-step.active{background:var(--c-primary-soft);color:var(--c-primary)}.ai-step.active .ai-step-num{background:var(--c-primary);color:#fff}.ai-step.done{color:var(--c-success)}.ai-step.done .ai-step-num{background:var(--c-success);color:#fff}.ai-body{flex:1;overflow-y:auto;padding:var(--s-5)}.ai-footer{display:flex;justify-content:space-between;gap:var(--s-2);padding:var(--s-4) var(--s-5);border-top:1px solid var(--c-border);background:var(--c-surface-hover)}.ai-section{margin-bottom:var(--s-5)}.ai-section:last-child{margin-bottom:0}.ai-section-title{font-size:var(--fs-sm);font-weight:600;color:var(--c-text);margin-bottom:var(--s-2);display:flex;align-items:center;gap:6px}.ai-section-hint{font-size:var(--fs-xs);color:var(--c-text-muted);margin-bottom:var(--s-3)}.ai-levels{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--s-2)}.ai-level{padding:var(--s-3);border:1px solid var(--c-border);border-radius:var(--r);background:var(--c-surface);cursor:pointer;transition:all var(--dur-fast);text-align:left;font:inherit}.ai-level:hover{border-color:var(--c-border-strong)}.ai-level.selected{border-color:var(--c-primary);background:var(--c-primary-soft);box-shadow:0 0 0 3px #2563eb14}.ai-level-title{font-size:var(--fs-sm);font-weight:600;color:var(--c-text);margin-bottom:2px}.ai-level-desc{font-size:var(--fs-xs);color:var(--c-text-muted);line-height:1.4}.ai-prio-list{display:flex;flex-direction:column;gap:6px;max-height:280px;overflow-y:auto;padding:4px}.ai-prio-item{display:flex;align-items:flex-start;gap:var(--s-2);padding:8px 10px;border:1px solid var(--c-border);border-radius:var(--r-sm);background:var(--c-surface);cursor:pointer;transition:all var(--dur-fast)}.ai-prio-item:hover{border-color:var(--c-border-strong)}.ai-prio-item.selected{border-color:var(--c-primary);background:var(--c-primary-soft)}.ai-prio-check{margin-top:2px;accent-color:var(--c-primary)}.ai-prio-code{font-family:var(--font-mono);font-size:var(--fs-xs);background:var(--c-surface-alt);padding:1px 6px;border-radius:var(--r-sm)}.ai-prio-name{font-size:var(--fs-sm);color:var(--c-text);margin-top:2px}.ai-prompt-box{position:relative;background:var(--c-surface-hover);border:1px solid var(--c-border);border-radius:var(--r);padding:var(--s-3)}.ai-prompt-box textarea{width:100%;min-height:260px;max-height:340px;background:transparent;border:0;outline:none;resize:vertical;font-family:var(--font-mono);font-size:11.5px;line-height:1.5;color:var(--c-text)}.ai-copy-btn{margin-top:var(--s-2)}.ai-warning{display:flex;gap:var(--s-2);padding:var(--s-3);background:var(--c-warning-soft);border:1px solid var(--c-warning-border);border-radius:var(--r);font-size:var(--fs-xs);color:var(--c-warning);margin-bottom:var(--s-4)}.ai-paste textarea{width:100%;min-height:160px;border:1px solid var(--c-border);border-radius:var(--r);padding:10px 12px;font-family:var(--font-mono);font-size:12px;line-height:1.5;resize:vertical;background:var(--c-surface)}.ai-paste textarea:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px #2563eb1a}.ai-paste textarea.has-error{border-color:var(--c-danger)}.ai-errors{margin-top:var(--s-2);padding:var(--s-3);background:var(--c-danger-soft);border:1px solid var(--c-danger-border);border-radius:var(--r-sm);font-size:var(--fs-xs);color:var(--c-danger)}.ai-errors ul{margin:4px 0 0 16px;padding:0}.ai-diff-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--s-2);margin-bottom:var(--s-4)}.ai-diff-stat{padding:var(--s-3);border-radius:var(--r);background:var(--c-surface-hover);border:1px solid var(--c-border)}.ai-diff-stat-label{font-size:var(--fs-xs);color:var(--c-text-muted)}.ai-diff-stat-value{font-size:var(--fs-xl);font-weight:700;color:var(--c-text);margin-top:2px;font-family:var(--font-mono)}.ai-diff-stat-value.positive{color:var(--c-success)}.ai-diff-stat-value.negative{color:var(--c-danger)}.ai-diff-list{display:flex;flex-direction:column;gap:var(--s-2)}.ai-diff-item{border:1px solid var(--c-border);border-radius:var(--r);padding:var(--s-3);background:var(--c-surface)}.ai-diff-item.new{border-left:3px solid var(--c-success)}.ai-diff-item.changed{border-left:3px solid var(--c-warning)}.ai-diff-item.unchanged{border-left:3px solid var(--c-border-strong);opacity:.7}.ai-diff-head{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-2);flex-wrap:wrap}.ai-diff-head code{background:var(--c-surface-alt);padding:1px 7px;border-radius:var(--r-sm);font-family:var(--font-mono);font-size:var(--fs-xs)}.ai-diff-head strong{font-size:var(--fs-sm)}.ai-diff-changes{display:flex;flex-wrap:wrap;gap:var(--s-3);font-size:var(--fs-xs);color:var(--c-text-muted)}.ai-diff-change b{color:var(--c-text);font-family:var(--font-mono)}.ai-applied{display:flex;flex-direction:column;align-items:center;gap:var(--s-3);padding:var(--s-8) var(--s-5);text-align:center}.ai-applied-icon{width:64px;height:64px;border-radius:var(--r-xl);background:var(--c-success-soft);color:var(--c-success);display:flex;align-items:center;justify-content:center}.ai-applied h3{font-size:var(--fs-lg);margin:0;color:var(--c-text)}.ai-applied p{font-size:var(--fs-sm);color:var(--c-text-muted);max-width:400px}.ai-countdown{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:var(--c-warning-soft);color:var(--c-warning);border-radius:var(--r-full);font-size:var(--fs-sm);font-weight:600;font-family:var(--font-mono)}.wiz-ai-bar{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);background:linear-gradient(135deg,#eff6ff,#f5f3ff);border:1px solid var(--c-primary-border);border-radius:var(--r);margin-bottom:var(--s-4)}.wiz-ai-bar-hint{font-size:var(--fs-xs);color:var(--c-text-muted);flex:1}.drm-backdrop{position:fixed;inset:0;background:#0f172a8c;z-index:1100;display:flex;align-items:center;justify-content:center;padding:var(--s-4);animation:fade-in var(--dur) var(--ease)}.drm-modal{width:100%;max-width:460px;background:var(--c-surface);border-radius:var(--r-xl);box-shadow:var(--sh-xl);padding:var(--s-5);animation:dialog-in var(--dur-slow) var(--ease-out)}.drm-header{display:flex;gap:var(--s-3);align-items:flex-start;margin-bottom:var(--s-4)}.drm-icon{flex-shrink:0;width:44px;height:44px;border-radius:var(--r);background:var(--c-primary-soft);color:var(--c-primary);display:flex;align-items:center;justify-content:center}.drm-header h2{font-size:var(--fs-lg);margin:0 0 4px;color:var(--c-text)}.drm-header p{font-size:var(--fs-sm);color:var(--c-text-muted);margin:0;line-height:1.5}.drm-school{padding:var(--s-3) var(--s-4);background:var(--c-surface-hover);border-radius:var(--r);margin-bottom:var(--s-3)}.drm-school-name{font-size:var(--fs-md);font-weight:600;color:var(--c-text)}.drm-school-meta{font-size:var(--fs-xs);color:var(--c-text-muted);font-family:var(--font-mono);margin-top:2px}.drm-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-2);margin-bottom:var(--s-3)}.drm-stat{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-sm)}.drm-stat-icon{width:28px;height:28px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0}.drm-stat-icon.tone-primary{background:var(--c-primary-soft);color:var(--c-primary)}.drm-stat-icon.tone-info{background:var(--c-info-soft);color:var(--c-info)}.drm-stat-icon.tone-warning{background:var(--c-warning-soft);color:var(--c-warning)}.drm-stat-value{font-size:var(--fs-lg);font-weight:700;color:var(--c-text);font-family:var(--font-mono);line-height:1.1}.drm-stat-label{font-size:10.5px;color:var(--c-text-muted);text-transform:uppercase;letter-spacing:.03em}.drm-amount{display:flex;justify-content:space-between;align-items:center;padding:var(--s-3) var(--s-4);background:var(--c-primary-soft);border-radius:var(--r-sm);margin-bottom:var(--s-3);font-size:var(--fs-sm);color:var(--c-text-muted)}.drm-amount strong{font-size:var(--fs-lg);font-family:var(--font-mono);color:var(--c-primary)}.drm-time{display:flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--c-text-muted);margin-bottom:var(--s-3)}.drm-hint{display:flex;gap:var(--s-2);padding:var(--s-3);background:var(--c-info-soft);border:1px solid var(--c-info-border);border-radius:var(--r-sm);font-size:var(--fs-xs);color:var(--c-info);line-height:1.5;margin-bottom:var(--s-4)}.drm-hint svg{flex-shrink:0;margin-top:1px}.drm-actions{display:flex;gap:var(--s-2);justify-content:flex-end;flex-wrap:wrap}.drm-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 18px;border-radius:var(--r);border:1px solid transparent;font:inherit;font-size:var(--fs-sm);font-weight:600;cursor:pointer;transition:all var(--dur-fast)}.drm-btn-secondary{background:var(--c-surface);color:var(--c-text-muted);border-color:var(--c-border)}.drm-btn-secondary:hover{background:var(--c-surface-alt);color:var(--c-text);border-color:var(--c-border-strong)}.drm-btn-primary{background:var(--c-primary);color:#fff;border-color:var(--c-primary)}.drm-btn-primary:hover{background:var(--c-primary-hover);border-color:var(--c-primary-hover)}.wizard{max-width:1000px;margin:0 auto}.wizard-top{margin-bottom:var(--s-5)}.wizard-title{font-size:var(--fs-2xl);font-weight:700;color:var(--c-text);letter-spacing:-.02em;margin:0 0 2px}.wizard-sub{font-size:var(--fs-sm);color:var(--c-text-muted)}.wizard-progress{display:flex;align-items:center;gap:4px;list-style:none;padding:0;margin:0 0 var(--s-6);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--s-3);box-shadow:var(--sh-xs);overflow-x:auto}.wizard-step-item{display:flex;align-items:center;gap:4px;flex-shrink:0;flex:1;min-width:0}.wizard-step{display:inline-flex;align-items:center;gap:var(--s-2);padding:6px 12px;background:transparent;border:0;border-radius:var(--r-full);font:inherit;font-size:var(--fs-sm);color:var(--c-text-muted);transition:all var(--dur) var(--ease);white-space:nowrap}.wizard-step:hover:not(:disabled){background:var(--c-surface-alt);color:var(--c-text)}.wizard-step:disabled{cursor:default;opacity:.6}.wizard-step.active{background:var(--c-primary-soft);color:var(--c-primary);font-weight:600}.wizard-step.done{color:var(--c-success)}.wizard-step.done:hover{background:var(--c-success-soft)}.wizard-step-dot{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--c-surface-alt);color:var(--c-text-subtle);flex-shrink:0;transition:background var(--dur),color var(--dur)}.wizard-step.active .wizard-step-dot{background:var(--c-primary);color:#fff}.wizard-step.done .wizard-step-dot{background:var(--c-success);color:#fff}.wizard-step-line{flex:1;height:2px;background:var(--c-border);border-radius:2px;transition:background var(--dur)}.wizard-step-line.done{background:var(--c-success)}.wizard-alert{padding:10px 14px;border-radius:var(--r);font-size:var(--fs-sm);margin-bottom:var(--s-4)}.wizard-alert-error{background:var(--c-danger-soft);color:var(--c-danger);border:1px solid var(--c-danger-border)}.wizard-alert-info{background:var(--c-info-soft);color:var(--c-info);border:1px solid var(--c-info-border)}.wizard-alert-warn{background:var(--c-warning-soft);color:var(--c-warning);border:1px solid var(--c-warning-border)}.wizard-alert-ok{background:var(--c-success-soft);color:var(--c-success);border:1px solid var(--c-success-border)}.wizard-body{display:flex;flex-direction:column;gap:var(--s-4)}.wizard-footer{display:flex;justify-content:space-between;margin-top:var(--s-6);padding-top:var(--s-5);border-top:1px solid var(--c-border)}.wiz-step-header{margin-bottom:var(--s-4)}.wiz-step-header h2{font-size:var(--fs-lg);margin:0 0 4px;color:var(--c-text)}.wiz-step-header p{font-size:var(--fs-sm);color:var(--c-text-muted)}.wiz-form-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--s-5);box-shadow:var(--sh-xs);display:flex;flex-direction:column;gap:var(--s-4)}.prio-grid{display:flex;flex-direction:column;gap:var(--s-3)}.prio-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--s-4);cursor:pointer;transition:all var(--dur) var(--ease);box-shadow:var(--sh-xs)}.prio-card:hover{border-color:var(--c-border-strong);box-shadow:var(--sh-sm)}.prio-card.selected{border-color:var(--c-primary);background:var(--c-primary-soft);box-shadow:0 0 0 3px #2563eb14}.prio-head{display:flex;gap:var(--s-3);align-items:flex-start}.prio-check{flex-shrink:0;width:20px;height:20px;margin-top:2px;accent-color:var(--c-primary);cursor:pointer}.prio-body{flex:1;min-width:0}.prio-title{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap;margin-bottom:4px}.prio-title code{background:var(--c-surface-alt);padding:1px 7px;border-radius:var(--r-sm);font-size:var(--fs-xs);font-family:var(--font-mono);color:var(--c-text)}.prio-title strong{font-size:var(--fs-base);color:var(--c-text)}.prio-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);font-size:var(--fs-xs);color:var(--c-text-muted)}.wiz-block{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-xs)}.wiz-block-head{padding:var(--s-3) var(--s-4);background:var(--c-surface-hover);border-bottom:1px solid var(--c-border);display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap}.wiz-block-head code{background:var(--c-primary-soft);color:var(--c-primary);padding:2px 8px;border-radius:var(--r-sm);font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:600}.wiz-block-head strong{font-size:var(--fs-sm);color:var(--c-text)}.wiz-block-body{padding:var(--s-4)}.impl-list{display:flex;flex-direction:column;gap:var(--s-2);margin-bottom:var(--s-3)}.impl-row{display:flex;gap:var(--s-2);align-items:flex-start;padding:var(--s-3);background:var(--c-surface-hover);border:1px solid var(--c-border);border-radius:var(--r);transition:border-color var(--dur-fast)}.impl-row:hover{border-color:var(--c-border-strong)}.impl-row>textarea{flex:1}.impl-badge-toggle{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--r-full);border:1px solid var(--c-border);background:var(--c-surface);font:inherit;font-size:var(--fs-xs);cursor:pointer;white-space:nowrap;transition:all var(--dur-fast)}.impl-badge-toggle.on{background:var(--c-warning-soft);border-color:var(--c-warning-border);color:var(--c-warning)}.impl-del{padding:4px 8px;border:1px solid transparent;background:transparent;color:var(--c-text-subtle);cursor:pointer;border-radius:var(--r-sm);transition:all var(--dur-fast)}.impl-del:hover{background:var(--c-danger-soft);color:var(--c-danger)}.impl-del:disabled{opacity:.3;cursor:not-allowed}.arkas-scroll{overflow-x:auto;border:1px solid var(--c-border);border-radius:var(--r);background:var(--c-surface)}.arkas-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.arkas-table th{text-align:left;padding:8px;background:var(--c-surface-hover);border-bottom:1px solid var(--c-border);font-size:var(--fs-xs);font-weight:600;color:var(--c-text-muted);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.arkas-table td{padding:6px 8px;border-bottom:1px solid var(--c-border);vertical-align:middle}.arkas-table tr:last-child td{border-bottom:0}.arkas-table input,.arkas-table select{width:100%;border:1px solid var(--c-border);border-radius:var(--r-sm);padding:5px 8px;font:inherit;font-size:var(--fs-sm);background:var(--c-surface);min-width:0}.arkas-table input:focus,.arkas-table select:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px #2563eb1a}.arkas-table input.error{border-color:var(--c-danger)}.arkas-total{display:flex;justify-content:space-between;align-items:center;padding:var(--s-4) var(--s-5);background:var(--c-surface-hover);border:1px solid var(--c-border);border-radius:var(--r);margin-top:var(--s-3);font-weight:600}.arkas-total strong{font-size:var(--fs-lg);color:var(--c-text);font-family:var(--font-mono)}.review-section{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--s-5);box-shadow:var(--sh-xs)}.review-section h3{font-size:var(--fs-md);margin:0 0 var(--s-3);color:var(--c-text);display:flex;align-items:center;gap:var(--s-2)}.review-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--s-3)}.review-kpi{padding:var(--s-3) var(--s-4);background:var(--c-surface-hover);border-radius:var(--r)}.review-kpi-label{font-size:var(--fs-xs);color:var(--c-text-muted)}.review-kpi-value{font-size:var(--fs-xl);font-weight:700;color:var(--c-text);margin-top:2px;font-family:var(--font-mono)}.review-issues{display:flex;flex-direction:column;gap:6px}.review-issue{padding:8px 12px;border-radius:var(--r-sm);font-size:var(--fs-sm);border-left:3px solid}.review-issue-error{background:var(--c-danger-soft);border-color:var(--c-danger);color:var(--c-danger)}.review-issue-warn{background:var(--c-warning-soft);border-color:var(--c-warning);color:var(--c-warning)}.review-prio-list{display:flex;flex-direction:column;gap:var(--s-2)}.review-prio-item{padding:var(--s-3) var(--s-4);background:var(--c-surface-hover);border-radius:var(--r);border-left:3px solid var(--c-primary)}.review-prio-head{display:flex;align-items:center;gap:var(--s-2);margin-bottom:4px;flex-wrap:wrap}.review-prio-head code{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:700;color:var(--c-primary)}.review-prio-head strong{font-size:var(--fs-sm)}.review-prio-meta{font-size:var(--fs-xs);color:var(--c-text-muted);display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:4px}.review-actions{display:flex;gap:var(--s-2);flex-wrap:wrap;padding-top:var(--s-4);border-top:1px solid var(--c-border);margin-top:var(--s-4)}.editor-top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s-4);margin-bottom:var(--s-5);flex-wrap:wrap}.editor-title{font-size:var(--fs-2xl);font-weight:700;color:var(--c-text);letter-spacing:-.02em;margin:0 0 2px}.editor-sub{font-size:var(--fs-sm);color:var(--c-text-muted)}.editor-seed{display:flex;gap:var(--s-2);flex-wrap:wrap;margin-bottom:var(--s-5)}.editor-prio-list{display:flex;flex-direction:column;gap:var(--s-2)}.editor-prio-pick{display:flex;gap:var(--s-3);align-items:center;padding:var(--s-3) var(--s-4);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);transition:border-color var(--dur-fast),box-shadow var(--dur-fast)}.editor-prio-pick:hover{border-color:var(--c-border-strong);box-shadow:var(--sh-sm)}.prio-title{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap}.prio-title code{background:var(--c-surface-alt);padding:1px 7px;border-radius:var(--r-sm);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--c-text)}.prio-title strong{font-size:var(--fs-sm)}.editor-tabs{display:flex;gap:4px;border-bottom:1px solid var(--c-border);margin-bottom:var(--s-4)}.editor-tab{display:inline-flex;align-items:center;gap:var(--s-2);padding:10px 16px;background:none;border:0;border-bottom:2px solid transparent;font:inherit;font-size:var(--fs-sm);font-weight:500;color:var(--c-text-muted);cursor:pointer;transition:color var(--dur-fast),border-color var(--dur-fast)}.editor-tab:hover{color:var(--c-text)}.editor-tab.active{color:var(--c-primary);border-bottom-color:var(--c-primary)}.editor-tab-count{padding:1px 8px;background:var(--c-surface-alt);border-radius:var(--r-full);font-size:10.5px;font-weight:600}.editor-tab.active .editor-tab-count{background:var(--c-primary-soft);color:var(--c-primary)}.editor-toolbar{display:flex;justify-content:space-between;gap:var(--s-2);flex-wrap:wrap;margin-bottom:var(--s-4);padding:var(--s-3) var(--s-4);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r)}.editor-add{display:flex;gap:var(--s-2);align-items:center}.editor-add .ui-select{min-width:240px;padding:6px 10px;font-size:var(--fs-sm)}.editor-prio-stack{display:flex;flex-direction:column;gap:var(--s-3)}.editor-prio-block{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);overflow:hidden;transition:box-shadow var(--dur),border-color var(--dur)}.editor-prio-block:hover{box-shadow:var(--sh-sm)}.editor-prio-header{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-3) var(--s-4);cursor:pointer;background:var(--c-surface-hover);transition:background var(--dur-fast);user-select:none}.editor-prio-header:hover{background:var(--c-surface-alt)}.editor-prio-chevron{color:var(--c-text-subtle);display:flex}.editor-prio-name{font-size:var(--fs-sm);font-weight:600;color:var(--c-text);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.editor-prio-del{padding:5px 8px;background:transparent;border:0;color:var(--c-text-subtle);cursor:pointer;border-radius:var(--r-sm);transition:all var(--dur-fast)}.editor-prio-del:hover{background:var(--c-danger-soft);color:var(--c-danger)}.editor-prio-body{padding:var(--s-4);border-top:1px solid var(--c-border)}.editor-inline-label{display:block;font-size:var(--fs-xs);color:var(--c-text-muted);font-weight:600;margin:var(--s-3) 0 6px}.editor-inline-label:first-child{margin-top:0}.editor-footer{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid var(--c-border);flex-wrap:wrap}.editor-save-status{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-xs);color:var(--c-text-muted)}.editor-save-status.saving{color:var(--c-warning)}.editor-save-status.saved{color:var(--c-success)}.editor-actions{display:flex;gap:var(--s-2);flex-wrap:wrap}.arkas-row:hover{background:var(--c-surface-hover)}.app-layout{display:flex;min-height:100vh;background:var(--c-bg)}.app-content{flex:1;min-width:0;display:flex;flex-direction:column}.app-main{flex:1;padding:var(--s-6);max-width:1280px;width:100%;margin:0 auto}.sidebar{width:244px;min-width:244px;height:100vh;position:sticky;top:0;background:var(--c-surface);border-right:1px solid var(--c-border);display:flex;flex-direction:column;z-index:50;flex-shrink:0}.sidebar-brand{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-4) var(--s-4);border-bottom:1px solid var(--c-border)}.sidebar-logo{width:36px;height:36px;border-radius:var(--r);background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff;font-weight:700;font-size:11.5px;letter-spacing:.03em;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px #2563eb40}.sidebar-brand-text{flex:1;min-width:0}.sidebar-brand-title{font-size:var(--fs-base);font-weight:600;color:var(--c-text);line-height:1.2}.sidebar-brand-sub{font-size:11px;color:var(--c-text-muted);margin-top:1px;line-height:1.3}.sidebar-close{display:none;padding:4px;background:none;border:0;cursor:pointer;color:var(--c-text-subtle);border-radius:var(--r-sm)}.sidebar-close:hover{background:var(--c-surface-alt)}.sidebar-nav{padding:var(--s-3) var(--s-2);flex:0 0 auto}.sidebar-section-label{padding:var(--s-2) var(--s-3) var(--s-1);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--c-text-subtle)}.sidebar-section-label:not(:first-child){margin-top:var(--s-3)}.sidebar-nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;border-radius:var(--r);background:none;border:0;font:inherit;font-size:13.5px;color:var(--c-text-muted);cursor:pointer;text-align:left;transition:background var(--dur-fast),color var(--dur-fast);margin-bottom:2px}.sidebar-nav-item:hover{background:var(--c-surface-alt);color:var(--c-text)}.sidebar-nav-item.active{background:var(--c-primary-soft);color:var(--c-primary);font-weight:600}.sidebar-nav-icon{display:flex;align-items:center;color:currentColor;opacity:.85}.sidebar-nav-item.active .sidebar-nav-icon{opacity:1}.sidebar-nav-label{flex:1}.sidebar-nav-chevron{opacity:.6}.sidebar-spacer{flex:1}.sidebar-profile{margin:0 var(--s-2) var(--s-2);padding:10px 12px;background:var(--c-surface-hover);border:1px solid var(--c-border);border-radius:var(--r);display:flex;align-items:center;gap:10px}.sidebar-profile-avatar{width:32px;height:32px;border-radius:var(--r-sm);color:#fff;font-weight:700;font-size:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-profile-info{flex:1;min-width:0}.sidebar-profile-name{font-size:12.5px;font-weight:600;color:var(--c-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-profile-meta{font-size:10.5px;color:var(--c-text-muted);font-family:var(--font-mono);margin-top:1px}.sidebar-actions{display:flex;gap:4px;padding:0 var(--s-2) var(--s-2)}.sidebar-action-btn{flex:1;padding:6px;border:1px solid var(--c-border);border-radius:var(--r-sm);background:var(--c-surface);color:var(--c-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--dur-fast)}.sidebar-action-btn:hover{background:var(--c-surface-alt);color:var(--c-text);border-color:var(--c-border-strong)}.sidebar-action-btn.danger:hover{background:var(--c-danger-soft);color:var(--c-danger);border-color:var(--c-danger-border)}.sidebar-footer{padding:var(--s-3) var(--s-4);border-top:1px solid var(--c-border);font-size:10.5px;color:var(--c-text-subtle);text-align:center;line-height:1.5}.sidebar-footer-note{margin-top:2px;font-style:italic;opacity:.85}.app-mobile-topbar{display:none;align-items:center;gap:var(--s-3);padding:10px var(--s-4);background:var(--c-surface);border-bottom:1px solid var(--c-border);position:sticky;top:0;z-index:30}.app-hamburger{padding:6px;background:none;border:0;cursor:pointer;color:var(--c-text);border-radius:var(--r-sm)}.app-hamburger:hover{background:var(--c-surface-alt)}.app-mobile-brand{display:flex;align-items:center;gap:var(--s-2);font-weight:600;font-size:var(--fs-base);color:var(--c-text)}.app-mobile-logo{width:26px;height:26px;border-radius:var(--r-sm);background:linear-gradient(135deg,#2563eb,#7c3aed);color:#fff;font-weight:700;font-size:9.5px;display:flex;align-items:center;justify-content:center}.sidebar-backdrop{display:none;position:fixed;inset:0;background:#0f172a80;z-index:45;animation:fade-in var(--dur) var(--ease)}@media (max-width: 1023px){.sidebar{position:fixed;left:0;top:0;transform:translate(-100%);transition:transform var(--dur-slow) var(--ease-out);box-shadow:0 12px 32px #0f172a26;will-change:transform}.sidebar.open{transform:translate(0)}.sidebar-backdrop{display:block}.sidebar-close,.app-mobile-topbar{display:flex}.app-main{padding:var(--s-4)}}.small{font-size:var(--fs-xs);color:var(--c-text-muted)}.sidebar-draft-card{display:flex;flex-direction:column;gap:4px;width:100%;margin:0 var(--s-2) var(--s-3);padding:10px 12px;background:linear-gradient(135deg,#eff6ff,#f5f3ff);border:1px solid var(--c-primary-border);border-radius:var(--r);text-align:left;cursor:pointer;font:inherit;transition:all var(--dur-fast)}.sidebar-draft-card:hover{border-color:var(--c-primary);box-shadow:0 2px 8px #2563eb1f;transform:translateY(-1px)}.sidebar-draft-head{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--c-primary);text-transform:uppercase;letter-spacing:.03em}.sidebar-draft-stats{display:flex;align-items:center;gap:4px;font-size:11.5px;color:var(--c-text-muted)}.sidebar-draft-stats b{color:var(--c-text);font-weight:700}.sidebar-draft-amount{font-size:11px;font-family:var(--font-mono);color:var(--c-text);font-weight:600;margin-top:2px}.sidebar-dot{width:8px;height:8px;border-radius:50%;background:var(--c-success);box-shadow:0 0 0 3px #0f9d5826;flex-shrink:0;margin-left:2px;animation:sidebar-dot-pulse 2s ease-in-out infinite}@keyframes sidebar-dot-pulse{0%,to{box-shadow:0 0 0 3px #0f9d5826}50%{box-shadow:0 0 0 5px #0f9d5814}}.sidebar-draft-status{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:600;padding:3px 8px;border-radius:var(--r-full);margin-top:4px;align-self:flex-start}.sidebar-draft-status.ready{background:var(--c-success-soft);color:var(--c-success)}.sidebar-draft-status.warn{background:var(--c-warning-soft);color:var(--c-warning)}.sup-top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s-4);margin-bottom:var(--s-5);flex-wrap:wrap}.sup-title{font-size:var(--fs-2xl);font-weight:700;color:var(--c-text);letter-spacing:-.02em;margin:0 0 2px;display:flex;align-items:center}.sup-sub{font-size:var(--fs-sm);color:var(--c-text-muted)}.sup-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--s-3);margin-bottom:var(--s-5)}.sup-stat-card{display:flex;gap:var(--s-3);align-items:flex-start;padding:var(--s-4);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-xs)}.sup-stat-icon{flex-shrink:0;width:38px;height:38px;border-radius:var(--r);display:flex;align-items:center;justify-content:center}.sup-stat-icon-primary{background:var(--c-primary-soft);color:var(--c-primary)}.sup-stat-icon-info{background:var(--c-info-soft);color:var(--c-info)}.sup-stat-icon-warning{background:var(--c-warning-soft);color:var(--c-warning)}.sup-stat-icon-purple{background:#f5f3ff;color:#7c3aed}.sup-stat-body{flex:1;min-width:0}.sup-stat-label{font-size:var(--fs-xs);color:var(--c-text-muted)}.sup-stat-value{font-size:var(--fs-xl);font-weight:700;color:var(--c-text);margin-top:2px;font-family:var(--font-mono)}.sup-stat-sub{font-size:var(--fs-xs);color:var(--c-text-subtle)}.sup-drop{display:flex;flex-direction:column;align-items:center;gap:var(--s-2);padding:var(--s-8) var(--s-6);border:2px dashed var(--c-border-strong);border-radius:var(--r-lg);background:var(--c-surface);cursor:pointer;text-align:center;transition:border-color var(--dur),background var(--dur),transform var(--dur-fast);user-select:none;margin-bottom:var(--s-5)}.sup-drop:hover,.sup-drop.hot{border-color:var(--c-primary);background:var(--c-primary-soft)}.sup-drop.hot{transform:scale(1.005)}.sup-drop-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--r-lg);background:var(--c-primary-soft);color:var(--c-primary);margin-bottom:var(--s-2);transition:transform var(--dur),background var(--dur),color var(--dur)}.sup-drop.hot .sup-drop-icon{background:var(--c-primary);color:#fff;transform:translateY(-2px) scale(1.05)}.sup-drop-title{font-size:var(--fs-md);font-weight:500;color:var(--c-text)}.sup-drop-sub{font-size:var(--fs-xs);color:var(--c-text-subtle)}.sup-tabs{display:flex;gap:4px;border-bottom:1px solid var(--c-border);margin-bottom:var(--s-4)}.sup-tab{display:inline-flex;align-items:center;gap:var(--s-2);padding:10px 16px;background:none;border:0;border-bottom:2px solid transparent;font:inherit;font-size:var(--fs-sm);font-weight:500;color:var(--c-text-muted);cursor:pointer;transition:color var(--dur-fast),border-color var(--dur-fast)}.sup-tab:hover{color:var(--c-text)}.sup-tab.active{color:var(--c-primary);border-bottom-color:var(--c-primary)}.sup-tab-count{padding:1px 8px;background:var(--c-surface-alt);border-radius:var(--r-full);font-size:10.5px;font-weight:600}.sup-tab.active .sup-tab-count{background:var(--c-primary-soft);color:var(--c-primary)}.sup-table-wrap{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);overflow:auto;box-shadow:var(--sh-xs)}.sup-tbl{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.sup-tbl thead th{text-align:left;padding:10px 12px;background:var(--c-surface-hover);border-bottom:1px solid var(--c-border);font-size:var(--fs-xs);font-weight:600;color:var(--c-text-muted);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;position:sticky;top:0;z-index:1}.sup-tbl tbody td{padding:10px 12px;border-bottom:1px solid var(--c-border);vertical-align:middle}.sup-tbl tbody tr.clickable{cursor:pointer}.sup-tbl tbody tr.clickable:hover>td{background:var(--c-surface-hover)}.sup-tbl tbody tr.selected>td{background:var(--c-primary-soft)}.sup-tbl tbody tr:last-child td{border-bottom:0}.sup-school-cell{display:flex;align-items:center;gap:var(--s-3)}.sup-school-avatar{flex-shrink:0;width:32px;height:32px;border-radius:var(--r);color:#fff;font-weight:700;font-size:11px;display:flex;align-items:center;justify-content:center}.sup-school-name{font-weight:600;color:var(--c-text);font-size:var(--fs-sm)}.sup-school-meta{font-size:var(--fs-xs);color:var(--c-text-muted)}.sup-progress-mini{display:flex;align-items:center;gap:6px}.sup-progress-mini-bar{flex:1;height:6px;background:var(--c-surface-alt);border-radius:var(--r-full);overflow:hidden;min-width:40px}.sup-progress-mini-fill{height:100%;border-radius:var(--r-full);transition:width var(--dur)}.sup-progress-mini-fill.tone-success{background:var(--c-success)}.sup-progress-mini-fill.tone-warning{background:var(--c-warning)}.sup-progress-mini-fill.tone-danger{background:var(--c-danger)}.sup-progress-mini-label{font-size:10.5px;color:var(--c-text-muted);font-family:var(--font-mono);min-width:32px;text-align:right}.sup-integrity-badge,.sup-verify-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:var(--r-full);font-size:10.5px;font-weight:600;white-space:nowrap}.sup-integrity-badge.ok{background:var(--c-success-soft);color:var(--c-success)}.sup-integrity-badge.warn{background:var(--c-danger-soft);color:var(--c-danger)}.sup-integrity-badge.unknown{background:var(--c-surface-alt);color:var(--c-text-muted)}.sup-verify-badge{background:var(--c-info-soft);color:var(--c-info)}.sup-verify-badge.empty{background:var(--c-surface-alt);color:var(--c-text-muted)}.sort-btn{display:inline-flex;align-items:center;gap:3px;background:none;border:0;padding:0;font:inherit;font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--c-text-muted);cursor:pointer;transition:color var(--dur-fast)}.sort-btn:hover{color:var(--c-text)}.sort-btn.active{color:var(--c-primary)}.sort-idle{opacity:.3}.code-tag{display:inline-block;background:var(--c-surface-alt);padding:2px 7px;border-radius:var(--r-sm);font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--c-text)}.sup-empty{display:flex;flex-direction:column;align-items:center;gap:var(--s-3);padding:var(--s-10) var(--s-6);text-align:center;color:var(--c-text-muted)}.sup-empty-icon{width:64px;height:64px;border-radius:var(--r-xl);background:var(--c-primary-soft);color:var(--c-primary);display:flex;align-items:center;justify-content:center}.sup-empty h3{font-size:var(--fs-md);color:var(--c-text);margin:0}.sup-empty p{font-size:var(--fs-sm)}.sup-detail{margin-top:var(--s-5);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--s-5);box-shadow:var(--sh-sm)}.sup-detail-top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s-3);margin-bottom:var(--s-4);flex-wrap:wrap}.sup-detail-title{font-size:var(--fs-lg);margin:0 0 2px;color:var(--c-text)}.sup-detail-sub{font-size:var(--fs-sm);color:var(--c-text-muted)}.sup-detail-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--s-3);margin-bottom:var(--s-4)}.sup-kpi-card{display:flex;gap:var(--s-3);align-items:flex-start;padding:var(--s-3) var(--s-4);background:var(--c-surface-hover);border-radius:var(--r)}.sup-kpi-icon{flex-shrink:0;width:32px;height:32px;border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center}.sup-kpi-icon.tone-primary{background:var(--c-primary-soft);color:var(--c-primary)}.sup-kpi-icon.tone-info{background:var(--c-info-soft);color:var(--c-info)}.sup-kpi-icon.tone-warning{background:var(--c-warning-soft);color:var(--c-warning)}.sup-kpi-icon.tone-success{background:var(--c-success-soft);color:var(--c-success)}.sup-kpi-icon.tone-danger{background:var(--c-danger-soft);color:var(--c-danger)}.sup-kpi-body{flex:1;min-width:0}.sup-kpi-label{font-size:var(--fs-xs);color:var(--c-text-muted)}.sup-kpi-value{font-size:var(--fs-lg);font-weight:700;color:var(--c-text);margin-top:2px;font-family:var(--font-mono)}.sup-detail-issues-summary{display:flex;gap:var(--s-2);flex-wrap:wrap;margin-bottom:var(--s-4)}.sup-issue-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:600}.sup-issue-pill.error{background:var(--c-danger-soft);color:var(--c-danger)}.sup-issue-pill.warn{background:var(--c-warning-soft);color:var(--c-warning)}.sup-issue-pill.ok{background:var(--c-success-soft);color:var(--c-success)}.sup-detail-section{border-top:1px solid var(--c-border);padding-top:var(--s-4);margin-top:var(--s-4)}.sup-detail-section-head{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-3)}.sup-detail-section-head h4{font-size:var(--fs-sm);font-weight:600;color:var(--c-text);margin:0;text-transform:uppercase;letter-spacing:.03em}.sup-detail-section-count{padding:1px 8px;background:var(--c-surface-alt);border-radius:var(--r-full);font-size:10.5px;color:var(--c-text-muted)}.sup-detail-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.sup-detail-table th{text-align:left;padding:6px 8px;font-size:var(--fs-xs);font-weight:600;color:var(--c-text-muted);border-bottom:1px solid var(--c-border)}.sup-detail-table td{padding:8px;border-bottom:1px solid var(--c-border)}.sup-detail-table tr:last-child td{border-bottom:0}.sup-tbl-empty{padding:12px;text-align:center;color:var(--c-text-muted);font-size:var(--fs-sm)}.sup-rkjp-block{border:1px solid var(--c-border);border-radius:var(--r);padding:var(--s-3) var(--s-4);margin-bottom:var(--s-2);background:var(--c-surface-hover)}.sup-rkjp-head{display:flex;align-items:center;gap:var(--s-2);margin-bottom:var(--s-2);flex-wrap:wrap}.sup-rkjp-head strong{font-size:var(--fs-sm)}.sup-rkjp-body{display:flex;flex-direction:column;gap:8px}.sup-rkjp-field{display:flex;gap:var(--s-2);font-size:var(--fs-xs);flex-wrap:wrap}.sup-rkjp-label{color:var(--c-text-muted);font-weight:600;flex-shrink:0;min-width:110px}.sup-impl-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px;flex:1}.sup-impl-list li{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-xs);color:var(--c-text)}.sup-impl-list li:before{content:"·";color:var(--c-text-muted);font-weight:700}.sup-monthly{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-3)}.sup-monthly-item{padding:4px 10px;background:var(--c-surface-alt);border-radius:var(--r-sm);font-size:var(--fs-xs)}.sup-monthly-label{font-weight:600;color:var(--c-text-muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:1px}.sup-monthly-value{font-family:var(--font-mono);font-weight:600;color:var(--c-text)}.sup-issues{display:flex;flex-direction:column;gap:6px}.sup-issue-row{display:flex;gap:var(--s-2);align-items:flex-start;padding:8px 12px;border-radius:var(--r-sm);font-size:var(--fs-sm);border-left:3px solid}.sup-issue-row.error{background:var(--c-danger-soft);border-color:var(--c-danger);color:var(--c-danger)}.sup-issue-row.warn{background:var(--c-warning-soft);border-color:var(--c-warning);color:var(--c-warning)}.sup-issue-row.info{background:var(--c-info-soft);border-color:var(--c-info);color:var(--c-info)}.sup-verified-box{display:flex;gap:var(--s-3);align-items:center;padding:var(--s-3) var(--s-4);background:var(--c-info-soft);border-radius:var(--r)}.sup-verified-icon{color:var(--c-info)}.sup-verified-name{font-size:var(--fs-sm);font-weight:600;color:var(--c-text)}.sup-verified-time{font-size:var(--fs-xs);color:var(--c-text-muted);margin-top:2px}.sup-verify-form{display:flex;gap:var(--s-2);flex-wrap:wrap;align-items:center}.sup-verify-input-wrap{position:relative;flex:1;min-width:200px}.sup-verify-input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--c-text-subtle);pointer-events:none}.sup-rekap-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--s-3);margin-bottom:var(--s-5)}.sup-rekap-kpi{display:flex;gap:var(--s-3);align-items:flex-start;padding:var(--s-4);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--sh-xs)}.sup-rekap-section{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--s-5);box-shadow:var(--sh-xs);margin-bottom:var(--s-4)}.sup-rekap-head{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s-3);margin-bottom:var(--s-4);flex-wrap:wrap}.sup-rekap-head h3{font-size:var(--fs-md);margin:0 0 2px;color:var(--c-text)}.sup-rekap-head p{font-size:var(--fs-xs);color:var(--c-text-muted)}.sup-rekap-empty{font-size:var(--fs-sm);color:var(--c-text-muted)}.sup-tbl-rekap thead th{background:transparent;border-bottom:2px solid var(--c-border)}.sup-tbl-rekap tbody td{padding:10px 12px}.sup-freq-bar{position:relative;height:24px;background:var(--c-surface-alt);border-radius:var(--r-sm);overflow:hidden}.sup-freq-fill{position:absolute;inset:0 auto 0 0;background:var(--c-primary);border-radius:var(--r-sm);transition:width var(--dur)}.sup-freq-label{position:relative;z-index:1;padding:0 10px;line-height:24px;font-size:var(--fs-xs);font-weight:600;color:var(--c-text);font-family:var(--font-mono)}.ps-app{min-height:100vh;background:var(--c-bg);display:flex;flex-direction:column}.ps-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding:12px var(--s-6);background:var(--c-surface);border-bottom:1px solid var(--c-border);position:sticky;top:0;z-index:20;flex-wrap:wrap}.ps-brand{display:flex;align-items:center;gap:var(--s-3)}.ps-logo{width:34px;height:34px;border-radius:var(--r);background:linear-gradient(135deg,#7c3aed,#2563eb);color:#fff;font-weight:700;font-size:11.5px;letter-spacing:.04em;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #7c3aed40}.ps-title{font-size:var(--fs-md);font-weight:600;color:var(--c-text);line-height:1.2}.ps-subtitle{display:flex;align-items:center;gap:4px;font-size:var(--fs-xs);color:var(--c-text-muted);margin-top:2px}.ps-subtitle svg{color:#7c3aed}.ps-home-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border:1px solid var(--c-border);background:var(--c-surface);border-radius:var(--r-sm);font:inherit;font-size:var(--fs-xs);font-weight:500;color:var(--c-text-muted);cursor:pointer;transition:all var(--dur-fast)}.ps-home-btn:hover{background:var(--c-surface-alt);color:var(--c-text);border-color:var(--c-border-strong)}.ps-main{flex:1;width:100%;max-width:1240px;margin:0 auto;padding:var(--s-6)}.ps-hint{display:flex;gap:var(--s-2);align-items:flex-start;padding:var(--s-3) var(--s-4);background:var(--c-info-soft);border:1px solid var(--c-info-border);border-radius:var(--r);font-size:var(--fs-xs);color:var(--c-info);line-height:1.5;margin-bottom:var(--s-4)}.ps-hint svg{flex-shrink:0;margin-top:1px}.ps-hint code{background:#ffffffb3;padding:1px 5px;border-radius:4px;font-family:var(--font-mono);font-size:10.5px}@media (max-width: 720px){.ps-header{padding:10px var(--s-4)}.ps-main{padding:var(--s-4)}}.admin-login-page{min-height:100vh;background:radial-gradient(ellipse at top left,rgba(37,99,235,.1),transparent 50%),radial-gradient(ellipse at bottom right,rgba(124,58,237,.1),transparent 50%),var(--c-bg);display:flex;align-items:center;justify-content:center;padding:var(--s-4)}.admin-login-card{width:100%;max-width:420px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-xl);box-shadow:var(--sh-xl);overflow:hidden;animation:admin-in var(--dur-slow) var(--ease-out)}@keyframes admin-in{0%{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.admin-login-hero{padding:var(--s-6) var(--s-5);background:linear-gradient(155deg,#1e3a8a,#2563eb 60%,#7c3aed);color:#eff6ff;text-align:center}.admin-login-logo{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--r-lg);background:#ffffff2e;border:1px solid rgba(255,255,255,.25);color:#fff;font-weight:700;font-size:13px;letter-spacing:.05em;margin-bottom:var(--s-3);backdrop-filter:blur(6px)}.admin-login-hero h1{font-size:var(--fs-xl);font-weight:700;margin:0 0 var(--s-1);color:#fff}.admin-login-hero p{font-size:var(--fs-sm);color:#ffffffd9;margin:0;line-height:1.5}.admin-login-badge{display:inline-flex;align-items:center;gap:4px;margin-top:var(--s-3);padding:4px 10px;background:#ffffff26;border:1px solid rgba(255,255,255,.2);border-radius:var(--r-full);font-size:11px;font-weight:500}.admin-login-form{padding:var(--s-5);display:flex;flex-direction:column;gap:var(--s-3)}.admin-login-error{display:flex;align-items:center;gap:6px;padding:9px 12px;background:var(--c-danger-soft);border:1px solid var(--c-danger-border);color:var(--c-danger);border-radius:var(--r-sm);font-size:var(--fs-xs)}.admin-login-footer{display:flex;flex-direction:column;gap:6px;padding-top:var(--s-3);border-top:1px solid var(--c-border);font-size:var(--fs-xs)}.admin-login-back{display:inline-flex;align-items:center;gap:4px;color:var(--c-text-muted);text-decoration:none;font-size:var(--fs-xs);background:none;border:0;padding:0;cursor:pointer;align-self:flex-start}.admin-login-back:hover{color:var(--c-text);text-decoration:none}.admin-login-hint{display:inline-flex;align-items:center;gap:4px;color:var(--c-text-subtle);font-size:10.5px}.admin-join-loading,.admin-join-error,.admin-join-success{padding:var(--s-8) var(--s-5);text-align:center;display:flex;flex-direction:column;align-items:center;gap:var(--s-3)}.admin-join-loading{color:var(--c-text-muted)}.admin-join-error svg{color:var(--c-danger)}.admin-join-success svg{color:var(--c-success)}.admin-join-error h2,.admin-join-success h2{font-size:var(--fs-lg);margin:0;color:var(--c-text)}.admin-join-error p,.admin-join-success p{font-size:var(--fs-sm);color:var(--c-text-muted);max-width:320px;line-height:1.5;margin:0}.admin-layout{min-height:100vh;background:var(--c-bg);display:flex;flex-direction:column}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding:12px var(--s-6);background:var(--c-surface);border-bottom:1px solid var(--c-border);position:sticky;top:0;z-index:20;flex-wrap:wrap}.admin-header-brand{display:flex;align-items:center;gap:var(--s-3)}.admin-header-logo{width:34px;height:34px;border-radius:var(--r);background:linear-gradient(135deg,#7c3aed,#2563eb);color:#fff;font-weight:700;font-size:11.5px;letter-spacing:.04em;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #7c3aed40}.admin-header-title{font-size:var(--fs-md);font-weight:600;color:var(--c-text);line-height:1.2}.admin-header-sub{display:flex;align-items:center;gap:4px;font-size:var(--fs-xs);color:var(--c-text-muted);margin-top:2px}.admin-header-sub svg{color:var(--c-primary)}.admin-header-actions{display:flex;gap:var(--s-2);align-items:center;flex-wrap:wrap}.admin-header-link{display:inline-flex;align-items:center;gap:4px;padding:7px 11px;font-size:var(--fs-xs);color:var(--c-text-muted);border:1px solid var(--c-border);border-radius:var(--r-sm);background:var(--c-surface);text-decoration:none;transition:all var(--dur-fast)}.admin-header-link:hover{background:var(--c-surface-alt);color:var(--c-text);text-decoration:none}.admin-header-logout{display:inline-flex;align-items:center;gap:5px;padding:7px 11px;font-size:var(--fs-xs);color:var(--c-danger);border:1px solid var(--c-danger-border);border-radius:var(--r-sm);background:var(--c-danger-soft);cursor:pointer;font-family:inherit;transition:all var(--dur-fast)}.admin-header-logout:hover{background:var(--c-danger);color:#fff}.admin-tabs{display:flex;gap:2px;padding:0 var(--s-6);border-bottom:1px solid var(--c-border);background:var(--c-surface);overflow-x:auto}.admin-tab{display:inline-flex;align-items:center;gap:6px;padding:11px 14px;border:0;border-bottom:2px solid transparent;background:none;font:inherit;font-size:var(--fs-sm);color:var(--c-text-muted);cursor:pointer;white-space:nowrap;transition:all var(--dur-fast)}.admin-tab:hover{color:var(--c-text)}.admin-tab.active{color:var(--c-primary);border-bottom-color:var(--c-primary);font-weight:600}.admin-main{flex:1;width:100%;max-width:1240px;margin:0 auto;padding:var(--s-6)}.admin-footer{padding:var(--s-4) var(--s-6);text-align:center;font-size:var(--fs-xs);color:var(--c-text-subtle);border-top:1px solid var(--c-border);background:var(--c-surface)}.admin-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-4);flex-wrap:wrap}.admin-panel-title{font-size:var(--fs-xl);font-weight:700;color:var(--c-text);margin:0 0 4px}.admin-panel-sub{font-size:var(--fs-sm);color:var(--c-text-muted)}.admin-panel-actions{display:flex;gap:var(--s-2);flex-wrap:wrap}.admin-filter-row{display:flex;gap:var(--s-3);align-items:center;margin-bottom:var(--s-3);flex-wrap:wrap}.admin-search{position:relative;flex:1;min-width:240px;max-width:500px}.admin-search input{width:100%;padding:8px 12px 8px 34px;border:1px solid var(--c-border);border-radius:var(--r-sm);font:inherit;font-size:var(--fs-sm);background:var(--c-surface);color:var(--c-text)}.admin-search input:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px #2563eb1a}.admin-search-icon{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--c-text-subtle);pointer-events:none}.admin-filter-count{font-size:var(--fs-xs);color:var(--c-text-muted);margin-left:auto}.admin-table-wrap{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);overflow:auto;box-shadow:var(--sh-xs);max-height:70vh}.admin-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.admin-table thead th{position:sticky;top:0;z-index:1;text-align:left;padding:10px 12px;background:var(--c-surface-hover);border-bottom:1px solid var(--c-border);font-size:var(--fs-xs);font-weight:600;color:var(--c-text-muted);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.admin-table tbody td{padding:10px 12px;border-bottom:1px solid var(--c-border);vertical-align:middle}.admin-table tbody tr:last-child td{border-bottom:0}.admin-table tbody tr:hover{background:var(--c-surface-hover)}.admin-table-sm{font-size:var(--fs-xs)}.admin-table-sm tbody td{padding:6px 10px}.admin-row-invalid{background:#fff7f7!important}.admin-row-invalid:hover{background:#fff0f0!important}.admin-cell-muted{color:var(--c-text-muted);font-size:var(--fs-xs)}.admin-table code{font-family:var(--font-mono);font-size:var(--fs-xs);background:var(--c-surface-alt);padding:2px 6px;border-radius:var(--r-sm);color:var(--c-text)}.admin-row-actions{display:flex;gap:4px;justify-content:flex-end}.admin-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:1px solid var(--c-border);border-radius:var(--r-sm);background:var(--c-surface);color:var(--c-text-muted);cursor:pointer;transition:all var(--dur-fast)}.admin-icon-btn:hover{background:var(--c-surface-alt);color:var(--c-text);border-color:var(--c-border-strong)}.admin-icon-btn.primary{background:var(--c-primary);border-color:var(--c-primary);color:#fff}.admin-icon-btn.primary:hover{background:var(--c-primary-hover)}.admin-icon-btn.danger:hover{background:var(--c-danger-soft);color:var(--c-danger);border-color:var(--c-danger-border)}.admin-icon-btn:disabled{opacity:.5;cursor:not-allowed}.admin-inline-input{width:100%;padding:5px 8px;border:1px solid var(--c-border);border-radius:var(--r-sm);font:inherit;font-size:var(--fs-xs);background:var(--c-surface)}.admin-inline-input:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 2px #2563eb1a}.admin-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:var(--r-full);font-size:10.5px;font-weight:600;white-space:nowrap;line-height:1.5}.admin-badge-success{background:var(--c-success-soft);color:var(--c-success)}.admin-badge-danger{background:var(--c-danger-soft);color:var(--c-danger)}.admin-badge-warning{background:var(--c-warning-soft);color:var(--c-warning)}.admin-badge-muted{background:var(--c-surface-alt);color:var(--c-text-muted)}.admin-badge-primary{background:var(--c-primary-soft);color:var(--c-primary)}.admin-self-badge{display:inline-block;margin-left:6px;padding:1px 6px;background:var(--c-primary-soft);color:var(--c-primary);border-radius:var(--r-sm);font-size:10px;font-weight:600}.admin-empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--s-2);padding:var(--s-10) var(--s-6);text-align:center;color:var(--c-text-subtle);background:var(--c-surface);border:1px dashed var(--c-border-strong);border-radius:var(--r-lg)}.admin-empty-state h3{font-size:var(--fs-md);color:var(--c-text);margin:0}.admin-empty-state p{font-size:var(--fs-sm);margin:0}.admin-import-panel{padding:var(--s-4);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);margin-bottom:var(--s-4);box-shadow:var(--sh-sm)}.admin-import-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s-3)}.admin-import-header h2{font-size:var(--fs-md);margin:0;color:var(--c-text)}.admin-import-upload{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:var(--s-6) var(--s-4);border:2px dashed var(--c-border-strong);border-radius:var(--r);background:var(--c-surface-hover);color:var(--c-text-muted);margin-bottom:var(--s-3)}.admin-import-upload svg{color:var(--c-primary)}.admin-import-upload h3{font-size:var(--fs-sm);color:var(--c-text);margin:0}.admin-import-upload p{font-size:var(--fs-xs);margin:0}.admin-import-summary{display:flex;gap:var(--s-2);align-items:center;flex-wrap:wrap;margin-bottom:var(--s-3)}.admin-import-file{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:var(--c-surface-alt);border-radius:var(--r-sm);font-size:var(--fs-xs);font-family:var(--font-mono);color:var(--c-text)}.admin-import-mode{display:flex;flex-direction:column;gap:6px;padding:var(--s-3);background:var(--c-surface-hover);border-radius:var(--r-sm);margin-bottom:var(--s-3)}.admin-import-mode label{display:flex;align-items:flex-start;gap:8px;font-size:var(--fs-xs);color:var(--c-text);cursor:pointer}.admin-import-mode label input{margin-top:2px}.admin-import-table-wrap{max-height:300px;overflow:auto;border:1px solid var(--c-border);border-radius:var(--r-sm);margin-bottom:var(--s-3)}.admin-import-progress{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--c-primary-soft);color:var(--c-primary);border-radius:var(--r-sm);font-size:var(--fs-xs);margin-bottom:var(--s-2)}.admin-import-result{display:flex;gap:var(--s-2);align-items:flex-start;padding:10px 12px;border-radius:var(--r-sm);font-size:var(--fs-sm);margin-bottom:var(--s-3)}.admin-import-result.ok{background:var(--c-success-soft);color:var(--c-success)}.admin-import-result.warn{background:var(--c-warning-soft);color:var(--c-warning)}.admin-import-actions{display:flex;gap:var(--s-2);justify-content:flex-end;flex-wrap:wrap}.admin-invite-created{padding:var(--s-4);background:var(--c-success-soft);border:1px solid var(--c-success-border);border-radius:var(--r-lg);margin-bottom:var(--s-4)}.admin-invite-created-head{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--c-success);margin-bottom:var(--s-2)}.admin-invite-created-hint{font-size:var(--fs-xs);color:var(--c-text-muted);margin-bottom:var(--s-2)}.admin-invite-url{display:flex;gap:var(--s-2);align-items:center;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-sm);padding:6px 8px;margin-bottom:var(--s-2);flex-wrap:wrap}.admin-invite-url code{flex:1;min-width:200px;font-family:var(--font-mono);font-size:11px;color:var(--c-text);word-break:break-all}.admin-copy-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1px solid var(--c-border);background:var(--c-surface);border-radius:var(--r-sm);font:inherit;font-size:var(--fs-xs);color:var(--c-text-muted);cursor:pointer;transition:all var(--dur-fast)}.admin-copy-btn:hover{background:var(--c-surface-alt);color:var(--c-text)}.admin-invite-dismiss{background:none;border:0;font:inherit;font-size:var(--fs-xs);color:var(--c-success);cursor:pointer;text-decoration:underline;padding:0}.admin-invite-form{padding:var(--s-4);background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);margin-bottom:var(--s-4)}.admin-invite-form-grid{display:grid;grid-template-columns:1fr;gap:var(--s-3);margin-bottom:var(--s-3)}@media (min-width: 640px){.admin-invite-form-grid{grid-template-columns:1fr 1fr}.admin-invite-form-role{grid-column:1 / -1}}.admin-invite-form-role>label{display:block;font-size:var(--fs-sm);color:var(--c-text-muted);font-weight:500;margin-bottom:6px}.admin-role-options{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2)}.admin-role-options>label{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border:1px solid var(--c-border);border-radius:var(--r);cursor:pointer;transition:all var(--dur-fast);font-size:var(--fs-xs)}.admin-role-options>label:hover{border-color:var(--c-border-strong)}.admin-role-options>label.selected{border-color:var(--c-primary);background:var(--c-primary-soft)}.admin-role-options>label>input{margin-top:3px}.admin-role-options>label svg{color:var(--c-primary);flex-shrink:0;margin-top:2px}.admin-role-options>label b{display:block;color:var(--c-text);font-size:var(--fs-sm);margin-bottom:1px}.admin-role-options>label span{display:block;color:var(--c-text-muted);font-size:10.5px}.admin-invite-form-actions{display:flex;gap:var(--s-2);justify-content:flex-end;flex-wrap:wrap}.admin-section{margin-top:var(--s-5)}.admin-section-title{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);font-weight:600;color:var(--c-text-muted);text-transform:uppercase;letter-spacing:.03em;margin:0 0 var(--s-2)}@media (max-width: 720px){.admin-header{padding:10px var(--s-4)}.admin-tabs{padding:0 var(--s-4)}.admin-main{padding:var(--s-4)}.admin-role-options{grid-template-columns:1fr}.admin-panel-title{font-size:var(--fs-lg)}}:root{--c-bg: #f8fafc;--c-surface: #ffffff;--c-surface-alt: #f1f5f9;--c-surface-hover: #f8fafc;--c-border: #e2e8f0;--c-border-strong: #cbd5e1;--c-text: #0f172a;--c-text-muted: #64748b;--c-text-subtle: #94a3b8;--c-text-inverse: #ffffff;--c-primary: #2563eb;--c-primary-hover: #1d4ed8;--c-primary-soft: #eff6ff;--c-primary-border: #bfdbfe;--c-success: #059669;--c-success-soft: #ecfdf5;--c-success-border: #a7f3d0;--c-warning: #d97706;--c-warning-soft: #fffbeb;--c-warning-border: #fde68a;--c-danger: #dc2626;--c-danger-soft: #fef2f2;--c-danger-border: #fecaca;--c-info: #0284c7;--c-info-soft: #f0f9ff;--c-info-border: #bae6fd;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--s-12: 48px;--r-sm: 6px;--r: 10px;--r-lg: 14px;--r-xl: 20px;--r-full: 9999px;--sh-xs: 0 1px 2px rgb(15 23 42 / .04);--sh-sm: 0 1px 3px rgb(15 23 42 / .06), 0 1px 2px rgb(15 23 42 / .04);--sh-md: 0 4px 12px rgb(15 23 42 / .06), 0 1px 3px rgb(15 23 42 / .04);--sh-lg: 0 12px 32px rgb(15 23 42 / .1), 0 4px 8px rgb(15 23 42 / .04);--sh-xl: 0 20px 40px rgb(15 23 42 / .14), 0 8px 16px rgb(15 23 42 / .06);--font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--fs-xs: 11.5px;--fs-sm: 13px;--fs-base: 14px;--fs-md: 15px;--fs-lg: 17px;--fs-xl: 20px;--fs-2xl: 24px;--fs-3xl: 30px;--ease: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--dur-fast: .12s;--dur: .18s;--dur-slow: .28s}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;font-family:var(--font);font-size:var(--fs-base);color:var(--c-text);background:var(--c-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}h1,h2,h3,h4{margin:0;font-weight:600;line-height:1.3}p{margin:0}button{font-family:inherit}code,pre{font-family:var(--font-mono)}a{color:var(--c-primary);text-decoration:none}a:hover{text-decoration:underline}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--c-border);border-radius:var(--r-full);border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--c-border-strong);background-clip:content-box}.icon{flex-shrink:0;display:inline-block;vertical-align:middle}.icon-spin{animation:ui-spin 1s linear infinite}@keyframes ui-spin{to{transform:rotate(360deg)}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);padding:8px 16px;border-radius:var(--r);font:inherit;font-weight:500;font-size:var(--fs-base);border:1px solid transparent;cursor:pointer;white-space:nowrap;user-select:none;transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--c-primary);outline-offset:2px}.btn-sm{padding:6px 12px;font-size:var(--fs-sm)}.btn-lg{padding:11px 20px;font-size:var(--fs-md)}.btn-primary{background:var(--c-primary);color:var(--c-text-inverse);border-color:var(--c-primary)}.btn-primary:hover:not(:disabled){background:var(--c-primary-hover);border-color:var(--c-primary-hover)}.btn-secondary{background:var(--c-surface);color:var(--c-text);border-color:var(--c-border)}.btn-secondary:hover:not(:disabled){background:var(--c-surface-alt);border-color:var(--c-border-strong)}.btn-ghost{background:transparent;color:var(--c-text-muted)}.btn-ghost:hover:not(:disabled){background:var(--c-surface-alt);color:var(--c-text)}.btn-danger{background:var(--c-danger);color:var(--c-text-inverse);border-color:var(--c-danger)}.btn-danger:hover:not(:disabled){filter:brightness(.92)}.btn-danger-ghost{background:transparent;color:var(--c-danger)}.btn-danger-ghost:hover:not(:disabled){background:var(--c-danger-soft)}.btn-icon{padding:8px}.btn-sm.btn-icon{padding:6px}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-lg);padding:var(--s-5);box-shadow:var(--sh-xs);transition:box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease)}.card-hoverable:hover{box-shadow:var(--sh-md);border-color:var(--c-border-strong)}.card-no-padding{padding:0}.card-header{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-4) var(--s-5);border-bottom:1px solid var(--c-border)}.card-header h3{font-size:var(--fs-md);margin:0}.card-body{padding:var(--s-5)}.card-footer{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-4) var(--s-5);border-top:1px solid var(--c-border);background:var(--c-surface-hover);border-bottom-left-radius:var(--r-lg);border-bottom-right-radius:var(--r-lg)}.ui-field{display:flex;flex-direction:column;gap:var(--s-2);margin-bottom:var(--s-4)}.ui-field:last-child{margin-bottom:0}.ui-label{display:flex;justify-content:space-between;align-items:baseline;font-size:var(--fs-sm);color:var(--c-text-muted);font-weight:500}.ui-label .ui-hint{font-weight:400;color:var(--c-text-subtle);font-size:var(--fs-xs)}.ui-input,.ui-textarea,.ui-select{width:100%;padding:9px 12px;border:1px solid var(--c-border);border-radius:var(--r);font:inherit;font-size:var(--fs-base);color:var(--c-text);background:var(--c-surface);transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}.ui-input:focus,.ui-textarea:focus,.ui-select:focus{outline:none;border-color:var(--c-primary);box-shadow:0 0 0 3px #2563eb1f}.ui-input:disabled,.ui-textarea:disabled,.ui-select:disabled{background:var(--c-surface-alt);color:var(--c-text-subtle);cursor:not-allowed}.ui-input.error,.ui-textarea.error,.ui-select.error{border-color:var(--c-danger)}.ui-input.error:focus,.ui-textarea.error:focus,.ui-select.error:focus{box-shadow:0 0 0 3px #dc26261f}.ui-textarea{resize:vertical;min-height:64px;font-family:inherit}.ui-input-wrapper{position:relative}.ui-input-wrapper>.ui-input{padding-left:36px}.ui-input-wrapper>.ui-input-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--c-text-subtle);pointer-events:none}.ui-error{font-size:var(--fs-xs);color:var(--c-danger);display:flex;align-items:center;gap:var(--s-1)}.badge{display:inline-flex;align-items:center;gap:var(--s-1);padding:2px 9px;border-radius:var(--r-full);font-size:var(--fs-xs);font-weight:600;white-space:nowrap;line-height:1.5}.badge-sm{padding:1px 7px;font-size:10.5px}.badge-success{background:var(--c-success-soft);color:var(--c-success)}.badge-warning{background:var(--c-warning-soft);color:var(--c-warning)}.badge-danger{background:var(--c-danger-soft);color:var(--c-danger)}.badge-info{background:var(--c-info-soft);color:var(--c-info)}.badge-primary{background:var(--c-primary-soft);color:var(--c-primary)}.badge-neutral{background:var(--c-surface-alt);color:var(--c-text-muted)}.ui-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--s-10) var(--s-6);color:var(--c-text-muted)}.ui-empty-icon{width:56px;height:56px;border-radius:var(--r-lg);background:var(--c-primary-soft);color:var(--c-primary);display:flex;align-items:center;justify-content:center;margin-bottom:var(--s-4)}.ui-empty h3{font-size:var(--fs-md);color:var(--c-text);margin:0 0 var(--s-1)}.ui-empty p{font-size:var(--fs-sm);max-width:380px;margin:0 0 var(--s-4)}.toast-stack{position:fixed;bottom:24px;right:24px;z-index:1000;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{display:flex;align-items:flex-start;gap:var(--s-3);padding:12px 14px;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r);box-shadow:var(--sh-lg);min-width:280px;max-width:420px;pointer-events:auto;animation:toast-in var(--dur-slow) var(--ease-out)}.toast-leaving{animation:toast-out var(--dur) var(--ease) forwards}@keyframes toast-in{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-out{to{opacity:0;transform:translate(20px)}}.toast-icon{flex-shrink:0;margin-top:1px}.toast-success .toast-icon{color:var(--c-success)}.toast-error .toast-icon{color:var(--c-danger)}.toast-warning .toast-icon{color:var(--c-warning)}.toast-info .toast-icon{color:var(--c-info)}.toast-body{flex:1;font-size:var(--fs-sm);color:var(--c-text);line-height:1.45}.toast-close{flex-shrink:0;padding:2px;background:none;border:0;color:var(--c-text-subtle);cursor:pointer;border-radius:var(--r-sm);transition:background var(--dur-fast)}.toast-close:hover{background:var(--c-surface-alt);color:var(--c-text)}.dialog-backdrop{position:fixed;inset:0;background:#0f172a73;z-index:999;display:flex;align-items:center;justify-content:center;padding:var(--s-5);animation:fade-in var(--dur) var(--ease)}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.dialog{background:var(--c-surface);border-radius:var(--r-lg);box-shadow:var(--sh-xl);width:100%;max-width:440px;animation:dialog-in var(--dur-slow) var(--ease-out)}@keyframes dialog-in{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.dialog-header{display:flex;align-items:flex-start;gap:var(--s-3);padding:var(--s-5) var(--s-5) var(--s-3)}.dialog-icon{flex-shrink:0;width:40px;height:40px;border-radius:var(--r);display:flex;align-items:center;justify-content:center}.dialog-icon.danger{background:var(--c-danger-soft);color:var(--c-danger)}.dialog-icon.warning{background:var(--c-warning-soft);color:var(--c-warning)}.dialog-icon.info{background:var(--c-info-soft);color:var(--c-info)}.dialog-title{font-size:var(--fs-md);font-weight:600;color:var(--c-text);margin:0}.dialog-message{padding:0 var(--s-5) var(--s-4);font-size:var(--fs-sm);color:var(--c-text-muted);line-height:1.55}.dialog-actions{display:flex;justify-content:flex-end;gap:var(--s-2);padding:var(--s-4) var(--s-5);border-top:1px solid var(--c-border);background:var(--c-surface-hover);border-bottom-left-radius:var(--r-lg);border-bottom-right-radius:var(--r-lg)}.ui-tooltip{position:relative;display:inline-flex}.ui-tooltip-content{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);padding:5px 10px;background:var(--c-text);color:var(--c-text-inverse);font-size:var(--fs-xs);border-radius:var(--r-sm);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--dur-fast) var(--ease);z-index:10}.ui-tooltip:hover .ui-tooltip-content{opacity:1}.skeleton{background:linear-gradient(90deg,var(--c-surface-alt) 0%,#e8eef5 50%,var(--c-surface-alt) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite;border-radius:var(--r-sm)}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.drop-zone{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--s-2);padding:var(--s-10) var(--s-6);border:2px dashed var(--c-border-strong);border-radius:var(--r-lg);background:var(--c-surface);color:var(--c-text-muted);cursor:pointer;transition:border-color var(--dur) var(--ease),background var(--dur) var(--ease),transform var(--dur-fast) var(--ease);user-select:none}.drop-zone:hover,.drop-zone.is-dragging{border-color:var(--c-primary);background:var(--c-primary-soft);color:var(--c-text)}.drop-zone.is-dragging{transform:scale(1.005)}.drop-zone.is-loading{cursor:wait;opacity:.85}.drop-icon{display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:var(--r-xl);background:var(--c-primary-soft);color:var(--c-primary);margin-bottom:var(--s-2);transition:transform var(--dur) var(--ease),background var(--dur) var(--ease),color var(--dur) var(--ease)}.drop-zone:hover .drop-icon,.drop-zone.is-dragging .drop-icon{transform:translateY(-2px) scale(1.04)}.drop-zone.is-dragging .drop-icon{background:var(--c-primary);color:#fff}.drop-title{font-size:var(--fs-md);font-weight:500;color:var(--c-text)}.drop-sub{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-xs);color:var(--c-text-subtle)}.drop-error{display:inline-flex;align-items:center;gap:var(--s-2);margin-top:var(--s-3);padding:8px 14px;background:var(--c-danger-soft);border:1px solid var(--c-danger-border);color:var(--c-danger);border-radius:var(--r-sm);font-size:var(--fs-sm);text-align:left;max-width:480px}
