*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans TC","Microsoft JhengHei",Arial,sans-serif;background:#f3f6fb;color:#0f172a}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#0b2440,#155e8b);padding:18px}.login-card{width:min(430px,100%);background:#fff;border-radius:24px;padding:32px;box-shadow:0 24px 70px rgba(0,0,0,.28)}.login-card h1{margin:0 0 8px}.login-card p{color:#64748b}.alert{background:#fef2f2;color:#991b1b;border:1px solid #fecaca;border-radius:14px;padding:12px;margin:12px 0}.layout{display:flex;min-height:100vh}.sidebar{width:240px;background:#0b2440;color:#fff;padding:20px 14px;position:sticky;top:0;height:100vh}.sidebar nav{display:grid;gap:8px}.sidebar a{color:#dbeafe;text-decoration:none;padding:12px 14px;border-radius:14px;font-weight:700}.sidebar a:hover{background:rgba(255,255,255,.1)}.main{flex:1;padding:18px;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border:1px solid #dbe4ef;border-radius:20px;padding:14px 18px;box-shadow:0 8px 26px rgba(15,23,42,.05)}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:54px;height:42px;border-radius:14px;background:#dbeafe;color:#0b2440;display:grid;place-items:center;font-weight:900}.brand strong{display:block}.brand span{display:block;color:#64748b;font-size:13px}.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap}.top-actions a{color:#2563eb;text-decoration:none;font-weight:800}.top-actions a.logout{color:#b91c1c}.login-state{color:#166534;font-weight:800}.lang{color:#64748b}.lang a{color:#334155}.page-title{margin:18px 0;padding:24px;background:#102f4f;color:#fff;border-radius:24px}.page-title h1{margin:0 0 8px}.page-title p{margin:0;color:#dbeafe}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.stat,.card{background:white;border:1px solid #dbe4ef;border-radius:20px;padding:22px;box-shadow:0 8px 26px rgba(15,23,42,.05)}.stat span{display:block;color:#64748b}.stat strong{font-size:34px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.muted{color:#64748b;line-height:1.7}.btn,button{display:inline-flex;border:0;border-radius:999px;padding:12px 18px;background:#2563eb;color:#fff!important;text-decoration:none;font-weight:800;cursor:pointer}label{display:block;margin:12px 0 7px;font-weight:800}input,textarea,select{width:100%;border:1px solid #cbd5e1;border-radius:13px;padding:12px 13px;font-size:16px}input:disabled{background:#f1f5f9;color:#64748b}.message{margin:14px 0;padding:14px 16px;border-radius:16px;border:1px solid;font-weight:700}.message.ok{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.message.err{background:#fef2f2;border-color:#fecaca;color:#991b1b}.kv{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #e2e8f0;padding:13px 0}.log-item{border-bottom:1px solid #e2e8f0;padding:10px 0}.footer{color:#64748b;padding:20px}@media(max-width:900px){.layout{display:block}.sidebar{position:static;width:auto;height:auto}.sidebar nav{grid-template-columns:1fr 1fr}.topbar{align-items:flex-start;flex-direction:column}.stat-grid,.grid-2{grid-template-columns:1fr}.main{padding:12px}}@media(max-width:520px){.sidebar nav{grid-template-columns:1fr}.top-actions{justify-content:flex-start}.login-card{padding:22px}}
.brand-logo-img{width:76px;height:52px;object-fit:contain;border-radius:14px;background:#eef6ff;padding:4px;box-shadow:inset 0 0 0 1px #dbeafe}.brand{min-width:0}.brand strong{white-space:nowrap}.topbar{overflow:hidden}@media(max-width:520px){.brand-logo-img{width:64px;height:44px}.brand strong{font-size:15px}.brand span{font-size:12px}}
