:root{--bg: #fafaf7;--surface: #ffffff;--surface-alt: #f5f3ee;--ink: #1a1a1a;--ink-soft: #6b6b6b;--line: #e8e6e0;--line-strong: #d4d0c4;--accent: #c4602f;--accent-soft: #fdf2e9;--good: #2f7d3a;--warn: #b15a1a;--err: #b03a2e;--radius: 10px;--radius-sm: 6px;--shadow: 0 1px 2px rgba(0,0,0,.04), 0 4px 12px rgba(0,0,0,.04);--bubble-mine: var(--accent);--bubble-theirs: #ececec}[data-theme=dark]{--bg: #161513;--surface: #1f1d1a;--surface-alt: #26241f;--ink: #ececea;--ink-soft: #9a978e;--line: #2e2b26;--line-strong: #3a3631;--accent: #e8865a;--accent-soft: #2a1d14;--good: #6cc080;--warn: #d99060;--err: #e07b6f;--shadow: 0 1px 2px rgba(0,0,0,.4), 0 4px 12px rgba(0,0,0,.3);--bubble-mine: var(--accent);--bubble-theirs: #2e2b26}*{box-sizing:border-box}html,body{min-height:100vh}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;transition:background .2s,color .2s}body{display:flex;flex-direction:column}#root{display:flex;flex-direction:column;flex:1;min-height:100vh}main{flex:1}.site-footer{margin-top:auto}a{color:var(--ink);text-decoration:none}a:hover{text-decoration:underline}hr{border:0;border-top:1px solid var(--line);margin:16px 0}code{background:var(--accent-soft);padding:1px 6px;border-radius:4px;font-size:.9em;color:var(--accent)}h2{font-weight:700;letter-spacing:-.01em}h3{font-weight:600}button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--surface);padding:9px 14px;border-radius:var(--radius);color:var(--ink);transition:background .15s,border-color .15s,transform .12s,opacity .12s}button:hover:not(:disabled){border-color:var(--line-strong)}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}button.primary:hover:not(:disabled){background:var(--ink-soft);border-color:var(--ink-soft)}button.accent{background:var(--accent);color:#fff;border-color:var(--accent)}button.accent:hover:not(:disabled){filter:brightness(.93)}button.ghost{background:transparent}button.full{width:100%;margin-top:8px}button.big{padding:12px 20px;font-size:16px;font-weight:500}button.link{background:none;border:none;padding:8px 0;color:var(--ink-soft);text-decoration:underline;font-size:13px}button.chip{padding:8px 14px;border-radius:999px;font-size:14px}button.chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}input,textarea,select{font:inherit;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}textarea{resize:vertical;min-height:60px;line-height:1.5}label{display:block;font-size:13px;color:var(--ink-soft);margin-bottom:4px;font-weight:500}.field{margin-bottom:14px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width: 580px){.field-row{grid-template-columns:1fr}}.check{display:flex;align-items:center;gap:6px;margin:0;cursor:pointer;font-size:14px;color:var(--ink)}.check input{width:auto}.price-row{display:flex;gap:12px;align-items:center}.price-row input{max-width:140px}.muted{color:var(--ink-soft)}.small{font-size:13px}.err{color:var(--err);font-size:14px}.tag{display:inline-block;padding:3px 10px;border-radius:12px;font-size:12px;font-weight:600;margin:6px 0}.tag.good{background:var(--accent-soft);color:var(--good)}.container{max-width:980px;margin:0 auto;padding:0 20px}header.top{border-bottom:1px solid var(--line);background:var(--surface);position:sticky;top:0;z-index:10;height:56px}header.top .container{display:flex;align-items:center;justify-content:space-between;padding:0 20px;gap:12px;flex-wrap:nowrap;height:100%;overflow:hidden}header.top .brand{font-weight:700;font-size:16px;letter-spacing:-.01em;white-space:nowrap;display:inline-flex;align-items:baseline;gap:8px;min-width:0;overflow:hidden;color:var(--ink);text-decoration:none;border-radius:6px;outline:none}.brand:focus{outline:none}.brand:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.brand-name{color:var(--ink)}.brand-tld{color:var(--accent);font-weight:600;letter-spacing:-.01em}.brand-sep{color:var(--ink-soft);margin:0 2px}.brand-school{color:var(--ink-soft);font-weight:500}@media (max-width: 720px){header.top .brand{font-size:13px;gap:2px}header.top.has-school:not(.no-nav) .brand-domain{display:none}header.top.has-school:not(.no-nav) .brand-sep{display:none}header.top.has-school:not(.no-nav) .brand-school{color:var(--ink);font-weight:700;font-size:16px}}header.top nav{display:flex;gap:4px;align-items:center;flex-wrap:nowrap}.navlink{padding:7px 12px;border-radius:var(--radius);font-size:14px;color:var(--ink-soft);font-weight:500;display:inline-flex;align-items:center;gap:6px;line-height:1.2;white-space:nowrap}.navlink:hover{background:var(--surface-alt);text-decoration:none;color:var(--ink)}.navlink.active{background:var(--accent-soft);color:var(--accent)}.navlink.primary{background:var(--ink);color:var(--bg);font-weight:600}.navlink.primary:hover{background:var(--ink-soft);color:var(--bg)}.navlink.primary.active{background:var(--accent);color:#fff}.nav-plus{font-weight:700;font-size:16px;line-height:1;display:inline-flex;align-items:center;height:1em}.ghost-sm{padding:6px 10px;font-size:14px;line-height:1}.badge{background:var(--accent);color:#fff;font-size:11px;padding:1px 7px;border-radius:10px;min-width:18px;display:inline-flex;align-items:center;justify-content:center;font-weight:600}.badge.inline{margin-left:6px}@media (max-width: 720px){header.top{height:52px}header.top .container{padding:0 14px;gap:6px}.navlink{padding:6px 8px;font-size:12.5px}.navlink.primary>span:not(.nav-plus){display:none}header.top .brand{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}}@media (max-width: 400px){.navlink{padding:6px 7px;font-size:12px}header.top .brand .school{display:none}}main{padding:24px 0 80px}.login-wall{display:flex;justify-content:center;padding:40px 0}.login-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:32px 28px;box-shadow:var(--shadow)}.login-card h2{margin:0 0 6px;font-size:22px}.login-card p.muted{margin:0 0 22px;font-size:14px}.login-card button.link{display:block;margin:8px auto 0}.otp-input{font-size:28px!important;letter-spacing:12px;text-align:center;padding:16px!important;font-variant-numeric:tabular-nums}.hero{text-align:center;padding:24px 20px 14px}.hero h1{font-size:clamp(24px,3.4vw,36px);margin:0 0 8px;letter-spacing:-.02em;font-weight:700}.hero p{color:var(--ink-soft);max-width:460px;margin:0 auto;font-size:14.5px;line-height:1.5}.hero-sub{text-align:center;margin:32px 0 8px;font-weight:500}.school-strip{margin:22px auto 0;max-width:960px;text-align:center;padding:0 20px}.school-strip-label{text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;font-size:11px}.school-strip-list{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 0;font-size:13px;color:var(--ink-soft);line-height:1.7}.school-strip-item{white-space:nowrap}.school-strip-item .dot{margin:0 8px;opacity:.5}.school-logo-strip{display:flex;flex-wrap:nowrap;justify-content:center;align-items:center;max-width:100%;margin:0 auto;padding:8px 0}.school-logo{width:56px;height:56px;flex:0 0 56px;border-radius:50%;background:#fff;box-shadow:0 2px 8px #0000001a;display:grid;place-items:center;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,z-index 0s .18s;position:relative;cursor:pointer;text-decoration:none}.school-logo+.school-logo{margin-left:-14px}.school-logo:hover{transform:scale(1.18) translateY(-3px);box-shadow:0 8px 22px #0000002e;z-index:50;transition:transform .18s ease,box-shadow .18s ease,z-index 0s}.school-logo.fallback{font-weight:700;font-size:12px;letter-spacing:-.01em;color:#fff}.school-logo-img{max-width:72%;max-height:72%;width:auto;height:auto;object-fit:contain;object-position:center;display:block}.school-logo-mono{line-height:1}@media (max-width: 1024px){.school-logo-strip{flex-wrap:wrap;justify-content:center;padding:8px 0 4px;gap:10px 0}.school-logo:nth-child(11){margin-left:0}}@media (max-width: 720px){.school-logo{width:48px;height:48px;flex:0 0 48px}.school-logo+.school-logo{margin-left:-10px}}.school-req-wrap{text-align:center;margin-top:14px}.school-req-wrap .school-req-form{margin:14px auto 0;justify-content:center}.school-req-link{display:inline-block;margin-top:14px;background:none;border:none;color:var(--ink-soft);font-size:13px;cursor:pointer;border-bottom:1px dashed var(--ink-soft);padding:0 0 1px}.school-req-link:hover{color:var(--ink);border-color:var(--ink)}.school-req-form{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px;max-width:520px}.school-req-form input{flex:1;min-width:160px}.school-req-form button{background:var(--accent);color:#fff;border:none;padding:10px 16px;border-radius:8px;cursor:pointer}.hero-foot{text-align:center;margin:40px auto 0;max-width:520px;line-height:1.6}.school-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.school-picker a{display:block;padding:22px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:center;transition:border-color .15s,transform .12s}.school-picker a:hover{text-decoration:none;border-color:var(--accent);transform:translateY(-1px)}.sp-name{font-weight:600;font-size:15px}.sp-cta{margin-top:4px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px;align-items:center}.search-form{display:flex;gap:6px;flex:1;max-width:320px;min-width:200px}.search-form input{flex:1}.cat-select{max-width:200px;min-width:140px}.filter-cat-row{display:flex;gap:8px;align-items:center}.empty{text-align:center;padding:60px 20px;color:var(--ink-soft)}.wrong-school{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:24px 20px}.wrong-school h2{margin:8px 0 4px}.wrong-school p{max-width:360px;margin:0 auto}.wrong-school-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px}body.fullscreen-msg{overflow:hidden;height:100vh}body.fullscreen-msg main{padding:0;flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden}@media (max-width: 720px){body.fullscreen-msg{height:100dvh}body.fullscreen-msg .site-footer{display:none}}.empty-emoji{font-size:56px;line-height:1;margin-bottom:12px;opacity:.9}.empty p{margin:4px 0}.empty button{margin-top:16px}.empty h2{color:var(--ink);margin:8px 0}.thumb-emoji{font-size:36px;opacity:.85}.thumb-emoji-big{font-size:80px;opacity:.85}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:block;transition:transform .15s,box-shadow .15s,border-color .15s}.card:hover{text-decoration:none;transform:translateY(-2px);border-color:var(--line-strong);box-shadow:var(--shadow)}.card .thumb{width:100%;aspect-ratio:4 / 3;background:var(--surface-alt);display:flex;align-items:center;justify-content:center;color:var(--ink-soft);font-size:13px;overflow:hidden;position:relative}.card .thumb img{width:100%;height:100%;object-fit:cover;display:block}.card .body{padding:12px 14px}.card .title{font-weight:600;font-size:14px;margin:0 0 6px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--ink)}.card .meta{display:flex;justify-content:space-between;font-size:12px;color:var(--ink-soft)}.card .price{color:var(--accent);font-weight:600}.card .price.free{color:var(--good)}.meta-msg{margin-top:8px;padding-top:8px;border-top:1px solid var(--line);font-size:12px;color:var(--ink-soft);display:flex;align-items:center;gap:4px}.overlay-badge{position:absolute;top:8px;left:8px;background:#000000b3;color:#fff;font-size:11px;padding:3px 9px;border-radius:4px;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.overlay-badge.sold{background:#2f7d3ae6}.overlay-badge.hidden{background:#6c6c6ccc}.overlay-badge.offer{background:#236eb4e6;top:auto;bottom:8px}.overlay-badge.request{background:#c4602feb;top:auto;bottom:8px}.inline-badge{display:inline-block;font-size:10.5px;font-weight:600;letter-spacing:.02em;padding:2px 8px;border-radius:999px;margin:2px 0 6px;white-space:nowrap}.inline-badge.offer{background:#e8f0fa;color:#1e5cad}.inline-badge.request{background:#fbe8de;color:#a85020}.detail{display:grid;grid-template-columns:1fr 320px;gap:28px;margin-top:8px;align-items:start}@media (max-width: 800px){.detail{grid-template-columns:1fr}}.hero-img{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--surface-alt);aspect-ratio:4 / 3}.hero-img img{width:100%;height:100%;object-fit:contain;display:block;background:var(--surface-alt)}.sold-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000073;color:#fff;font-size:36px;font-weight:700;letter-spacing:.15em;pointer-events:none}.thumbs{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.thumb-btn{width:64px;height:64px;padding:0;border-radius:var(--radius-sm);border:2px solid var(--line);overflow:hidden;background:var(--surface-alt)}.thumb-btn.active{border-color:var(--accent)}.thumb-btn img{width:100%;height:100%;object-fit:cover;display:block}.desc-block{margin-top:28px}.desc-block h3{margin:0 0 8px;font-size:16px;color:var(--ink-soft);font-weight:600}.desc-block .desc{white-space:pre-wrap;margin:0;line-height:1.6}.thumb-big{aspect-ratio:4/3;background:var(--surface-alt);display:flex;align-items:center;justify-content:center;color:var(--ink-soft);border-radius:12px;position:relative}.side .info{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px;position:sticky;top:76px}@media (max-width: 800px){.side .info{position:static}}.info-title{margin:0 0 8px;font-size:20px;line-height:1.25}.side .price-big{font-size:28px;font-weight:700;margin:0 0 4px;color:var(--accent)}.side .price-big.free{color:var(--good)}.seller{color:var(--ink);font-size:14px;margin:14px 0 0;line-height:1.6}.seller .pickup{color:var(--ink-soft);font-size:13px;margin-top:4px}.side textarea{margin-bottom:8px}.form-wide{max-width:600px}.file-drop{border:2px dashed var(--line-strong);border-radius:12px;padding:28px 20px;text-align:center;cursor:pointer;background:var(--surface-alt);transition:border-color .15s,background .15s}.file-drop:hover,.file-drop.dragging{border-color:var(--accent);background:var(--accent-soft)}.file-drop-icon{font-size:32px;margin-bottom:6px}.file-drop-text{color:var(--ink);font-size:14px;margin-bottom:4px}.file-drop-link{color:var(--accent);font-weight:600}.uploaded{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;margin-top:12px}.up-item{position:relative;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--line)}.up-item img{width:100%;height:100%;object-fit:cover;display:block}.up-x{position:absolute;top:4px;right:4px;width:24px;height:24px;padding:0;border-radius:50%;border:0;background:#000000b3;color:#fff;font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center}.up-x:hover{background:#000000d9}.profile-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.profile-head h2{margin:0 0 4px}.profile-head p{margin:0}.profile-card .title{-webkit-line-clamp:1}.thread-list{display:flex;flex-direction:column;gap:8px;margin-top:16px}.thread-item{display:flex;align-items:center;gap:12px;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;transition:border-color .15s,background .15s}.thread-item:hover{text-decoration:none;border-color:var(--line-strong)}.thread-item.has-unread{border-color:var(--accent);background:var(--accent-soft)}.thread-thumb{width:56px;height:56px;border-radius:var(--radius-sm);background:var(--surface-alt);display:flex;align-items:center;justify-content:center;font-size:24px;overflow:hidden;flex-shrink:0}.thread-thumb img{width:100%;height:100%;object-fit:cover}.thread-meta{flex:1;min-width:0}.thread-top{display:flex;justify-content:space-between;gap:8px}.thread-sub{margin:2px 0}.thread-snippet{font-size:13px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.thread-view{display:flex;flex-direction:column;height:calc(100vh - 56px);max-width:720px;margin:0 auto;background:var(--surface);border-left:1px solid var(--line);border-right:1px solid var(--line);overflow:hidden}@media (max-width: 720px){.thread-view{height:calc(100vh - 52px);border:0}}body.thread-page .site-footer{display:none}body.thread-page main{padding:0}body.thread-page main .container{padding:0;max-width:100%}.thread-header{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--surface-alt);color:var(--ink);flex-shrink:0}.thread-header:hover{text-decoration:none}.thread-head-meta{min-width:0;flex:1}.thread-head-meta strong{font-size:14px}.thumb-mini{width:40px;height:40px;border-radius:var(--radius-sm);background:var(--surface);display:flex;align-items:center;justify-content:center;font-size:18px;overflow:hidden;flex-shrink:0}.thumb-mini img{width:100%;height:100%;object-fit:cover}.thread-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:6px;background:var(--bg)}.msg{max-width:78%;padding:8px 12px;border-radius:16px;position:relative;word-wrap:break-word;font-size:14.5px;line-height:1.4}.msg-body{white-space:pre-wrap}.msg-time{font-size:11px;color:var(--ink-soft);margin-top:4px;text-align:right;display:flex;justify-content:flex-end;align-items:center;gap:4px}.msg.mine{align-self:flex-end;background:var(--bubble-mine);color:#fff;border-bottom-right-radius:5px}.msg.mine .msg-time{color:#ffffffbf}.msg.theirs{align-self:flex-start;background:var(--bubble-theirs);color:var(--ink);border-bottom-left-radius:5px}.msg.pending{opacity:.65}.msg.pending .msg-time{font-style:italic}.tick{font-size:11px;opacity:.8}.tick.read{opacity:1;color:#b4dcff}.thread-locked{padding:14px 16px;background:var(--surface-alt);border-top:1px solid var(--line);text-align:center;color:var(--ink-soft);font-size:14px}.thread-compose{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line);background:var(--surface);align-items:flex-end;flex-shrink:0}.thread-compose textarea{flex:1;min-height:40px;max-height:120px;resize:none;padding:10px 14px;border-radius:20px}.send-btn{width:40px;height:40px;padding:0;border-radius:50%;font-size:18px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.rt{margin-left:4px;vertical-align:middle;color:#ffffffb3;transition:color .2s}.rt.read{color:#5db4ff}.msg.theirs .rt{color:var(--ink-soft)}.profile-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 18px;margin-bottom:24px;max-width:520px}.profile-field{padding:14px 0;border-bottom:1px solid var(--line)}.profile-field:last-child{border-bottom:0}.profile-field label{margin-bottom:6px}.profile-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.profile-val{font-size:15px;color:var(--ink)}button.danger{background:transparent;color:var(--err);border-color:var(--err)}button.danger:hover:not(:disabled){background:var(--err);color:#fff}.meta-msg-btn{margin-top:8px;width:100%;text-align:left;padding:6px 10px;border:1px solid var(--line);border-radius:8px;font-size:12px;color:var(--ink);background:var(--surface-alt);cursor:pointer;display:flex;align-items:center;gap:6px}.meta-msg-btn:hover{border-color:var(--accent);color:var(--accent)}.admin{max-width:100%}.admin-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:18px;padding-bottom:8px;flex-wrap:wrap}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:20px}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px 16px}.stat-card.highlight{border-color:var(--err)}.stat-value{font-size:24px;font-weight:700;color:var(--ink)}.stat-label{font-size:12px;color:var(--ink-soft);margin-top:2px}.admin-school-table{grid-column:1 / -1;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px;margin-top:8px}.admin-school-table h3{margin:0 0 8px;font-size:14px}.admin-table{width:100%;border-collapse:collapse;font-size:13px;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}.admin-table th,.admin-table td{padding:8px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}.admin-table th{background:var(--surface-alt);font-weight:600;font-size:12px;color:var(--ink-soft)}.admin-table tr:last-child td{border-bottom:0}.admin-table tr.banned{opacity:.55}.admin-table .msg-cell{max-width:380px;white-space:pre-wrap;word-break:break-word}.school-search{width:100%;max-width:760px;margin:12px auto 24px}.school-search input{width:100%;padding:16px 20px;font-size:17px;border-radius:14px}section h3{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-login-screen{min-height:calc(100vh - 80px);display:flex;align-items:center;justify-content:center;padding:20px}body.admin-fullscreen header.top{display:none!important}body.admin-fullscreen main{padding:0!important}body.admin-fullscreen main .container{max-width:100%;padding:0}.admin-fs{display:flex;flex-direction:column;min-height:100vh;background:var(--bg)}.admin-bar{display:flex;align-items:center;gap:16px;padding:10px 20px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.admin-brand{font-weight:700;white-space:nowrap}.admin-tabs-bar{display:flex;gap:4px;flex:1;flex-wrap:wrap}.admin-tab{background:transparent;border:0;padding:8px 14px;border-radius:8px;color:var(--ink-soft);font-weight:500;cursor:pointer}.admin-tab:hover{background:var(--surface-alt);color:var(--ink)}.admin-tab.active{background:var(--accent-soft);color:var(--accent)}.admin-id{display:flex;align-items:center;gap:12px}.admin-body{padding:20px;max-width:1280px;margin:0 auto;width:100%}.admin-filters{display:flex;gap:12px;margin-bottom:12px;flex-wrap:wrap;align-items:center}.tag.err-tag{background:#b03a2e1f;color:var(--err)}.link.danger-link{color:var(--err)}.admin-thread-item{width:100%;text-align:left;border:1px solid var(--line);cursor:pointer}.admin-thread-view{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px}.admin-msgs{background:var(--bg);border-radius:10px;padding:16px;min-height:200px}.kind-tabs{display:flex;gap:4px;background:var(--surface-alt);padding:4px;border-radius:12px;margin-bottom:16px;max-width:360px}.kind-tab{flex:1;background:transparent;border:0;padding:8px 14px;border-radius:8px;color:var(--ink-soft);font-weight:500;cursor:pointer;font-size:14px}.kind-tab.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.kind-toggle{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:20px}.kind-btn{padding:14px 12px;background:var(--surface-alt);border:1px solid var(--line);font-size:14px;cursor:pointer;text-align:center}.kind-btn:hover{border-color:var(--line-strong)}.kind-btn.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}@media (max-width: 580px){.kind-toggle{grid-template-columns:1fr}}.back-link{display:inline-block;margin-bottom:12px}.side .desc{background:var(--surface-alt);padding:12px 14px;border-radius:8px;margin:14px 0;font-size:14px;white-space:pre-wrap;line-height:1.55}.school-picker a:visited,.school-picker a:visited .sp-name{color:var(--ink)}.otp-boxes{display:flex;gap:8px;justify-content:center;margin:8px 0}.otp-box{width:44px;height:56px;text-align:center;font-size:22px;font-weight:600;border:1.5px solid var(--line-strong);border-radius:10px;padding:0;background:var(--surface);color:var(--ink);font-variant-numeric:tabular-nums}.otp-box:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}@media (max-width: 420px){.otp-box{width:36px;height:48px;font-size:18px}}.otp-help{margin-top:16px;padding:12px 14px;background:var(--surface-alt);border:1px solid var(--border);border-radius:10px;line-height:1.5}.otp-help p{margin:0 0 4px;font-weight:600}.otp-help ul{margin:0;padding-left:18px}.otp-help li{margin:2px 0}.otp-actions{display:flex;justify-content:space-between;gap:12px;margin-top:10px;flex-wrap:wrap}.chip-row{display:flex;gap:4px;background:var(--surface-alt);border-radius:999px;padding:3px}.chip-row .chip{padding:6px 12px;border:0;background:transparent;border-radius:999px;font-size:13px;color:var(--ink-soft)}.chip-row .chip:hover{color:var(--ink)}.chip-row .chip.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}.school-search{position:relative}.school-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:6px;background:var(--surface);border:1px solid var(--line);border-radius:12px;max-height:360px;overflow-y:auto;box-shadow:0 8px 32px #00000014;z-index:10}.dropdown-row{width:100%;text-align:left;background:transparent;border:0;padding:10px 14px;display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14px;color:var(--ink);cursor:pointer;transition:background .1s;border-radius:0;white-space:nowrap}.dropdown-row .dr-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.dropdown-row .dr-slug{flex-shrink:0}.dropdown-row:hover,.dropdown-row.highlight{background:var(--accent-soft)}.dropdown-empty{padding:16px;text-align:center}.dr-name{font-weight:500}@media (max-width: 720px){.dropdown-row .dr-name{white-space:normal;line-height:1.3}}.dr-slug{font-family:ui-monospace,monospace}.site-footer{border-top:1px solid var(--line);background:var(--surface);padding:20px 0;margin-top:auto;flex-shrink:0}.footer-links{display:inline-flex;gap:8px;align-items:center}.footer-links .dot{opacity:.5}.legal-page{max-width:720px;margin:0 auto;padding:32px 20px 60px;line-height:1.65}.legal-page h1{font-size:28px;margin:0 0 4px}.legal-page h3{font-size:17px;margin:28px 0 8px}.legal-page ul{margin:6px 0 12px 22px}.legal-page li{margin:4px 0}.legal-page a{color:var(--accent);text-decoration:underline}.legal-page .req{color:var(--err, #c5424c);margin-left:2px}.legal-table{width:100%;border-collapse:collapse;margin:12px 0;font-size:14px}.legal-table th,.legal-table td{border:1px solid var(--border);padding:8px 10px;text-align:left;vertical-align:top}.legal-table th{background:var(--surface-alt);font-weight:600}.legal-form{margin-top:24px;display:flex;flex-direction:column;gap:14px}.legal-form .field{display:flex;flex-direction:column;gap:4px}.legal-form label{font-weight:500;font-size:14px}.legal-form input,.legal-form textarea,.legal-form select{padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:16px}.legal-form textarea{resize:vertical;min-height:80px}.legal-form .err{color:var(--err, #c5424c);margin:0}.footer-bottom{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--line)}@media (max-width: 640px){.footer-links{flex-wrap:wrap;gap:6px}}.footer-row{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}.footer-row strong{font-size:15px}.footer-row p{margin:4px 0 0}.footer-col{text-align:right;line-height:1.7}@media (max-width: 580px){.footer-col{text-align:left}}.admin-bar{padding:12px 24px;background:linear-gradient(180deg,var(--surface) 0%,var(--surface-alt) 100%)}.admin-brand{font-size:14px;font-weight:600;letter-spacing:-.01em}.admin-tabs-bar{gap:2px}.admin-tab{padding:7px 14px;font-size:13px;border-radius:6px}.school-picker a:active,.school-picker a:focus,.dropdown-row:focus{outline:none;color:var(--ink)}.google-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:11px 16px;border:1px solid var(--line-strong);border-radius:10px;background:var(--surface);color:var(--ink);font-weight:500;font-size:15px;margin-bottom:18px;transition:background .15s,border-color .15s}.google-btn:hover{text-decoration:none;background:var(--surface-alt);border-color:var(--ink-soft)}.divider{text-align:center;margin:14px 0;position:relative}.divider:before,.divider:after{content:"";position:absolute;top:50%;width:35%;height:1px;background:var(--line)}.divider:before{left:0}.divider:after{right:0}.footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px;padding:8px 0}.footer-grid h4{font-size:13px;font-weight:600;color:var(--ink);margin:0 0 10px;letter-spacing:.02em}.footer-grid ul{list-style:none;padding:0;margin:0;font-size:13px;color:var(--ink-soft);line-height:1.65}.footer-grid li:before{content:"— ";color:var(--accent)}.footer-bottom{margin-top:24px;padding-top:16px;border-top:1px solid var(--line);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}.tw-wrap{display:inline-block;position:relative}.tw-placeholder{visibility:hidden}.tw-shown{position:absolute;top:0;right:0;bottom:0;left:0;text-align:inherit;white-space:inherit}.tw-caret{display:inline-block;margin-left:2px;color:var(--accent);font-weight:400;animation:caretBlink .85s step-end infinite}@keyframes caretBlink{0%,50%{opacity:1}51%,to{opacity:0}}@media (prefers-reduced-motion: reduce){.tw-caret{display:none}}main{padding:24px 0 60px}.landing-wrap{display:flex;flex-direction:column;justify-content:center}@media (min-width: 721px){body.landing-fixed{overflow:hidden;height:100vh}body.landing-fixed main{padding:0;display:flex;align-items:center;justify-content:center}.landing-wrap{min-height:0}}@media (max-width: 720px){body.landing-fixed{overflow:hidden;height:100dvh}body.landing-fixed .site-footer{display:none}body.landing-fixed main{padding:0}.landing-wrap{min-height:calc(100dvh - 64px)}}@media (max-width: 720px) and (max-height: 620px){body.landing-fixed{overflow:auto;height:auto}.landing-wrap{min-height:0}}main{padding:8px 0 24px}.hero{padding:8px 20px 12px}.hero h1{margin-bottom:12px;font-size:clamp(22px,6vw,30px);line-height:1.25}.hero-p{font-size:14px;line-height:1.55;margin:0 auto;max-width:360px}.school-search{margin:16px auto 12px}.hero-foot{margin:18px auto 0;line-height:1.55;max-width:360px;padding:0 20px;font-size:12.5px}.school-strip{margin-top:24px}.school-strip-label{margin-bottom:10px}.toolbar{margin-bottom:14px}.grid{gap:14px}.card .body{padding:10px 12px}.field{margin-bottom:12px}.profile-card{padding:6px 16px;margin-bottom:18px}.profile-field{padding:11px 0}.thread-list{margin-top:12px}.thread-item{padding:10px 12px}.empty{padding:44px 20px}.footer-grid{gap:22px}@media (max-width: 720px){.container{padding:0 14px}main{padding:14px 0 30px}.hero{padding:28px 8px 16px}.hero p,.hero-p{font-size:14px}.hero-foot{font-size:12px;margin:20px auto 0}.school-search{margin:10px auto 14px}.school-search input{padding:11px 14px;font-size:16px}.school-dropdown{max-height:50vh}.grid{grid-template-columns:repeat(2,1fr);gap:10px}.card .body{padding:8px 10px}.card .title{font-size:13px}.card .meta{font-size:11px}.thumb-emoji{font-size:28px}.login-card{padding:24px 20px;border-radius:12px}.login-card h2{font-size:20px}.otp-boxes{gap:6px}.otp-box{width:38px;height:50px;font-size:20px}.detail{gap:18px}.side .info{padding:16px}.info-title{font-size:18px}.side .price-big{font-size:24px}.form-wide{max-width:100%}.kind-toggle{grid-template-columns:1fr;gap:6px}.kind-btn{padding:12px}.thread-thumb{width:48px;height:48px}.thread-snippet{font-size:12px}.thread-list{gap:6px}label{font-size:12px}input,textarea,select{padding:10px 12px;font-size:16px}.profile-head{gap:10px}.profile-row{flex-direction:row;gap:8px}.toolbar{gap:6px;flex-direction:column;align-items:stretch}.search-form{min-width:100%;max-width:100%}.chip-row{width:100%;justify-content:stretch;flex-wrap:nowrap}.chip-row .chip{flex:1;text-align:center;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;padding:8px 6px}.filter-cat-row{display:flex;gap:8px;width:100%}.filter-cat-row .cat-select{flex:1;max-width:none;min-width:0}.filter-cat-row .chip{flex:0 0 auto;white-space:nowrap}.admin-table{font-size:12px}.admin-body{padding:14px;overflow-x:auto}.admin-table{min-width:600px}.site-footer{display:none}}@media (max-width: 380px){.grid{grid-template-columns:1fr}.hero h1{font-size:22px;min-height:1.3em}.school-picker{grid-template-columns:1fr}}
