:root{
  --navy:#16283d;--navy2:#213d59;--green:#178571;--green2:#dff4ee;
  --blue:#286ad6;--red:#b53a48;--red2:#fde7ea;--ink:#1f2b38;
  --muted:#667483;--line:#dfe5eb;--bg:#f3f6f9;--white:#fff;
  --shadow:0 22px 70px rgba(20,39,58,.14);--radius:18px;
}
*{box-sizing:border-box}
body{margin:0;font-family:"Noto Sans TC","Microsoft JhengHei",system-ui,sans-serif;color:var(--ink);background:var(--bg)}
a{color:inherit}
button,input,select{font:inherit}
.login-page{min-height:100vh;background:#eaf0f4}
.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr)}
.login-visual{background:linear-gradient(135deg,var(--navy),#254d67 62%,#167c70);color:#fff;padding:68px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.login-visual:after{content:"";position:absolute;width:460px;height:460px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-120px;bottom:-140px;box-shadow:0 0 0 80px rgba(255,255,255,.025),0 0 0 160px rgba(255,255,255,.018)}
.brand-mark{width:58px;height:58px;border-radius:18px;display:grid;place-items:center;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.18);font-weight:900;font-size:21px}
.eyebrow{font-size:12px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;margin:0 0 12px;color:#7590a6}
.login-visual .eyebrow{color:#a8d8ce}
.login-visual h1{font-size:42px;line-height:1.35;margin:0;letter-spacing:-1px;max-width:760px}
.lead{font-size:16px;line-height:1.8;color:#c6d7e2;max-width:650px}
.flow{display:flex;gap:13px;align-items:center;flex-wrap:wrap;font-weight:800;color:#e3f4ef}
.flow span{padding:9px 13px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.07);border-radius:999px}
.flow i{font-style:normal;color:#76d5c2}
.login-panel{display:grid;place-items:center;padding:48px;background:#f7f9fb}
.login-card{width:min(460px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;padding:38px;box-shadow:var(--shadow)}
.login-card h2{font-size:30px;margin:0 0 10px}
.muted{color:var(--muted);line-height:1.7}
.env-badge{display:inline-flex;padding:6px 9px;border-radius:999px;background:var(--green2);color:#08715e;font-size:11px;font-weight:900;letter-spacing:.06em;margin-bottom:24px}
.google-login{margin-top:24px;width:100%;display:flex;align-items:center;justify-content:center;gap:12px;text-decoration:none;background:var(--navy);color:#fff;border-radius:12px;padding:13px 16px;font-weight:900}
.google-login:hover{background:#203d59}
.google-dot{width:26px;height:26px;border-radius:50%;background:#fff;color:#4285f4;display:grid;place-items:center;font-weight:900}
.security-note{display:grid;gap:5px;margin-top:22px;padding:14px;background:#edf4ff;color:#315a99;border-radius:12px;font-size:12px;line-height:1.55}
.alert{padding:12px 14px;border-radius:11px;margin:14px 0;font-size:13px;line-height:1.6}
.alert.danger{background:var(--red2);color:#952f3d}
.alert.warning{background:#fff2d8;color:#725000}
.alert.success{background:var(--green2);color:#08715e}
.admin-topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;background:#fff;border-bottom:1px solid var(--line);padding:24px 34px;position:sticky;top:0;z-index:10}
.admin-topbar h1{margin:7px 0 5px;font-size:27px}
.admin-topbar p{margin:0;color:var(--muted)}
.back-link{text-decoration:none;color:var(--blue);font-size:13px;font-weight:800}
.session-box{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.session-box small{color:var(--muted)}
.session-box .env-badge{margin:0}
.admin-content{max-width:1500px;margin:auto;padding:28px}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);margin-bottom:20px;overflow:hidden}
.panel-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line)}
.panel-head h2{font-size:18px;margin:0}
.panel-head p{color:var(--muted);font-size:12px;margin:4px 0 0}
.form-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:14px;padding:20px;align-items:end}
.form-grid label,.edit-form label{display:grid;gap:6px;font-size:12px;font-weight:800;color:#536270}
input,select{width:100%;border:1px solid #d5dde5;border-radius:9px;padding:10px 11px;background:#fff;color:var(--ink)}
.form-action{display:flex;align-items:end}
.btn{border:1px solid var(--line);border-radius:9px;padding:9px 12px;font-weight:900;cursor:pointer;background:#fff;text-decoration:none}
.btn.primary{background:var(--green);border-color:var(--green);color:#fff}
.btn.secondary{background:#fff;color:var(--ink)}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;min-width:900px}
th{background:#f6f8fa;color:#687582;text-align:left;font-size:12px;padding:11px 13px;border-bottom:1px solid var(--line)}
td{padding:13px;border-bottom:1px solid #edf0f3;font-size:13px;vertical-align:top}
.status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:900}
.status.ok{background:var(--green2);color:#08715e}
.status.off{background:#edf1f4;color:#65717c}
.edit-details{display:inline-block;margin-right:6px}
.edit-details summary{cursor:pointer;color:var(--blue);font-weight:900}
.edit-form{position:absolute;right:34px;width:min(560px,calc(100vw - 40px));z-index:20;background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:var(--shadow);display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}
.inline-form{display:inline}
@media(max-width:980px){.login-shell{grid-template-columns:1fr}.login-visual{min-height:42vh;padding:38px}.login-visual h1{font-size:32px}.login-panel{padding:28px}.form-grid{grid-template-columns:1fr 1fr}.admin-topbar{position:static;display:block}.session-box{justify-content:flex-start;margin-top:16px}}
@media(max-width:620px){.login-visual{padding:28px}.login-visual h1{font-size:26px}.login-card{padding:26px}.form-grid{grid-template-columns:1fr}.admin-content{padding:16px}.edit-form{left:20px;right:20px;grid-template-columns:1fr}}
