:root{color-scheme:dark;font-family:system-ui,-apple-system,'Noto Sans TC',sans-serif;background:#080e19;color:#e9f1ff}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 90% 0%,#163357 0%,#080e19 39%) fixed}header{max-width:1270px;margin:auto;padding:42px 24px 18px;display:flex;align-items:start;justify-content:space-between;gap:18px}h1{margin:8px 0;font-size:clamp(27px,3vw,44px);letter-spacing:-.035em}h2{font-size:22px;margin:5px 0 8px}h3{font-size:17px;color:#cbdcf0;margin:18px 0 8px}p{color:#aabbd3;line-height:1.65;margin:7px 0 18px}.eyebrow,.sectionnum,.smallhead{font:700 12px ui-monospace,monospace;letter-spacing:.12em;color:#52d3f4}.sectionnum{margin-bottom:13px}.layout{max-width:1270px;margin:auto;padding:0 24px 70px;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:20px}.left{display:grid;gap:18px}.panel{background:rgba(13,25,45,.92);border:1px solid #304361;border-radius:18px;padding:24px;box-shadow:0 10px 40px #0002}.vulnerability{border-color:#a87939;background:linear-gradient(130deg,#211e1b,#0c192c)}button{border:0;cursor:pointer;background:#42bdf0;color:#071221;padding:12px 16px;border-radius:9px;font-weight:750;font-size:14px;margin:4px 5px 5px 0}button:hover{filter:brightness(1.1)}button.muted{background:#304563;color:#e7f2fc}button.danger{background:#704540;color:#fff}.buttons{display:flex;flex-wrap:wrap;align-items:center}.pill{border:1px solid #456080;background:#1e324d;border-radius:12px;padding:10px;display:inline-block;font-size:13px;margin-right:8px;text-decoration:none;color:#e7f2fc}a.pill:hover{filter:brightness(1.15)}label{display:block;color:#cbdcf0;font-size:13px;font-weight:700;margin:15px 0 10px}input,textarea{margin-top:7px;display:block;border:1px solid #425675;background:#101e32;border-radius:8px;color:#fff;padding:13px 14px;width:100%;font-size:15px}input[type=file]{padding:10px}textarea{resize:vertical;font-family:inherit}code,pre{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}code{color:#8bdbfa}pre{background:#060e1a;border:1px solid #283e5c;border-radius:10px;padding:17px;font-size:12.5px;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;min-height:105px}.smallhead{margin-top:22px}.sticky{position:sticky;top:18px}.fine,small{font-size:12px;color:#99abc5}.login{max-width:500px;margin:11vh auto;padding:16px}.login .panel{padding:35px}.login button{width:100%;margin:20px 0}.warning{color:#ffcab0;background:#512d27;padding:12px;border-radius:8px}@media(max-width:880px){.layout{grid-template-columns:1fr}.sticky{position:static}header{flex-direction:column}}

/* Social lab additions */
.header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.profile-panel .row{margin:10px 0}.profile-read p{margin:6px 0}.hint{font-size:12px;color:#8bdbfa;margin-bottom:10px}.avatar{max-width:120px;max-height:120px;border-radius:10px;border:1px solid #304361}.post-list{list-style:none;padding:0;margin:0}.post-list li{border-bottom:1px solid #283e5c;padding:14px 0}.post-list li:last-child{border-bottom:0}.post-img{max-width:100%;max-height:200px;border-radius:8px;margin-top:8px;display:block}.token-fallback{margin-top:18px;border-top:1px solid #304361;padding-top:16px}.token-fallback summary{cursor:pointer;color:#8bdbfa;font-size:13px;margin-bottom:8px}.token-fallback form{margin-top:8px}.token-fallback button{margin-top:8px}

/* Board */
.post-card .post-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.post-card .author{font-weight:700;color:#52d3f4}.post-card .post-content{font-size:16px;color:#e9f1ff;margin:8px 0}

/* Scoreboard */
.score-table{width:100%;border-collapse:collapse}.score-table th,.score-table td{text-align:left;padding:12px;border-bottom:1px solid #283e5c}.score-table th{color:#52d3f4;font-size:12px;letter-spacing:.05em}.score-table tr.me td{background:rgba(82,211,244,.12)}.flag-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.flag-card{border:1px solid #304361;border-radius:12px;padding:16px;background:rgba(13,25,45,.7)}.flag-card.earned{border-color:#2a7a4a;background:rgba(46,204,113,.1)}.flag-name{font-weight:700;color:#e9f1ff;margin-bottom:6px}.flag-desc{font-size:13px;color:#aabbd3;margin-bottom:10px}.badge{font-size:11px;padding:4px 8px;border-radius:6px;background:#704540;color:#fff}.badge.pending{background:#304563}.score-table td:last-child{font-weight:700;color:#52d3f4}
