:root{--ink:#212529;--muted:#868e96;--line:#e9ecef;--accent:#3b5bdb;--accent-soft:#edf2ff;color:var(--ink);word-break:keep-all;background:#f8f9fa;font-family:Pretendard,Noto Sans KR,Noto Sans CJK KR,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}.md a,.hint a,.center-msg a{color:var(--accent);text-decoration:underline}.center-msg{text-align:center;flex-direction:column;align-items:center;gap:8px;margin:80px auto;display:flex}.app{flex-direction:column;height:100vh;display:flex}button{font:inherit;color:inherit}.topbar{border-bottom:1px solid var(--line);z-index:5;background:#fff;align-items:center;gap:14px;padding:8px 20px;display:flex;position:relative}.brand{cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:0;font-size:16px;font-weight:800;display:flex}.logo{border-radius:50%;flex-shrink:0;width:30px;height:30px;display:block}.course{color:var(--muted);border:0;border-left:1px solid var(--line);cursor:pointer;background:0 0;padding:4px 8px 4px 16px;font-size:14px}.course:hover{color:var(--ink)}.live-pill{color:#c92a2a;background:#fff5f5;border-radius:99px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;font-weight:600;display:flex}.live-pill i,.live-dot{background:#fa5252;border-radius:50%;width:8px;height:8px;animation:1.4s infinite blink;display:inline-block}@keyframes blink{50%{opacity:.3}}.top-right{align-items:center;gap:10px;margin-left:auto;display:flex}.bell-wrap{position:relative}.bell{cursor:pointer;background:#f1f3f5;border:0;border-radius:10px;width:36px;height:36px;font-size:16px;position:relative}.bell .badge{position:absolute;top:-4px;right:-6px}.bell-pop{border:1px solid var(--line);background:#fff;border-radius:14px;width:380px;max-height:70vh;padding:8px;position:absolute;top:44px;right:0;overflow:auto;box-shadow:0 10px 40px #0003}.me-btn{cursor:pointer;background:0 0;border:0;border-radius:99px;align-items:center;gap:6px;padding:3px 8px 3px 3px;font-size:14px;font-weight:600;display:flex}.me-btn:hover,.me-btn.on{background:var(--accent-soft)}.view-switch button{cursor:pointer;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:7px;padding:5px 10px}.view-switch button.on{color:var(--ink);background:#fff;font-weight:700;box-shadow:0 1px 2px #0002}.layout{flex:1;min-height:0;display:flex}.sidebar{border-right:1px solid var(--line);background:#fff;flex-direction:column;flex-shrink:0;gap:2px;width:230px;padding:10px;display:flex;overflow-y:auto}.side-label{color:var(--muted);padding:10px 10px 4px;font-size:12px;font-weight:700}.side-item{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:9px;align-items:center;gap:10px;padding:7px 10px;display:flex}.side-item:hover{background:#f1f3f5}.side-item.on{background:var(--accent-soft);color:var(--accent);font-weight:700}.side-num{background:#f1f3f5;border-radius:7px;flex-shrink:0;place-items:center;width:24px;height:24px;font-size:13px;font-weight:700;display:grid}.side-item.on .side-num{background:var(--accent);color:#fff}.side-text{flex-direction:column;flex:1;font-size:14px;line-height:1.3;display:flex}.side-text small{color:var(--muted);font-size:12px;font-weight:400}.badge{color:#fff;background:#fa5252;border-radius:99px;padding:1px 7px;font-size:11px;font-weight:700;line-height:1.5}.presence{border-top:1px solid var(--line);margin-top:14px;padding-top:4px;font-size:13px}.on-count{color:#2b8a3e;font-size:13px}.pres-row{align-items:center;gap:8px;padding:3px 10px;display:flex}.pres-row.off{color:var(--muted)}.pres-row.off .avatar{opacity:.45}.pres-row small{margin-left:auto;font-size:11px}.pres-off{margin-top:4px}.main{flex:1;padding:16px 22px 40px;overflow:auto}.page{max-width:1200px}.since{color:#1864ab;background:#e7f5ff;border:1px solid #a5d8ff;border-radius:10px;align-items:center;gap:10px;margin-bottom:14px;padding:10px 14px;font-size:14px;display:flex}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:0;margin-left:auto;padding:0;font-size:13px;font-weight:600}.main-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.main-head h1{align-items:baseline;gap:10px;margin:0;font-size:22px;display:flex}.main-head h1 small{color:var(--muted);font-size:14px;font-weight:400}.head-tools{align-items:center;gap:8px;display:flex}.head-tools>button{white-space:nowrap}.view-switch{background:#e9ecef;border-radius:10px;gap:2px;padding:3px;font-size:13px;display:flex}.view-switch.sub{background:#f1f3f5}.drag-hint{margin:-4px 0 10px}.hint{color:var(--muted);font-size:12px}.session-strip{display:none}.add-session{text-align:left;cursor:pointer;width:100%;color:var(--muted,#868e96);background:0 0;border:0}.add-session-form{gap:6px;padding:6px 10px 10px;display:grid}.add-session-form input{border:1px solid var(--line,#dee2e6);width:100%;font:inherit;border-radius:8px;padding:6px 8px}.add-session-form .row{justify-content:flex-end;gap:6px;display:flex}.live-toggle.on{color:#e03131;background:#fff5f5;border-color:#ffc9c9}.edit-box{gap:8px;margin:8px 0;display:grid}.side-session{align-items:center;display:flex;position:relative}.side-session>.side-item{flex:1;min-width:0}.side-session>.handle{cursor:grab;color:var(--muted);opacity:0;padding:0 2px 0 4px}.side-session:hover>.handle,.side-session.dragging>.handle{opacity:1}.side-session>.sec-menu{opacity:0}.side-session:hover>.sec-menu,.side-session>.sec-menu:focus-within{opacity:1}.side-session .sec-menu-pop{z-index:20;left:auto;right:0}.side-session.dragging{opacity:.5}.side-session.drop-before{box-shadow:inset 0 2px 0 var(--accent)}.side-session.drop-after{box-shadow:inset 0 -2px 0 var(--accent)}@media (hover:none){.side-session>.handle,.side-session>.sec-menu{opacity:1}}.board{align-items:flex-start;gap:16px;display:flex}.board-columns .sec{width:calc(var(--card-w) + 24px);flex-shrink:0}.board-stack,.board-wrap{flex-direction:column;align-items:stretch}.board-stack .sec-body{scroll-snap-type:x proximity;flex-direction:row;align-items:flex-start;gap:12px;margin:-8px -8px 0;padding:8px;scroll-padding-inline:8px;display:flex;overflow-x:auto}.board-stack .sec-body>.card{width:var(--card-w);scroll-snap-align:start;flex-shrink:0}.board-wrap .sec-body{grid-template-columns:repeat(auto-fill, minmax(var(--card-w), 1fr));align-items:start;gap:12px;display:grid}.board-grid{grid-template-columns:repeat(auto-fill, minmax(calc(var(--card-w) + 40px), 1fr));align-items:start;display:grid}.board-btn{white-space:nowrap}.sec{background:#eef0f3;border-radius:14px;flex-direction:column;gap:10px;padding:12px;transition:opacity .15s;display:flex;position:relative}.sec.now{background:#e5ecff;box-shadow:inset 0 0 0 2px #91a7ff}.sec.dragging{opacity:.35}.sec.drop-before:before,.sec.drop-after:after{content:"";background:var(--accent);border-radius:4px;position:absolute}.board-columns .sec.drop-before:before{width:4px;top:0;bottom:0;left:-10px}.board-columns .sec.drop-after:after{width:4px;top:0;bottom:0;right:-10px}.board-stack .sec.drop-before:before,.board-wrap .sec.drop-before:before{height:4px;top:-10px;left:0;right:0}.board-stack .sec.drop-after:after,.board-wrap .sec.drop-after:after{height:4px;bottom:-10px;left:0;right:0}.board-grid .sec.drop-before:before{width:4px;top:0;bottom:0;left:-10px}.board-grid .sec.drop-after:after{width:4px;top:0;bottom:0;right:-10px}.col-head{flex-direction:column;gap:6px;padding:2px 4px;display:flex}.col-title{align-items:center;gap:6px;font-size:15px;font-weight:800;display:flex}.col-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.handle{cursor:grab;color:#adb5bd;-webkit-user-select:none;user-select:none;padding:0 2px;font-size:18px}.handle:hover{color:var(--accent)}.handle:active{cursor:grabbing}.count{color:var(--muted);margin-left:auto;padding-left:6px;font-size:13px;font-weight:600}.icon-btn{cursor:pointer;background:#fff;border:0;border-radius:7px;width:28px;height:28px}.icon-btn:hover{background:var(--accent-soft)}.due{color:#e8590c;font-size:12px;font-weight:600}.set-due{color:var(--muted);cursor:pointer;background:0 0;border:1px dashed #adb5bd;border-radius:8px;padding:4px;font-size:12px}.progress{all:unset;color:var(--muted);cursor:pointer;border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;margin:-4px;padding:4px;font-size:12px;display:flex}.progress:hover{background:#fff8}.progress b{color:var(--ink)}.bar{background:#fff;border-radius:99px;flex:1;min-width:120px;height:6px;overflow:hidden}.bar i{background:#40c057;height:100%;transition:width .4s;display:block}.col-head .missing{flex-wrap:wrap;align-items:center;gap:4px;width:100%;display:flex}.miss-chip{color:#c92a2a;background:#fff;border:1px solid #ffc9c9;border-radius:6px;padding:0 6px}.mine{border-radius:6px;align-self:flex-start;padding:3px 8px;font-size:12px;font-weight:700}.mine.ok{color:#2b8a3e;background:#d3f9d8}.mine.late{color:#e67700;background:#fff3bf}.mine.todo{color:#d9480f;background:#fff4e6}.mine.miss{color:#c92a2a;background:#ffe3e3}.add{color:#495057;cursor:pointer;background:0 0;border:1.5px dashed #adb5bd;border-radius:10px;padding:9px;font-weight:700}.add:hover{border-color:var(--accent);color:var(--accent);background:#fff}.sec-body{flex-direction:column;gap:10px;display:flex}.empty{text-align:center;color:var(--muted);grid-column:1/-1;padding:18px 0;font-size:13px}.add-sec{color:var(--muted);cursor:pointer;background:0 0;border:2px dashed #ced4da;border-radius:14px;min-width:220px;padding:16px;font-weight:700}.board-columns .add-sec{flex-shrink:0;width:260px}.card{position:relative}.card.clamped .card-inner{max-height:var(--card-h);overflow:hidden}.card-fade{display:none}.card.clamped .card-inner.overflow+.card-fade{display:flex}.card-fade{pointer-events:none;z-index:1;background:linear-gradient(#fff0,#fff 75%);justify-content:center;align-items:flex-end;height:64px;margin-top:-64px;padding-bottom:4px;position:relative;left:0;right:0}.card-fade span{color:var(--accent);border:1px solid var(--line);background:#fff;border-radius:99px;padding:2px 10px;font-size:12px;font-weight:700}.add-sec.form{cursor:default;background:#fff;flex-direction:column;gap:8px;display:flex}.add-sec select,.add-sec input{border:1px solid var(--line);font:inherit;border-radius:8px;padding:8px}.row{gap:6px;display:flex}.deadline{color:#1864ab;font-variant-numeric:tabular-nums;background:#fff;border-radius:8px;padding:5px 8px;font-size:13px}.deadline b{font-size:15px}.deadline small{color:var(--muted);margin-left:4px}.deadline.orange{color:#e8590c;background:#fff4e6}.deadline.red{color:#fff;background:#fa5252;animation:1s infinite blink}.deadline.red small{color:#fff}.deadline.over{color:var(--muted);background:#f1f3f5}.deadline.up{color:#5f3dc4}.deadline.up.orange{color:#e8590c;background:#fff4e6}.deadline.up.red{color:#fff;background:#fa5252}.deadline.up.red small{color:#fff}.tbar{background:#e5dbff;border-radius:99px;height:4px;margin-top:4px;overflow:hidden}.tbar i{background:#7950f2;height:100%;display:block}.layout-pick{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.layout-pick button{border:2px solid var(--line);cursor:pointer;text-align:center;background:#fff;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:10px;display:flex}.layout-pick button.on{border-color:var(--accent);background:var(--accent-soft)}.layout-pick small{color:var(--muted);font-size:11px;line-height:1.4}.layout-ico{fill:#ced4da;stroke:#adb5bd;width:88px;height:50px}.layout-pick button.on .layout-ico{fill:#91a7ff;stroke:var(--accent)}.size-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.size-field{flex-direction:column;gap:6px;display:flex}.size-field .seg button{padding:7px 4px;font-size:13px}.px-input{color:var(--muted);font-size:13px}.px-input input{border:1px solid var(--line);width:90px;font:inherit;border-radius:8px;padding:6px 8px}.size-preview{background:#eef0f3;border-radius:12px;align-items:flex-start;gap:8px;min-height:80px;padding:12px;display:flex;overflow:hidden}.sp-card{background:#fff;border-radius:8px;flex-direction:column;flex-shrink:0;gap:5px;padding:8px;display:flex;position:relative;overflow:hidden;box-shadow:0 1px 2px #0001}.sp-card i{background:#e9ecef;border-radius:3px;flex-shrink:0;height:6px;display:block}.sp-card span{text-align:center;color:var(--accent);background:linear-gradient(#0000,#fff 60%);padding:12px 0 4px;font-size:10px;font-weight:700;position:absolute;bottom:0;left:0;right:0}@media (width<=760px){.layout-pick{grid-template-columns:1fr 1fr}.size-row{grid-template-columns:1fr}}.sec-menu{position:relative}.sec-menu-pop{z-index:6;border:1px solid var(--line);background:#fff;border-radius:10px;flex-direction:column;min-width:140px;padding:4px;display:flex;position:absolute;top:28px;right:0;box-shadow:0 8px 24px #0002}.sec-menu-pop button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:7px 10px;font-size:13px}.sec-menu-pop button:hover{background:#f1f3f5}.sec-menu-pop .danger{color:#e03131}.sec-menu-pop .sec-menu-label{color:var(--muted);border-top:1px solid var(--line);margin-top:4px;padding:6px 10px 2px;font-size:11px}.sec-menu-pop .on{font-weight:700}.col-title .rename{min-width:0;font:inherit;border:1px solid var(--accent);border-radius:6px;flex:1;padding:2px 6px;font-weight:700}@media (hover:hover){.col-head .sec-menu{opacity:0}.col-head:hover .sec-menu,.col-head:focus-within .sec-menu{opacity:1}}.card[draggable=true]{cursor:grab}.card.dragging{opacity:.35}.card.drop-before:before,.card.drop-after:after{content:"";background:var(--accent);z-index:2;border-radius:4px;position:absolute}.card.drop-before:before{height:4px;top:-7px;left:0;right:0}.card.drop-after:after{height:4px;bottom:-7px;left:0;right:0}.board-stack .card.drop-before:before,.board-wrap .card.drop-before:before{width:4px;height:auto;inset:0 auto 0 -8px}.board-stack .card.drop-after:after,.board-wrap .card.drop-after:after{width:4px;height:auto;inset:0 -8px 0 auto}.sec.post-over{box-shadow:inset 0 0 0 2px var(--accent)}.card.selecting{cursor:pointer}.card-check{z-index:2;pointer-events:none;width:18px;height:18px;accent-color:var(--accent);margin:0;position:absolute;top:10px;right:10px}.card.selecting .card-head{padding-right:26px}.card.selected{box-shadow:inset 0 0 0 2px var(--accent);background:var(--accent-soft)}.sel-all{align-self:flex-start}.select-toggle.on{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.move-bar{z-index:9;border:1px solid var(--line);background:#fff;border-radius:14px;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;max-width:calc(100vw - 24px);padding:10px 14px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #0003}.move-bar select{border:1px solid var(--line);font:inherit;border-radius:8px;max-width:280px;padding:7px 8px}.card{cursor:pointer;background:#fff;border-radius:12px;min-width:0;padding:12px;transition:transform .12s,box-shadow .12s;box-shadow:0 1px 2px #0000000f,0 1px 6px #0000000a}.card:hover{transform:translateY(-1px);box-shadow:0 4px 14px #00000018}.card.pinned{box-shadow:inset 0 0 0 2px #ffd43b}.card.fresh{animation:.6s ease-out pop;box-shadow:0 0 0 2px #51cf66}@keyframes pop{0%{opacity:0;transform:scale(.94)}}.card-section{color:var(--muted);margin-bottom:6px;font-size:12px;font-weight:700}.pin{color:#e67700;margin-bottom:6px;font-size:12px;font-weight:700}.card-head{align-items:center;gap:8px;display:flex}.card-head.big{gap:10px;margin-bottom:8px}.name{align-items:center;gap:4px;font-size:14px;display:inline-flex}.role-chip{background:var(--accent);color:#fff;vertical-align:middle;border-radius:5px;margin-left:4px;padding:0 6px;font-size:11px;font-weight:600}.time{color:var(--muted);font-size:12px;font-weight:400}.status{white-space:nowrap;border-radius:99px;margin-left:auto;padding:2px 8px;font-size:11px;font-weight:700}.status.wait{color:#d9480f;background:#fff4e6}.status.done{color:#2b8a3e;background:#d3f9d8}.status.late{color:#e67700;background:#fff3bf}.card-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0;font-size:14px;line-height:1.55}.md.post-md{font-size:inherit;line-height:inherit;white-space:normal}.post-md>:first-child{margin-top:0}.post-md>:last-child{margin-bottom:0}.post-md p{margin:0 0 .6em}.post-md ul,.post-md ol{margin:0 0 .6em;padding-left:1.4em}.md-raw{white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0;font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,monospace}.md-toggle{flex-shrink:0;margin-left:auto}.md-toggle button{flex:none;padding:4px 10px;font-size:12px}.mention{color:var(--accent);background:var(--accent-soft);border-radius:4px;padding:0 2px;font-weight:600}.card-file{margin-top:8px}.card-foot{align-items:center;gap:4px;margin-top:10px;display:flex}.like,.cmt{cursor:pointer;color:#495057;background:#f1f3f5;border:0;border-radius:99px;padding:3px 10px;font-size:13px}.like.on{color:#e03131;background:#ffe3e3}.likers{margin-left:auto;display:flex}.likers .avatar{border:2px solid #fff;margin-left:-5px}.more{color:var(--muted);margin-top:6px;font-size:12px}.avatar{color:#fff;letter-spacing:-.5px;border-radius:50%;flex-shrink:0;place-items:center;font-weight:700;display:inline-grid;position:relative}.avatar img{object-fit:cover;background:#fff;border-radius:50%;width:100%;height:100%}.avatar .dot{background:#ced4da;border:2px solid #fff;border-radius:50%;width:30%;min-width:7px;height:30%;min-height:7px;position:absolute;bottom:-1px;right:-1px}.avatar .dot.on{background:#40c057}.thumb{border:1px solid var(--line);border-radius:8px;width:100%;display:block}.video{background:#000;border-radius:8px;width:100%;display:block}.file-tile{border:1px solid var(--line);background:#f8f9fa;border-radius:9px;align-items:center;gap:10px;min-width:0;padding:10px;display:flex}.file-badge{color:#fff;border-radius:5px;padding:3px 5px;font-size:10px;font-weight:800;line-height:1.2;display:inline-block}.file-name{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.file-hint{color:var(--accent);white-space:nowrap;margin-left:auto;font-size:12px}.md-card{border:1px solid var(--line);background:#fcfcfd;border-radius:9px;padding:4px 12px}.md.clamp{max-height:170px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 70%,#0000);mask-image:linear-gradient(#000 70%,#0000)}.md{font-size:13px;line-height:1.6}.md h1{margin:8px 0;font-size:17px}.md h2{margin:12px 0 4px;font-size:15px}.md table{border-collapse:collapse}.md td,.md th{border:1px solid var(--line);padding:4px 8px}.md blockquote{border-left:3px solid var(--accent);background:var(--accent-soft);margin:8px 0;padding:4px 12px}.md code{background:#f1f3f5;border-radius:4px;padding:1px 4px;font-size:.92em}.md pre{background:#f1f3f5;border-radius:8px;padding:10px 12px;overflow:auto}.md pre code{background:0 0;padding:0}.md img{max-width:100%}.md-props{border-bottom:1px solid var(--line);gap:2px;margin:10px 0 14px;padding:0 0 10px;display:grid}.md-prop{grid-template-columns:minmax(80px,140px) 1fr;align-items:baseline;gap:10px;padding:3px 0;display:grid}.md-prop dt{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.92em;overflow:hidden}.md-prop dd{overflow-wrap:anywhere;flex-wrap:wrap;gap:4px;min-width:0;margin:0;display:flex}.md-chip{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:0 8px;font-size:.9em}.md-empty{color:var(--muted)}.md.clamp .md-props{display:none}.md .callout{--c:#3b5bdb;border-left-color:var(--c);background:color-mix(in srgb, var(--c) 8%, #fff);border-radius:0 8px 8px 0}.md .callout-title{color:var(--c);text-transform:none;margin:6px 0 2px;font-weight:700}.md .callout[data-callout=abstract],.md .callout[data-callout=summary],.md .callout[data-callout=tldr],.md .callout[data-callout=tip],.md .callout[data-callout=hint]{--c:#0c8599}.md .callout[data-callout=success],.md .callout[data-callout=check],.md .callout[data-callout=done]{--c:#2f9e44}.md .callout[data-callout=question],.md .callout[data-callout=help],.md .callout[data-callout=faq],.md .callout[data-callout=warning],.md .callout[data-callout=caution],.md .callout[data-callout=attention]{--c:#e8590c}.md .callout[data-callout=failure],.md .callout[data-callout=fail],.md .callout[data-callout=missing],.md .callout[data-callout=danger],.md .callout[data-callout=error],.md .callout[data-callout=bug]{--c:#e03131}.md .callout[data-callout=example]{--c:#7048e8}.md .callout[data-callout=quote],.md .callout[data-callout=cite]{--c:#868e96}.html-thumb{border:1px solid var(--line);border-radius:9px;height:170px;position:relative;overflow:hidden}.html-thumb iframe{transform-origin:0 0;pointer-events:none;border:0;width:200%;height:340px;transform:scale(.5)}.html-label{color:#fff;background:#e8590c;border-radius:6px;padding:3px 8px;font-size:11px;font-weight:700;position:absolute;bottom:8px;right:8px}.srt-card{flex-direction:column;gap:6px;display:flex}.srt{flex-direction:column;gap:4px;font-size:13px;display:flex}.cue{gap:10px;display:flex}.cue-time{color:var(--accent);flex-shrink:0;padding-top:1px;font-family:ui-monospace,monospace;font-size:12px}.sq{aspect-ratio:4/3;object-fit:cover;background:#f1f3f5;border-radius:8px;width:100%;display:block;overflow:hidden}.sq-frame{position:relative}.sq-frame iframe{transform-origin:0 0;pointer-events:none;border:0;width:300%;height:300%;transform:scale(.3333)}.sq-md{border:1px solid var(--line);box-sizing:border-box;background:#fcfcfd;padding:6px 10px}.sq-md .md{font-size:10px}.sq-md .md.clamp{max-height:none}.sq-icon{place-items:center;display:grid}.sq-icon .file-badge{padding:8px 12px;font-size:16px}.sq-text{box-sizing:border-box;white-space:pre-wrap;background:#fff9db;padding:12px;font-size:13px;line-height:1.5}.md.post-md h1{font-size:1.3em}.md.post-md h2{font-size:1.15em}.md.post-md h3{font-size:1.05em}.tabs{border-bottom:1px solid var(--line);gap:4px;margin-bottom:14px;display:flex;overflow-x:auto}.tabs button{cursor:pointer;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:4px;padding:10px 14px;font-size:14px;display:flex}.tabs button.on{color:var(--accent);border-color:var(--accent);font-weight:700}.tabs .count{margin-left:4px}.tabs .tab-add{color:var(--accent);font-weight:700}.secview-add{max-width:360px;margin-bottom:14px}.secview-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.secview-head .col-head{background:#eef0f3;border-radius:12px;flex:1;min-width:300px;max-width:560px;padding:10px 12px}.secview-tools{align-items:center;gap:8px;display:flex}.primary.sm{padding:7px 12px;font-size:13px}.plist{border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;display:flex}.plist-row{border-bottom:1px solid var(--line);cursor:pointer;align-items:flex-start;gap:12px;padding:12px 14px;display:flex}.plist-row:last-child{border-bottom:0}.plist-row:hover{background:#f8f9fa}.plist-main{flex:1;min-width:0}.plist-top{align-items:center;gap:8px;display:flex}.plist-text{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:3px 0 6px;font-size:14px;display:-webkit-box;overflow:hidden}.plist-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px;font-size:12px;display:flex}.fchip{align-items:center;gap:4px;display:inline-flex}.plist-thumb{flex-shrink:0;width:110px}.pin-mini{font-size:12px}.ptable-wrap{border:1px solid var(--line);background:#fff;border-radius:12px;overflow:auto}.ptable{border-collapse:collapse;width:100%;font-size:13px}.ptable th{text-align:left;color:var(--muted);cursor:pointer;white-space:nowrap;border-bottom:1px solid var(--line);-webkit-user-select:none;user-select:none;background:#f8f9fa;padding:10px 12px}.ptable td{border-bottom:1px solid var(--line);vertical-align:middle;padding:9px 12px}.ptable tr:hover td{cursor:pointer;background:#f8f9fa}.ptable .tx{text-overflow:ellipsis;white-space:nowrap;max-width:360px;overflow:hidden}.ptable td .file-badge{margin-right:3px}.who{white-space:nowrap;align-items:center;gap:6px;display:flex}td.who{display:table-cell}td.who .avatar{vertical-align:middle;margin-right:6px}.chip{color:#495057;white-space:nowrap;background:#f1f3f5;border-radius:99px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.chip.ok{color:#2b8a3e;background:#d3f9d8}.chip.late{color:#e67700;background:#fff3bf}.chip.todo{color:#d9480f;background:#fff4e6}.chip.miss{color:#c92a2a;background:#ffe3e3}.pgallery{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;display:grid}.gtile{cursor:pointer;background:#fff;border-radius:12px;padding:8px;box-shadow:0 1px 3px #0001}.gtile:hover{box-shadow:0 4px 14px #0002}.gtile-foot{align-items:center;gap:6px;margin-top:8px;font-size:12px;display:flex}.gtile-text{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.gtile-n{color:var(--muted);white-space:nowrap}.kanban{align-items:flex-start;gap:14px;padding-bottom:8px;display:flex;overflow-x:auto}.kcol{background:#eef0f3;border-radius:12px;flex-direction:column;flex-shrink:0;gap:10px;width:300px;padding:10px;display:flex}.kcol-head{padding:2px 4px;font-size:14px;font-weight:800;display:flex}.feed{flex-direction:column;gap:14px;max-width:620px;margin:0 auto;display:flex}.feed-section{color:var(--muted);margin:0 0 4px 4px;font-size:12px;font-weight:700}.drawer-back{z-index:10;background:#0003;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:#fff;flex-direction:column;width:min(720px,100%);height:100%;animation:.18s ease-out slide;display:flex}@keyframes slide{0%{opacity:0;transform:translate(40px)}}.drawer-top{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:12px 18px;display:flex}.crumb{color:var(--muted);margin-right:auto;font-size:14px;font-weight:700}.x{cursor:pointer;background:#f1f3f5;border:0;border-radius:8px;flex-shrink:0;width:30px;height:30px}.modal-head .x{margin-left:auto}.ghost{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;padding:5px 10px;font-size:13px}.drawer-body{padding:18px 22px 30px;overflow:auto}.detail-text{white-space:pre-wrap;font-size:15px;line-height:1.65}.viewer{flex-direction:column;gap:8px;margin:14px 0;display:flex}.viewer-head{align-items:center;gap:10px;display:flex}.viewer-head .file-tile{flex:1;min-width:0}button.link{cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.link{color:var(--accent);white-space:nowrap;font-size:13px;text-decoration:none}.full-img{border:1px solid var(--line);border-radius:10px;width:100%}.full-frame{border:1px solid var(--line);background:#fff;border-radius:10px;width:100%;height:520px}.md-full{border:1px solid var(--line);border-radius:10px;padding:6px 20px}.md-full .md{font-size:14px}.detail-actions{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:12px 0;display:flex}.detail-actions .likers{margin-left:8px}.cmt-title{margin:16px 0 8px;font-size:14px}.comment{border-radius:10px;gap:10px;padding:10px;display:flex}.comment.answer{background:#ebfbee;border:1px solid #b2f2bb}.comment-body{flex:1;font-size:14px}.comment-body p{margin:4px 0;line-height:1.55}.answer-chip{color:#2b8a3e;margin-left:6px;font-size:11px;font-weight:700}.tiny{border:1px solid var(--line);cursor:pointer;color:var(--muted);background:#fff;border-radius:6px;align-self:flex-start;padding:2px 8px;font-size:12px}.comment-box{align-items:flex-start;gap:8px;margin-top:12px;display:flex}.mention-wrap{flex:1;display:flex;position:relative}.mention-wrap textarea{border:1px solid var(--line);min-height:42px;font:inherit;resize:vertical;border-radius:10px;flex:1;padding:10px}.mention-wrap .compose-text{min-height:90px}.mention-pop{border:1px solid var(--line);z-index:50;background:#fff;border-radius:10px;min-width:200px;padding:4px;position:absolute;bottom:calc(100% + 4px);left:8px;box-shadow:0 8px 24px #0002}.mention-pop button{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:7px;align-items:center;gap:8px;width:100%;padding:6px 8px;font-size:14px;display:flex}.mention-pop button.on,.mention-pop button:hover{background:var(--accent-soft)}.mention-pop small{color:var(--muted)}.primary{background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border:0;border-radius:10px;padding:9px 16px;font-weight:700}.primary:disabled{opacity:.4;cursor:default}.modal-back{z-index:20;background:#0005;place-items:center;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:16px;flex-direction:column;gap:12px;width:min(560px,94vw);max-height:90vh;padding:18px;display:flex;overflow:auto}.modal.wide{width:min(760px,94vw)}.modal-head{align-items:center;gap:4px;font-size:15px;display:flex}.compose-due{background:#f8f9fa;border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px;display:flex}.warn{color:#8f5b00;background:#fff3bf;border-radius:8px;padding:8px 12px;font-size:13px}.blocked{text-align:center;color:#495057;background:#f1f3f5;border-radius:10px;padding:24px}.drop{text-align:center;color:#495057;cursor:pointer;border:2px dashed #ced4da;border-radius:12px;padding:20px;font-size:14px;line-height:1.7}.drop small{color:var(--muted)}.drop.over{border-color:var(--accent);background:var(--accent-soft)}.compose-files{grid-template-columns:1fr 1fr;gap:8px;display:grid}.modal-foot{justify-content:space-between;align-items:center;gap:10px;display:flex}.seg{background:#f1f3f5;border-radius:10px;gap:2px;padding:3px;display:flex}.seg button{cursor:pointer;color:var(--muted);background:0 0;border:0;border-radius:8px;flex:1;padding:8px}.seg button.on{color:var(--ink);background:#fff;font-weight:700;box-shadow:0 1px 2px #0002}.quick{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.quick button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;padding:8px 12px}.quick button.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:700}.quick input{border:1px solid var(--line);width:64px;font:inherit;border-radius:8px;padding:7px}.dt{border:1px solid var(--line);font:inherit;border-radius:8px;padding:9px}.due-preview{color:#495057;font-size:14px}.field-label{color:#495057;margin-top:4px;font-size:13px;font-weight:700}.pick2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.pick2 button{border:2px solid var(--line);cursor:pointer;background:#fff;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:12px;display:flex}.pick2 button.on{border-color:var(--accent);background:var(--accent-soft)}.big-num{font-variant-numeric:tabular-nums;color:var(--accent);font-size:28px;font-weight:800}.pick2 small{color:var(--muted);font-size:12px}.check{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.sub-sum{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.live-note{color:var(--muted);align-items:center;gap:5px;font-size:12px;display:flex}.sub-list{border:1px solid var(--line);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.sub-row{border-bottom:1px solid var(--line);grid-template-columns:34px 80px 1fr 80px 70px 50px;align-items:center;gap:10px;padding:8px 12px;font-size:14px;display:grid}.sub-row:last-child{border-bottom:0}.sub-row.missing,.sub-row.none{background:#fff9f9}.sub-online{color:var(--muted);font-size:12px}.legend{color:var(--muted);align-items:center;gap:8px;margin-bottom:12px;font-size:12px;display:flex}.matrix-wrap{border:1px solid var(--line);background:#fff;border-radius:12px;overflow:auto}.matrix{border-collapse:collapse;min-width:100%;font-size:13px}.matrix th,.matrix td{border-bottom:1px solid var(--line);text-align:center;white-space:nowrap;padding:9px 12px}.matrix th{background:#f8f9fa;font-weight:600}.matrix th small{color:var(--muted);font-size:11px;font-weight:400;display:block}.matrix th.clickable{cursor:pointer}.matrix th.clickable:hover{background:var(--accent-soft)}.matrix td:first-child,.matrix th:first-child{text-align:left}.matrix tfoot td{background:#f8f9fa;font-weight:700}.cell{border-radius:6px;min-width:26px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-block}.cell.ok{color:#2b8a3e;cursor:pointer;background:#d3f9d8}.cell.late{color:#e67700;cursor:pointer;background:#fff3bf}.cell.missing,.cell.miss{color:#c92a2a;background:#ffe3e3}.cell.none{color:#adb5bd}.timer-show{color:#fff;z-index:30;background:#0b1020;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex;position:fixed;inset:0}.ts-title{opacity:.85;font-size:28px;font-weight:700}.ts-num{font-variant-numeric:tabular-nums;letter-spacing:-4px;font-size:min(26vw,260px);font-weight:800;line-height:1}.ts-num.orange{color:#ffa94d}.ts-num.red{color:#ff6b6b;animation:1s infinite blink}.ts-num.over{color:#ffd43b}.ts-sub{opacity:.7;font-size:20px}.ts-bar{background:#fff2;border-radius:99px;width:min(800px,80vw);height:10px;overflow:hidden}.ts-bar i{background:#4dabf7;height:100%;transition:width .25s linear;display:block}.ts-done{margin-top:10px;font-size:22px}.ts-done b{color:#69db7c;font-size:34px}.ts-avatars{flex-wrap:wrap;justify-content:center;gap:10px;max-width:min(800px,92vw);display:flex}.ts-avatars span{opacity:.25;transition:opacity .3s}.ts-avatars span.in{opacity:1}.present{z-index:30;background:#111;place-items:center;padding:40px;display:grid;position:fixed;inset:0}.present-inner{background:#fff;border-radius:18px;width:min(1100px,100%);max-height:100%;padding:32px 40px;overflow:auto}.present-text{white-space:pre-wrap;font-size:26px;line-height:1.5}.present .full-frame{height:70vh}.present-close{color:#fff;cursor:pointer;background:#fff2;border:0;border-radius:10px;padding:8px 14px;position:fixed;top:16px;right:20px}.me-head{align-items:center;gap:14px;margin-bottom:16px;display:flex}.me-head h1{margin:0;font-size:22px}.my-tools{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:8px;font-size:14px;display:flex}.my-tools .view-switch{margin-left:auto}.notifs{flex-direction:column;gap:2px;max-width:720px;display:flex}.notif-tools{align-items:center;gap:6px;margin-bottom:8px;padding:4px;display:flex}.pill{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:99px;padding:4px 12px;font-size:13px}.pill.on{background:var(--ink);color:#fff;border-color:var(--ink)}.notif{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:flex-start;gap:12px;padding:10px 12px;display:flex;position:relative}.notif:hover{background:#f1f3f5}.notif.unread{background:#f3f6ff}.notif-ico{background:#fff3bf;border-radius:50%;flex-shrink:0;place-items:center;width:32px;height:32px;display:grid}.notif-body{flex-direction:column;flex:1;gap:2px;min-width:0;font-size:14px;display:flex}.notif-text{color:#495057;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.unread-dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.notifs.compact .notif-text{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.all-link{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:10px;font-weight:600}.settings{flex-direction:column;gap:20px;max-width:640px;display:flex}.settings section{border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;gap:10px;padding:16px 18px;display:flex}.settings h3{margin:0;font-size:15px}.settings .hint{margin:0}.settings .inline-form{flex-wrap:nowrap;margin-bottom:0}.settings .inline-form input{flex:1;min-width:0}.checks{flex-wrap:wrap;gap:6px;display:flex}.check-pill{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:99px;padding:6px 14px;font-size:13px}.check-pill input{display:none}.check-pill.on{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:700}.course-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;display:grid}.course-card{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:14px;flex-direction:column;gap:8px;padding:16px;display:flex}.course-card:hover{border-color:#bac8ff;box-shadow:0 4px 16px #0001}.course-card h3{margin:0;font-size:17px}.cc-top{justify-content:space-between;align-items:center;display:flex}.cc-meta{color:var(--muted);font-size:13px}.cc-avatars{flex-wrap:wrap;gap:3px;min-height:24px;display:flex}.course-card.new{cursor:default;background:0 0;border-style:dashed}.course-card.new input{border:1px solid var(--line);font:inherit;border-radius:8px;padding:8px}.course-card.new .primary{align-self:flex-start}.roster-grid{grid-template-columns:1fr 340px;align-items:start;gap:16px;display:grid}.roster-list{border:1px solid var(--line);background:#fff;border-radius:12px}.roster-row{border-bottom:1px solid var(--line);grid-template-columns:34px 1fr auto 50px auto auto;align-items:center;gap:12px;padding:10px 14px;display:grid}.roster-row:last-child{border-bottom:0}.roster-side{flex-direction:column;gap:14px;display:flex}.roster-side section{border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;gap:8px;padding:14px;display:flex}.roster-side h3{margin:0;font-size:15px}.roster-side .hint{margin:0}.roster-side textarea{border:1px solid var(--line);min-height:100px;font:inherit;border-radius:8px;padding:8px;font-size:13px}.roster-side .primary{align-self:flex-start}.link-box{align-items:center;gap:6px;display:flex}.link-box code{text-overflow:ellipsis;white-space:nowrap;background:#f1f3f5;border-radius:6px;flex:1;padding:7px;font-size:12px;overflow:hidden}.toasts{z-index:40;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:22px;left:50%;transform:translate(-50%)}.toast{color:#fff;background:#212529;border-radius:12px;padding:10px 18px;font-size:14px;animation:.3s pop;box-shadow:0 6px 20px #0004}.me-head .logout{margin-left:auto}.check-pill.off{opacity:.55;cursor:default}.roster-report{gap:8px;margin-top:10px;font-size:13px;display:grid}.roster-report ul{margin:4px 0 0;padding-left:18px}.roster-report small{color:var(--muted)}.me-avatar{cursor:pointer;background:0 0;border:0;border-radius:50%;padding:0}.profile-photo{align-items:center;gap:18px;display:flex}.profile-photo-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.profile-photo-actions .hint{flex-basis:100%}.settings .field{flex-direction:column;gap:6px;max-width:360px;font-size:13px;font-weight:600;display:flex}.settings .field small{color:var(--muted);font-weight:400}.settings .field input{font:inherit;border:1px solid #ced4da;border-radius:8px;padding:8px 10px;font-weight:400}@media (width<=760px){.course,.live-pill,.me-btn>span:not(.avatar){display:none}.topbar{gap:8px;padding:8px 12px}.sidebar{display:none}.main{padding:12px}.session-strip{gap:6px;margin-bottom:12px;display:flex;overflow-x:auto}.session-strip>*{border:1px solid var(--line);background:#fff;border-radius:99px;flex-shrink:0;padding:6px 12px;font-size:13px}.session-strip>.on{background:var(--accent);color:#fff;border-color:var(--accent)}.main-head h1{font-size:18px}.board{flex-direction:column;align-items:stretch}.board-columns .sec{width:100%}.board-wrap .sec-body{grid-template-columns:1fr 1fr}.board-stack .sec-body>.card{width:78vw}.board-grid{display:flex}.bell-pop{width:auto;position:fixed;top:56px;left:8px;right:8px}.roster-grid{grid-template-columns:1fr}.sub-row{grid-template-columns:30px 1fr auto 50px}.sub-online,.sub-row .time{display:none}.pgallery{grid-template-columns:repeat(2,minmax(0,1fr))}.head-tools{flex-wrap:wrap;width:100%}}.roster-row .tiny{align-self:center}@media (width<=760px){.board-wrap .sec-body{grid-template-columns:1fr}.admin-table table{min-width:620px}.roster-row{flex-wrap:wrap;gap:6px 10px;display:flex}.roster-row>div:nth-child(2){flex:1;min-width:0}.roster-row>div:nth-child(2) .time{text-overflow:ellipsis;overflow:hidden}}.site{background:#fff;height:100vh;overflow:auto}.site-top{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);z-index:2;background:#fffd;justify-content:space-between;align-items:center;padding:16px 40px;display:flex;position:sticky;top:0}.site-top nav{align-items:center;gap:20px;display:flex}.site-top a{color:#495057;font-size:14px;text-decoration:none}.hero{grid-template-columns:1fr 1fr;align-items:center;gap:48px;max-width:1200px;margin:0 auto;padding:72px 40px 56px;display:grid}.eyebrow{color:var(--accent);margin-bottom:12px;font-size:14px;font-weight:700}.hero h1{letter-spacing:-1px;margin:0 0 16px;font-size:44px;line-height:1.25}.hero p{color:#495057;margin:0 0 24px;font-size:17px;line-height:1.7}.hero-cta{gap:10px;display:flex}.hero-cta .primary,.hero-cta .ghost{padding:12px 20px;font-size:15px}.hero-shot{cursor:pointer;background:#eef0f3;border-radius:18px;padding:12px;position:relative;transform:rotate(-1deg);box-shadow:0 30px 60px #3b5bdb22}.hs-top{gap:5px;margin-bottom:10px;display:flex}.hs-top i{background:#ced4da;border-radius:50%;width:9px;height:9px}.hs-board{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.hs-col{background:#e3e7ec;border-radius:10px;flex-direction:column;gap:6px;padding:8px;font-size:12px;display:flex}.hs-card{background:#fff;border-radius:6px}.hs-timer{background:var(--accent);color:#fff;border-radius:12px;padding:10px 14px;font-size:14px;font-weight:700;position:absolute;bottom:-14px;right:-14px;box-shadow:0 8px 20px #3b5bdb55}.features{grid-template-columns:repeat(3,1fr);gap:16px;max-width:1200px;margin:0 auto;padding:24px 40px 48px;display:grid}.feature{border:1px solid var(--line);border-radius:14px;padding:20px}.feature span{font-size:26px}.feature h3{margin:10px 0 6px;font-size:17px}.feature p{color:#495057;margin:0;font-size:14px;line-height:1.6}.how{max-width:1200px;margin:0 auto;padding:8px 40px 56px}.how ol{color:#495057;font-size:16px;line-height:2}.site-foot{text-align:center;color:var(--muted);border-top:1px solid var(--line);padding:24px;font-size:13px}.login-page{background:linear-gradient(160deg,#edf2ff,#f8f9fa 60%);flex-direction:column;justify-content:center;align-items:center;gap:22px;height:100vh;display:flex}.login-card{background:#fff;border-radius:18px;flex-direction:column;gap:12px;width:min(400px,92vw);padding:24px;display:flex;box-shadow:0 10px 40px #0001}.login-card h2{margin:6px 0 0;font-size:20px}.login-card .hint{margin:0}.login-card input{font:inherit;border:1px solid #ced4da;border-radius:10px;padding:12px;font-size:15px}.login-card input.code{text-align:center;letter-spacing:10px;font-size:24px;font-weight:700}.login-card .primary{padding:12px}.login-card .link-btn{margin:0 auto}.login-card .google{color:#1f1f1f;background:#fff;border:1px solid #ced4da;border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:12px;font-weight:700;text-decoration:none;display:flex}.login-card .google:hover{background:#f8f9fa}.login-card .ghost{padding:10px}.center{text-align:center}.admin{background:#f8f9fa;height:100vh;display:flex}.admin-side{color:#dbe4ff;background:#1b1f3a;flex-direction:column;gap:2px;width:230px;padding:14px 10px;display:flex}.admin-side .brand{color:#fff;margin:4px 8px 16px}.admin-side .side-item{color:#c5cdf5}.admin-side .side-item:hover{background:#ffffff12}.admin-side .side-item.on{color:#fff;background:#3b5bdb}.admin-main{flex:1;padding:24px 32px;overflow:auto}.admin-main h1{margin:0 0 16px;font-size:24px}.admin-main h2{margin:24px 0 10px;font-size:16px}.stats{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.stat{border:1px solid var(--line);background:#fff;border-radius:12px;flex-direction:column;gap:4px;padding:14px 16px;display:flex}.stat small{color:var(--muted);font-size:13px}.stat b{font-size:24px}.admin-table{border:1px solid var(--line);background:#fff;border-radius:12px;overflow:auto}.admin-table table{border-collapse:collapse;width:100%;font-size:14px}.admin-table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;background:#f8f9fa;padding:10px 14px;font-weight:600}.admin-table td{border-bottom:1px solid var(--line);padding:10px 14px}.admin-table select,.settings select,.settings input[type=number]{border:1px solid var(--line);font:inherit;border-radius:6px;padding:5px 8px}.search{border:1px solid var(--line);width:100%;max-width:420px;font:inherit;border-radius:10px;margin-bottom:12px;padding:10px 12px}@media (width<=760px){.hero{grid-template-columns:1fr;padding:32px 20px}.hero h1{font-size:30px}.features{grid-template-columns:1fr;padding:16px 20px}.site-top{padding:12px 16px}.site-top nav a{display:none}.admin{flex-direction:column}.admin-side{flex-direction:row;width:auto;overflow-x:auto}.admin-side .brand{display:none}}.admin-link{color:inherit;text-decoration:none}.login-card form{display:contents}.form-error{color:#e03131;background:#fff5f5;border-radius:8px;padding:8px 10px;font-size:13px}.quick-login{background:#fff9db;border:1px dashed #fab005;border-radius:10px;flex-direction:column;gap:8px;padding:10px;font-size:13px;display:flex}.join-names{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;max-height:50vh;display:grid;overflow-y:auto}.join-names button{padding:12px 6px;font-size:15px}.quick-login div{gap:6px;display:flex}.quick-login .primary{flex:1;padding:10px 6px}.dev-code{background:#fff9db;border:1px dashed #fab005;border-radius:8px;padding:8px 10px;font-size:13px}.dev-code b{letter-spacing:3px}a.primary,a.ghost{justify-content:center;align-items:center;display:inline-flex}.inline-form{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.inline-form input{font:inherit;border:1px solid #ced4da;border-radius:8px;min-width:240px;padding:8px 10px}.inline-form select{font:inherit;border:1px solid #ced4da;border-radius:8px;padding:8px}.admin .link-box{margin-bottom:12px}
