:root{--ink:#16202b;--muted:#5b6876;--line:#dfe4ea;--bg:#f6f7f9;--card:#fff;--accent:#1f4e79;--danger:#a12c2c;color:var(--ink);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans HK,sans-serif}*{box-sizing:border-box}body{margin:0}a{color:var(--accent)}.topbar{background:var(--card);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 28px;display:flex}.brand{letter-spacing:.02em;color:var(--ink);font-weight:700;text-decoration:none}.who{color:var(--muted);align-items:center;gap:16px;font-size:14px;display:flex}main{max-width:960px;margin:0 auto;padding:32px 28px 64px}h1{margin:0 0 4px;font-size:24px}.sub{color:var(--muted);margin:0 0 28px}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;display:grid}.tile{background:var(--card);border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:20px;text-decoration:none;display:block}.tile:hover{border-color:var(--accent)}.tile strong{margin-bottom:6px;font-size:17px;display:block}.tile span{color:var(--muted);font-size:14px}.tile.admin{border-style:dashed}.panel{background:var(--card);border:1px solid var(--line);border-radius:10px;max-width:380px;margin:10vh auto;padding:28px}label{margin:14px 0 6px;font-size:14px;display:block}input,select{width:100%;font:inherit;border:1px solid var(--line);background:#fff;border-radius:6px;padding:9px 10px}button{font:inherit;background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:6px;padding:9px 16px}button.link{color:var(--accent);background:0 0;padding:0}button.small{padding:4px 10px;font-size:13px}button.quiet{color:var(--ink);background:#eef1f4}.panel button[type=submit]{width:100%;margin-top:20px}.error{color:var(--danger);margin-top:12px;font-size:14px}.notice{word-break:break-all;background:#eef5ec;border:1px solid #cfe3ca;border-radius:8px;margin:16px 0;padding:12px 14px;font-size:14px}table{border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:10px;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:10px 12px}td form{display:inline}.row{flex-wrap:wrap;align-items:end;gap:12px;margin-bottom:28px;display:flex}.row>div{flex:180px}.row label{margin-top:0}.pill{background:#eef1f4;border-radius:999px;padding:2px 8px;font-size:12px;display:inline-block}.pill.admin{color:var(--accent);background:#e3ecf6}.pill.disabled{color:var(--danger);background:#f6e5e5}
