:root{
  font-family:"Segoe UI Variable","Noto Sans TC","Microsoft JhengHei",sans-serif;
  color:#242421;background:#f3f0eb;line-height:1.55;
  --paper:#fbfaf7;--surface:#fff;--ink:#242421;--muted:#706f69;
  --line:#dcd7ce;--accent:#355d58;--accent-hover:#294b47;
}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:linear-gradient(rgba(53,93,88,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(53,93,88,.035) 1px,transparent 1px),var(--paper);background-size:32px 32px}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
header{width:min(980px,calc(100% - 36px));margin:auto;min-height:68px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.brand{font-weight:800;letter-spacing:-.03em}
nav{display:flex;gap:12px;align-items:center}nav form{margin:0}
main{width:min(980px,calc(100% - 36px));margin:0 auto;padding:58px 0}
.hero{max-width:720px;padding:54px 0}.hero span,.kicker{color:var(--accent);font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
h1{font-size:clamp(36px,7vw,64px);line-height:1;letter-spacing:-.055em;margin:10px 0 18px}
h2{margin-top:28px}
p{color:var(--muted)}
.card{max-width:620px;margin:0 auto;padding:28px;border:1px solid var(--line);background:rgba(255,255,255,.96);border-radius:12px}
.auth form{display:grid;gap:16px}.auth label{display:grid;gap:7px;font-weight:700}
input{min-height:46px;padding:10px 12px;border:1px solid #c8c3ba;border-radius:8px;background:#fff}
.btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0 16px;border:1px solid var(--accent);border-radius:8px;background:var(--accent);color:#fff;font-weight:750;cursor:pointer}
.btn:hover{background:var(--accent-hover)}
.btn.secondary{background:#fff;color:var(--ink);border-color:#c8c3ba}
.divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--muted);font-size:12px}.divider:before,.divider:after{content:"";height:1px;background:var(--line);flex:1}
.notice{padding:11px 13px;margin-bottom:16px;border:1px solid #e2bdb8;background:#fff0ed;color:#7e3029;border-radius:8px}
.identity{display:flex;justify-content:space-between;gap:20px;padding:14px;border:1px solid #c7ddd0;background:#edf6f0}
dl{display:grid;grid-template-columns:auto 1fr;gap:8px 18px}dt{color:var(--muted)}dd{margin:0;font-weight:700}
select{min-height:46px;padding:10px 12px;border:1px solid #c8c3ba;border-radius:8px;background:#fff;font:inherit}
.admin-entry{margin:24px 0;padding:16px;border:1px solid var(--line);border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:18px}.admin-entry p{margin:4px 0 0}
.admin-shell{display:grid;gap:18px}.admin-head h1{margin-bottom:8px}.panel{padding:24px;border:1px solid var(--line);background:rgba(255,255,255,.96);border-radius:12px}.panel h2{margin-top:0}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid label{display:grid;gap:6px;font-weight:700}.form-grid .btn{align-self:end}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}td small{display:block;color:var(--muted);margin-top:2px}
.tags{display:flex;flex-wrap:wrap;gap:6px}.tag{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eef2ef;border:1px solid #ccd8d2;font-size:12px;font-weight:700}.tag.admin{background:#f0ece3;border-color:#d6ccb9}.muted{color:var(--muted);font-size:13px}.success{padding:11px 13px;border:1px solid #bcd8c7;background:#edf8f1;color:#27563a;border-radius:8px}
.btn.small{min-height:34px;padding:0 11px;font-size:13px}.section-head,.admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.section-head h2{margin-bottom:4px}.section-head p{margin:0}.stat{min-width:110px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.7);text-align:right}.stat strong{display:block;font-size:28px;line-height:1}.stat span{font-size:12px;color:var(--muted)}
.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.stack-form{display:grid;gap:14px}.stack-form label,.danger-form label{display:grid;gap:6px;font-weight:700}.breadcrumb{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:13px}.breadcrumb a{text-decoration:underline;text-underline-offset:3px}
.tag.active{background:#edf7f0;border-color:#bad8c4;color:#27563a}.tag.inactive{background:#f4f1ee;border-color:#d7cec6;color:#73584b}.tag.linked{background:#edf3f8;border-color:#c5d6e4;color:#34556d}
.inline-form{display:inline-flex;align-items:center;gap:7px;margin:2px 8px 2px 0}.inline-form input{min-height:34px;width:150px;padding:5px 8px}.link-danger{border:0;background:transparent;color:#9a3d34;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:7px 4px}
.identity.manage{align-items:center;border-radius:10px}.identity.manage div{display:grid;gap:3px}.empty-state{padding:16px;border:1px dashed #c8c3ba;border-radius:10px}.empty-state p{margin:5px 0 0}
.danger-zone{border-color:#dfb7b2;background:#fffafa}.danger-zone .kicker{color:#9a3d34}.danger-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:14px}.btn.danger{background:#9a3d34;border-color:#9a3d34}.btn.danger:hover{background:#7f3029}
@media(max-width:640px){main{padding-top:30px}.card,.panel{padding:20px}h1{font-size:42px}.form-grid,.admin-grid,.danger-form{grid-template-columns:1fr}.admin-entry,.admin-head,.section-head{align-items:flex-start;flex-direction:column}.admin-entry .btn,.danger-form .btn{width:100%}.stat{width:100%;text-align:left}th,td{padding:10px 8px}.identity.manage{align-items:flex-start;flex-direction:column}.inline-form{display:flex;flex-wrap:wrap}.inline-form input{width:min(220px,100%)}}
