:root{--seed-bg:#0a0f16;--seed-surface:#101823;--seed-fg:#e8eef5;--seed-primary:#34d399;--seed-primary-fg:#06251a;--seed-accent:#fbbf24;--seed-code-bg:#05090f;--seed-code-fg:#d6e2ee;--seed-radius:12px;--seed-pad:20px;--bg:var(--seed-bg);--surface:var(--seed-surface);--fg:var(--seed-fg);--primary:var(--seed-primary);--on-primary:var(--seed-primary-fg);--accent:var(--seed-accent);--code-bg:var(--seed-code-bg);--code-fg:var(--seed-code-fg);--radius:var(--seed-radius);--pad:var(--seed-pad);--muted:color-mix(in srgb, var(--fg) 60%, transparent);--faint:color-mix(in srgb, var(--fg) 38%, transparent);--border:color-mix(in srgb, var(--fg) 10%, transparent);--border-strong:color-mix(in srgb, var(--fg) 20%, transparent);--primary-soft:color-mix(in srgb, var(--primary) 14%, transparent);--primary-line:color-mix(in srgb, var(--primary) 45%, transparent);--shadow:0 10px 30px color-mix(in srgb, var(--fg) 8%, transparent);--sans:"Segoe UI", system-ui, -apple-system, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--mono:"Cascadia Code", "JetBrains Mono", Consolas, "SF Mono", Menlo, "Courier New", monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--sans);background:var(--bg);color:var(--fg);font-size:14px;line-height:1.6;overflow:hidden;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:repeating-linear-gradient(0deg,color-mix(in srgb,var(--fg) 2.2%,transparent) 0px,color-mix(in srgb,var(--fg) 2.2%,transparent) 1px,transparent 1px,transparent 4px);opacity:.35;mask-image:linear-gradient(180deg,rgba(0,0,0,.9),transparent 42%);-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.9),transparent 42%)}::selection{background:color-mix(in srgb,var(--primary) 30%,transparent)}:focus-visible{outline:1px dashed var(--primary-line);outline-offset:2px;border-radius:4px}button{font-family:inherit;cursor:pointer}input,textarea{font-family:inherit}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}svg{display:block;flex:none}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.app{position:relative;z-index:1;display:grid;grid-template-columns:252px 1fr;height:100vh}.sidebar{display:flex;flex-direction:column;min-height:0;background:color-mix(in srgb,var(--surface) 55%,var(--bg));border-right:1px solid var(--border);padding:18px 14px}.logo{display:flex;align-items:center;gap:10px;padding:2px 6px 16px}.logo-mark{width:34px;height:34px;border-radius:9px;flex:none;display:grid;place-items:center;background:linear-gradient(140deg,var(--primary),color-mix(in srgb,var(--primary) 55%,var(--bg)));color:var(--on-primary);font-family:var(--mono);font-weight:700;font-size:15px;box-shadow:0 4px 14px color-mix(in srgb,var(--primary) 30%,transparent)}.logo-mark:after{content:"_";animation:blink 1.2s steps(1) infinite}@keyframes blink{50%{opacity:0}}.logo-text{display:flex;flex-direction:column;line-height:1.25}.logo-text strong{font-size:15px;letter-spacing:.2px}.logo-text span{font-family:var(--mono);font-size:10.5px;color:var(--faint);letter-spacing:1.5px;text-transform:uppercase}.nav-label{font-family:var(--mono);font-size:10.5px;letter-spacing:1.6px;text-transform:uppercase;color:var(--faint);padding:10px 8px 6px}.cat-nav{display:flex;flex-direction:column;gap:2px;overflow-y:auto;min-height:0;flex:1}.nav-item{display:flex;align-items:center;gap:9px;width:100%;padding:8px 10px;border:none;border-radius:calc(var(--radius) * .66);background:transparent;color:var(--muted);font-size:13.5px;text-align:left;transition:background .15s,color .15s}.nav-item:hover{background:color-mix(in srgb,var(--fg) 5%,transparent);color:var(--fg)}.nav-item.active{background:var(--primary-soft);color:var(--fg);font-weight:600}.nav-item.active .count{color:var(--primary);opacity:1}.nav-item .dot{width:8px;height:8px;border-radius:50%;flex:none;background:hsl(var(--h,150) 62% 55%)}.nav-item .name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-item .count{font-family:var(--mono);font-size:11px;color:var(--faint)}.sidebar-foot{border-top:1px solid var(--border);padding-top:12px;display:flex;flex-direction:column;gap:6px}.stats-line{font-family:var(--mono);font-size:11px;color:var(--faint);padding:0 6px;letter-spacing:.3px}.main{display:flex;flex-direction:column;min-width:0;min-height:0}.profile-warning{margin:14px 32px 0;padding:9px 14px;font-size:12.5px;line-height:1.7;color:#fbbf24;background:color-mix(in srgb,#f59e0b 10%,transparent);border:1px solid color-mix(in srgb,#f59e0b 40%,transparent);border-radius:9px}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 28px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 92%,var(--surface))}.search-wrap{flex:1;min-width:220px;max-width:520px;display:flex;align-items:center;gap:9px;background:color-mix(in srgb,var(--surface) 80%,transparent);border:1px solid var(--border-strong);border-radius:999px;padding:8px 14px;color:var(--faint);transition:border-color .15s,box-shadow .15s}.search-wrap:focus-within{border-color:var(--primary-line);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 12%,transparent)}.search-wrap input{flex:1;background:none;border:none;outline:none;color:var(--fg);font-size:13.5px;min-width:0}.search-wrap input::placeholder{color:var(--faint)}.search-wrap kbd{font-family:var(--mono);font-size:10.5px;color:var(--faint);border:1px solid var(--border-strong);border-radius:5px;padding:1px 6px}.toolbar-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.ghost-btn{display:inline-flex;align-items:center;gap:6px;background:transparent;border:1px solid var(--border-strong);color:var(--muted);font-size:12.5px;padding:7px 13px;border-radius:999px;transition:color .15s,border-color .15s,background .15s}.ghost-btn:hover{color:var(--fg);border-color:color-mix(in srgb,var(--fg) 34%,transparent)}.primary-btn{display:inline-flex;align-items:center;gap:7px;background:var(--primary);border:1px solid transparent;color:var(--on-primary);font-size:13px;font-weight:600;padding:8px 16px;border-radius:999px;box-shadow:0 4px 16px color-mix(in srgb,var(--primary) 28%,transparent);transition:filter .15s,transform .05s}.primary-btn:hover{filter:brightness(1.08)}.primary-btn:active{transform:translateY(1px)}.content{overflow-y:auto;padding:26px 32px 80px;flex:1}.content-head{max-width:880px;margin:0 auto 18px;display:flex;align-items:baseline;gap:12px}.content-head h1{font-size:20px;font-weight:700;letter-spacing:.2px}.view-meta{font-family:var(--mono);font-size:11.5px;color:var(--faint);letter-spacing:.4px}.cards{max-width:880px;margin:0 auto;display:flex;flex-direction:column;gap:calc(var(--pad) * .9)}.card{background:color-mix(in srgb,var(--surface) 86%,transparent);border:1px solid var(--border);border-radius:var(--radius);padding:var(--pad);box-shadow:var(--shadow);transition:border-color .18s}.card:hover{border-color:var(--border-strong)}.card-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;letter-spacing:.3px;padding:3px 10px;border-radius:999px;color:hsl(var(--h,150) 68% 68%);background:hsl(var(--h,150) 62% 52% / .12);border:1px solid hsl(var(--h,150) 62% 55% / .3)}.chip i{width:6px;height:6px;border-radius:50%;background:hsl(var(--h,150) 70% 60%)}.card-meta{font-family:var(--mono);font-size:11px;color:var(--faint)}.card-actions{margin-left:auto;display:flex;gap:4px}.mini-btn{display:inline-flex;align-items:center;gap:5px;background:none;border:1px solid transparent;border-radius:8px;color:var(--faint);font-size:12px;padding:5px 9px;transition:color .15s,background .15s,border-color .15s}.mini-btn:hover{color:var(--fg);background:color-mix(in srgb,var(--fg) 6%,transparent);border-color:var(--border)}.mini-btn.armed{color:#f87171;background:color-mix(in srgb,#ef4444 14%,transparent);border-color:color-mix(in srgb,#ef4444 45%,transparent)}.card-title{font-size:16.5px;font-weight:700;margin:12px 0 4px;letter-spacing:.2px}.card-desc{color:var(--muted);font-size:13px;margin-bottom:14px}.steps{list-style:none;display:flex;flex-direction:column;gap:calc(var(--pad) * .55)}.step{display:flex;gap:12px}.step-num{font-family:var(--mono);font-size:11.5px;font-weight:600;color:var(--primary);background:var(--primary-soft);border:1px solid color-mix(in srgb,var(--primary) 24%,transparent);width:26px;height:26px;border-radius:8px;flex:none;display:grid;place-items:center;margin-top:1px}.step-body{flex:1;min-width:0}.step-text{font-size:13.5px;color:var(--fg)}.step-link{display:inline-flex;align-items:center;gap:5px;margin-top:5px;font-family:var(--mono);font-size:11.5px;color:var(--primary);border-bottom:1px dashed color-mix(in srgb,var(--primary) 40%,transparent);padding-bottom:1px}.step-link:hover{border-bottom-style:solid;text-decoration:none}.cmd{position:relative;margin-top:8px;background:var(--code-bg);border:1px solid color-mix(in srgb,var(--code-fg) 12%,transparent);border-radius:calc(var(--radius) * .7);overflow:hidden}.cmd pre{font-family:var(--mono);font-size:12.8px;line-height:1.65;color:var(--code-fg);padding:11px 74px 11px 14px;white-space:pre-wrap;word-break:break-all;overflow-x:auto}.cmd .prompt{color:var(--primary);font-weight:700;margin-right:8px;-webkit-user-select:none;user-select:none}.copy-btn{position:absolute;top:7px;right:7px;display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-family:var(--mono);color:var(--code-fg);background:color-mix(in srgb,var(--code-fg) 10%,transparent);border:1px solid color-mix(in srgb,var(--code-fg) 18%,transparent);border-radius:7px;padding:4px 9px;opacity:.75;transition:opacity .15s,background .15s,color .15s}.copy-btn:hover{opacity:1;background:color-mix(in srgb,var(--code-fg) 18%,transparent)}.copy-btn.copied{color:var(--primary);border-color:var(--primary-line);background:color-mix(in srgb,var(--primary) 14%,transparent);opacity:1}.auth-page{position:relative;z-index:1;height:100vh;display:grid;place-items:center;padding:24px;overflow-y:auto}.auth-card{width:min(420px,100%);background:color-mix(in srgb,var(--surface) 90%,transparent);border:1px solid var(--border-strong);border-radius:calc(var(--radius) + 6px);box-shadow:0 24px 70px #00000073;padding:30px 28px 26px}.auth-logo{display:flex;align-items:center;gap:12px;justify-content:center;margin-bottom:22px}.auth-logo .logo-mark{width:42px;height:42px;border-radius:11px;font-size:18px}.auth-logo .logo-text strong{font-size:18px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:color-mix(in srgb,var(--bg) 60%,transparent);border:1px solid var(--border);border-radius:999px;padding:4px;margin-bottom:18px}.auth-tab{background:none;border:none;border-radius:999px;color:var(--muted);font-size:13px;font-weight:600;padding:7px 0;transition:background .15s,color .15s}.auth-tab:hover{color:var(--fg)}.auth-tab.active{background:var(--primary);color:var(--on-primary)}.auth-form{display:flex;flex-direction:column;gap:2px}.auth-error{font-size:12.5px;color:#f87171;background:color-mix(in srgb,#ef4444 12%,transparent);border:1px solid color-mix(in srgb,#ef4444 40%,transparent);border-radius:9px;padding:8px 12px;margin-bottom:14px;word-break:break-all}.auth-notice{font-size:12.5px;color:#86efac;background:color-mix(in srgb,#22c55e 12%,transparent);border:1px solid color-mix(in srgb,#22c55e 35%,transparent);border-radius:9px;padding:8px 12px;margin-bottom:14px}.auth-code-row{display:flex;gap:8px;align-items:center}.auth-code-row input{min-width:0;flex:1}.text-btn{border:0;background:none;color:var(--muted);font-size:12px;cursor:pointer;padding:7px 0}.text-btn:hover{color:var(--primary)}.auth-submit{justify-content:center;margin-top:10px;padding:10px 0}.auth-submit:disabled{opacity:.55;cursor:not-allowed}.auth-hint{font-size:12px;color:var(--faint);text-align:center;margin-top:16px;line-height:1.7}.user-btn{max-width:180px}.user-btn .avatar{width:20px;height:20px;border-radius:50%;flex:none;display:grid;place-items:center;background:var(--primary);color:var(--on-primary);font-size:11px;font-weight:700}.user-btn .user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.code-list{display:flex;flex-direction:column;gap:6px;margin:4px 0 14px}.code-row{display:flex;align-items:center;gap:10px;background:color-mix(in srgb,var(--bg) 60%,transparent);border:1px solid var(--border);border-radius:9px;padding:8px 12px}.code-row code{flex:1;font-family:var(--mono);font-size:13px;letter-spacing:.6px;color:var(--primary);word-break:break-all}.code-status{font-family:var(--mono);font-size:11px;color:var(--primary);background:var(--primary-soft);border-radius:999px;padding:2px 9px;flex:none}.code-status.used{color:var(--faint);background:transparent;border:1px solid var(--border)}.code-list-table .code-row{padding:6px 10px}.code-stats{font-family:var(--mono);font-size:11.5px;color:var(--faint);display:flex;gap:12px;margin:2px 0 10px;padding:0 2px}.code-stats b{color:var(--fg);font-weight:600}.code-stats b.ok{color:var(--primary)}.code-stats b.used{color:var(--faint)}.code-user{flex:none;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty{max-width:520px;margin:60px auto;text-align:center;border:1px dashed var(--border-strong);border-radius:var(--radius);padding:44px 24px;color:var(--muted)}.empty .empty-glyph{font-family:var(--mono);font-size:26px;color:var(--faint);margin-bottom:10px}.empty p{margin-bottom:18px;font-size:13.5px}.empty .primary-btn,.empty .ghost-btn{margin:0 auto}.empty .err-box{font-family:var(--mono);font-size:11.5px;color:var(--faint);background:color-mix(in srgb,var(--bg) 70%,transparent);border:1px solid var(--border);border-radius:8px;padding:10px 14px;margin-bottom:16px;text-align:left;word-break:break-all;max-height:120px;overflow:auto}.empty .actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:color-mix(in srgb,var(--bg) 55%,rgba(0,0,0,.62));display:grid;place-items:center;padding:24px}.modal{width:min(720px,100%);max-height:88vh;overflow-y:auto;background:var(--surface);border:1px solid var(--border-strong);border-radius:calc(var(--radius) + 4px);box-shadow:0 24px 70px #00000073;padding:24px}.modal h2{font-size:17px;margin-bottom:18px;display:flex;align-items:center;gap:9px}.modal h2 .term{font-family:var(--mono);color:var(--primary);font-size:13px}.field{margin-bottom:14px}.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px;letter-spacing:.3px}.field label b{color:var(--accent);font-weight:600}.field input,.field textarea,.field select{width:100%;background:color-mix(in srgb,var(--fg) 5%,var(--bg));border:1px solid var(--border-strong);border-radius:9px;color:var(--fg);font-size:13.5px;padding:9px 12px;outline:none;transition:border-color .15s,box-shadow .15s}.field input:focus,.field textarea:focus{border-color:var(--primary-line);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 12%,transparent)}.field textarea{resize:vertical}.field .mono{font-family:var(--mono);font-size:12.5px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.steps-editor-head{display:flex;align-items:center;justify-content:space-between;margin:18px 0 8px}.steps-editor-head span{font-size:12px;color:var(--muted);letter-spacing:.3px}.add-step-btn{display:inline-flex;align-items:center;gap:6px;background:var(--primary-soft);color:var(--primary);border:1px dashed var(--primary-line);font-size:12.5px;font-weight:600;padding:6px 12px;border-radius:999px;transition:background .15s}.add-step-btn:hover{background:color-mix(in srgb,var(--primary) 22%,transparent)}.step-row{border:1px solid var(--border);border-radius:calc(var(--radius) * .8);padding:12px;margin-bottom:10px;background:color-mix(in srgb,var(--bg) 50%,var(--surface));display:flex;flex-direction:column;gap:8px}.step-row-head{display:flex;gap:8px;align-items:center}.step-row-head .idx{font-family:var(--mono);font-size:11px;color:var(--primary);background:var(--primary-soft);border-radius:6px;padding:3px 7px;flex:none}.step-row-head input{flex:1;padding:6px 10px}.s-del{flex:none;width:30px;height:30px;display:grid;place-items:center;background:none;border:1px solid transparent;border-radius:8px;color:var(--faint);transition:color .15s,background .15s}.s-del:hover{color:#f87171;background:color-mix(in srgb,#ef4444 12%,transparent)}.modal-foot{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.s-move{flex:none;width:30px;height:30px;display:grid;place-items:center;background:none;border:1px solid transparent;border-radius:8px;color:var(--faint);font-size:13px;line-height:1;transition:color .15s,background .15s,border-color .15s}.s-move:hover{color:var(--primary);background:var(--primary-soft);border-color:var(--primary-line)}.s-move:disabled{opacity:.25;pointer-events:none}.s-links{display:grid;grid-template-columns:1fr 1fr;gap:8px}.step-row input,.step-row textarea{background:color-mix(in srgb,var(--fg) 5%,var(--bg));border:1px solid var(--border);border-radius:8px;color:var(--fg);font-size:13px;padding:8px 10px;outline:none;transition:border-color .15s,box-shadow .15s}.step-row input:focus,.step-row textarea:focus{border-color:var(--primary-line);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 12%,transparent)}.step-row textarea{resize:vertical}.set-group{margin-bottom:20px}.set-label{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted);margin-bottom:9px;letter-spacing:.3px}.set-label .range-val{font-family:var(--mono);font-size:11.5px;color:var(--primary);background:var(--primary-soft);border-radius:6px;padding:1px 8px}.preset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.preset-card{display:flex;flex-direction:column;align-items:center;gap:9px;background:color-mix(in srgb,var(--bg) 60%,transparent);border:1px solid var(--border);border-radius:calc(var(--radius) * .8);padding:14px 10px 12px;color:var(--muted);font-size:12.5px;transition:border-color .15s,color .15s,background .15s}.preset-card:hover{border-color:var(--border-strong);color:var(--fg)}.preset-card.active{border-color:var(--primary-line);background:var(--primary-soft);color:var(--fg);font-weight:600;box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 10%,transparent)}.preset-swatches{display:flex;gap:3px}.preset-swatches i{width:16px;height:16px;border-radius:5px;border:1px solid color-mix(in srgb,var(--fg) 16%,transparent)}.preset-name{display:flex;align-items:center;gap:6px}.preset-card.active .preset-name:before{content:"✓";color:var(--primary);font-weight:700}.color-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.swatch-row{display:flex;gap:8px}.swatch{width:26px;height:26px;border-radius:50%;border:2px solid transparent;background:var(--c);box-shadow:0 2px 8px color-mix(in srgb,var(--c) 35%,transparent);transition:transform .12s,border-color .12s}.swatch:hover{transform:scale(1.12)}.swatch.active{border-color:var(--fg);transform:scale(1.12)}.color-picker{display:inline-flex;align-items:center;gap:8px;background:color-mix(in srgb,var(--bg) 60%,transparent);border:1px solid var(--border-strong);border-radius:999px;padding:4px 12px 4px 5px;cursor:pointer;transition:border-color .15s}.color-picker:hover{border-color:var(--primary-line)}.color-picker input{width:22px;height:22px;border:none;padding:0;background:none;cursor:pointer}.color-picker span{font-family:var(--mono);font-size:11.5px;color:var(--muted)}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;border-radius:99px;background:linear-gradient(to right,var(--primary) var(--p, 50%),color-mix(in srgb,var(--fg) 14%,transparent) var(--p, 50%));outline:none}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:17px;height:17px;border-radius:50%;background:var(--primary);border:2.5px solid var(--surface);cursor:pointer;box-shadow:0 0 0 1px var(--primary-line),0 2px 8px color-mix(in srgb,var(--primary) 40%,transparent)}input[type=range]::-moz-range-thumb{width:13px;height:13px;border-radius:50%;background:var(--primary);border:2.5px solid var(--surface);cursor:pointer;box-shadow:0 0 0 1px var(--primary-line)}.toast{position:fixed;left:50%;bottom:30px;z-index:99;transform:translate(-50%,16px);display:flex;align-items:center;gap:8px;background:var(--surface);color:var(--fg);border:1px solid var(--border-strong);border-left:3px solid var(--primary);border-radius:999px;padding:9px 18px;font-size:13px;box-shadow:0 10px 30px #0006;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}.toast.show{opacity:1;transform:translate(-50%)}.toast.err{border-left-color:#f87171}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--fg) 14%,transparent);border-radius:8px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--fg) 24%,transparent)}::-webkit-scrollbar-track{background:transparent}@media (max-width:880px){.app{grid-template-columns:1fr;grid-template-rows:auto 1fr}.sidebar{flex-direction:column;border-right:none;border-bottom:1px solid var(--border);padding:12px 14px}.logo{padding-bottom:8px}.cat-nav{flex-direction:row;overflow-x:auto;overflow-y:hidden;gap:6px;padding-bottom:4px}.nav-item{width:auto;flex:none;border:1px solid var(--border);border-radius:999px;padding:6px 12px}.nav-label,.sidebar-foot{display:none}.content{padding:18px 16px 60px}.toolbar{padding:12px 16px}.search-wrap kbd,.user-btn .user-name{display:none}.user-btn{max-width:none}}@media (max-width:560px){.toolbar-actions{width:100%;margin-left:0;overflow-x:auto;scrollbar-width:none}.toolbar-actions::-webkit-scrollbar{display:none}.toolbar-actions>*{flex:none}}@media (prefers-reduced-motion:reduce){.logo-mark:after{animation:none}*{transition:none!important}}.expire-badge{font-family:var(--mono);font-size:11px;font-weight:600;border-radius:999px;padding:4px 10px;flex:none;border:1px solid var(--border);background:transparent;transition:background .15s,color .15s,border-color .15s}.expire-badge.ok{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 40%,transparent)}.expire-badge.warn{color:#fbbf24;border-color:color-mix(in srgb,#f59e0b 45%,transparent)}.expire-badge.expired{color:#f87171;border-color:color-mix(in srgb,#ef4444 45%,transparent);background:color-mix(in srgb,#ef4444 8%,transparent)}.expire-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 32px 0;padding:9px 14px;font-size:12.5px;line-height:1.7;color:#f87171;background:color-mix(in srgb,#ef4444 10%,transparent);border:1px solid color-mix(in srgb,#ef4444 35%,transparent);border-radius:10px}.expire-banner .primary-btn{flex:none;padding:6px 12px;font-size:12px}.sub-status{font-family:var(--mono);font-size:12.5px;margin:2px 0 10px;padding:0 2px}.sub-status.ok{color:var(--primary)}.sub-status.warn{color:#fbbf24}.sub-status.expired{color:#f87171}.auth-hint-left{text-align:left;margin-top:8px}.redeem-history{margin-top:8px}.redeem-range{font-family:var(--mono);font-size:11px;flex:none}.admin-tabs{grid-template-columns:repeat(3,1fr);margin-bottom:14px}.batch-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:10px}@media (max-width:560px){.batch-grid{grid-template-columns:1fr}}.batch-name{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-btn.danger{color:#f87171}.mini-btn.danger:hover{color:#fca5a5;background:color-mix(in srgb,#ef4444 10%,transparent);border-color:color-mix(in srgb,#ef4444 40%,transparent)}
