:root{font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",sans-serif;color:#34424a;background:#edf1f4;font-synthesis:none;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;min-height:34px;padding:7px 12px;background:#f8fafb;border:1px solid #b9c6cd;color:#53666f;border-radius:2px}button:hover{background:#edf5f9;border-color:#4195c2}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid #227aa8;outline-offset:3px}button:disabled{opacity:.5;cursor:not-allowed}.primary{background:#4195c2;color:#fff;border-color:#378bb5}.primary:hover{background:#3485b0}.danger{color:#a83c3c;border-color:#d4b5b5;background:#fff8f8}.danger:hover{background:#fbeaea}.success{color:#307555;border-color:#b4d8c5;background:#edf8f2}input,select,textarea{width:100%;min-height:36px;background:#fff;border:1px solid #cbd3d8;border-radius:2px;padding:8px 10px;color:#35444c}textarea{resize:vertical;min-height:80px}input[type=checkbox]{width:auto;min-height:auto}label{display:grid;gap:6px;font-size:13px;color:#64757f}label.check{display:flex;align-items:center;gap:8px}h1,h2,p{margin:0}h1{font-size:21px;color:#2e3c44}h2{font-size:16px}p{line-height:1.65}small,.muted{font-size:12px;color:#819099}.topbar{height:54px;background:#4195c2;color:#fff;position:fixed;inset:0 0 auto;z-index:20;display:flex;align-items:center;padding:0 22px;gap:12px;box-shadow:0 1px 3px #0002}.topbar strong{font-size:19px;letter-spacing:.2px}.topbar-meta{display:flex;align-items:center;gap:16px;margin-left:auto;font-size:13px}.topbar button{color:#fff;border-color:#ffffff80;background:#ffffff16}.data-label{padding:5px 9px;border:1px solid #ffffff45;border-radius:2px}.sidebar{width:176px;position:fixed;inset:54px auto 0 0;background:#1f2b31;color:#bdc8ce;display:flex;flex-direction:column;z-index:15;border-right:1px solid #172126}.sidebar-heading{padding:20px;color:#fff;font-weight:650;border-bottom:1px solid #ffffff12}.sidebar-heading small{display:block;color:#91a2aa;font-size:10px;letter-spacing:2px;margin-top:6px}.sidebar nav button{width:100%;height:48px;display:flex;align-items:center;gap:12px;background:none;border:0;border-bottom:1px solid #ffffff16;border-right:4px solid transparent;color:#bdc8ce;text-align:left;padding:0 18px;border-radius:0}.sidebar nav button.active{background:#172126;color:#fff;border-right-color:#4195c2}.sidebar nav button:hover{background:#172126}.sidebar nav img{width:8px;height:8px;filter:brightness(0) invert(.85)}.sidebar-footer{margin-top:auto;border-top:1px solid #ffffff15;padding:18px 15px;font-size:12px;color:#a9b6bd}.sidebar-footer small{display:block;margin-top:8px;font-size:10px;white-space:nowrap}.menu-toggle{display:none}.menu-toggle img{width:22px;height:22px;filter:brightness(0) invert(1)}main{margin-left:176px;padding-top:54px;min-height:100dvh}.breadcrumb{height:44px;display:flex;align-items:center;background:#fff;padding:0 20px;border-bottom:1px solid #d6dee3;color:#647982;font-size:13px}.content{padding:20px;max-width:1800px;margin:auto}.page-heading{border:1px solid #d4dce1;border-left:4px solid #4195c2;padding:18px 20px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px}.page-heading p{font-size:13px;color:#7d8b93;margin-top:6px}.page-heading .pill{flex-shrink:0}.pill{display:inline-block;font-size:12px;line-height:1.5;padding:3px 8px;white-space:nowrap;border:1px solid #d5e6ef;background:#f0f8fc;color:#4c8ba8}.badge{display:inline-block;white-space:nowrap;font-size:12px;padding:3px 7px;background:#f0f3f4;border:1px solid #dae0e3;color:#697a83}.badge.active,.badge.paid,.badge.redeemed,.badge.delivered{background:#eaf6ef;border-color:#c1ddce;color:#398665}.badge.paused,.badge.pending{background:#fff5e7;border-color:#ead5b3;color:#926723}.badge.revoked,.badge.inactive,.badge.refunded,.badge.disabled{background:#fbebeb;border-color:#ebc9c9;color:#b14c4c}.badge.unused{background:#eaf5fb;border-color:#c2deed;color:#4289ab}.panel{border:1px solid #d4dce1;background:#fff;margin-bottom:16px;padding:16px}.panel-title{margin-bottom:14px;color:#488cae;font-weight:600}.toolbar{display:flex;align-items:end;flex-wrap:wrap;gap:10px}.toolbar label:first-child{flex:1;min-width:180px}.toolbar label{min-width:125px}.toolbar button{flex-shrink:0;min-height:36px}.table-wrap{border:1px solid #d4dce1;background:#fff;overflow-x:auto;min-height:100px}table{border-collapse:collapse;width:100%;font-size:13px;min-width:900px}th,td{padding:12px;text-align:left;border-right:1px solid #e1e5e8;border-bottom:1px solid #e1e5e8;vertical-align:middle;line-height:1.5}th{font-weight:600;background:#f4f6f7;color:#5f727c;white-space:nowrap}th:last-child,td:last-child{border-right:0}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfdfe}td .sub{display:block;color:#84929a;font-size:11px;margin-top:4px;overflow-wrap:anywhere;max-width:290px}td .name{font-weight:650;color:#34424a;white-space:nowrap}td .actions{display:flex;flex-wrap:wrap;gap:6px;min-width:230px}td .actions button{font-size:12px;padding:5px 9px;min-height:32px}td.code{font-family:ui-monospace,SFMono-Regular,monospace;white-space:nowrap}.status-cell{min-width:105px}.date-cell{min-width:140px;white-space:nowrap}.pagination{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 0;color:#71828c;font-size:13px}.pagination-controls{display:flex;gap:8px;align-items:center}.form-grid{display:grid;align-items:start;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid .wide{grid-column:1/-1}.form-actions{display:flex;gap:10px;align-items:center;margin-top:15px;flex-wrap:wrap}.form-hint{color:#83919a;font-size:12px;margin-top:12px}.empty,.loading,.load-error{text-align:center;padding:42px 18px;background:#fff;color:#7b8d97}.load-error{color:#a83c3c}.load-error button{margin-left:10px}.error{color:#ac3f3f;font-size:13px;min-height:1em}.message{padding:12px 16px;margin-bottom:16px;border:1px solid #b9d8c9;background:#edf8f2;color:#327958;line-height:1.6;overflow-wrap:anywhere}.message.error{border-color:#e6bcbc;background:#fff2f2;color:#a33a3a}.login-screen{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-card{width:420px;max-width:100%;background:#fff;border:1px solid #d4dce1;border-top:4px solid #4195c2;padding:36px 38px;box-shadow:0 16px 36px #23313c17}.brand-mark{display:grid;place-items:center;width:54px;height:54px;background:#4195c2;color:#fff;font-size:20px;font-weight:750;border-radius:3px;margin-bottom:18px}.login-card h1{font-size:24px}.login-card>p{font-size:13px;color:#849099;margin:8px 0 20px}.login-card form{display:grid;gap:16px}.login-card .primary{height:42px;font-size:16px}dialog{width:480px;max-width:calc(100% - 32px);border:1px solid #cbd5db;border-top:4px solid #4195c2;padding:24px;color:#34424a;border-radius:3px;box-shadow:0 20px 80px #0003}dialog::backdrop{background:#10212b85}dialog h2{font-size:20px;margin-bottom:12px}dialog p{font-size:14px;margin-bottom:14px;white-space:pre-line}#dialog-fields{display:grid;gap:12px;max-height:50dvh;overflow:auto}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}details summary{cursor:pointer;font-weight:600;color:#488cae}details[open] summary{margin-bottom:16px}.export-panel{border-color:#b6d5e5;background:#f7fcff}.export-panel p{font-size:13px;margin-top:8px}.export-summary{font-family:ui-monospace,monospace;max-height:130px;overflow:auto;white-space:pre-wrap;background:#fff;padding:12px;border:1px solid #d5e4ed;margin-top:12px}.sidebar-backdrop{display:none}[hidden]{display:none!important}@media(min-width:1250px){.form-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.form-grid .wide{grid-column:span 2}}@media(max-width:700px){.topbar{padding:0 12px;gap:8px}.topbar strong{font-size:16px}.topbar-meta{gap:8px}.topbar-meta .data-label{display:none}#admin-name{max-width:90px;overflow:hidden;text-overflow:ellipsis}.menu-toggle{display:flex;align-items:center;justify-content:center;padding:4px;border:0!important}.sidebar{transform:translateX(-100%);transition:transform .18s}.sidebar.open{transform:translateX(0)}.sidebar-backdrop{display:block;position:fixed;inset:54px 0 0;border:0;border-radius:0;background:#14222b66;z-index:14}main{margin-left:0}.content{padding:12px}.breadcrumb{padding:0 14px}.page-heading{padding:16px}.page-heading>.pill{display:none}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.toolbar{align-items:stretch}.toolbar label:first-child{flex-basis:100%}.toolbar label{flex:1}.toolbar button{min-height:40px}.pagination{align-items:start;flex-direction:column}.panel{padding:14px}.login-card{padding:28px}.dialog-actions button{min-height:40px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
