:root{color-scheme:light;--ink:#17352f;--accent:#315e50;--line:#d5dfda}*{box-sizing:border-box}body{margin:0;background:#f3f6f4;color:var(--ink);font:16px/1.6 system-ui,-apple-system,'Noto Sans TC',sans-serif}main.auth{max-width:480px;margin:7vh auto;padding:36px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 15px 50px #153c3010}.brand{font-size:18px;font-weight:700;letter-spacing:.08em}.eyebrow{font-size:13px;letter-spacing:.16em;color:#687d74}h1{font-size:28px;margin:28px 0 12px}h2{font-size:20px}p{color:#53665e}label{display:block;margin:18px 0 6px;font-size:15px}input,select,button{font:inherit;border-radius:8px;padding:11px 12px}input,select{width:100%;border:1px solid #aebfb5;background:white;color:var(--ink)}button{background:var(--accent);color:white;border:0;cursor:pointer}button:disabled{opacity:.5;cursor:wait}.primary{width:100%;margin-top:24px}.secondary{background:#e7eeea;color:var(--ink)}a{color:var(--accent)}.error{color:#a33131;min-height:1.6em}.muted{font-size:14px}.admin{max-width:1100px;margin:36px auto;padding:24px}.bar{display:flex;justify-content:space-between;gap:20px;align-items:center}.panel{background:white;border:1px solid var(--line);border-radius:12px;padding:24px;margin:24px 0}.row{display:flex;flex-wrap:wrap;gap:16px;align-items:end}.row>label{flex:1;min-width:160px}.row button{margin-bottom:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}td,th{padding:14px 10px;border-bottom:1px solid var(--line);font-size:15px}td button{font-size:14px;margin:3px}td select{min-width:130px}.link-box{overflow-wrap:anywhere;padding:18px;background:#e8f1eb}.session-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.session-bar button,.session-bar a{font:14px system-ui;padding:7px 12px;border-radius:6px;border:1px solid #aebfb5;background:white;color:#17352f;text-decoration:none}.session-bar span{font-size:14px}[hidden]{display:none!important}@media(max-width:560px){main.auth{margin:20px 14px;padding:24px}.admin{padding:14px;margin:10px auto}.bar{align-items:start;flex-direction:column}}
