:root{--navy: #1A3A5C;--navy-dark: #0B1826;--copper: #C8941A;--teal: #45C4BC;--panel: #1D2836;--line: #2C3A4B;--danger: #E4736A;--ok: #4FBF8B;--heading: #9BC3E6;--bg: #0D1319;--card: #151E28;--text: #E3E9F1;--header-h: 58px;--muted: #8B9BAF;--radius: 10px;--form-w: 1180px}:root{color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,SF Pro Display,Segoe UI,Roboto,Be Vietnam Pro,Helvetica Neue,Arial,Noto Sans TC,Noto Sans CJK TC,PingFang TC,Microsoft JhengHei,Noto Sans,sans-serif;-webkit-font-smoothing:antialiased}a{color:var(--heading)}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--navy-dark),var(--navy))}.login-card{background:var(--card);border-radius:var(--radius);padding:40px 36px;width:360px;box-shadow:0 20px 60px #0000004d}.login-card h1{font-size:1.3rem;margin:0 0 4px;color:var(--heading)}.login-card .sub{font-size:.82rem;color:var(--muted);margin:0 0 16px}.login-card label{display:block;font-size:.85rem;color:var(--muted);margin:14px 0 4px}.login-card input{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:8px;font-size:1rem;background:var(--panel);color:var(--text)}.login-card button{margin-top:20px;width:100%;padding:11px;border:none;border-radius:8px;background:var(--copper);color:#1a1300;font-weight:700;font-size:1rem;cursor:pointer}.login-card button:hover{filter:brightness(1.05)}.login-card button:disabled{opacity:.6;cursor:default}.login-error{color:var(--danger);font-size:.85rem;margin-top:10px;min-height:1.2em}.login-error.info{color:var(--heading)}.lang-picker-login{position:absolute;top:20px;right:20px}.lang-picker-login select{padding:6px 10px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text);font-size:.85rem}.app{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.app>*{min-width:0}.sidebar{background:var(--navy-dark);color:#fff;padding:0 0 20px;border-right:1px solid var(--line)}.sidebar .brand{display:flex;align-items:center;height:var(--header-h);box-sizing:border-box;padding:0 20px;font-weight:800;letter-spacing:.04em;font-size:1.1rem;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:10px}.sidebar nav a{display:block;padding:10px 20px;color:#ffffffbf;text-decoration:none;font-size:.92rem;cursor:pointer}.sidebar nav a:hover{background:#ffffff0f;color:#fff}.sidebar nav a.active{background:var(--copper);color:#1a1300;font-weight:700}.nav-sep{height:1px;background:#ffffff1f;margin:10px 20px}.topbar{display:flex;align-items:center;justify-content:flex-end;gap:14px;height:var(--header-h);box-sizing:border-box;padding:0 24px;background:var(--card);border-bottom:1px solid var(--line)}.topbar .user-email{color:var(--muted);font-size:.85rem}.topbar select,.topbar button{padding:6px 10px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text);cursor:pointer;font-size:.85rem}.content{padding:24px}.content h2{margin-top:0;color:var(--heading)}.panel-note{color:var(--muted);font-size:.82rem;margin:-8px 0 16px;line-height:1.6}.row-count{color:var(--muted);font-size:.82rem;margin:12px 2px 0;text-align:right}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:12px}.toolbar input[type=search]{flex:1;max-width:320px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text)}.btn{padding:8px 16px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--text);cursor:pointer;font-size:.9rem;font-family:inherit}.btn:hover{border-color:var(--heading)}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--copper);border-color:var(--copper);color:#1a1300;font-weight:700}.btn-danger{color:var(--danger);border-color:var(--danger)}table.grid{width:100%;border-collapse:collapse;background:var(--card);border-radius:var(--radius);overflow:hidden;border:1px solid var(--line)}table.grid th,table.grid td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line);font-size:.9rem}table.grid th{background:var(--panel);color:var(--heading);font-weight:700}table.grid tr:hover td{background:#ffffff09}table.grid .row-actions{white-space:nowrap;text-align:right}table.grid .row-actions button{margin-left:6px}table.grid td:last-child{white-space:nowrap}table.grid tr.is-suspended td{color:var(--muted)}.badge-status{display:inline-block;padding:2px 8px;border-radius:20px;font-size:.75rem;font-weight:700;background:var(--panel);color:var(--heading);white-space:nowrap}.badge-status.off{color:var(--muted)}.badge-status.on{color:var(--ok)}.empty-state{padding:40px;text-align:center;color:var(--muted);background:var(--card);border-radius:var(--radius)}.form-card{background:var(--card);border-radius:var(--radius);padding:24px;max-width:var(--form-w);border:1px solid var(--line)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px 20px}.field{display:flex;flex-direction:column}.field.wide{grid-column:1 / -1}.field label{font-size:.82rem;color:var(--muted);margin-bottom:6px;display:flex;align-items:center;gap:6px}.field input[type=text],.field input[type=email],.field input[type=password],.field select,.field textarea{padding:10px 12px;border:1px solid var(--line);border-radius:6px;font-size:.92rem;font-family:inherit;background:var(--panel);color:var(--text)}.field input:disabled,.field select:disabled{background:var(--panel);color:var(--muted)}.field textarea{resize:vertical;min-height:70px}.field .hint{margin-top:6px;line-height:1.5}.field-desc{margin:-2px 0 6px;font-size:.78rem;line-height:1.45;color:var(--muted)}.field-desc b{color:var(--text);font-weight:600}.hint{color:var(--muted);font-weight:400;font-size:.78rem}.form-actions{margin-top:20px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.save-status{font-size:.85rem;color:var(--teal)}.save-status.error{color:var(--danger)}.warn-note{margin:8px 0 0;padding:9px 13px;border-radius:6px;font-size:.8rem;line-height:1.55;color:#e7c474;background:#c8941a1a;border-left:3px solid var(--copper)}.pw-rules{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px 16px}.pw-rules li{font-size:.78rem;color:var(--muted)}.pw-rules li:before{content:"•";margin-right:5px}.pw-rules li.ok{color:var(--ok)}.pw-rules li.ok:before{content:"✓"}.pw-rules li.bad{color:var(--danger)}.pw-rules li.bad:before{content:"✕"}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:20px;max-width:var(--form-w)}.card+.card{margin-top:16px}.card h3{margin:0 0 14px;font-size:1rem;color:var(--heading)}.caps{list-style:none;padding:0;margin:0;display:grid;gap:7px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}.caps li{display:flex;align-items:center;gap:8px;font-size:.88rem}.caps .yes{color:var(--ok)}.caps .no,.caps li.off{color:var(--muted)}.muted{color:var(--muted);font-size:.82rem}@media (max-width: 780px){.app{grid-template-columns:1fr;grid-template-rows:auto 1fr}.sidebar{padding:12px;border-right:0;border-bottom:1px solid var(--line)}.sidebar .brand{height:auto;padding:0 4px 10px;margin-bottom:8px;border-bottom:0}.sidebar nav{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}.sidebar nav a{flex:none;padding:8px 12px;border-radius:8px;white-space:nowrap}.nav-sep{display:none}.topbar{justify-content:flex-start;flex-wrap:wrap;padding:10px 12px}.content{padding:14px}.toolbar{align-items:stretch;flex-direction:column}.toolbar input[type=search]{max-width:none}.form-card{padding:14px}.form-grid{grid-template-columns:1fr;gap:16px}.form-actions{align-items:stretch;flex-direction:column}.form-actions .btn{width:100%}.table-scroll{overflow-x:auto}table.grid{min-width:620px}}.lang-inputs{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.lang-cell{display:flex;flex-direction:column;gap:4px}.lang-tag{font-size:.68rem;font-weight:700;letter-spacing:.06em;color:var(--muted)}.lang-cell.empty .lang-tag{color:#e0ae3e}.lang-cell.empty input{background:#c8941a17;border-color:#c8941a73}.lang-cell input{padding:10px 12px;border:1px solid var(--line);border-radius:6px;font-size:.92rem;font-family:inherit;background:var(--panel);color:var(--text)}.lang-cell.required .lang-tag:after{content:" *";color:var(--danger)}@media (max-width: 900px){.lang-inputs{grid-template-columns:repeat(2,1fr)}}@media (max-width: 560px){.lang-inputs{grid-template-columns:1fr}}.status-filter{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}.status-filter .chip{padding:5px 12px;border:1px solid var(--line);border-radius:20px;background:var(--panel);font-size:.78rem;color:var(--muted);cursor:pointer;font-family:inherit}.status-filter .chip:hover{border-color:var(--heading);color:var(--heading)}.status-filter .chip.active{background:var(--copper);border-color:var(--copper);color:#1a1300;font-weight:700}.group{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}.group h3{margin:0 0 4px;font-size:.95rem;color:var(--heading)}.group .panel-note{margin:0 0 14px}.mini-list{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-direction:column;gap:6px}.mini-list li{display:flex;align-items:center;gap:10px;padding:7px 10px;background:var(--panel);border:1px solid var(--line);border-radius:6px;font-size:.88rem}.mini-list .grow{flex:1;min-width:0}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.mini-list .btn{padding:4px 10px;font-size:.78rem}.inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.inline-form input,.inline-form select{padding:8px 11px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text);font:inherit;font-size:.88rem}.inline-form input.code{min-width:200px}.inline-form input.qty{width:110px}.inline-form select{min-width:240px}.toolbar .filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.toolbar select{padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);font:inherit;font-size:.88rem}.inline-check{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--muted);white-space:nowrap}.inline-check input{accent-color:var(--copper)}.danger-text{color:var(--danger)}.sku-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:600}.login-card .link-btn{background:none;border:0;padding:6px 0 0;margin:0;color:var(--copper);font-size:.82rem;cursor:pointer;text-decoration:underline;width:auto;align-self:center}.login-card .link-btn:hover{color:#e7c474}.login-hint{margin:0 0 10px;font-size:.8rem;line-height:1.55;color:var(--muted)}.login-card .pw-rules{list-style:none;margin:8px 0 4px;padding:0;font-size:.76rem;line-height:1.75;color:var(--muted)}.login-card .pw-rules li.ok{color:#7fbf7f}.login-card .pw-rules li.bad{color:var(--danger)}
