:root{--bg-primary: #e3e9f2;--bg-card: rgba(255, 255, 255, .55);--bg-elevated: rgba(255, 255, 255, .4);--text-primary: #16233a;--text-secondary: rgba(22, 35, 58, .75);--text-muted: rgba(22, 35, 58, .52);--accent-1: #3e639b;--accent-1-light: #54789f;--accent-1-hover: #476eab;--accent-1-soft: rgba(62, 99, 155, .1);--accent-1-soft-strong: rgba(62, 99, 155, .16);--accent-1-border: rgba(62, 99, 155, .32);--accent-2: #8a6420;--accent-2-hover: #6e5018;--accent-2-soft: rgba(228, 184, 99, .22);--accent-2-border: rgba(138, 100, 32, .38);--success: #1e7f46;--success-soft: rgba(52, 199, 89, .16);--danger: #c3372b;--danger-hover: #a52c22;--danger-soft: rgba(255, 59, 48, .12);--danger-soft-strong: rgba(255, 59, 48, .18);--danger-border: rgba(195, 55, 43, .38);--white: #ffffff;--border-color: rgba(255, 255, 255, .7);--border-strong: rgba(255, 255, 255, .95);--hover-tint: rgba(11, 19, 34, .045);--neutral-soft: rgba(255, 255, 255, .5);--neutral-soft-hover: rgba(255, 255, 255, .72);--overlay: rgba(11, 19, 34, .35);--top3-soft: rgba(11, 19, 34, .04);--cta-bg: rgba(228, 184, 99, .3);--cta-bg-hover: rgba(228, 184, 99, .42);--cta-border: rgba(138, 100, 32, .45);--cta-border-hover: rgba(138, 100, 32, .62);--cta-text: #4a3708;--shadow-sm: 0 2px 8px rgba(3, 7, 18, .08), inset 0 1px 0 rgba(255, 255, 255, .8);--shadow-md: 0 8px 24px rgba(3, 7, 18, .12), inset 0 1px 0 rgba(255, 255, 255, .85), inset 0 -1px 0 rgba(11, 19, 34, .05);--shadow-lg: 0 16px 48px rgba(3, 7, 18, .16), 0 0 0 1px rgba(255, 255, 255, .25), inset 0 1px 0 rgba(255, 255, 255, .9), inset 0 -1px 0 rgba(11, 19, 34, .06);--ring: 0 0 0 3px rgba(228, 184, 99, .4);--thumb-bg: rgba(255, 255, 255, .85);--menu-bg: rgba(255, 255, 255, .97);--glass-blur: 40px;--scene-wells: radial-gradient(640px circle at 85% 8%, rgba(124, 156, 196, .5), transparent 62%), radial-gradient(560px circle at 8% 92%, rgba(228, 184, 99, .28), transparent 60%), radial-gradient(520px circle at 45% 40%, rgba(51, 81, 122, .16), transparent 62%);--ease-spring: cubic-bezier(.16, 1, .3, 1);--max-width: 1200px;color-scheme:light}:root[data-theme=dark]{--bg-primary: #0b1322;--bg-card: rgba(255, 255, 255, .08);--bg-elevated: rgba(255, 255, 255, .06);--text-primary: rgba(255, 255, 255, .95);--text-secondary: rgba(255, 255, 255, .62);--text-muted: rgba(255, 255, 255, .42);--accent-1: #93b1d4;--accent-1-light: #b7cde8;--accent-1-hover: #a9c3e2;--accent-1-soft: rgba(147, 177, 212, .12);--accent-1-soft-strong: rgba(147, 177, 212, .2);--accent-1-border: rgba(147, 177, 212, .35);--accent-2: #e4b863;--accent-2-hover: #f3dca8;--accent-2-soft: rgba(228, 184, 99, .14);--accent-2-border: rgba(228, 184, 99, .4);--success: #3ddc97;--success-soft: rgba(61, 220, 151, .16);--danger: #ff6b5e;--danger-hover: #ff8577;--danger-soft: rgba(255, 90, 74, .14);--danger-soft-strong: rgba(255, 90, 74, .22);--danger-border: rgba(255, 107, 94, .4);--white: #ffffff;--border-color: rgba(255, 255, 255, .15);--border-strong: rgba(255, 255, 255, .32);--hover-tint: rgba(255, 255, 255, .06);--neutral-soft: rgba(255, 255, 255, .1);--neutral-soft-hover: rgba(255, 255, 255, .16);--overlay: rgba(3, 7, 18, .6);--top3-soft: rgba(255, 255, 255, .05);--cta-bg: rgba(228, 184, 99, .15);--cta-bg-hover: rgba(228, 184, 99, .22);--cta-border: rgba(228, 184, 99, .4);--cta-border-hover: rgba(228, 184, 99, .55);--cta-text: #f3dca8;--shadow-sm: 0 2px 8px rgba(3, 7, 18, .35), inset 0 1px 0 rgba(255, 255, 255, .18);--shadow-md: 0 8px 24px rgba(3, 7, 18, .45), inset 0 1px 0 rgba(255, 255, 255, .22), inset 0 -1px 0 rgba(2, 6, 16, .3);--shadow-lg: 0 16px 48px rgba(3, 7, 18, .55), 0 0 0 1px rgba(255, 255, 255, .08), inset 0 1px 0 rgba(255, 255, 255, .25), inset 0 -1px 0 rgba(2, 6, 16, .35);--ring: 0 0 0 3px rgba(228, 184, 99, .18);--thumb-bg: rgba(255, 255, 255, .16);--menu-bg: rgba(17, 26, 43, .96);--glass-blur: 40px;--scene-wells: radial-gradient(640px circle at 85% 8%, rgba(124, 156, 196, .28), transparent 62%), radial-gradient(560px circle at 8% 92%, rgba(51, 81, 122, .35), transparent 60%), radial-gradient(480px circle at 55% 45%, rgba(228, 184, 99, .1), transparent 60%);color-scheme:dark}@media (prefers-color-scheme: dark){:root:not([data-theme]){--bg-primary: #0b1322;--bg-card: rgba(255, 255, 255, .08);--bg-elevated: rgba(255, 255, 255, .06);--text-primary: rgba(255, 255, 255, .95);--text-secondary: rgba(255, 255, 255, .62);--text-muted: rgba(255, 255, 255, .42);--accent-1: #93b1d4;--accent-1-light: #b7cde8;--accent-1-hover: #a9c3e2;--accent-1-soft: rgba(147, 177, 212, .12);--accent-1-soft-strong: rgba(147, 177, 212, .2);--accent-1-border: rgba(147, 177, 212, .35);--accent-2: #e4b863;--accent-2-hover: #f3dca8;--accent-2-soft: rgba(228, 184, 99, .14);--accent-2-border: rgba(228, 184, 99, .4);--success: #3ddc97;--success-soft: rgba(61, 220, 151, .16);--danger: #ff6b5e;--danger-hover: #ff8577;--danger-soft: rgba(255, 90, 74, .14);--danger-soft-strong: rgba(255, 90, 74, .22);--danger-border: rgba(255, 107, 94, .4);--white: #ffffff;--border-color: rgba(255, 255, 255, .15);--border-strong: rgba(255, 255, 255, .32);--hover-tint: rgba(255, 255, 255, .06);--neutral-soft: rgba(255, 255, 255, .1);--neutral-soft-hover: rgba(255, 255, 255, .16);--overlay: rgba(3, 7, 18, .6);--top3-soft: rgba(255, 255, 255, .05);--cta-bg: rgba(228, 184, 99, .15);--cta-bg-hover: rgba(228, 184, 99, .22);--cta-border: rgba(228, 184, 99, .4);--cta-border-hover: rgba(228, 184, 99, .55);--cta-text: #f3dca8;--shadow-sm: 0 2px 8px rgba(3, 7, 18, .35), inset 0 1px 0 rgba(255, 255, 255, .18);--shadow-md: 0 8px 24px rgba(3, 7, 18, .45), inset 0 1px 0 rgba(255, 255, 255, .22), inset 0 -1px 0 rgba(2, 6, 16, .3);--shadow-lg: 0 16px 48px rgba(3, 7, 18, .55), 0 0 0 1px rgba(255, 255, 255, .08), inset 0 1px 0 rgba(255, 255, 255, .25), inset 0 -1px 0 rgba(2, 6, 16, .35);--ring: 0 0 0 3px rgba(228, 184, 99, .18);--thumb-bg: rgba(255, 255, 255, .16);--menu-bg: rgba(17, 26, 43, .96);--glass-blur: 40px;--scene-wells: radial-gradient(640px circle at 85% 8%, rgba(124, 156, 196, .28), transparent 62%), radial-gradient(560px circle at 8% 92%, rgba(51, 81, 122, .35), transparent 60%), radial-gradient(480px circle at 55% 45%, rgba(228, 184, 99, .1), transparent 60%);color-scheme:dark}}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-tap-highlight-color:transparent}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Segoe UI,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-image:var(--scene-wells)}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:9990;pointer-events:none;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}::selection{background:#e4b86359;color:var(--text-primary)}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{font-family:inherit;touch-action:manipulation}.bg-grid{position:fixed;top:0;right:0;bottom:0;left:0;background-image:var(--bg-desktop, none);background-size:var(--bg-size-desktop, auto);background-repeat:var(--bg-repeat-desktop, repeat);background-position:var(--bg-pos-desktop, 0 0);pointer-events:none;z-index:0}@media (max-width: 768px){.bg-grid{background-image:var(--bg-mobile, none);background-size:var(--bg-size-mobile, auto);background-repeat:var(--bg-repeat-mobile, repeat);background-position:var(--bg-pos-mobile, 0 0)}}.scroll-reveal{opacity:0;transform:translateY(20px);transition:opacity .5s var(--ease-spring),transform .5s var(--ease-spring)}.scroll-reveal.revealed{opacity:1;transform:translateY(0)}.page{position:relative;max-width:var(--max-width);margin:0 auto;padding:28px 24px 60px;min-height:100vh}.page>*:not(.bg-grid):not(.modal-overlay){position:relative;z-index:1}.topbar{position:sticky;top:0;z-index:90;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:16px 10px;margin-bottom:20px;backdrop-filter:blur(var(--glass-blur)) saturate(180%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(180%);background:linear-gradient(to bottom,#ffffff1a,#ffffff0a);border-bottom:1px solid var(--border-color)}.brand h1{font-size:22px;font-weight:600;letter-spacing:-.02em;color:var(--text-primary)}.meta{display:block;margin-top:2px;font-size:13px;color:var(--text-muted)}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;padding:0 20px;font-size:13px;font-weight:600;border-radius:16px;cursor:pointer;border:1px solid var(--cta-border);background:var(--cta-bg);color:var(--cta-text);box-shadow:0 4px 20px #e4b86326,inset 0 1px #f3dca859;transition:background-color .5s var(--ease-spring),border-color .5s var(--ease-spring),color .5s var(--ease-spring),box-shadow .5s var(--ease-spring),transform .5s var(--ease-spring);white-space:nowrap}.btn:hover:not(:disabled){background:var(--cta-bg-hover);border-color:var(--cta-border-hover);transform:translateY(-2px);box-shadow:0 10px 32px #e4b86338,inset 0 1px #f3dca873}.btn:active:not(:disabled){transform:scale(.97);transition-duration:.15s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.ghost{background:var(--bg-elevated);border:1px solid var(--border-color);color:var(--text-secondary);box-shadow:inset 0 1px #ffffff1f}.btn.ghost:hover:not(:disabled){background:var(--neutral-soft);border-color:var(--border-strong);color:var(--text-primary);box-shadow:var(--shadow-sm)}.btn.small{height:32px;padding:0 14px;font-size:12px}.btn.danger{background:var(--danger-soft);border-color:var(--danger-border);color:var(--danger);box-shadow:inset 0 1px #ffffff1a}.btn.danger:hover:not(:disabled){background:var(--danger-soft-strong);border-color:var(--danger);color:var(--danger-hover)}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;padding:10px;font-size:14px;border-radius:16px;cursor:pointer;text-align:center;border:1px solid var(--border-color);background:var(--bg-elevated);color:var(--text-secondary);transition:background-color .5s var(--ease-spring),border-color .5s var(--ease-spring),color .5s var(--ease-spring),transform .5s var(--ease-spring)}.btn-secondary:hover{background:var(--neutral-soft);border-color:var(--border-strong);color:var(--text-primary);transform:translateY(-2px)}.btn-secondary:active:not(:disabled){transform:scale(.97);transition-duration:.15s}.btn-danger{display:inline-flex;align-items:center;justify-content:center;padding:10px;font-size:14px;border-radius:16px;cursor:pointer;text-align:center;border:1px solid var(--danger-border);background:var(--danger-soft);color:var(--danger);transition:background-color .5s var(--ease-spring),border-color .5s var(--ease-spring),color .5s var(--ease-spring),transform .5s var(--ease-spring)}.btn-danger:hover{background:var(--danger-soft-strong);border-color:var(--danger);color:var(--danger-hover);transform:translateY(-2px)}.btn-danger:active:not(:disabled){transform:scale(.97);transition-duration:.15s}.btn-danger:disabled{opacity:.6;cursor:not-allowed}.primary{width:100%;margin-top:22px;padding:11px;border:1px solid var(--cta-border);background:var(--cta-bg);color:var(--cta-text);border-radius:16px;font-size:15px;font-weight:600;cursor:pointer;box-shadow:0 4px 20px #e4b86326,inset 0 1px #f3dca859;transition:background-color .5s var(--ease-spring),border-color .5s var(--ease-spring),box-shadow .5s var(--ease-spring),transform .5s var(--ease-spring)}.primary:hover{background:var(--cta-bg-hover);border-color:var(--cta-border-hover);transform:translateY(-2px);box-shadow:0 10px 32px #e4b86338,inset 0 1px #f3dca873}.primary:active:not(:disabled){transform:scale(.97);transition-duration:.15s}.primary-btn{margin-top:14px;width:fit-content}.ai-actions .primary-btn{margin-top:0;width:auto}.login-wrap{min-height:92vh;display:flex;align-items:center;justify-content:center}.subtitle{text-align:center;color:var(--text-muted);font-size:13px;margin:6px 0 24px}.apply-form label{display:block;font-size:13px;color:var(--text-secondary);margin:12px 0 6px;font-weight:600}.tabs{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap;align-items:center}.type-tabs{margin:14px 0 8px}.glass-tabs{position:relative;display:inline-flex;flex-wrap:wrap;max-width:100%;gap:2px;padding:4px;border:1px solid var(--border-color);border-radius:16px;background:var(--bg-card);background-image:linear-gradient(to bottom,rgba(255,255,255,.08),transparent 55%);box-shadow:var(--shadow-sm);backdrop-filter:blur(var(--glass-blur)) saturate(180%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(180%);touch-action:none;user-select:none;-webkit-user-select:none}.gtab{position:relative;z-index:1;background:transparent;border:none;color:var(--text-secondary);padding:8px 16px;font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;border-radius:12px;letter-spacing:.3px;white-space:nowrap;transition:color .5s var(--ease-spring),transform .15s ease-out}.gtab:hover{color:var(--text-primary)}.gtab:active{transform:scale(.97)}.gtab:focus-visible{outline:none;box-shadow:var(--ring)}.gtab.active{color:var(--text-primary);font-weight:600}.gtab.drag-target{color:var(--text-primary)}.slide-thumb{position:absolute;top:0;left:0;z-index:0;opacity:0;pointer-events:none;will-change:transform;transition:transform .6s cubic-bezier(.3,1.35,.35,1),width .6s cubic-bezier(.3,1.35,.35,1),height .6s var(--ease-spring),opacity .3s ease .1s}.slide-thumb.on{opacity:1}.glass-tabs.dragging .slide-thumb{transition:none}.glass-tabs.dragging .gtab:active{transform:none}.slide-thumb-goo{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:12px;background:var(--thumb-bg);border:1px solid var(--border-color);box-shadow:inset 0 1px #ffffff40,inset 0 -1px #0206102e,0 2px 10px #03071233;animation:thumbGoo .6s var(--ease-spring)}@keyframes thumbGoo{0%{transform:scale(1)}35%{transform:scale(1.12,1.07)}to{transform:scale(1)}}.error{color:var(--danger);font-size:13px;margin-top:12px}.error.bar{background:var(--danger-soft-strong);border:1px solid var(--danger-border);color:var(--danger);border-radius:10px;padding:12px 16px;margin:0 0 16px;font-size:14px;animation:fadeInUp .25s ease both}.loading{text-align:center;color:var(--text-muted);padding:60px 0}.table-wrap{background:var(--bg-card);background-image:linear-gradient(to bottom,rgba(255,255,255,.1),transparent 50%);border:1px solid var(--border-color);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-md);backdrop-filter:blur(var(--glass-blur)) saturate(180%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(180%)}.board{width:100%;border-collapse:collapse}.board th,.board td{padding:13px 14px;text-align:center;font-size:14px;border-bottom:1px solid var(--border-color)}.board th{background:var(--bg-elevated);color:var(--text-muted);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.board tbody tr{--i: 0;transition:background .15s;animation:rowIn .5s var(--ease-spring) both;animation-delay:calc(var(--i) * 35ms)}@keyframes rowIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.board tbody tr:last-child td{border-bottom:none}.board tbody tr:hover{background:var(--bg-elevated)}.name{font-weight:600}.score{font-weight:600;color:var(--accent-1)}.total{font-weight:700;color:var(--accent-2)}.rank{font-weight:700}.top-1{background:var(--top3-soft)}.top-1 .rank{color:var(--accent-2)}.top-2{background:var(--bg-elevated)}.top-2 .rank{color:var(--text-secondary)}.top-3{background:var(--top3-soft)}.top-3 .rank{color:var(--accent-2-hover)}.board tbody tr.disq{opacity:.65;background:var(--bg-elevated)}.board tbody tr.disq:hover{background:var(--bg-elevated)}.board tbody tr.disq .rank,.board tbody tr.disq .total{color:var(--text-muted);font-weight:600}.empty{color:var(--text-muted);padding:40px!important}.editable{cursor:pointer;position:relative;transition:background .15s}.editable:hover{background:var(--accent-1-soft);box-shadow:inset 0 0 0 1px var(--accent-1-border)}.edit-input{width:76px;padding:5px 8px;border:1px solid var(--border-strong);border-radius:8px;background:var(--bg-elevated);color:var(--text-primary);font-size:14px;text-align:center;outline:none;box-shadow:var(--ring)}.formula{margin-top:16px;color:var(--text-muted);font-size:13px;line-height:1.7}.panel{background:var(--bg-card);background-image:linear-gradient(to bottom,rgba(255,255,255,.1),transparent 50%);border:1px solid var(--border-color);border-radius:16px;padding:26px 28px;box-shadow:var(--shadow-md);backdrop-filter:blur(var(--glass-blur)) saturate(180%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(180%);animation:fadeInUp .5s var(--ease-spring) both}.panel h2{font-size:20px;font-weight:600;letter-spacing:-.01em;margin-bottom:10px;color:var(--text-primary)}.panel h3{font-size:16px;font-weight:600;margin-bottom:8px}.hint{color:var(--text-secondary);font-size:13px;line-height:1.7}.panel>.hint{margin-bottom:8px}.apply-form{max-width:620px;display:flex;flex-direction:column}.apply-form input:not([type=file]):not(.tf-input),.apply-form select,.apply-form textarea:not(.tf-input){padding:10px 12px;border:1px solid var(--border-color);border-radius:10px;font-size:14px;font-family:inherit;background:var(--bg-card);color:var(--text-primary);outline:none;transition:border-color .2s,box-shadow .2s}.apply-form input:focus,.apply-form select:focus,.apply-form textarea:focus{border-color:var(--border-strong);box-shadow:var(--ring)}.apply-form textarea:not(.tf-input){resize:vertical;line-height:1.5}.file-count{color:var(--text-muted);font-size:13px}.ai-peak-hint{color:var(--text-muted);font-size:12px}.apply-result{margin-top:22px;border-top:1px solid var(--border-color);padding-top:16px}.apply-result h3{font-size:15px;margin-bottom:12px}.result-item{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 14px;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:10px;margin-bottom:8px;font-size:14px;transition:border-color .2s,transform .2s}.result-item:hover{border-color:var(--accent-1-border)}.ri-head{display:flex;align-items:center;gap:10px;min-width:0}.ri-sub{font-size:13px;color:var(--text-secondary);min-width:0}.ri-actions{margin-left:auto;display:flex;gap:8px;flex:0 0 auto}@media (max-width: 768px){.manage-list .result-item{flex-direction:column;align-items:stretch;gap:8px;padding:12px 14px}.manage-list .ri-head{justify-content:space-between}.manage-list .ri-sub{font-size:12.5px;color:var(--text-muted)}.manage-list .ri-actions{margin-left:0}.manage-list .ri-actions .btn{flex:1}}.draft-card{border:1px solid var(--accent-1-border);border-radius:14px;padding:16px 18px;margin-bottom:14px;background:var(--bg-elevated);box-shadow:var(--shadow-sm)}.draft-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}.draft-head-actions{display:flex;gap:8px;align-items:center}.draft-head h3{font-size:15px;margin:0}.draft-item{flex-wrap:wrap;align-items:center}.draft-item select,.draft-item input{padding:7px 9px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-card);color:var(--text-primary);font-size:13px;font-family:inherit;outline:none;transition:border-color .2s}.draft-item select:focus,.draft-item input:focus{border-color:var(--accent-1)}.draft-item select{flex:0 0 96px}.draft-points{flex:0 0 84px}.draft-basis{flex:1 1 240px;min-width:0}.draft-item-del{flex:0 0 auto;padding:7px 12px!important;line-height:1}.review-note{flex-basis:100%;margin:0;padding:8px 12px;border-radius:8px;background:var(--accent-2-soft);border:1px solid var(--accent-1-border);color:var(--text-primary);font-size:13px;line-height:1.6}.evidence-thumb{width:64px;height:64px;object-fit:cover;border:1px solid var(--border-color);border-radius:10px;cursor:zoom-in;transition:transform .2s,box-shadow .2s}.evidence-thumb:hover{transform:scale(1.03);box-shadow:var(--shadow-md)}.img-preview{display:block;max-width:100%;max-height:70vh;margin:0 auto;border-radius:12px;border:1px solid var(--border-color)}.class-bar{display:flex;align-items:center;gap:10px;margin-bottom:14px}.class-bar label{font-size:13px;color:var(--text-muted)}.class-bar select{padding:8px 12px;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-card);color:var(--text-primary);font-size:14px;outline:none}.filter-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.filter-input{flex:0 1 240px;min-width:160px;height:40px;padding:0 14px;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-card);color:var(--text-primary);font-size:13px;font-family:inherit;outline:none;transition:border-color .2s}.filter-input:focus{border-color:var(--accent-1)}.student-input{position:relative;width:100%}.award-search{position:relative;flex:0 1 240px;min-width:160px}.award-search .filter-input{width:100%}.award-suggest{position:absolute;top:100%;left:0;right:0;margin-top:6px;background:var(--menu-bg);border:1px solid var(--border-color);border-radius:16px;padding:6px;box-shadow:var(--shadow-lg);backdrop-filter:blur(var(--glass-blur)) saturate(180%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(180%);z-index:200;max-height:280px;overflow-y:auto}.award-suggest button{display:block;width:100%;text-align:left;padding:9px 14px;border:0;border-radius:8px;background:transparent;font-size:13px;font-family:inherit;color:var(--text-secondary);cursor:pointer;transition:all .2s}.award-suggest button:hover,.award-suggest button.picked{background:var(--accent-1-soft);color:var(--accent-1)}.promo-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 18px;margin-bottom:16px;border:1px solid var(--border-color);background:var(--bg-elevated);border-radius:12px;font-size:13px}.promo-text{color:var(--text-secondary);line-height:1.6}.promo-text b{color:var(--accent-1)}.assess-wrap{display:flex;flex-direction:column;gap:14px}.assess-intro{border:1px solid var(--accent-1-border);background:var(--bg-elevated);border-radius:14px;padding:18px 20px}.assess-intro h3{margin:0 0 8px;font-size:15px}.assess-intro p{margin:0 0 10px;line-height:1.7;font-size:13px;color:var(--text-primary)}.assess-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.assess-head strong{font-size:14px}.chat-box{display:flex;flex-direction:column;gap:10px;max-height:52vh;min-height:220px;overflow-y:auto;padding:14px;border:1px solid var(--border-color);border-radius:14px;background:var(--bg-card)}.chat-msg{display:flex}.chat-msg.user{justify-content:flex-end}.chat-bubble{max-width:80%;padding:10px 14px;border-radius:14px;font-size:13.5px;line-height:1.7;white-space:pre-wrap;word-break:break-word;background:var(--bg-elevated);border:1px solid var(--border-color)}.chat-msg.user .chat-bubble{background:var(--accent-1-soft-strong);color:var(--text-primary);border:1px solid var(--accent-1-border)}.streaming-hint{font-size:12px;animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.45}50%{opacity:1}}.assess-items{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.assess-items .badge{cursor:default}.chat-form{display:flex;gap:8px;margin:0}.chat-form input{flex:1;height:40px;padding:0 14px;border:1px solid var(--border-color);border-radius:10px;background:var(--bg-card);color:var(--text-primary);font-size:13px;font-family:inherit;outline:none}.chat-form input:focus{border-color:var(--accent-1)}.chat-form .btn{height:40px}.chat-attach-preview{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.file-chip{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;font-size:12px;border:1px solid var(--border-color);border-radius:999px;background:var(--bg-card);color:var(--text-secondary)}.file-chip.is-img{border-color:var(--accent-1-border);color:var(--accent-1)}.chat-files{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.chip-x{border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:14px;line-height:1;padding:0 2px}.chip-x:hover{color:var(--danger)}.reject-reason{color:var(--danger);font-size:13px}.modal-textarea{width:100%;min-height:72px;margin-top:6px;box-sizing:border-box}.form-label{font-size:13px;color:var(--text-secondary)}.modal-note{font-size:12px;color:var(--text-muted);line-height:1.7;margin:0 0 4px}.assess-actions{display:flex;gap:10px}.assess-actions .primary-btn{margin-top:0}.chat-bubble .markdown-body.chat-md{padding:0;background:transparent;border:none;max-height:none;overflow:visible;font-size:inherit;line-height:inherit}.chat-bubble .chat-md p{margin:4px 0}.chat-bubble .chat-md ul,.chat-bubble .chat-md ol{margin:4px 0;padding-left:20px}.chat-bubble .chat-md li{margin:2px 0}.chat-bubble .chat-md h1,.chat-bubble .chat-md h2,.chat-bubble .chat-md h3,.chat-bubble .chat-md h4{margin:8px 0 4px;font-size:1em}.chat-bubble .chat-md code{font-size:.92em}.chat-bubble .chat-md .md-code-block pre{font-size:.85em;padding:8px 10px}.chat-bubble .chat-md blockquote{font-size:.95em;margin:6px 0}.chat-bubble .chat-md strong{color:var(--accent-1)}.chat-actions{display:flex;gap:8px;margin:4px 0 0}.assess-items.edit{align-items:stretch;flex-direction:column;gap:8px;border:1px dashed var(--border-color);border-radius:12px;padding:12px 14px;background:var(--bg-card)}.assess-edit-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.error.warn{background:var(--accent-2-soft);border-color:var(--accent-2-hover);color:var(--text-primary)}.assess-item-card{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.assess-item-card select,.assess-item-card input{height:34px;padding:0 8px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-card);color:var(--text-primary);font-size:13px;font-family:inherit;outline:none}.assess-item-card select{flex:0 0 92px}.assess-item-card input[type=number]{flex:0 0 72px}.assess-item-card input.assess-basis{flex:1 1 220px;min-width:140px}.assess-file-btn{cursor:pointer}.assess-evidence{flex-basis:100%;display:flex;gap:10px;flex-wrap:wrap;padding-left:2px}.assess-evidence .link{font-size:12px}.manage-list{margin-bottom:16px}.ai-section{margin-top:22px;border-top:1px solid var(--border-color);padding-top:16px}.ai-section h3{font-size:15px;margin-bottom:12px}.ai-msg{margin-top:12px;padding:10px 14px;border-radius:10px;font-size:13px;border:1px solid var(--border-color)}.ai-msg.ok{background:var(--success-soft);color:var(--success)}.ai-msg.err{background:var(--danger-soft);color:var(--danger)}.ai-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.prompt-block{margin-bottom:16px}.prompt-block>label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--text-primary)}.mono{font-family:Consolas,Courier New,monospace;font-size:12.5px;line-height:1.65}.md-toggle{margin-bottom:8px}.nav-dropdown{position:relative;padding-bottom:8px;margin-bottom:-8px}.category-dropdown{display:inline-block;align-self:flex-start;width:fit-content}.category-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:13px;font-weight:600;padding:8px 16px;min-width:120px;border:1px solid var(--border-color);border-radius:16px;background:var(--bg-card);color:var(--text-primary);cursor:pointer;height:40px;backdrop-filter:blur(var(--glass-blur)) saturate(180%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(180%);transition:border-color .5s var(--ease-spring),color .5s var(--ease-spring),background .5s var(--ease-spring),transform .5s var(--ease-spring);white-space:nowrap}.category-btn:hover{border-color:var(--accent-1-hover);color:var(--accent-1-light);background:var(--neutral-soft-hover)}.category-btn:active:not(:disabled){transform:scale(.96);transition-duration:.15s}.category-btn .arrow-down{font-size:10px;margin-left:4px;transition:transform .25s ease}.nav-dropdown:hover .category-btn .arrow-down,.nav-dropdown.mobile-open .category-btn .arrow-down{transform:rotate(180deg)}.nav-dropdown-menu{position:absolute;top:100%;left:0;min-width:100%;background:var(--menu-bg);border:1px solid var(--border-color);border-radius:16px;padding:10px 6px 6px;opacity:0;visibility:hidden;transform:translateY(-8px) scale(.96);transition:opacity .5s var(--ease-spring),transform .5s var(--ease-spring),visibility .5s;box-shadow:var(--shadow-lg);backdrop-filter:blur(var(--glass-blur)) saturate(180%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(180%);z-index:200}.nav-dropdown:hover .nav-dropdown-menu,.nav-dropdown.mobile-open .nav-dropdown-menu{opacity:1;visibility:visible;transform:translateY(0) scale(1);transition-delay:.1s}.nav-dropdown-menu a{display:block;padding:9px 14px;border-radius:8px;font-size:13px;color:var(--text-secondary);text-decoration:none;transition:all .2s;white-space:nowrap;cursor:pointer}.nav-dropdown-menu a:hover,.nav-dropdown-menu a.picked{background:var(--accent-1-soft);color:var(--accent-1)}@media (max-width: 768px){.nav-dropdown:not(.mobile-open) .nav-dropdown-menu{display:none}}.markdown-body{padding:14px 18px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;font-size:13px;line-height:1.75;color:var(--text-primary);max-height:480px;overflow-y:auto}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4{margin:18px 0 8px;line-height:1.4;color:var(--text-primary)}.markdown-body h1{font-size:17px;padding-bottom:6px;border-bottom:1px solid var(--border-color)}.markdown-body h2{font-size:15px}.markdown-body h3{font-size:14px}.markdown-body h1:first-child,.markdown-body h2:first-child,.markdown-body h3:first-child{margin-top:0}.markdown-body p{margin:8px 0}.markdown-body ul,.markdown-body ol{margin:8px 0;padding-left:22px}.markdown-body li{margin:4px 0}.markdown-body strong{color:var(--accent-1)}.markdown-body code{padding:1px 6px;border-radius:6px;background:var(--accent-1-soft);border:1px solid var(--accent-1-border);font-family:Consolas,Courier New,monospace;font-size:12px;color:var(--accent-1)}.markdown-body .md-code-block{position:relative;margin:10px 0}.markdown-body .md-code-block pre{margin:0;padding:12px 14px;border-radius:10px;background:var(--bg-elevated);border:1px solid var(--border-color);overflow-x:auto;font-family:Consolas,Courier New,monospace;font-size:12px;line-height:1.6}.markdown-body blockquote{margin:10px 0;padding:6px 14px;border-left:3px solid var(--neutral-soft-hover);background:var(--bg-elevated);border-radius:0 8px 8px 0;color:var(--text-secondary)}.markdown-body a{color:var(--accent-1)}.markdown-body hr{border:none;border-top:1px solid var(--border-color);margin:14px 0}.badge{display:inline-block;padding:3px 12px;border-radius:100px;font-size:12px;font-weight:600;white-space:nowrap;background:var(--accent-1-soft);color:var(--accent-1);border:1px solid var(--accent-1-border)}.badge.approved{background:var(--success-soft);color:var(--success);border-color:transparent}.badge.rejected{background:var(--danger-soft);color:var(--danger);border-color:transparent}.badge.pending{background:var(--accent-2-soft);color:var(--accent-2-hover);border-color:transparent}.award-card{border:1px solid var(--border-color);border-radius:16px;padding:18px 20px;margin-bottom:14px;background:var(--bg-card);background-image:linear-gradient(to bottom,rgba(255,255,255,.1),transparent 50%);box-shadow:var(--shadow-sm);backdrop-filter:blur(var(--glass-blur)) saturate(180%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(180%);transition:border-color .5s var(--ease-spring),box-shadow .5s var(--ease-spring),transform .5s var(--ease-spring)}.award-card:hover{border-color:var(--border-strong);transform:translateY(-4px);box-shadow:var(--shadow-lg)}.award-card.approved{background:var(--success-soft);opacity:.85}.award-card.rejected{background:var(--danger-soft);opacity:.6}.award-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap;gap:8px}.award-head strong{font-size:15px}.award-body{display:grid;grid-template-columns:170px 130px 1fr;gap:12px 16px}.award-field{display:flex;flex-direction:column;gap:5px;font-size:13px;min-width:0}.award-field>span{color:var(--text-muted);font-size:12px}.award-field select,.award-field input{padding:7px 9px;border:1px solid var(--border-color);border-radius:8px;background:var(--bg-card);color:var(--text-primary);font-size:13px;font-family:inherit;outline:none;transition:border-color .2s}.award-field select:focus,.award-field input:focus{border-color:var(--accent-1)}.award-field p{margin:0;color:var(--text-primary);line-height:1.6}.award-field.wide{grid-column:1 / -1}.created-at{color:var(--text-muted);font-size:12px}.evidence-list{display:flex;gap:12px;flex-wrap:wrap}.evidence-img{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.evidence-img img{max-width:200px;max-height:160px;border:1px solid var(--border-color);border-radius:10px;cursor:pointer;transition:transform .2s,box-shadow .2s}.evidence-img img:hover{transform:scale(1.02);box-shadow:var(--shadow-md)}.evidence-img a{font-size:12px;color:var(--accent-1)}.link{background:none;border:none;color:var(--accent-1);cursor:pointer;font-size:13px;padding:0;text-decoration:underline}.award-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:var(--overlay);backdrop-filter:blur(12px) saturate(160%);-webkit-backdrop-filter:blur(12px) saturate(160%);display:flex;align-items:center;justify-content:center;padding:16px;overflow-y:auto;animation:fadeIn .3s var(--ease-spring)}.modal-sheet{background:var(--bg-card);background-image:linear-gradient(to bottom,rgba(255,255,255,.12),transparent 50%);border:1px solid var(--border-color);border-radius:24px;padding:24px 28px 28px;max-width:400px;width:90%;max-height:calc(100vh - 40px);margin:auto;display:flex;flex-direction:column;animation:scaleIn .5s var(--ease-spring);box-shadow:var(--shadow-lg);backdrop-filter:blur(var(--glass-blur)) saturate(180%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(180%)}.modal-sheet h3{margin:0 0 8px;font-size:18px;flex:none}.modal-sheet p{margin:0 0 24px;font-size:14px;color:var(--text-secondary);line-height:1.6}.modal-body{margin:12px 0 20px;display:flex;flex-direction:column;gap:12px;overflow-y:auto;min-height:0}.modal-actions{display:flex;gap:12px;flex:none}.modal-actions .btn,.modal-actions .btn-secondary,.modal-actions .btn-danger,.modal-actions .btn-primary{flex:1}.modal-actions .btn-primary{display:inline-flex;align-items:center;justify-content:center;padding:10px;font-size:14px;border-radius:16px;cursor:pointer;border:none;background:var(--accent-1);color:var(--white);transition:background-color .5s var(--ease-spring),transform .5s var(--ease-spring)}.modal-actions .btn-primary:hover{background:var(--accent-1-hover)}.modal-actions .btn-primary:active:not(:disabled){transform:scale(.96);transition-duration:.15s}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.page{padding:16px 14px 48px}.topbar{position:static}.award-body{grid-template-columns:1fr 1fr}.award-field.wide{grid-column:1 / -1}.table-wrap{overflow-x:auto}.board th,.board td{padding:10px;font-size:13px}.panel{padding:18px 16px}}.modal-sheet.sm{max-width:340px}.modal-sheet.lg{max-width:720px}.modal-overlay .modal-sheet{overflow-y:auto}.dropzone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:200px;padding:40px 24px;border:2px dashed var(--border-color);border-radius:16px;background:var(--bg-elevated);color:var(--text-muted);text-align:center;cursor:pointer;outline:none;transition:border-color .18s,background .18s,color .18s,transform .18s,box-shadow .18s}.dropzone:hover:not(.disabled){border-color:var(--accent-1);background:var(--accent-1-soft);color:var(--accent-1)}.dropzone:focus-visible{border-color:var(--accent-1);box-shadow:0 0 0 3px var(--accent-1-soft-strong)}.dropzone.is-over{border-style:solid;border-color:var(--accent-1);background:var(--accent-1-soft-strong);color:var(--accent-1);transform:scale(1.01);box-shadow:var(--shadow-md)}.dropzone.disabled{opacity:.55;cursor:not-allowed}.dropzone-icon{display:flex;align-items:center;justify-content:center;color:inherit;line-height:0}.dropzone-title{font-size:15px;font-weight:600;color:var(--text-primary)}.dropzone:hover:not(.disabled) .dropzone-title,.dropzone.is-over .dropzone-title{color:var(--accent-1)}.dropzone-hint{font-size:12.5px;color:var(--text-muted)}@keyframes spin{to{transform:rotate(360deg)}}.spin{display:inline-block;vertical-align:-2px;width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.dropzone.compact{min-height:118px;padding:20px 16px}.dropzone.slim{min-height:44px;padding:0 14px;flex-direction:row;justify-content:center;gap:8px;border-width:1px;border-radius:10px;font-size:13px;max-width:620px}.dropzone.slim .dropzone-hint{display:none}.dropzone.slim .dropzone-icon,.dropzone.slim svg{width:16px;height:16px}.chat-msg.user .chat-bubble{cursor:pointer;transition:filter .18s,box-shadow .18s}.chat-msg.user .chat-bubble:hover{filter:brightness(1.06);box-shadow:0 0 0 2px var(--accent-1-border) inset}.chat-undo{flex:0 0 auto;align-self:center;margin-right:8px;padding:3px 10px;font-size:12px;font-family:inherit;line-height:1.5;white-space:nowrap;border:1px solid var(--border-color);border-radius:999px;background:var(--bg-card);color:var(--text-muted);cursor:pointer;opacity:0;pointer-events:none;transition:color .18s,border-color .18s,background .18s,opacity .18s ease}.chat-msg.user:hover .chat-undo,.chat-msg.user:focus-within .chat-undo,.chat-msg.user.recall-open .chat-undo{opacity:1;pointer-events:auto}.chat-undo:hover{color:var(--accent-1);border-color:var(--accent-1);background:var(--accent-1-soft)}@media (max-width: 768px){.chat-undo{margin-right:6px;padding:3px 8px;font-size:11.5px}}.theme-toggle{padding:3px;gap:2px;border-radius:12px}.theme-toggle .gtab{padding:0 10px;height:26px;font-size:12px}@media (max-width: 768px){.theme-toggle .gtab{padding:0 7px;font-size:11px}}.award-head{cursor:pointer}.award-head:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent-1-soft-strong);border-radius:10px}.award-card:has(.award-collapse[data-open="0"]) .award-head{margin-bottom:0}.award-head-main{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.award-head-side{display:flex;align-items:center;gap:10px;flex-shrink:0}.award-chip{padding:2px 10px;border:1px solid var(--border-color);border-radius:999px;background:var(--bg-elevated);color:var(--text-secondary);font-size:12px;line-height:1.6}.award-chip.muted{color:var(--text-muted)}.award-chevron{color:var(--text-muted);transition:transform .28s ease}.award-head[aria-expanded=true] .award-chevron{transform:rotate(180deg)}.award-collapse{display:grid;grid-template-rows:0fr;opacity:0;visibility:hidden;transition:grid-template-rows .28s ease,opacity .28s ease,visibility 0s linear .28s}.award-collapse[data-open="1"]{grid-template-rows:1fr;opacity:1;visibility:visible;transition-delay:0s,0s,0s}.award-collapse-inner{overflow:hidden;min-height:0}.award-more{display:flex;justify-content:center;margin:4px 0 18px}.award-sentinel{height:1px}@media (prefers-reduced-motion: reduce){.award-collapse,.award-chevron{transition-duration:0s}}.modal-overlay .modal-sheet.login-sheet{padding:0;overflow:hidden;animation:login-enter .6s ease-out}@keyframes login-enter{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-sheet.login-sheet h3{margin:0;padding:16px 26px 14px;font-size:16px;font-weight:600;color:var(--text-primary);letter-spacing:.02em;background:var(--bg-elevated);border-bottom:1px solid var(--border-color)}.modal-sheet.login-sheet .modal-body{margin:0;padding:20px 26px 4px;gap:14px}.login-form{display:flex;flex-direction:column;gap:14px;min-width:0}.login-server-error{padding:10px 14px;border-radius:10px;background:var(--danger-soft);border:1px solid var(--danger-border);color:var(--danger);font-size:13px;line-height:1.5;animation:login-shake .4s ease-out}@keyframes login-shake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}.login-server-error.warn{background:var(--accent-2-soft);border-color:var(--accent-2-hover);color:var(--text-primary);animation:none}.login-field{display:flex;flex-direction:column;gap:6px}.login-label{font-size:13px;font-weight:500;color:var(--text-secondary);letter-spacing:.02em}.login-input.invalid{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.login-field-error{font-size:12px;color:var(--danger);padding-left:4px}.login-submit{width:100%;height:46px;margin-top:4px;font-size:15px;letter-spacing:.06em}.login-arrow{transition:transform .3s ease}.login-submit:hover:not(:disabled) .login-arrow{transform:translate(4px)}.login-pass-wrap{position:relative}.login-pass-wrap .tf-input{padding-right:64px}.login-pass-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);height:28px;padding:0 10px;border:none;border-radius:8px;background:transparent;font-size:12.5px;font-family:inherit;color:var(--accent-1);cursor:pointer;transition:background .3s var(--ease-spring)}.login-pass-toggle:hover{background:var(--accent-1-soft)}.login-pass-toggle:focus-visible{outline:2px solid var(--ring);outline-offset:1px}.modal-sheet.login-sheet .modal-actions{padding:10px 26px 22px}.modal-sheet.login-sheet .modal-actions .btn{height:46px;font-size:15px}@media (max-width: 768px){.modal-overlay.modal-align-top{align-items:flex-start;padding-top:max(10px,env(safe-area-inset-top))}.modal-overlay.modal-align-top .modal-sheet{margin:0}.modal-sheet.login-sheet h3{padding:14px 20px 12px}.modal-sheet.login-sheet .modal-body{padding:14px 20px 4px;gap:10px}.login-form{gap:12px}.login-submit{height:44px;margin-top:2px}.modal-sheet.login-sheet .modal-actions{padding:8px 20px 16px}.modal-sheet.login-sheet .modal-actions .btn{height:44px}}@media (prefers-reduced-motion: reduce){.modal-overlay .modal-sheet.login-sheet{animation:none}.login-arrow{transition:none}}input.tf-input,textarea.tf-input{width:100%;height:auto;padding:12px 14px;border:1px solid var(--border-color);border-radius:12px;background:var(--bg-elevated);color:var(--text-primary);font-size:14px;font-family:inherit;outline:none;transition:border-color .3s ease,box-shadow .3s ease,background .3s ease}input.tf-input:focus,textarea.tf-input:focus{border-color:var(--border-strong);background:var(--neutral-soft-hover);box-shadow:var(--ring)}textarea.tf-input{resize:vertical;line-height:1.5}.chat-form input.tf-input{flex:0 0 auto;height:40px;padding:0 14px}textarea.tf-input.mono{font-family:Consolas,Courier New,monospace}.shell{display:grid;grid-template-columns:210px minmax(0,1fr);gap:20px;align-items:start}.shell-body{min-width:0}.shell-nav{position:sticky;top:78px;display:flex;flex-direction:column;gap:16px;padding:16px 14px;border:1px solid var(--border-color);border-radius:16px;background:var(--bg-card);background-image:linear-gradient(to bottom,rgba(255,255,255,.1),transparent 50%);box-shadow:var(--shadow-md);backdrop-filter:blur(var(--glass-blur)) saturate(180%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(180%)}.shell-user{display:flex;align-items:center;gap:10px;padding-bottom:14px;border-bottom:1px solid var(--border-color)}.shell-user-text{min-width:0}.shell-user-text strong{display:block;font-size:14px;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell-user-text span{display:block;margin-top:2px;font-size:11.5px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:50%;overflow:hidden;background:var(--neutral-soft-hover);color:var(--text-primary);border:1px solid var(--border-color);font-weight:600;line-height:1;-webkit-user-select:none;user-select:none}.avatar img{width:100%;height:100%;object-fit:cover}.nav-tabs.glass-tabs{width:100%;padding:0;border:none;border-radius:12px;background:transparent;background-image:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;gap:3px}.nav-tabs .gtab{padding:8px 14px;font-size:13.5px}.gtab-sep{flex-basis:100%;padding:5px 14px 1px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);user-select:none;-webkit-user-select:none}.gtab-sep:first-child{padding-top:0}@media (max-width: 768px){.shell{grid-template-columns:1fr}.shell-nav{position:static;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 12px}.shell-user{padding:0 10px 0 0;border-bottom:none;border-right:1px solid var(--border-color)}.shell-user-text,.gtab-sep{display:none}.nav-tabs .gtab{padding:7px 12px}}.profile-avatar-row{display:flex;align-items:center;gap:16px}.profile-avatar-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.tabs-fill{flex:1 1 auto}.btn.small.tabs-action{align-self:center}.class-bar .primary-btn,.filter-bar .primary-btn,.class-bar .category-dropdown,.filter-bar .category-dropdown,.ai-actions .category-dropdown{margin-top:0;align-self:center}.profile-avatar-actions label.btn{display:inline-flex;margin:0}@media (max-width: 768px){.tabs-fill{display:none}.btn.small.tabs-action{margin-left:auto}}.bg-picker{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.bg-option{display:flex;flex-direction:column;align-items:center;gap:8px;width:116px;padding:12px;border:1px solid var(--border-color);border-radius:14px;background:var(--bg-elevated);color:var(--text-secondary);font-size:13px;font-family:inherit;cursor:pointer;transition:border-color .5s var(--ease-spring),background .5s var(--ease-spring),color .5s var(--ease-spring),transform .5s var(--ease-spring)}.bg-option:hover:not(:disabled){border-color:var(--accent-1-border);color:var(--text-primary)}.bg-option:active:not(:disabled){transform:scale(.97);transition-duration:.15s}.bg-option.active{border-color:var(--accent-1);background:var(--accent-1-soft);color:var(--accent-1);font-weight:600}.bg-option:disabled{opacity:.5;cursor:not-allowed}.bg-option:focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-1-soft)}.bg-swatch{display:block;width:88px;height:56px;border-radius:8px;border:1px solid var(--border-color);background-color:var(--bg-card);background-repeat:repeat}.bg-swatch.custom{display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:18px}@media (max-width: 768px){.table-wrap{overflow-x:visible;background:transparent;border:none;border-radius:0;box-shadow:none}.board,.board tbody{display:block}.board thead{display:none}.board tbody tr{display:grid;grid-template-columns:repeat(6,1fr);gap:6px 8px;align-items:center;padding:12px 14px;margin-bottom:10px;border:1px solid var(--border-color);border-radius:16px;background:var(--bg-card);background-image:linear-gradient(to bottom,rgba(255,255,255,.1),transparent 50%);box-shadow:var(--shadow-md);backdrop-filter:blur(var(--glass-blur)) saturate(180%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(180%);animation-delay:calc(var(--i) * 12ms)}.board tbody tr:last-child td{border-bottom:none}.board tbody tr:hover{background:var(--bg-card)}.board td{display:block;padding:0;border:none;text-align:left;font-size:13px}.board td.rank{grid-area:1 / 1 / 2 / 2;display:flex;align-items:center;justify-content:center}.board td.rank>span{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 6px;border-radius:8px;background:var(--bg-elevated);font-size:12.5px;white-space:nowrap}.board tbody tr.disq td.rank{grid-area:1 / 1 / 2 / 3}.board tbody tr.disq td.name{grid-area:1 / 3 / 2 / 5}.board td.name{grid-area:1 / 2 / 2 / 5;font-size:15px}.board td.total{grid-area:1 / 5 / 2 / 7;text-align:right;font-size:15px}.board td:nth-child(2){grid-area:2 / 1 / 3 / 7;font-size:12px;color:var(--text-muted)}.board td:nth-child(n+4):nth-child(-n+9){grid-column:span 2;display:flex;align-items:baseline;justify-content:space-between;gap:6px;padding-top:2px}.board td:nth-child(n+4):nth-child(-n+9):before{content:attr(data-label);color:var(--text-muted);font-size:11.5px}.board tr.top-1 td.rank>span{background:var(--accent-1);color:var(--white)}.board tr.top-2 td.rank>span,.board tr.top-3 td.rank>span{background:var(--accent-1-soft-strong);color:var(--accent-1)}.board tbody tr.disq{opacity:.75}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}}.category-btn,.filter-input,.edit-input,.class-bar select,.apply-form input:not([type=file]):not(.tf-input),.apply-form select,.apply-form textarea:not(.tf-input),.award-field select,.award-field input,.draft-item select,.draft-item input,.assess-item-card select,.assess-item-card input,input.tf-input,textarea.tf-input{background:var(--neutral-soft-hover);border-color:var(--border-strong);border-radius:12px}.glass-select{position:relative;width:100%;min-width:0}.select-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:40px;padding:8px 12px;font-size:14px;font-family:inherit;text-align:left;color:var(--text-primary);cursor:pointer;background:var(--neutral-soft-hover);border:1px solid var(--border-strong);border-radius:12px;transition:border-color .5s var(--ease-spring),background-color .5s var(--ease-spring),box-shadow .5s var(--ease-spring)}.select-trigger:hover:not(:disabled){border-color:var(--accent-1-border)}.select-trigger:focus-visible{outline:none;box-shadow:var(--ring)}.select-trigger:disabled{opacity:.55;cursor:not-allowed}.select-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-trigger .arrow-down{flex:0 0 auto;font-size:10px;color:var(--text-muted);transition:transform .5s var(--ease-spring)}.select-trigger.open .arrow-down{transform:rotate(180deg)}.select-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:100%;max-height:280px;overflow-y:auto;padding:6px;background:var(--menu-bg);border:1px solid var(--border-color);border-radius:16px;box-shadow:var(--shadow-lg);backdrop-filter:blur(var(--glass-blur)) saturate(180%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(180%);z-index:300}.select-option{display:block;width:100%;text-align:left;padding:9px 14px;border:0;border-radius:8px;background:transparent;font-size:13px;font-family:inherit;color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:background .3s var(--ease-spring),color .3s var(--ease-spring)}.select-option:hover{background:var(--accent-1-soft);color:var(--text-primary)}.select-option.picked{color:var(--accent-2);font-weight:600}.select-option.is-disabled{opacity:.45;cursor:not-allowed}.draft-item .glass-select{flex:0 0 96px;width:96px}.assess-item-card .glass-select{flex:0 0 92px;width:92px}.draft-item .select-trigger,.assess-item-card .select-trigger,.award-field .select-trigger{min-height:34px;padding:5px 10px;font-size:13px}.feedback-form{display:flex;flex-direction:column;gap:10px;margin-bottom:22px}.feedback-submit-row{display:flex;align-items:center;gap:12px}.feedback-submit-row .hint{margin:0}.feedback-submit-row .primary-btn{margin-top:0;width:auto}.feedback-list{display:flex;flex-direction:column;gap:12px}.feedback-filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}.feedback-filter{flex:0 0 auto}.feedback-item{border:1px solid var(--border-color);border-radius:16px;padding:14px 18px;background:var(--bg-card);background-image:linear-gradient(to bottom,rgba(255,255,255,.1),transparent 50%);box-shadow:var(--shadow-sm);backdrop-filter:blur(var(--glass-blur)) saturate(180%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(180%);transition:border-color .5s var(--ease-spring),opacity .5s var(--ease-spring)}.feedback-item.resolved{opacity:.72}.feedback-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.feedback-cat{font-size:13px;font-weight:600;color:var(--text-secondary)}.feedback-time{margin-left:auto;font-size:12px;color:var(--text-muted);white-space:nowrap}.feedback-content{margin:10px 0 6px;white-space:pre-wrap;word-break:break-word}.feedback-meta{font-size:12px;color:var(--text-secondary)}.feedback-reply{margin-top:10px;padding:8px 12px;border-radius:10px;background:var(--success-soft);font-size:13px}.feedback-admin{display:flex;align-items:center;gap:14px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--border-color);flex-wrap:wrap}.feedback-resolve{display:inline-flex;align-items:center;gap:6px;font-size:13px;cursor:pointer;-webkit-user-select:none;user-select:none}.feedback-resolve input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent-2);cursor:pointer}.feedback-reply-edit{flex:1 1 260px;display:flex;flex-direction:column;gap:8px}.feedback-reply-actions{display:flex;gap:8px}@media (max-width: 768px){:root{--glass-blur: 30px}}
