:root { color:#d8e1e3; background:#0d0d0e; font-family:"Microsoft YaHei", "Noto Sans SC", sans-serif; } * { box-sizing:border-box; } body { min-width:1080px; margin:0; background:#0d0d0e; } button,input,select { font:inherit; } button { cursor:pointer; }
.topbar { display:flex; align-items:center; height:87px; padding:0 26px; border-bottom:1px solid #292a2c; background:#0d0d0e; }.brand { display:flex; align-items:center; gap:11px; width:265px; }.brand b { color:#e27240; font-size:31px; letter-spacing:-.08em; }.brand b span { color:#1fc797; }.brand small { color:#b7c1c6; font-size:14px; } nav { display:flex; align-items:center; gap:15px; height:100%; } nav a { padding:13px 23px; color:#d8e1e3; font-size:23px; font-weight:700; text-decoration:none; } nav a.active { border:1px solid #a95c35; border-radius:10px; color:#fff; background:#2a1c17; box-shadow:inset 0 0 16px rgba(227,104,49,.12); } nav a.muted { color:#cbd4d8; } nav i { width:1px; height:29px; margin:0 7px; background:#3d3e40; }.nav-search { display:flex; align-items:center; gap:8px; margin-left:auto; padding:10px 17px; border:1px solid #303134; border-radius:25px; color:#d6dbdd; background:#191a1c; font-size:20px; }.nav-search input { width:140px; border:0; outline:0; color:#fff; background:transparent; font-size:14px; }
.layout { display:grid; grid-template-columns:246px 1fr; min-height:calc(100vh - 87px); }.sidebar { padding:25px 17px; border-right:1px solid #292a2c; }.side { display:flex; width:100%; align-items:center; gap:11px; margin-bottom:16px; border:0; border-radius:9px; padding:15px 17px; color:#c9d3d7; background:transparent; text-align:left; font-size:18px; font-weight:700; }.side span { color:#90999b; font-size:20px; }.side.active { color:#f0834b; background:#242526; }.side.active span { color:#f0834b; }.side.disabled { cursor:default; color:#b4bcc0; }.side em { margin-left:auto; border-radius:4px; padding:4px 6px; color:#ffe1a6; background:#674c2a; font-size:10px; font-style:normal; }
main { min-width:0; padding:23px 23px 115px 12px; }.tabs { display:flex; align-items:center; gap:7px; min-height:75px; border-bottom:1px solid #292a2c; }.tabs button { min-width:215px; border:0; border-radius:7px; padding:9px 18px; color:#b7c3c8; background:transparent; font-size:19px; font-weight:700; }.tabs button.current { color:#e9f0f1; background:#555658; box-shadow:inset 0 0 0 1px #6d6f70; }.tabs button:disabled { opacity:.85; }.tabs a { margin-left:auto; color:#e77943; font-size:16px; text-decoration:none; }.subline { display:flex; align-items:center; gap:20px; padding:25px 0 14px; }.status { display:flex; align-items:center; gap:12px; }.status b { border:1px solid #45474a; border-radius:8px; padding:10px 18px; color:#c0c7ca; background:#222325; font-size:17px; }.status small { color:#a4afb4; font-size:13px; }.subline > a { color:#e77943; font-size:13px; text-decoration:none; }
.toolbar { display:flex; align-items:center; gap:12px; padding:0 0 20px; }.toolbar button,.filter { min-height:45px; border-radius:8px; padding:0 17px; color:#ccd6da; background:#191a1c; font-size:16px; font-weight:700; }.toolbar .outline { border:1px solid #b75b31; color:#f1824b; background:transparent; }.toolbar .primary { color:#f4a078; }.toolbar .primary span { display:inline-block; min-width:19px; border-radius:12px; padding:1px 5px; color:#fff; background:#d86839; font-size:11px; }.toolbar .dark-button { border:1px solid #393a3d; }.filter { display:flex; align-items:center; gap:16px; margin-left:3px; border:1px solid #393a3d; }.filter span { color:#aeb9be; font-size:12px; }.filter select { min-width:90px; border:0; outline:0; color:#e3ebee; background:#191a1c; font-weight:700; }.refresh { width:45px; border:1px solid #45464a; color:#d7e0e4; font-size:24px; }
.brand small { display:none; }.topbar nav { margin-left:60px; }.topbar nav a { font-size:20px; }.layout { display:block; }.sidebar { display:none; } main { padding:23px 5.5vw 115px; }.date-range { display:flex; min-height:45px; align-items:center; gap:10px; border:1px solid #393a3d; border-radius:8px; padding:0 12px; color:#aeb9be; background:#191a1c; }.date-range span { font-size:12px; }.date-range b { color:#8b969a; }.date-range input { width:172px; border:0; outline:0; color:#e3ebee; background:#191a1c; font-size:12px; }.date-range input::-webkit-calendar-picker-indicator { filter:invert(1); }
#account-state { margin-left:15px; color:#aab6bb; font-size:12px; } #admin-entry { margin-left:14px; border:1px solid #b75b31; border-radius:7px; padding:8px 11px; color:#f28a58; background:transparent; font-size:12px; } #access-warning { margin-bottom:18px; border:1px solid #85432b; border-radius:8px; padding:14px 16px; color:#ffc39f; background:#271a16; font-size:13px; }
#admin-panel { position:fixed; z-index:30; inset:0; display:grid; place-items:center; padding:28px; background:rgba(0,0,0,.68); backdrop-filter:blur(8px); } #admin-panel[hidden] { display:none; } .admin-dialog { width:min(980px,94vw); max-height:86vh; overflow:hidden; border:1px solid #4b4d50; border-radius:13px; background:#18191a; box-shadow:0 28px 90px rgba(0,0,0,.56); } #admin-panel header { display:flex; align-items:center; justify-content:space-between; padding:20px 24px; border-bottom:1px solid #3c3e40; } #admin-panel header small { display:block; color:#899599; font-size:11px; letter-spacing:.08em; } #admin-panel header b { display:block; margin-top:4px; color:#f1f5f5; font-size:21px; } #admin-panel header button { display:grid; width:34px; height:34px; place-items:center; border:1px solid #55575a; border-radius:50%; color:#dce3e5; background:#242628; font-size:23px; line-height:1; } .admin-tabs { display:flex; gap:5px; padding:14px 24px 0; border-bottom:1px solid #36383a; }.admin-tabs button { border:0; border-bottom:2px solid transparent; padding:11px 14px; color:#9da8ac; background:transparent; font-weight:700; }.admin-tabs button.active { border-color:#df7544; color:#f18a59; } .admin-view { padding:20px 24px 24px; }.admin-summary { display:flex; align-items:baseline; gap:9px; margin-bottom:15px; }.admin-summary b { color:#f58a58; font-size:28px; }.admin-summary span { color:#95a0a4; font-size:13px; }.admin-table-wrap { overflow:auto; max-height:42vh; border:1px solid #37393b; border-radius:8px; } .admin-table-wrap table { width:100%; border-collapse:collapse; text-align:left; font-size:13px; }.admin-table-wrap th { position:sticky; top:0; padding:12px 14px; color:#8f9ca0; background:#242628; font-weight:600; }.admin-table-wrap td { border-top:1px solid #303234; padding:13px 14px; color:#d8e0e2; white-space:nowrap; }.admin-table-wrap tr:hover td { background:#202224; }.admin-empty { text-align:center; color:#879398; padding:28px !important; }.badge { display:inline-flex; border-radius:999px; padding:4px 8px; font-size:11px; font-weight:700; }.badge-active,.badge-redeemed { color:#9cf0ce; background:#163d31; }.badge-expired,.badge-available { color:#ffd39a; background:#4e351d; }.badge-admin { color:#bde3ff; background:#17394f; }.badge-disabled { color:#efb1b1; background:#4a2424; }.code-create { display:flex; align-items:end; gap:12px; margin-bottom:16px; }.code-create label { display:flex; flex-direction:column; gap:6px; color:#9da8ac; font-size:12px; }.code-create select,.code-create input { min-width:108px; border:1px solid #55575a; border-radius:6px; padding:9px; color:#e2eaed; background:#222325; }.code-create input { width:90px; min-width:90px; } .code-create button { border:1px solid #b75b31; border-radius:7px; padding:10px 15px; color:#fff; background:#d86e3d; font-weight:700; } #created-codes { margin-bottom:16px; border:1px solid #8b5432; border-radius:8px; padding:13px; color:#ffb28d; background:#2c1d17; } #created-codes pre { overflow:auto; max-height:120px; margin:9px 0 0; color:#fff0e9; font:12px/1.7 ui-monospace,Consolas,monospace; } #admin-message { min-height:18px; margin:0; padding:0 24px 18px; color:#ffae86; font-size:12px; }
.collection-head,.product-row { display:grid; grid-template-columns:70px 365px minmax(270px,1.2fr) minmax(320px,1fr) 170px; align-items:center; }.collection-head { min-height:79px; border:1px solid #353638; border-bottom:0; border-radius:7px 7px 0 0; color:#adb8bd; background:#222324; font-size:19px; font-weight:700; }.collection-head > * { padding:0 19px; }.collection-head label,.check { display:flex; justify-content:center; }.collection { border:1px solid #353638; border-top:0; }.product-row { min-height:278px; border-bottom:1px solid #343537; background:#18191a; }.product-row:last-child { border-bottom:0; }.product-row:hover { background:#1c1d1e; }.check input,input[type="checkbox"] { width:20px; height:20px; accent-color:#df7544; }.image { position:relative; width:180px; height:220px; padding:10px; border:1px solid #d46d3e; border-radius:8px; background:#f7f6f4; }.image img { width:100%; height:100%; object-fit:contain; }.image span { position:absolute; right:8px; top:8px; display:grid; width:29px; height:29px; place-items:center; border-radius:6px; color:#dce6e8; background:#3b3d3f; }.title { padding:20px 25px; }.title strong { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:4; color:#ef7641; font-size:18px; font-weight:500; line-height:1.55; }.title small { display:block; overflow:hidden; margin-top:16px; color:#a3aeb2; font-family:ui-monospace,Consolas,monospace; font-size:10px; text-overflow:ellipsis; white-space:nowrap; }.info { align-self:center; padding:18px 25px; color:#cfdbde; font-size:17px; line-height:1.75; }.info p { margin:5px 0; }.info b { color:#e3e9ea; font-weight:500; }.info a,.actions a { color:#e77a44; text-decoration:none; }.info .price { color:#fff; font-weight:700; }.actions { display:flex; flex-direction:column; gap:15px; padding:20px; }.actions a,.actions button { border:0; color:#f0844c; background:transparent; text-align:left; font-size:16px; }.actions button { padding:0; }.actions button:hover,.actions a:hover { color:#ffab7e; } #empty { display:flex; flex-direction:column; align-items:center; gap:8px; border:1px solid #353638; padding:90px 20px; color:#aab5b9; background:#18191a; }.batchbar { position:fixed; z-index:4; bottom:0; left:calc(50% - 420px); display:flex; align-items:center; gap:16px; min-width:760px; border:1px solid #4c4e50; border-bottom:0; border-radius:10px 10px 0 0; padding:15px 23px; color:#d9e2e4; background:#4a4b4d; box-shadow:0 -8px 28px rgba(0,0,0,.22); }.batchbar label { display:flex; align-items:center; gap:10px; font-size:17px; }.batchbar span { color:#c8d0d2; font-size:13px; }.batchbar b { color:#fff; }.batchbar button { border:0; border-radius:7px; padding:10px 19px; color:#e4eaeb; background:#646669; font-weight:700; }.batchbar button:first-of-type { color:#ff9d6d; }
#login-overlay { position:fixed; z-index:20; inset:0; display:grid; place-items:center; background:rgba(5,5,6,.9); backdrop-filter:blur(10px); } #login-overlay[hidden] { display:none; } #login-form { width:390px; border:1px solid #414346; border-radius:16px; padding:34px; background:#171819; box-shadow:0 30px 80px rgba(0,0,0,.5); } .login-brand { color:#e27240; font-size:28px; font-weight:800; }.login-brand span { color:#1fc797; } #login-form h1 { margin:20px 0 6px; color:#f2f5f5; font-size:24px; } #login-form p { margin:0 0 22px; color:#8f9a9e; font-size:13px; } #login-form input { display:block; width:100%; margin:10px 0; border:1px solid #3d4042; border-radius:9px; padding:13px 14px; outline:0; color:#fff; background:#222426; } #login-form input:focus { border-color:#d66d3d; } .login-actions { display:flex; gap:10px; margin-top:18px; } .login-actions button { flex:1; border:1px solid #a95732; border-radius:9px; padding:12px; color:#fff; background:#d86e3d; font-weight:700; } .login-actions button+button { color:#ee8b5e; background:transparent; } #login-message { display:block; min-height:20px; margin-top:12px; color:#ff9c73; }
