:root{--accent: #7c3aed;--accent-2: #ec4899;--brand-ink: #ffffff;--c-violet: #8b5cf6;--c-blue: #3b82f6;--c-cyan: #06b6d4;--c-green: #10b981;--c-amber: #f59e0b;--c-rose: #f43f5e;--c-orange: #fb7185;--c-pink: #ec4899;--bg: #f7f6fc;--surface: #ffffff;--surface-2: #f4f3fb;--border: #ecebf5;--ink: #271d44;--ink-2: #6b6390;--ink-3: #a39ec0;--ok: #059669;--ok-bg: #d1fae5;--warn: #c2410c;--warn-bg: #ffedd5;--danger: #e11d48;--danger-bg: #ffe4e6;--info: #2563eb;--info-bg: #dbeafe;--radius: 20px;--radius-sm: 13px;--shadow: 0 2px 6px rgba(80, 50, 140, .06), 0 12px 30px rgba(80, 50, 140, .1);--shadow-lg: 0 14px 44px rgba(80, 50, 140, .22);--shadow-accent: 0 8px 20px color-mix(in srgb, var(--accent-2) 38%, transparent);--maxw: 560px;--nav-h: 66px;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);--grad: linear-gradient(135deg, var(--accent), var(--accent-2))}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--ink);background:radial-gradient(700px 420px at 100% -6%,rgba(236,72,153,.15),transparent 58%),radial-gradient(680px 420px at 0% 2%,rgba(124,58,237,.15),transparent 56%),radial-gradient(620px 460px at 100% 58%,rgba(245,158,11,.11),transparent 58%),radial-gradient(620px 480px at 0% 100%,rgba(16,185,129,.11),transparent 60%),radial-gradient(680px 520px at 50% 116%,rgba(6,182,212,.11),transparent 62%),var(--bg);background-attachment:fixed;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}input,button,textarea,select{font-family:inherit}.app{max-width:var(--maxw);margin:0 auto;min-height:100%;display:flex;flex-direction:column}.app-header{position:sticky;top:0;z-index:20;padding:calc(var(--safe-t) + 12px) 16px 12px;display:flex;align-items:center;gap:12px;background:#ffffffbd;backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid var(--border)}.app-header .logo{width:38px;height:38px;border-radius:12px;flex:none;background:linear-gradient(135deg,#7c3aed,#ec4899 55%,#f59e0b);display:grid;place-items:center;color:#fff;box-shadow:0 6px 16px #ec489966}.app-header .titles{min-width:0;flex:1}.app-header h1{font-size:16px;font-weight:800;margin:0;letter-spacing:-.01em}.app-header .sub{font-size:12px;color:var(--ink-2);margin-top:1px}.app-header .hbtn{flex:none;border:1px solid var(--border);background:var(--surface);color:var(--accent);border-radius:11px;height:36px;padding:0 12px;display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;cursor:pointer;box-shadow:var(--shadow)}.app-header .hbtn:active{transform:scale(.97)}.app-main{flex:1;padding:16px 16px calc(var(--nav-h) + var(--safe-b) + 24px);display:flex;flex-direction:column;gap:14px;animation:fade .24s ease}@keyframes fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;margin:0 auto;max-width:var(--maxw);height:calc(var(--nav-h) + var(--safe-b));padding-bottom:var(--safe-b);display:flex;background:#ffffffd6;backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px);border-top:1px solid var(--border)}.bottom-nav button{flex:1;border:none;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--ink-3);font-size:10.5px;font-weight:700;padding:8px 4px}.bottom-nav button.active{color:var(--accent)}.bottom-nav button.active .ico-wrap{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}.bottom-nav .ico-wrap{width:42px;height:28px;border-radius:10px;display:grid;place-items:center;transition:background .18s}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card.tight{padding:0;overflow:hidden}.section-title{font-size:13px;font-weight:800;color:var(--ink-2);margin:4px 2px;letter-spacing:.01em}.big-choice{position:relative;overflow:hidden;display:flex;align-items:center;gap:14px;width:100%;text-align:left;cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;transition:transform .12s,box-shadow .18s}.big-choice:active{transform:scale(.99)}.big-choice:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(180deg,var(--accent),var(--accent-2))}.big-choice .bc-ico{width:52px;height:52px;border-radius:16px;flex:none;display:grid;place-items:center;color:#fff;box-shadow:var(--shadow-accent)}.big-choice h3{margin:0;font-size:16.5px;font-weight:800}.big-choice p{margin:3px 0 0;font-size:13px;color:var(--ink-2);line-height:1.35}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field>label{font-size:13px;font-weight:800;color:var(--ink)}.field .hint{font-size:12px;color:var(--ink-3)}.input,.textarea,.select{width:100%;border:1.5px solid var(--border);background:var(--surface-2);color:var(--ink);border-radius:var(--radius-sm);padding:13px 14px;font-size:16px;outline:none;transition:border-color .15s,box-shadow .15s,background .15s}.input::placeholder,.textarea::placeholder{color:var(--ink-3)}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);background:#fff;box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 16%,transparent)}.textarea{resize:vertical;min-height:78px;line-height:1.4}.input.invalid,.select.invalid{border-color:var(--danger);box-shadow:0 0 0 4px #e11d481f}.btn{width:100%;border:none;cursor:pointer;background:var(--grad);color:var(--brand-ink);border-radius:var(--radius-sm);padding:15px 16px;font-size:15px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:8px;box-shadow:var(--shadow-accent);transition:transform .1s,opacity .15s,box-shadow .18s}.btn:active{transform:scale(.985)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.btn.secondary{background:var(--surface);color:var(--accent);border:1.5px solid var(--border);box-shadow:var(--shadow)}.btn.danger{background:linear-gradient(135deg,#fb7185,var(--danger));box-shadow:0 8px 20px #e11d484d;color:#fff}.btn.ghost{background:transparent;color:var(--accent);box-shadow:none}.btn.sm{width:auto;padding:9px 13px;font-size:13px;box-shadow:none}.segmented{display:flex;gap:6px;background:var(--surface-2);border:1.5px solid var(--border);border-radius:13px;padding:5px}.segmented button{flex:1;border:none;background:none;cursor:pointer;border-radius:10px;padding:12px 8px;font-size:14px;font-weight:800;color:var(--ink-2);display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background .15s,color .15s,box-shadow .15s}.segmented button.on{background:var(--grad);color:#fff;box-shadow:var(--shadow-accent)}.segmented button:disabled{opacity:.4;cursor:not-allowed}.row{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border)}.row:last-child{border-bottom:none}.row .r-main{min-width:0;flex:1}.row .r-title{font-size:14.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row .r-sub{font-size:12.5px;color:var(--ink-2);margin-top:2px}.row .r-trail{text-align:right;flex:none}.empty{text-align:center;color:var(--ink-3);padding:32px 16px;font-size:13.5px}.empty .ico{color:var(--accent);opacity:.6;margin-bottom:8px}.badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:800;padding:4px 10px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--border)}.badge.ok{background:var(--ok-bg);color:var(--ok);border-color:transparent}.badge.warn{background:var(--warn-bg);color:var(--warn);border-color:transparent}.badge.danger{background:var(--danger-bg);color:var(--danger);border-color:transparent}.badge.info{background:var(--info-bg);color:var(--info);border-color:transparent}.badge.brand{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);border-color:transparent}.code-pill{font-family:SFMono-Regular,ui-monospace,Menlo,Consolas,monospace;font-weight:800;letter-spacing:.16em;font-size:15px;background:var(--grad);color:#fff;padding:7px 14px;border-radius:11px;display:inline-block;box-shadow:var(--shadow-accent)}.alert{border-radius:var(--radius-sm);padding:12px 14px;font-size:13px;line-height:1.4;display:flex;gap:10px;align-items:flex-start}.alert .ico{flex:none;margin-top:1px}.alert.ok{background:var(--ok-bg);color:var(--ok)}.alert.warn{background:var(--warn-bg);color:var(--warn)}.alert.danger{background:var(--danger-bg);color:var(--danger)}.alert.info{background:var(--info-bg);color:var(--info)}.alert code{background:#0000000f;padding:1px 5px;border-radius:5px;font-size:12px}.cupo-panel{display:flex;flex-direction:column;gap:10px}.cupo-figs{display:flex;gap:8px}.cupo-fig{flex:1;background:var(--surface-2);border:1px solid var(--border);border-radius:13px;padding:10px 12px}.cupo-fig .lbl{font-size:11px;color:var(--ink-3);font-weight:800;text-transform:uppercase;letter-spacing:.04em}.cupo-fig .val{font-size:16px;font-weight:800;margin-top:3px}.cupo-fig.avail{background:linear-gradient(135deg,#10b98124,#06b6d424);border-color:transparent}.cupo-fig.avail .val{color:var(--ok)}.cupo-fig.avail.low{background:var(--danger-bg)}.cupo-fig.avail.low .val{color:var(--danger)}.bar{height:9px;border-radius:999px;background:var(--surface-2);overflow:hidden;border:1px solid var(--border)}.bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2))}.bar.full>span{background:linear-gradient(90deg,var(--c-amber),var(--danger))}.kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;box-shadow:var(--shadow);position:relative;overflow:hidden;--c: var(--c-violet)}.kpi:before{content:"";position:absolute;left:0;top:0;right:0;height:4px;background:var(--c)}.kpi .lbl{font-size:12px;color:var(--ink-2);font-weight:700}.kpi .val{font-size:21px;font-weight:800;margin-top:4px;letter-spacing:-.02em;color:var(--c)}.kpi .val.sm{font-size:16px}.kpis .kpi:nth-child(6n+1){--c: var(--c-pink)}.kpis .kpi:nth-child(6n+2){--c: var(--c-blue)}.kpis .kpi:nth-child(6n+3){--c: var(--c-green)}.kpis .kpi:nth-child(6n+4){--c: var(--c-amber)}.kpis .kpi:nth-child(6n+5){--c: var(--c-violet)}.kpis .kpi:nth-child(6n+6){--c: var(--c-cyan)}.combo{position:relative}.combo-list{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-lg);max-height:260px;overflow:auto;padding:6px}.combo-opt{padding:11px 12px;border-radius:10px;cursor:pointer}.combo-opt:active,.combo-opt.hi{background:var(--surface-2)}.combo-opt .o-title{font-size:14px;font-weight:700}.combo-opt .o-sub{font-size:12px;color:var(--ink-2)}.filepick{display:flex;align-items:center;gap:12px;border:1.5px dashed var(--ink-3);border-radius:var(--radius-sm);padding:13px 14px;background:var(--surface-2);cursor:pointer;color:var(--ink-2);transition:border-color .15s,color .15s}.filepick.has{border-style:solid;border-color:var(--accent);color:var(--ink);background:color-mix(in srgb,var(--accent) 7%,var(--surface))}.filepick .fp-name{font-size:13.5px;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.filepick .fp-clear{flex:none;color:var(--ink-3);padding:4px}.sigpad{position:relative;height:170px;border:1.5px dashed var(--accent);border-radius:var(--radius-sm);background:var(--surface);overflow:hidden;touch-action:none}.sigpad-canvas{width:100%;height:100%;display:block;touch-action:none;cursor:crosshair}.sigpad-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--ink-3);font-size:13.5px;font-weight:600;pointer-events:none;white-space:nowrap}.toast-wrap{position:fixed;left:0;right:0;top:calc(var(--safe-t) + 10px);z-index:100;display:flex;flex-direction:column;align-items:center;gap:8px;padding:0 16px;pointer-events:none}.toast{pointer-events:auto;max-width:var(--maxw);width:100%;display:flex;align-items:center;gap:10px;background:var(--surface);color:var(--ink);border:1px solid var(--border);border-left:5px solid var(--ink-3);border-radius:14px;padding:12px 14px;box-shadow:var(--shadow-lg);font-size:13.5px;font-weight:700;animation:toastIn .2s ease}.toast.ok{border-left-color:var(--ok)}.toast.ok svg{color:var(--ok)}.toast.danger{border-left-color:var(--danger)}.toast.danger svg{color:var(--danger)}.toast.info{border-left-color:var(--info)}.toast.info svg{color:var(--info)}@keyframes toastIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}.stack{display:flex;flex-direction:column;gap:14px}.row-2{display:flex;gap:10px}.row-2>*{flex:1}.muted{color:var(--ink-2)}.center{text-align:center}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--accent);padding:32px;font-size:14px;font-weight:600}.pin-dots{display:flex;gap:14px;justify-content:center;margin:8px 0 4px}.pin-dot{width:14px;height:14px;border-radius:50%;border:2px solid var(--border);transition:background .15s,border-color .15s}.pin-dot.on{background:var(--grad);border-color:transparent}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:10px}.keypad button{border:1.5px solid var(--border);background:var(--surface);color:var(--ink);border-radius:16px;padding:16px 0;font-size:22px;font-weight:800;cursor:pointer;transition:background .12s,transform .1s}.keypad button:active{background:var(--surface-2);transform:scale(.96)}.keypad button.blank{border:none;background:none;cursor:default}
