:root{font-family:Manrope,sans-serif;color:#252931;background:#f8f9fb;font-size:14px;font-synthesis:none;--accent:#bc5436;--muted:#68717e;--line:#e5e8ee;--soft:#fcf0eb;--green:#2b795e}
*{box-sizing:border-box}body{margin:0;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}a{color:inherit;text-decoration:none}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}h1,h2,h3,p{margin:0}h1,h2{text-wrap:balance}h1{font-size:29px;letter-spacing:-.8px;line-height:1.3;font-weight:750}h2{font-size:17px;letter-spacing:-.3px}p{line-height:1.85;color:var(--muted)}:focus-visible{outline:3px solid #bc543680;outline-offset:4px}::selection{background:#f1c8b9;color:#552713}input{caret-color:var(--accent)}::-webkit-scrollbar{height:6px;width:6px}::-webkit-scrollbar-thumb{background:#ccd1d9;border-radius:8px}.skip{position:fixed;top:-60px;background:white;padding:12px;z-index:5}.skip:focus{top:8px}.loading{padding:80px;text-align:center;color:var(--muted)}
header{height:82px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 48px;gap:20px}.brand{display:flex;align-items:center;gap:10px;font-size:21px;letter-spacing:-.7px;font-weight:800}.brand img{width:34px;height:34px}.brand span{font-weight:500;margin-left:-6px}.header-right{display:flex;gap:18px;align-items:center}.identity{font-size:12px;color:var(--muted)}.mode{display:inline-flex;gap:6px;align-items:center;font-size:10px;background:#f5eee5;color:#866139;border-radius:5px;padding:5px 9px}.mode:before{content:'';width:5px;height:5px;border-radius:50%;background:#b98146}.button{border:1px solid #dbe0e7;background:white;padding:10px 15px;border-radius:7px;color:#535e6c;display:inline-flex;justify-content:center;align-items:center;gap:8px;font-size:12px;font-weight:650;white-space:nowrap;transition:background .15s}.button:hover{background:#f0f2f5}.button.primary{background:var(--accent);color:white;border-color:var(--accent)}.button.primary:hover{background:#a7462c}.button.quiet{border:0;background:none;padding:7px;font-size:11px}.button.quiet:hover{background:#f2f4f6}.button.full{width:100%}.icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.portal{max-width:480px;margin:68px auto 48px;padding:0 20px}.portal-icon{width:52px;height:52px;background:var(--soft);color:var(--accent);border-radius:13px;display:grid;place-items:center;margin-bottom:25px}.portal-icon .icon{width:26px;height:26px}.portal h1{font-size:27px;margin-bottom:14px}.portal>p{font-size:13px}.surface{padding:25px;background:white;border:1px solid var(--line);border-radius:13px;margin-top:26px}.surface h2{font-size:15px;margin-bottom:16px}.surface p{font-size:12px}.surface .button{margin-top:16px}.field-group{margin:16px 0}.field-group label{font-size:11px;font-weight:700;display:block;margin-bottom:8px}.field{border:1px solid #d9dfe7;border-radius:7px;background:white;padding:11px 12px;font-size:12px;width:100%;color:#343d48}.field::placeholder{color:#697583}.hint{font-size:11px!important;color:#75808e;margin-top:13px}.code{font-family:ui-monospace,SFMono-Regular,monospace;letter-spacing:3px;font-size:22px;text-align:center;padding:20px;background:#f6f7f9;border-radius:8px;margin:18px 0;color:#343e4b;font-variant-numeric:tabular-nums}.code-label{font-size:10px;color:#6d7682;text-align:center}.success{color:var(--green);background:#edf6f1;padding:17px;border-radius:8px;margin-top:21px;font-size:12px;line-height:1.8;display:flex;align-items:flex-start;gap:10px}.note{padding:15px;background:#f7f0e6;border-radius:8px;margin-top:20px;font-size:11px;color:#82643d;line-height:1.8}.error{font-size:12px;color:#ad402f;line-height:1.8;margin:14px 0}.error:empty{display:none}.code-command{font-family:ui-monospace,monospace;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f6f7f9;padding:13px 16px;margin-top:15px;border-radius:7px;font-size:12px;color:#394351}.code-command .button{margin:0;padding:4px;font:inherit;white-space:normal}.portal-footer{display:flex;align-items:center;gap:6px;justify-content:center;font-size:10px;color:#6f7a87;margin:28px 0}.portal-footer .icon{width:13px;height:13px}
.admin-layout{display:grid;grid-template-columns:205px minmax(0,1fr);min-height:calc(100vh - 82px)}aside{background:white;border-right:1px solid var(--line);padding:28px 16px}nav{display:grid;gap:6px}.nav-link{padding:11px 12px;border-radius:7px;font-size:12px;font-weight:600;color:#697582;display:flex;align-items:center;gap:10px}.nav-link:hover{background:#f6f7f9}.nav-link.active{background:var(--soft);color:var(--accent)}.aside-note{font-size:11px;line-height:1.8;color:#717d8a;margin:30px 11px}.admin-main{padding:37px 40px;min-width:0;max-width:1500px;width:100%;margin:0 auto}.heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:29px}.heading p{font-size:12px;margin-top:8px}.summary{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--line);padding:24px 0;margin-bottom:30px;gap:25px}.summary>div{border-right:1px solid var(--line)}.summary>div:last-child{border:0}.summary span{display:block;font-size:11px;color:var(--muted);margin-bottom:8px}.summary strong{font-size:27px;letter-spacing:-.7px;font-weight:700;font-variant-numeric:tabular-nums}.section-title{margin:30px 0 15px;display:flex;justify-content:space-between;gap:15px;align-items:center}.section-title h2{font-size:14px}.section-title small{font-size:10px;color:var(--muted)}.table-surface{background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th{font-size:10px;color:#6f7986;font-weight:600;padding:13px 18px;background:#fcfcfd;border-bottom:1px solid var(--line)}td{font-size:12px;padding:16px 18px;border-bottom:1px solid #eef0f4;max-width:340px;overflow:hidden;text-overflow:ellipsis}tr:last-child td{border:0}td small{display:block;font-size:10px;color:#6c7886;margin-top:4px;overflow:hidden;text-overflow:ellipsis}.tag{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:5px;background:#f0f2f6;color:#697483;font-size:10px;font-weight:600}.tag.green{background:#edf6f1;color:#2b795e}.tag.amber{background:#fbf1e2;color:#8b632a}.empty{text-align:center;padding:43px 25px}.empty h3{font-size:15px;margin-bottom:8px}.empty p{font-size:12px;max-width:65ch;margin:0 auto}.empty .icon{width:28px;height:28px;color:#87929f;margin-bottom:12px}.admin-form{display:flex;gap:13px;align-items:flex-end;flex-wrap:wrap}.admin-form .field-group{flex:1;min-width:180px;margin:0}.admin-form .button{margin:0;padding-block:11px}.admin-form .error{width:100%;margin:0}.storage-note{font-size:10px;color:#717c8b;margin-top:28px;padding-top:18px;border-top:1px solid var(--line)}.refresh-label{font-size:10px;color:#6d7784}.admin-error{margin-bottom:20px}.inference-note{margin-bottom:26px}.event-tool{font-family:ui-monospace,monospace;font-size:11px;color:#566473}.file-label{white-space:normal;overflow-wrap:anywhere}#toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,15px);background:#29313b;color:white;border-radius:8px;padding:12px 19px;box-shadow:0 6px 25px #23304720;font-size:12px;opacity:0;pointer-events:none;max-width:calc(100vw - 32px);z-index:20;transition:opacity .2s,transform .2s}#toast.visible{opacity:1;transform:translate(-50%,0)}
@media(max-width:1000px){header{padding-inline:25px}.admin-main{padding:30px 25px}.admin-layout{grid-template-columns:180px 1fr}.identity{max-width:180px;overflow:hidden;text-overflow:ellipsis}.header-right{gap:10px}}
@media(max-width:700px){header{height:70px;padding:0 17px}.brand{font-size:18px;gap:7px}.brand img{width:29px;height:29px}.identity{display:none}.mode{font-size:8px;padding:4px 6px}.header-right{gap:6px}.portal{margin:40px auto}.portal h1{font-size:25px}.admin-layout{grid-template-columns:1fr;min-height:calc(100vh - 70px)}aside{border-right:0;border-bottom:1px solid var(--line);padding:12px 16px}.aside-note{display:none}nav{display:flex;overflow:auto;gap:3px}.nav-link{white-space:nowrap;font-size:10px;padding:9px}.nav-link .icon{width:15px;height:15px}.admin-main{padding:25px 17px}.heading{align-items:flex-start}.heading h1{font-size:24px}.heading p{font-size:11px}.heading .button{font-size:10px;padding:8px 10px}.summary{gap:15px}.summary span{font-size:10px}.summary strong{font-size:24px}.admin-form{gap:16px}.admin-form .field-group{flex-basis:100%}.admin-form .button{width:100%}.surface{padding:21px}.portal-footer{font-size:9px}.section-title small{font-size:9px}.storage-note{line-height:1.8}.inference-note{font-size:10px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.assignment-form{display:flex;align-items:center;gap:8px;min-width:270px}.assignment-form .field{min-width:180px}.assignment-hint{margin-bottom:20px}.setup-guide{margin-top:24px}.setup-guide pre{overflow:auto;line-height:1.8;background:var(--bg);padding:14px;border-radius:8px}.setup-guide h2{font-size:17px;margin-bottom:12px}
