:root{--blue:#155eef;--navy:#0f1c2e;--muted:#65758b;--line:#dfe5ed;--bg:#f3f6fa;--red:#b42318}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--navy);font-family:system-ui,-apple-system,"Noto Sans TC",sans-serif;line-height:1.55}.topbar{height:72px;padding:0 max(30px,calc((100vw - 1180px)/2));display:flex;justify-content:space-between;align-items:center;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10}.wordmark{font-size:20px;font-weight:800;color:var(--navy);text-decoration:none;display:flex;gap:12px;align-items:center}.wordmark b{background:var(--blue);color:#fff;padding:7px 9px;border-radius:8px}.wordmark span{font-size:15px}.topbar nav{display:flex;gap:24px}.topbar nav a{color:var(--navy);font-weight:700;text-decoration:none;font-size:14px}.shell{width:min(1180px,calc(100% - 36px));margin:42px auto 80px}.auth-shell{min-height:90vh;display:grid;place-items:center;margin-top:0}.login-card{width:min(460px,100%);background:#fff;border:1px solid var(--line);padding:44px;border-radius:22px;box-shadow:0 22px 60px #0f1c2e16}.login-brand{font-size:27px;font-weight:950;letter-spacing:-.03em}.login-brand span{color:var(--blue)}h1{font-size:clamp(30px,4vw,46px);line-height:1.15;margin:8px 0 12px}h2{margin:0 0 8px}.kicker{color:var(--blue);font-weight:900;letter-spacing:.13em;font-size:12px;margin:0}.muted{color:var(--muted)}.page-head{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:28px}.actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.button,button,.secondary{appearance:none;border:0;background:var(--blue);color:#fff;padding:12px 19px;border-radius:10px;font-weight:800;font-size:14px;text-decoration:none;cursor:pointer;display:inline-block}.secondary{background:#fff;color:var(--navy);border:1px solid var(--line)}button.secondary{color:var(--navy)}.panel{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;margin-bottom:24px;box-shadow:0 8px 28px #0f1c2e09}.narrow{max-width:620px;margin:auto}.stack{display:grid;gap:18px;margin-top:25px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}label{display:grid;gap:7px;font-weight:750;font-size:14px}input,textarea,select{width:100%;border:1px solid #cfd7e2;border-radius:9px;padding:11px 12px;background:#fff;font:inherit;color:var(--navy)}input:focus,textarea:focus,select:focus{outline:3px solid #155eef20;border-color:var(--blue)}textarea{resize:vertical}.wide{grid-column:1/-1}.section-label{border-top:1px solid var(--line);padding-top:20px;color:var(--blue);font-weight:900}.prefix{display:flex;align-items:center;border:1px solid #cfd7e2;border-radius:9px;overflow:hidden}.prefix span{padding:0 10px;background:#f3f6fa;color:var(--muted);font-size:13px;white-space:nowrap}.prefix input{border:0;border-radius:0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:24px}.stats article{background:var(--navy);color:#fff;padding:24px;border-radius:16px;display:flex;flex-direction:column}.stats b{font-size:36px}.stats span{color:#bac6d5}.section-head{display:flex;justify-content:space-between}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:700px}th,td{text-align:left;padding:15px 12px;border-bottom:1px solid #edf0f4;font-size:14px}th{font-size:12px;color:var(--muted);letter-spacing:.05em}td small{display:block;color:var(--muted)}.status{display:inline-block;background:#e9efff;color:#1749af;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:850}.row-actions{display:flex;gap:12px}.row-actions a{color:var(--blue);font-weight:800;text-decoration:none}.empty{padding:32px;text-align:center;color:var(--muted);background:#f8fafc;border-radius:12px}.notice{padding:14px 18px;background:#e7f8ef;color:#067647;border:1px solid #a9e6c5;border-radius:10px;margin-bottom:20px;font-weight:700}.notice.error{background:#fff0ef;color:var(--red);border-color:#f3b4af}.action-panel{display:flex;justify-content:space-between;gap:25px;align-items:center}small{color:var(--muted);font-weight:500}@media(max-width:760px){.topbar{padding:0 18px}.topbar nav a:not(:last-child){display:none}.shell{margin-top:28px}.page-head,.action-panel{align-items:start;flex-direction:column}.form-grid{grid-template-columns:1fr}.wide{grid-column:auto}.stats{grid-template-columns:1fr}.login-card{padding:30px}.wordmark span{display:none}}
