:root{color-scheme:light;--accent:#2563eb;--accent-strong:#1d4ed8;--accent-deep:#1e3a8a;--accent-soft:#eff5ff;--accent-tint:#dbeafe;--accent-glow:rgba(37,99,235,0.22);--bg:#f6f9fe;--bg-grain:#eef3fb;--panel:#ffffff;--text:#0f1f3d;--text-soft:#41507a;--muted:#7384a8;--line:#e2e9f5;--line-strong:#cdd8ec;--danger:#dc2626;--danger-soft:#fef2f2;--warn:#b45309;--warn-soft:#fffbeb;--ok:#047857;--ok-soft:#ecfdf5;--radius:14px;--radius-sm:9px;--shadow-xs:0 1px 2px rgba(15,31,61,0.05);--shadow-sm:0 2px 8px -2px rgba(15,31,61,0.08),0 1px 2px rgba(15,31,61,0.04);--shadow-md:0 10px 28px -8px rgba(30,58,138,0.16),0 4px 10px -4px rgba(30,58,138,0.08);--shadow-lg:0 24px 56px -16px rgba(30,58,138,0.24),0 8px 20px -8px rgba(30,58,138,0.12);--font-display:"Sora","PingFang SC","Noto Sans SC","Microsoft YaHei",sans-serif;--font-body:"Sora","PingFang SC","Noto Sans SC","Microsoft YaHei",system-ui,sans-serif;--font-mono:"JetBrains Mono","SF Mono",Consolas,monospace}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;background-image:radial-gradient(900px 520px at 88% -8%,rgba(37,99,235,.1),transparent 60%),radial-gradient(820px 480px at -6% 4%,rgba(96,165,250,.12),transparent 55%),radial-gradient(700px 700px at 50% 120%,rgba(219,234,254,.5),transparent 60%);background-attachment:fixed;min-height:100vh}body:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.5;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.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.022'/%3E%3C/svg%3E")}a{color:var(--accent-strong);text-decoration:none;transition:color .15s ease}a:hover{color:var(--accent)}h1,h2,h3,h4{font-family:var(--font-display);color:var(--text);letter-spacing:-.018em;line-height:1.25;margin:0}h1{font-size:1.7rem;font-weight:700}h2{font-size:1.16rem}h2,h3{font-weight:600}h3{font-size:.98rem}p{margin:0}button,input,select,textarea{font:inherit}input,select,textarea{width:100%;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:10px 12px;background:#fbfdff;color:var(--text);transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}input::placeholder,textarea::placeholder{color:#9aa7c4}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 4px var(--accent-glow)}input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}textarea{min-height:120px;resize:vertical;line-height:1.6}.button,button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;border:0;border-radius:var(--radius-sm);padding:0 16px;background:linear-gradient(180deg,var(--accent) 0,var(--accent-strong) 100%);color:#fff;font-family:var(--font-display);font-weight:500;font-size:14px;letter-spacing:.005em;cursor:pointer;text-decoration:none;box-shadow:0 1px 2px rgba(29,78,216,.3),0 4px 12px -4px var(--accent-glow);transition:transform .12s ease,box-shadow .2s ease,filter .15s ease}.button:hover,button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 4px rgba(29,78,216,.3),0 10px 22px -6px var(--accent-glow);filter:brightness(1.04)}.button:active,button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.button.secondary,button.secondary{background:#fff;color:var(--accent-strong);border:1px solid var(--line-strong);box-shadow:var(--shadow-xs)}.button.secondary:hover,button.secondary:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent-tint);box-shadow:var(--shadow-sm)}button.danger{background:linear-gradient(180deg,#ef4444 0,var(--danger) 100%);color:#fff;box-shadow:0 4px 12px -4px rgba(220,38,38,.35)}button.danger:hover:not(:disabled){filter:brightness(1.04);box-shadow:0 10px 22px -6px rgba(220,38,38,.35)}label{display:grid;grid-gap:6px;gap:6px;color:var(--text-soft);font-size:13px;font-weight:500}label>input,label>select,label>textarea{color:var(--text);font-weight:400}.shell{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;justify-content:space-between;gap:16px;padding:0 28px;height:62px;border-bottom:1px solid rgba(226,233,245,.7);background:rgba(255,255,255,.72);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px)}.brand,.topbar{display:flex;align-items:center}.brand{gap:11px;font-family:var(--font-display);font-weight:700;font-size:16px;letter-spacing:-.01em;color:var(--text)}.brandMark{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;color:#fff;background:linear-gradient(135deg,var(--accent) 0,#60a5fa 100%);box-shadow:0 4px 12px -3px var(--accent-glow),inset 0 1px 0 rgba(255,255,255,.4);flex-shrink:0}.brandText{display:inline-block}.nav{display:flex;gap:4px;flex-wrap:wrap}.nav,.navItem{align-items:center}.navItem{display:inline-flex;gap:7px;height:38px;padding:0 14px;border-radius:var(--radius-sm);color:var(--text-soft);font-size:14px;font-weight:500;transition:background .15s ease,color .15s ease}.navItem svg{opacity:.7}.navItem:hover{background:var(--accent-soft);color:var(--accent-strong)}.navItem.active{background:var(--accent);color:#fff;box-shadow:0 4px 12px -4px var(--accent-glow)}.navItem.active svg{opacity:1}.navUser{display:inline-flex;align-items:center;gap:6px;margin-left:8px;padding:0 12px;height:38px;border-left:1px solid var(--line);color:var(--muted);font-size:13px}.navLogout{min-height:38px;padding:0 14px;font-size:14px}.navLogoutLabel{display:inline}.container{width:min(1180px,calc(100vw - 32px));margin:0 auto;padding:32px 0 56px;flex:1 1}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));grid-gap:18px;gap:18px}.panel{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow-sm)}.stack{display:grid;grid-gap:16px;gap:16px}.row{gap:12px;flex-wrap:wrap}.row,.row label,label.row{display:flex;align-items:center}.row label,label.row{flex-direction:row;gap:9px}.muted{color:var(--muted)}.small,.smallBtn{font-size:12.5px}.smallBtn{min-height:30px;padding:4px 12px}.grid>a.panel,a.panel.stack{text-decoration:none;color:inherit;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}a.panel:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:var(--accent-tint)}a.panel h2{color:var(--text)}.grid>a.panel:after{content:"→";position:absolute;top:18px;right:20px;font-family:var(--font-display);color:var(--accent-tint);font-size:18px;font-weight:600;transition:transform .2s ease,color .2s ease}.grid>a.panel:hover:after{transform:translateX(4px);color:var(--accent)}.tileIndex{font-family:var(--font-display);font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent-tint);border-radius:999px;padding:2px 10px;align-self:flex-start}.activityTile{padding-top:20px}.container>.stack>div:has(>h1){margin-bottom:2px}.status{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 11px;background:var(--accent-soft);color:var(--accent-strong);font-size:12px;font-weight:500;white-space:nowrap}.status.draft,.status.uploaded,.status.uploading,.status.verifying{background:var(--warn-soft);color:var(--warn)}.status.rejected{background:var(--danger-soft);color:var(--danger)}.status.accepted,.status.overridden{background:var(--ok-soft);color:var(--ok)}.notice{border-left:3px solid var(--accent);background:var(--accent-soft);padding:11px 14px;border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--text);font-size:14px}.callout{border:1px solid var(--line);border-left:3px solid var(--accent);background:linear-gradient(180deg,var(--accent-soft) 0,#f7faff 100%);border-radius:var(--radius-sm);padding:15px 17px}.callout h3{margin:0 0 7px;font-size:14px;color:var(--accent-strong)}.callout p{margin:5px 0;line-height:1.6}.callout ul{margin:6px 0;padding-left:18px;line-height:1.65}table{width:100%;border-collapse:collapse;font-size:14px}td,th{border-bottom:1px solid var(--line);padding:12px 10px;text-align:left;vertical-align:top}th{color:var(--muted);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}tbody tr{transition:background .12s ease}tbody tr:hover{background:var(--accent-soft)}code{font-family:var(--font-mono);font-size:.9em;background:var(--bg-grain);padding:2px 7px;border-radius:6px;color:var(--accent-deep)}.tabs{display:inline-flex;width:-moz-fit-content;width:fit-content;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:#f1f5fd;padding:3px;gap:3px}.tab{min-height:34px;border-radius:7px;padding:0 18px;background:transparent;color:var(--text-soft);box-shadow:none;font-weight:500;font-size:14px;transition:background .15s ease,color .15s ease}.tab:hover:not(.active){background:rgba(255,255,255,.7);filter:none;transform:none;box-shadow:none}.tab.active{background:#fff;color:var(--accent-strong);box-shadow:var(--shadow-xs);filter:none;transform:none}.modalBackdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:24px;background:rgba(15,31,61,.42);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);animation:fadeIn .18s ease}.modal{width:min(760px,100%);max-height:calc(100vh - 48px);overflow:auto;box-shadow:var(--shadow-lg);border:1px solid rgba(255,255,255,.6);animation:rise .22s cubic-bezier(.2,.7,.2,1)}.compactList{margin:0;padding-left:18px}.progressBar{width:100%;height:12px;background:var(--bg-grain);border:1px solid var(--line)}.progressBar,.progressFill{border-radius:999px;overflow:hidden;position:relative}.progressFill{height:100%;background:linear-gradient(90deg,var(--accent) 0,#60a5fa 100%);transition:width .25s ease}.progressFill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);animation:shimmer 1.4s infinite}.signature{width:100%;height:180px;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:#fff repeating-linear-gradient(0deg,transparent,transparent 27px,var(--line) 27px,var(--line) 28px);touch-action:none;cursor:crosshair}.login{position:relative;z-index:1;min-height:100vh;display:grid;place-items:center;padding:24px}.login .panel{width:min(420px,100%);padding:32px;box-shadow:var(--shadow-lg);animation:rise .4s cubic-bezier(.2,.7,.2,1)}.login h1{font-size:1.6rem}.login .brand-mark{width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,var(--accent) 0,#60a5fa 100%);box-shadow:0 10px 24px -8px var(--accent-glow),inset 0 1px 0 rgba(255,255,255,.4);margin-bottom:18px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.container .grid>a.panel,.container>.stack>.grid,.container>.stack>.panel{animation:rise .5s cubic-bezier(.2,.7,.2,1) backwards}.container>.stack>:first-child{animation-delay:.04s}.container>.stack>:nth-child(2){animation-delay:.1s}.container>.stack>:nth-child(3){animation-delay:.16s}.container>.stack>:nth-child(4){animation-delay:.22s}.container>.stack>:nth-child(5){animation-delay:.28s}.pageHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap}.pageHeading{display:flex;align-items:center;gap:14px}.pageIcon{display:grid;place-items:center;width:46px;height:46px;border-radius:12px;flex-shrink:0;color:var(--accent-strong);background:linear-gradient(160deg,var(--accent-soft),#fff);border:1px solid var(--accent-tint);box-shadow:var(--shadow-xs)}.pageSubtitle{margin-top:2px;font-size:14px;max-width:60ch}.pageActions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.statGrid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.statCard{display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-xs);transition:transform .18s ease,box-shadow .18s ease}.statCard:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.statIcon{display:grid;place-items:center;width:42px;height:42px;border-radius:11px;flex-shrink:0;color:var(--accent-strong);background:var(--accent-soft)}.statCard.ok .statIcon{color:var(--ok);background:var(--ok-soft)}.statCard.warn .statIcon{color:var(--warn);background:var(--warn-soft)}.statCard.danger .statIcon{color:var(--danger);background:var(--danger-soft)}.statValue{font-family:var(--font-display);font-size:1.7rem;font-weight:700;line-height:1;color:var(--text)}.statLabel{font-size:12.5px;color:var(--muted);margin-top:3px}.formSectionTitle{display:flex;align-items:center;gap:9px;color:var(--text)}.formSectionTitle svg{color:var(--accent)}.formSectionTitle.small h3{font-size:14px}.formGroup{border:1px solid var(--line);border-radius:var(--radius-sm);padding:16px 16px 4px;margin:0;background:linear-gradient(180deg,#fbfdff,#fff)}.formGroup legend{font-family:var(--font-display);font-weight:600;font-size:12.5px;color:var(--accent-strong);text-transform:uppercase;letter-spacing:.05em;padding:0 8px}.formGrid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:12px}.formGrid .span2{grid-column:span 2}@media (max-width:640px){.formGrid .span2{grid-column:span 1}}.toggleRow{padding:6px 0 12px;gap:22px}.actionGrid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.actionCard{position:relative;overflow:hidden}.actionCard:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,var(--accent),#60a5fa);opacity:.7}.actionHead{display:flex;align-items:center;gap:9px;color:var(--text)}.actionHead svg{color:var(--accent)}.actionHead.danger svg{color:var(--danger)}.matBadge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:500;background:var(--accent-soft);color:var(--accent-strong);white-space:nowrap}.matBadge.script{background:#fef3e8;color:#9a5a0e}.matBadge.video{background:#eef2ff;color:#3730a3}.matBadge.ppt{background:var(--ok-soft);color:var(--ok)}.divisionBadge{display:inline-flex;align-items:center;justify-content:center;min-width:40px;padding:2px 9px;border-radius:6px;font-size:12px;font-weight:600}.divisionBadge,.divisionBadge.G{background:var(--accent-soft);color:var(--accent-strong)}.divisionBadge.C{background:var(--ok-soft);color:var(--ok)}.numPill{display:inline-flex;align-items:center;padding:2px 9px;border-radius:6px;font-size:12px;font-weight:500;background:var(--bg-grain);color:var(--text-soft)}.classCode,.numPill{font-family:var(--font-mono)}.classCode{font-size:14px}.passwordCell{background:var(--warn-soft);color:var(--warn);font-weight:500}.emptyRow{text-align:center;color:var(--muted);padding:32px 10px;font-size:14px}.filenameCell{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-soft)}.shaCell small{font-family:var(--font-mono);font-size:11px}.detailGrid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.detailCard{box-shadow:var(--shadow-sm)}.kv{grid-gap:2px;gap:2px;margin-top:2px}.kv,.kvRow{display:grid}.kvRow{grid-template-columns:110px 1fr;align-items:center;grid-gap:12px;gap:12px;padding:9px 0;border-bottom:1px dashed var(--line)}.kvRow:last-child{border-bottom:0}.kvLabel{color:var(--muted);font-size:13px}.hashCell{font-family:var(--font-mono);font-size:12px;word-break:break-all;background:var(--bg-grain);padding:3px 8px;border-radius:6px;color:var(--accent-deep)}.mediaGrid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin-top:4px}.mediaStat{background:var(--bg-grain);border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px}.mediaLabel{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.mediaValue{font-family:var(--font-mono);font-size:15px;font-weight:500;color:var(--text);margin-top:4px}.signatureFrame{display:inline-block;padding:10px;background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);box-shadow:var(--shadow-xs)}.signatureFrame img{max-width:420px;border-radius:4px;display:block}.textContent{white-space:pre-wrap;word-break:break-word;background:var(--bg-grain);border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px;font-size:14px;line-height:1.7;color:var(--text);max-height:320px;overflow:auto;margin:0}.dangerList{color:var(--danger)}.accountInlineForm{flex-wrap:nowrap;align-items:center}.accountInlineForm input,.accountInlineForm select{min-width:150px;padding:7px 9px;font-size:12px}.accountActions{min-width:250px;gap:7px}.accountEditForm{min-width:210px;gap:6px}.accountEditForm input,.accountEditForm select{padding:7px 9px;font-size:12px}.staffDeadline{font-size:17px;white-space:nowrap}@media (max-width:900px){.accountInlineForm{flex-wrap:wrap}}.notice.ok{border-left-color:var(--ok);background:var(--ok-soft);color:var(--ok)}.notice.danger{border-left-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.notice.warn{border-left-color:var(--warn);background:var(--warn-soft);color:var(--warn)}.accountSecurityPage{max-width:720px;margin-inline:auto}.accountIdentityDivider{margin-inline:8px;color:var(--line-strong)}.accountSecurityForm{gap:18px}.accountSecurityAction{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:4px}@media (max-width:640px){.accountSecurityAction{align-items:stretch;flex-direction:column}}.status.warn{background:var(--warn-soft);color:var(--warn)}.emptyState{display:grid;place-items:center;text-align:center;grid-gap:10px;gap:10px;padding:48px 24px}.emptyStateIcon{display:grid;place-items:center;width:64px;height:64px;border-radius:16px;color:var(--accent);background:var(--accent-soft);margin-bottom:4px}.emptyState .muted{max-width:48ch}.fileDrop{position:relative;display:block;border:1.5px dashed var(--line-strong);border-radius:var(--radius);background:#fbfdff;cursor:pointer;transition:border-color .15s ease,background .15s ease}.fileDrop:hover{border-color:var(--accent);background:var(--accent-soft)}.fileDrop>input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;padding:0;border:0;border-radius:var(--radius)}.fileDropInner{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:26px 20px;text-align:center;color:var(--accent-strong);pointer-events:none}.fileDropInner svg{color:var(--accent)}.tileIcon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;color:var(--accent-strong);background:var(--accent-soft);margin:4px 0}.activityTileFoot{display:flex;align-items:center;gap:7px;color:var(--text-soft);font-size:13px;padding-top:4px;border-top:1px dashed var(--line);margin-top:4px}.activityTileFoot svg{color:var(--muted)}.grid>a.panel.activityTile:after{display:none}.hashResult{font-family:var(--font-mono);font-size:13px;background:var(--accent-soft);color:var(--accent-deep)}.annBoard{position:relative;border-radius:var(--radius);overflow:hidden;background:linear-gradient(160deg,#f3f7ff,#ffffff 60%);border:1px solid var(--line);box-shadow:var(--shadow-sm)}.annBoardStrip{display:inline-flex;align-items:center;gap:7px;padding:7px 16px;font-family:var(--font-display);font-size:12.5px;font-weight:600;letter-spacing:.04em;color:#fff;background:linear-gradient(90deg,var(--accent),#60a5fa);border-bottom-right-radius:12px}.annBoardGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:14px;gap:14px;padding:16px}.annCard{position:relative;background:#fff;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--radius-sm);padding:14px 16px 14px 18px;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}.annCard:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.annCard.success{border-left-color:var(--ok)}.annCard.warning{border-left-color:var(--warn)}.annCard.danger{border-left-color:var(--danger)}.annCard.pinned{box-shadow:0 0 0 1px var(--accent-tint),var(--shadow-sm)}.annCard:after{content:"";position:absolute;top:-28px;right:-28px;width:80px;height:80px;border-radius:50%;background:radial-gradient(circle,var(--accent-glow),transparent 70%);opacity:.5;pointer-events:none}.annRibbon{position:absolute;top:0;left:0;width:4px;height:100%;display:none}.annCardHead{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:7px}.annCardTitleWrap{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.annCardHead h3{font-size:15px;font-weight:600;color:var(--text)}.annBadge{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:600;background:var(--accent-soft);color:var(--accent-strong)}.annBadge.success{background:var(--ok-soft);color:var(--ok)}.annBadge.warning{background:var(--warn-soft);color:var(--warn)}.annBadge.danger{background:var(--danger-soft);color:var(--danger)}.annPin{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--accent);font-weight:600;white-space:nowrap}.annCardBody{font-size:14px;line-height:1.65;color:var(--text-soft);white-space:pre-wrap;word-break:break-word}.annCardFoot{display:flex;align-items:center;gap:6px;margin-top:10px;padding-top:8px;border-top:1px dashed var(--line);font-size:12px}.annCardFoot,.annCardFoot svg{color:var(--muted)}.announcementList{display:grid;grid-gap:10px;gap:10px}.announcementRow{position:relative;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--radius-sm);background:#fff;overflow:hidden}.announcementRow.success{border-left-color:var(--ok)}.announcementRow.warning{border-left-color:var(--warn)}.announcementRow.danger{border-left-color:var(--danger)}.announcementRow.inactive{opacity:.6}.announcementRow>summary{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;list-style:none}.announcementRow>summary::-webkit-details-marker{display:none}.annSeverity{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;color:var(--accent-strong);background:var(--accent-soft);flex-shrink:0}.announcementRow.success .annSeverity{color:var(--ok);background:var(--ok-soft)}.announcementRow.warning .annSeverity{color:var(--warn);background:var(--warn-soft)}.announcementRow.danger .annSeverity{color:var(--danger);background:var(--danger-soft)}.annTitle{font-weight:600;color:var(--text);flex:1 1;min-width:0}.annMeta{display:flex;align-items:center;gap:8px;flex-shrink:0}.numPill.pinned{background:var(--accent-soft);color:var(--accent-strong)}.annBody{padding:0 16px 14px;border-top:1px dashed var(--line)}.annText{white-space:pre-wrap;word-break:break-word;color:var(--text-soft);font-size:14px;padding:12px 0;line-height:1.65}.annControls{display:flex;gap:8px;margin-bottom:6px}.activityGrid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.activityTile{position:relative;overflow:hidden;padding:20px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.activityTile:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:linear-gradient(180deg,var(--accent),#60a5fa);opacity:.85}.activityTileGlow{position:absolute;top:-40px;right:-40px;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,var(--accent-glow),transparent 70%);opacity:0;transition:opacity .25s ease;pointer-events:none}.activityTile:hover .activityTileGlow{opacity:.7}.activityTile:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.activityTile.live,.activityTile:hover{border-color:var(--accent-tint)}.activityTile.expired{border-color:#f4d3cf;background:linear-gradient(180deg,#fffafa,#fff 50%)}.activityTile.expired:before{background:linear-gradient(180deg,#f0a9a2,var(--danger))}.activityTileHead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:2px}.activityTypeChip{display:inline-flex;align-items:center;gap:5px;align-self:flex-start;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:500;background:var(--bg-grain);color:var(--text-soft);margin-top:-4px}.activityTile.expired .activityTypeChip{opacity:.7}.activityDeadlineRow{display:flex;align-items:flex-start;gap:11px;padding:12px 14px;margin-top:6px;border-radius:var(--radius-sm);background:linear-gradient(180deg,var(--accent-soft),#f7faff);border:1px solid var(--accent-tint)}.deadlineRing{color:var(--accent);flex-shrink:0;margin-top:1px;animation:spin 40s linear infinite}.activityDeadlineRow.isExpired{background:linear-gradient(180deg,var(--danger-soft),#fffafa);border-color:#f4d3cf}.activityDeadlineRow.isExpired .deadlineRing{color:var(--danger);animation:none}.deadlineText{display:grid;grid-gap:2px;gap:2px;flex:1 1;min-width:0}.deadlineLabel{font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}.deadlineValue{font-size:13.5px;font-weight:600;color:var(--text);font-family:var(--font-display)}.deadlineCountdown{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--accent-strong);font-weight:500}.expiredTag{align-self:center}@keyframes spin{to{transform:rotate(1turn)}}.drawPanel{position:relative;overflow:hidden}.drawPanel:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:linear-gradient(180deg,var(--accent),#60a5fa);opacity:.85}.drawResult{display:grid;grid-gap:8px;gap:8px}.drawRow{display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.drawRow:hover{box-shadow:var(--shadow-xs)}.drawRow.podium{background:linear-gradient(180deg,var(--accent-soft),#fff);border-color:var(--accent-tint)}.drawNo{display:grid;place-items:center;width:32px;height:32px;flex-shrink:0;border-radius:8px;font-family:var(--font-display);font-weight:700;font-size:14px;background:var(--bg-grain);color:var(--text-soft)}.drawNo.podium-1{background:linear-gradient(180deg,#fde68a,#f59e0b);color:#78350f}.drawNo.podium-2{background:linear-gradient(180deg,#e5e7eb,#9ca3af);color:#374151}.drawNo.podium-3{background:linear-gradient(180deg,#fcd9b6,#d97706);color:#7c2d12}.drawIcon{display:grid;place-items:center;width:26px;height:26px;color:var(--accent);flex-shrink:0}.rank-1 .drawIcon{color:#b45309}.rank-2 .drawIcon{color:#6b7280}.rank-3 .drawIcon{color:#c2410c}.drawCode code{font-size:15px}.drawName{color:var(--text-soft);font-size:14px}.drawEmpty{display:grid;place-items:center;grid-gap:8px;gap:8px;padding:28px 16px 8px;color:var(--accent);text-align:center}.drawActions{margin-top:2px}.drawResult.classView .drawRow.mine{border-color:var(--accent);background:linear-gradient(180deg,var(--accent-soft),#fff);box-shadow:0 0 0 1px var(--accent-tint)}.drawResult.classView .drawRow.mine:hover{transform:translateX(2px)}.drawMineTag{font-size:12px}.drawMineTag,.drawSelfBadge{margin-left:auto;font-weight:600;color:var(--accent-strong)}.drawSelfBadge{padding:3px 11px;border-radius:999px;font-size:12.5px;background:var(--accent-soft);border:1px solid var(--accent-tint)}.duplicateNotice{display:flex;align-items:flex-start;gap:12px;padding:14px 16px}.duplicateNotice svg{flex-shrink:0;margin-top:1px}.dupLink{font-weight:600;text-decoration:underline;text-underline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}