:root{
  color-scheme:light;--ink:#202521;--muted:#66706a;--canvas:#f4f2ec;--surface:#fff;--surface-soft:#f8f7f2;
  --line:#ddd9cf;--line-strong:#c8c2b6;--green:#173e35;--green-2:#24594c;--green-soft:#e7efe9;
  --orange:#b85c38;--orange-soft:#f7e9df;--danger:#b42318;--danger-soft:#fef0ed;--success:#247a52;
  --warning:#8a5b08;--warning-soft:#fff4d6;--shadow:0 20px 60px rgba(28,39,34,.12);--radius:12px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
}
*{box-sizing:border-box}html{min-width:320px;background:var(--canvas);scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:var(--font);font-size:14px;line-height:1.55;background:var(--canvas)}
button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit}.skip-link{position:fixed;left:16px;top:-80px;z-index:9999;padding:10px 16px;color:#fff;background:var(--green);border-radius:8px}.skip-link:focus{top:16px}
:focus-visible{outline:3px solid rgba(184,92,56,.4);outline-offset:2px}.shell{min-height:100vh;display:grid;grid-template-columns:248px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;background:var(--green);color:#eff5f2;padding:24px 16px 18px;display:flex;flex-direction:column;overflow:auto}.brand{display:flex;align-items:center;gap:12px;padding:0 10px 24px;border-bottom:1px solid rgba(255,255,255,.12)}
.brand-mark{width:40px;height:40px;border:1px solid rgba(255,255,255,.36);display:grid;place-items:center;overflow:hidden;font-family:Georgia,serif;font-weight:800;font-size:22px;color:#f4ddb0}.brand-mark.has-image{background:#f4ead2}.brand-mark img{width:100%;height:100%;object-fit:cover}.brand strong{display:block;font-size:17px;letter-spacing:.08em}.brand small{display:block;color:#a9c1b8;font-size:11px;letter-spacing:.16em}
.nav-label{padding:22px 12px 8px;color:#82a397;font-size:11px;letter-spacing:.14em;text-transform:uppercase}.nav{display:grid;gap:4px}.nav-button{width:100%;min-height:42px;border:0;border-radius:8px;background:transparent;color:#cfddd8;text-align:left;padding:9px 12px;display:flex;gap:10px;align-items:center;transition:background .18s,color .18s}.nav-button:hover{background:rgba(255,255,255,.08);color:#fff}.nav-button.active{background:#f4ead2;color:#173e35;font-weight:700}.nav-icon{width:20px;text-align:center;font-size:15px}.side-footer{margin-top:auto;padding:16px 10px 0;border-top:1px solid rgba(255,255,255,.12);color:#a9c1b8;font-size:12px}.side-footer strong{display:block;color:#fff;font-size:13px}.main{min-width:0}.topbar{height:70px;padding:0 30px;display:flex;align-items:center;justify-content:space-between;background:rgba(244,242,236,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.breadcrumb{color:var(--muted)}.breadcrumb strong{color:var(--ink)}.top-actions{display:flex;align-items:center;gap:12px}.live-dot{width:7px;height:7px;border-radius:50%;background:#38a169;box-shadow:0 0 0 4px rgba(56,161,105,.12)}.account-chip{display:flex;align-items:center;gap:9px;padding:6px 8px 6px 6px;border-radius:8px}.avatar{width:34px;height:34px;border-radius:8px;background:var(--green);color:#fff;display:grid;place-items:center;font-weight:800}.account-chip small{display:block;color:var(--muted)}
.icon-btn.mobile-menu{display:none}.content{max-width:1600px;margin:auto;padding:30px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.eyebrow{color:var(--orange);font-size:11px;font-weight:800;letter-spacing:.15em;text-transform:uppercase}.page-head h1{margin:4px 0 2px;font-family:Georgia,"Noto Serif SC",serif;font-size:30px;line-height:1.2;letter-spacing:-.02em}.page-head p{margin:0;color:var(--muted);max-width:760px}.page-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.btn{min-height:40px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;padding:8px 15px;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:7px;text-decoration:none;transition:transform .15s,box-shadow .15s,background .15s}.btn:hover:not(:disabled){box-shadow:0 6px 18px rgba(30,44,36,.09);transform:translateY(-1px)}.btn-primary{background:var(--green);border-color:var(--green);color:#fff}.btn-danger{color:var(--danger);border-color:#e9b4ae;background:#fff}.btn-ghost{background:transparent}.btn-small{min-height:32px;padding:5px 10px;font-size:12px}.icon-btn{width:40px;height:40px;border:1px solid var(--line);border-radius:8px;background:#fff;display:grid;place-items:center}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;position:relative;overflow:hidden}.stat:after{content:"";position:absolute;right:-18px;bottom:-32px;width:96px;height:96px;border:18px solid var(--green-soft);border-radius:50%}.stat-label{color:var(--muted);font-size:13px}.stat-value{display:block;margin-top:8px;font:700 30px/1 Georgia,serif;letter-spacing:-.04em}.stat-meta{margin-top:9px;color:var(--muted);font-size:12px}.stat-meta strong{color:var(--success)}
.grid-2{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:16px}.grid-2>*{min-width:0}.panel{min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.panel+.panel{margin-top:16px}.panel-head{min-height:58px;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.panel-head h2,.panel-head h3{font-size:15px;margin:0}.panel-head p{color:var(--muted);font-size:12px;margin:2px 0 0}.panel-body{padding:18px}.empty{padding:54px 18px;text-align:center;color:var(--muted)}.empty strong{display:block;color:var(--ink);font-size:16px;margin-bottom:4px}
.filters{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;padding:14px 16px;background:var(--surface-soft);border-bottom:1px solid var(--line)}.field{display:grid;gap:6px;min-width:150px}.field.grow{flex:1}.field label{font-size:12px;color:var(--muted);font-weight:650}.field-help{color:var(--muted);font-size:11px;line-height:1.45}.input,.select,.textarea{width:100%;min-height:40px;padding:8px 11px;border:1px solid var(--line-strong);border-radius:8px;background:#fff;transition:border .15s,box-shadow .15s}.input:hover,.select:hover,.textarea:hover{border-color:#9b9b90}.input:focus,.select:focus,.textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(23,62,53,.1);outline:none}.textarea{min-height:84px;resize:vertical}.hint{font-size:11px;color:var(--muted)}
.guide-panel{margin-bottom:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.guide-panel summary{min-height:62px;padding:14px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;list-style:none}.guide-panel summary::-webkit-details-marker{display:none}.guide-panel summary strong{display:block;font-size:15px}.guide-panel summary small{display:block;margin-top:2px;color:var(--muted);font-size:12px;font-weight:400}.guide-toggle{color:var(--green);font-size:12px;font-weight:700;white-space:nowrap}.guide-body{padding:0 18px 18px;border-top:1px solid var(--line)}.guide-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0;padding:0;list-style:none;counter-reset:guide}.guide-steps li{min-width:0;padding:14px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);counter-increment:guide}.guide-steps li:before{content:counter(guide);width:24px;height:24px;margin-bottom:10px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font-size:11px;font-weight:800}.guide-steps strong,.guide-steps span{display:block}.guide-steps span{margin-top:5px;color:var(--muted);font-size:12px}.guide-example{padding:13px 15px;border:1px solid var(--line);border-radius:9px;background:#fff}.guide-example p{margin:4px 0 0;color:var(--muted);font-size:12px}
.table-wrap{max-width:100%;overflow:auto}.table{width:100%;border-collapse:collapse;min-width:760px}.table th{padding:11px 14px;text-align:left;font-size:11px;color:var(--muted);font-weight:750;background:#fbfaf7;border-bottom:1px solid var(--line);white-space:nowrap}.table td{padding:13px 14px;border-bottom:1px solid #ece9e1;vertical-align:middle}.table tr:last-child td{border-bottom:0}.table tbody tr:hover{background:#fbfaf7}.cell-main{font-weight:680}.cell-sub{display:block;color:var(--muted);font-size:12px;margin-top:2px}.code{font:700 13px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.06em}.money{font-family:Georgia,serif;font-weight:700}.actions{display:flex;gap:6px;justify-content:flex-end;white-space:nowrap}.status{display:inline-flex;align-items:center;gap:5px;min-height:24px;padding:2px 8px;border-radius:6px;background:#eef0ed;color:#4f5a54;font-size:11px;font-weight:750;white-space:nowrap}.status:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status-active,.status-verified,.status-sent{background:var(--green-soft);color:var(--success)}.status-pending,.status-frozen{background:var(--warning-soft);color:var(--warning)}.status-disabled,.status-expired,.status-failed{background:var(--danger-soft);color:var(--danger)}.status-unused,.status-lose,.status-skipped{background:#eef0ed;color:#66706a}.status-redeemed{background:#e9eef8;color:#385a92}
.rank{display:grid;gap:13px}.rank-row{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:10px}.rank-no{width:22px;height:22px;border-radius:6px;background:var(--surface-soft);display:grid;place-items:center;font:700 11px Georgia,serif}.bar{height:6px;margin-top:6px;background:#eceae3;border-radius:3px;overflow:hidden}.bar span{display:block;height:100%;background:var(--green)}.alerts{display:grid;gap:10px}.alert-row{padding:12px;border:1px solid var(--line);border-left:3px solid var(--orange);border-radius:8px}.alert-row strong{display:flex;justify-content:space-between;gap:8px}.alert-row p{margin:4px 0 0;color:var(--muted);font-size:12px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid .span-2{grid-column:1/-1}.switch-row{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 12px;border:1px solid var(--line);border-radius:8px}.switch{appearance:none;width:42px;height:24px;border:0;border-radius:12px;background:#a9afa9;position:relative;transition:background .18s}.switch:before{content:"";position:absolute;width:18px;height:18px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .18s}.switch:checked{background:var(--green)}.switch:checked:before{transform:translateX(18px)}
.settings-sections{display:grid}.settings-section{padding:22px 20px}.settings-section+.settings-section{border-top:1px solid var(--line)}.settings-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.settings-section-head>div{display:flex;align-items:center;gap:9px}.settings-section-head span{color:var(--orange);font:700 12px Georgia,serif}.settings-section-head h3{margin:0;font-size:16px}.settings-section-head p{margin:1px 0 0;color:var(--muted);font-size:12px;text-align:right}.textarea-tall{min-height:120px}.flow-list{display:grid}.flow-row{display:grid;grid-template-columns:38px minmax(0,1fr);gap:14px;padding:16px 0;border-top:1px solid var(--line)}.flow-row:first-child{padding-top:0;border-top:0}.flow-row:last-child{padding-bottom:0}.flow-number{width:34px;height:34px;border:1px solid var(--line-strong);border-radius:8px;display:grid;place-items:center;color:var(--green);font:700 12px Georgia,serif}.flow-row .form-grid{grid-template-columns:minmax(180px,.45fr) minmax(260px,1fr)}
.image-uploader{display:grid;grid-template-columns:132px minmax(0,1fr);gap:16px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft)}.image-field-landscape .image-uploader{grid-template-columns:180px minmax(0,1fr)}.image-preview{width:132px;aspect-ratio:1;border:1px dashed var(--line-strong);border-radius:9px;background:#fff;display:grid;place-items:center;overflow:hidden;color:var(--muted);font-size:12px}.image-preview-landscape{width:180px;aspect-ratio:3/2}.image-preview img{width:100%;height:100%;object-fit:contain}.image-upload-copy strong{font-size:13px}.image-upload-copy p{max-width:560px;margin:4px 0 11px;color:var(--muted);font-size:12px}.image-upload-actions{display:flex;gap:8px;margin-bottom:6px;flex-wrap:wrap}.image-upload-actions .is-loading{pointer-events:none;opacity:.55}.prize-cell{display:flex;align-items:center;gap:10px;min-width:190px}.prize-thumb{flex:0 0 auto;width:44px;height:44px;border:1px solid var(--line);border-radius:7px;background:var(--surface-soft);display:grid;place-items:center;overflow:hidden;color:var(--muted);font-size:10px}.prize-thumb img{width:100%;height:100%;object-fit:contain}
.location-tools{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 14px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft)}.location-tools strong{font-size:13px}.location-tools p{margin:3px 0 0;color:var(--muted);font-size:12px}.location-actions{display:flex;gap:8px;flex:0 0 auto;flex-wrap:wrap}
.account-create{padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--line)}.account-create-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:15px}.account-create-head h3{margin:0;font-size:15px}.account-create-head p{margin:3px 0 0;color:var(--muted);font-size:12px}.account-create-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.account-create-actions{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:16px}.account-create-actions span{color:var(--muted);font-size:12px}.account-table{border:1px solid var(--line);border-radius:10px}.account-empty{padding:30px 16px}.scope-note{margin-bottom:16px;padding:13px 16px;border:1px solid #bfd2c9;border-radius:10px;background:var(--green-soft);display:flex;align-items:center;justify-content:space-between;gap:18px}.scope-note strong{color:var(--green)}.scope-note span{color:var(--muted);font-size:12px;text-align:right}
.modal-backdrop{position:fixed;inset:0;z-index:80;background:rgba(14,28,22,.54);display:grid;place-items:center;padding:24px;animation:fade .16s ease}.modal{width:min(680px,100%);max-height:min(86vh,900px);overflow:auto;background:var(--surface);border-radius:14px;box-shadow:var(--shadow);animation:rise .18s ease}.modal-head{position:sticky;top:0;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 20px;background:rgba(255,255,255,.96);border-bottom:1px solid var(--line)}.modal-head h2{font-size:18px;margin:0}.modal-head p{color:var(--muted);margin:3px 0 0;font-size:12px}.modal-body{padding:20px}.modal-foot{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;background:rgba(255,255,255,.96);border-top:1px solid var(--line)}
.toast-root{position:fixed;z-index:120;right:20px;top:20px;display:grid;gap:10px}.toast{width:min(370px,calc(100vw - 40px));padding:13px 15px;border-radius:10px;background:#173e35;color:#fff;box-shadow:var(--shadow);animation:slide .2s ease}.toast.error{background:#7a211a}.toast strong{display:block}.toast span{display:block;opacity:.82;font-size:12px;margin-top:2px}.login{min-height:100vh;display:grid;grid-template-columns:minmax(320px,.8fr) minmax(480px,1.2fr);background:var(--surface)}.login-art{position:relative;padding:60px;display:flex;flex-direction:column;justify-content:space-between;color:#fff;background:var(--green);overflow:hidden}.login-art:before,.login-art:after{content:"";position:absolute;border:1px solid rgba(244,221,176,.24);border-radius:50%}.login-art:before{width:520px;height:520px;left:-180px;bottom:-200px}.login-art:after{width:330px;height:330px;right:-140px;top:-80px}.login-brand{position:relative;z-index:1;font:700 20px Georgia,serif;letter-spacing:.12em;color:#f4ddb0}.login-copy{position:relative;z-index:1;max-width:540px}.login-copy .kicker{font-size:11px;letter-spacing:.18em;color:#a9c1b8}.login-copy h1{margin:12px 0 16px;font:700 clamp(38px,5vw,72px)/1.06 Georgia,"Noto Serif SC",serif;letter-spacing:-.045em}.login-copy p{max-width:460px;color:#b8cbc4;font-size:16px}.login-note{position:relative;z-index:1;color:#91ada3;font-size:12px}.login-main{display:grid;place-items:center;padding:40px}.login-card{width:min(420px,100%)}.login-card h2{font:700 30px Georgia,"Noto Serif SC",serif;margin:0}.login-card>p{color:var(--muted);margin:7px 0 30px}.login-form{display:grid;gap:16px}.login-help{margin-top:24px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);font-size:12px;color:var(--muted)}.login-help code{color:var(--green);font-weight:750}.loading{min-height:280px;display:grid;place-items:center;color:var(--muted)}.spinner{width:30px;height:30px;border:3px solid #d8dedb;border-top-color:var(--green);border-radius:50%;animation:spin .8s linear infinite;margin:auto auto 10px}.pagination{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-top:1px solid var(--line);color:var(--muted)}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade{from{opacity:0}}@keyframes rise{from{opacity:0;transform:translateY(10px)}}@keyframes slide{from{opacity:0;transform:translateX(12px)}}
@media(max-width:1100px){.shell{grid-template-columns:210px minmax(0,1fr)}.sidebar{padding-left:10px;padding-right:10px}.stats{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.guide-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.content{padding:24px}.topbar{padding:0 24px}}
@media(max-width:760px){.shell{display:block}.sidebar{position:fixed;left:0;top:0;z-index:60;width:260px;transform:translateX(-100%);transition:transform .2s;box-shadow:var(--shadow)}.shell.menu-open .sidebar{transform:none}.icon-btn.mobile-menu{display:grid}.topbar{height:62px;padding:0 16px}.topbar .live-label,.account-chip>div{display:none}.content{padding:20px 14px}.page-head{align-items:flex-start;flex-direction:column}.page-actions{justify-content:flex-start}.page-head h1{font-size:26px}.stats{grid-template-columns:1fr 1fr;gap:10px}.stat{padding:16px}.stat-value{font-size:25px}.guide-steps{grid-template-columns:1fr}.form-grid,.flow-row .form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.settings-section{padding:18px 14px}.settings-section-head{display:block}.settings-section-head p{text-align:left;margin-top:4px}.flow-row{grid-template-columns:32px minmax(0,1fr);gap:10px}.flow-number{width:30px;height:30px}.image-uploader,.image-field-landscape .image-uploader{grid-template-columns:96px minmax(0,1fr);gap:12px}.image-preview,.image-preview-landscape{width:96px}.location-tools{align-items:flex-start;flex-direction:column}.login{display:block;background:var(--surface)}.login-art{min-height:280px;padding:34px 24px}.login-copy h1{font-size:38px}.login-note{display:none}.login-main{padding:38px 24px}.filters{align-items:stretch}.filters .field{width:100%}.modal-backdrop{padding:0;align-items:end}.modal{width:100%;max-height:92vh;border-radius:16px 16px 0 0}.toast-root{right:12px;top:12px}.pagination{gap:10px;flex-wrap:wrap}}
@media(max-width:430px){.stats{grid-template-columns:1fr}.top-actions .btn{display:none}}
@media(max-width:760px){.account-create-grid{grid-template-columns:1fr}.account-create-actions{grid-column:auto;align-items:stretch;flex-direction:column}.account-create-actions .btn{width:100%}.scope-note{align-items:flex-start;flex-direction:column}.scope-note span{text-align:left}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
