.sp-app{--bg:var(--lc-bg);--surface:var(--lc-surface);--surface-2:var(--lc-surface-2);--ink:var(--lc-ink);--ink-2:var(--lc-ink-2);--ink-3:var(--lc-ink-3);--ink-faint:var(--lc-ink-3);--line:var(--lc-line);--line-2:var(--lc-line-2);--line-in:var(--lc-line-strong);--accent:var(--lc-accent);--accent-bright:var(--lc-accent);--accent-soft:var(--lc-accent-soft);--accent-line:var(--lc-accent-line);--accent-ink:var(--lc-accent-ink);--warn:#7c4a03;--warn-soft:#fbf0d4;--danger:#b3261e;--radius:10px;--radius-lg:14px;--font-body:inherit;--font-mono:var(--lc-mono);--font-num:var(--lc-display);--density:1}.sp-app ::selection{background:var(--accent-soft);color:var(--accent-ink)}.sp-app h2,.sp-app h3,.sp-app h4{font-family:var(--lc-display);letter-spacing:.005em;font-weight:600}.sp-app .num{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-weight:600}.sp-app .mono{font-family:var(--font-mono)}.sp-app .tabs{background:var(--lc-sunken);border-radius:10px;flex-wrap:wrap;gap:2px;margin:0 0 1.5rem;padding:3px;display:inline-flex}.sp-app .tab{cursor:pointer;font:inherit;color:var(--ink-2);white-space:nowrap;background:0 0;border:0;border-radius:7px;align-items:center;gap:.4rem;min-height:34px;padding:.4rem .95rem;font-size:.86rem;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.sp-app .tab:hover{color:var(--ink)}.sp-app .tab:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.sp-app .tab.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #15181d1f,0 0 0 1px #15181d0a}.sp-app .tab .tdot{background:var(--accent);opacity:0;border-radius:50%;width:6px;height:6px}.sp-app .tab.active .tdot{opacity:1}.sp-app .main{padding:0}.sp-app .view-head{margin-bottom:1.25rem}.sp-app .view-eyebrow{letter-spacing:.14em;color:var(--accent-ink);text-transform:uppercase;font-size:.72rem;font-weight:600}.sp-app .view-title{font-family:var(--lc-display);word-break:auto-phrase;margin:.3rem 0 0;font-size:clamp(1.25rem,1.05rem + .9vw,1.5rem);font-weight:600}.sp-app .view-sub{color:var(--ink-2);max-width:62ch;margin:.5rem 0 0;font-size:.9rem}.sp-app #view,.sp-app .tabs{word-break:auto-phrase}.sp-app [data-log-quick]{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.sp-app [data-log-quick] input{min-width:3.5em}.sp-app .card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:1.25rem}.sp-app .card-quiet{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius)}.sp-app .grid{gap:1rem;display:grid}.sp-app .grid>*{min-width:0}.sp-app .stack{flex-direction:column;display:flex}.sp-app .row{align-items:center;display:flex}.sp-app .between{justify-content:space-between}.sp-app .wrap{flex-wrap:wrap}.sp-app .label-sm{letter-spacing:.04em;color:var(--ink-3);text-transform:uppercase;font-size:.72rem;font-weight:600}.sp-app .btn{font:inherit;cursor:pointer;border:1px solid var(--line-in);background:var(--surface);min-height:40px;color:var(--ink);white-space:nowrap;border-radius:9px;justify-content:center;align-items:center;gap:.4rem;padding:.45rem 1rem;font-size:.88rem;font-weight:600;line-height:1.3;transition:background .15s,border-color .15s,color .15s,transform .1s;display:inline-flex}.sp-app .btn:hover:not(:disabled){background:var(--surface-2);border-color:#15181d57}.sp-app .btn:active:not(:disabled){transform:translateY(1px)}.sp-app .btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sp-app .btn:disabled{opacity:.5;cursor:not-allowed}.sp-app .btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.sp-app .btn-primary:hover:not(:disabled){background:var(--lc-accent-hover);border-color:var(--lc-accent-hover)}.sp-app .btn-accent{background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent-line)}.sp-app .btn-accent:hover:not(:disabled){background:#e2e8f9;border-color:#b3c1ef}.sp-app .btn-ghost{background:var(--surface);color:var(--ink);border-color:var(--line-in)}.sp-app .btn-sm{border-radius:8px;min-height:32px;padding:.25rem .7rem;font-size:.8rem}.sp-app .btn-danger{background:var(--surface);color:var(--danger);border-color:var(--line-in)}.sp-app .btn-danger:hover:not(:disabled){background:#fdf1f0;border-color:#eab4ae}.sp-app .chip{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line);border-radius:999px;align-items:center;gap:.35rem;padding:.1rem .6rem;font-size:.76rem;font-weight:600;line-height:1.6;display:inline-flex}.sp-app .chip.ok{color:#17602f;background:#e3f3e7;border-color:#bfe0c9}.sp-app .chip.warn{background:var(--warn-soft);color:var(--warn);border-color:#e7d3a3}.sp-app .chip.frozen{background:var(--lc-sunken);color:var(--ink-2);border-color:var(--line)}.sp-app .bar{background:var(--lc-sunken);border-radius:999px;height:8px;overflow:hidden}.sp-app .bar>i{background:var(--accent);border-radius:999px;height:100%;transition:width .5s cubic-bezier(.4,0,.2,1);display:block}.sp-app .bar.ink>i{background:var(--ink)}.sp-app .section{padding:2.25rem 0}.sp-app .section-head{max-width:60ch;margin-bottom:1.5rem}.sp-app .section-head h2{margin:.35rem 0 .5rem;font-size:clamp(1.15rem,1rem + .7vw,1.4rem)}.sp-app .section-head .lead{color:var(--ink-2);margin:0;font-size:.92rem}.sp-app .divider{background:var(--line);height:1px;margin:1rem 0 0}.sp-app .steps{grid-template-columns:1fr 1fr;gap:.875rem;margin:0;padding:0;list-style:none;display:grid}.sp-app .step{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);gap:1rem;padding:1.25rem;display:flex}.sp-app .step-n{font-family:var(--font-num);color:var(--accent-ink);flex-shrink:0;font-size:1.4rem;font-weight:600;line-height:1}.sp-app .step h3{margin:0 0 .35rem;font-size:1rem}.sp-app .step p{color:var(--ink-2);margin:0;font-size:.88rem}.sp-app .faq-list{border-top:1px solid var(--line)}.sp-app .faq{border-bottom:1px solid var(--line)}.sp-app .faq-q{text-align:start;width:100%;font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:1rem;min-height:44px;padding:1rem .3rem;font-size:.95rem;font-weight:600;display:flex}.sp-app .faq-q:hover{color:var(--accent-ink)}.sp-app .faq-q:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:6px}.sp-app .faq-mark{color:var(--accent);flex-shrink:0;font-size:1.15rem;line-height:1}.sp-app .faq-a{transition:max-height .3s cubic-bezier(.4,0,.2,1);overflow:hidden}.sp-app .faq-a p{color:var(--ink-2);max-width:74ch;margin:0;padding:0 .3rem 1.1rem;font-size:.9rem}.sp-app .field{flex-direction:column;gap:.375rem;margin-bottom:1rem;display:flex}.sp-app .field label{color:var(--lc-label);font-size:.82rem;font-weight:600}.sp-app .field input,.sp-app .field select,.sp-app .field textarea{font:inherit;border:1px solid var(--lc-field-line);background:var(--surface);min-height:42px;color:var(--ink);border-radius:9px;width:100%;padding:.5rem .75rem;font-size:1rem;transition:border-color .15s,box-shadow .15s}.sp-app .field input:hover,.sp-app .field select:hover,.sp-app .field textarea:hover{border-color:var(--lc-ink-3)}.sp-app .field input:focus,.sp-app .field select:focus,.sp-app .field textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #2f53c82e}.sp-app input[type=checkbox],.sp-app input[type=radio]{accent-color:var(--accent)}.sp-app .empty{text-align:center;color:var(--ink-3);padding:3rem 1.25rem}.sp-app .modal-backdrop,.sp-modal-backdrop{z-index:1000;background:#15181d6b;justify-content:center;align-items:center;padding:1.25rem;display:flex;position:fixed;inset:0}.sp-app .modal,.sp-modal-backdrop .modal{background:var(--lc-surface);border:1px solid var(--lc-line);border-radius:var(--radius-lg);width:min(480px,100%);max-height:88vh;padding:1.5rem;overflow-y:auto;box-shadow:0 18px 44px -20px #15181d59}.sp-app .modal h3{margin:0 0 .35rem;font-size:1.1rem}.sp-app .modal .sub{color:var(--ink-2);margin:0 0 1.25rem;font-size:.88rem}.sp-app .sp-links{border-top:1px solid var(--line);flex-wrap:wrap;gap:.5rem 1.25rem;padding-top:1.25rem;font-size:.82rem;display:flex}.sp-app .sp-links a{color:var(--ink-2);align-items:center;min-height:40px;text-decoration:none;display:inline-flex}.sp-app .sp-links a:hover{color:var(--accent-ink);text-underline-offset:2px;text-decoration:underline}.sp-app .sp-note{color:var(--ink-3);margin:.6rem 0 0;font-size:.78rem}@media (width<=880px){.sp-app [data-dash-grid],.sp-app [data-settings-grid],.sp-app [data-concept-grid],.sp-app [data-setup-grid]{grid-template-columns:minmax(0,1fr)!important}}@media (width<=760px){.sp-app .steps{grid-template-columns:1fr}.sp-app .section{padding:1.75rem 0}.sp-app .card{padding:1rem}}@media (width<=560px){.sp-app .btn{min-height:44px}.sp-app .btn-sm{min-height:40px}.sp-app .field input,.sp-app .field select{min-height:44px}}@media (prefers-reduced-motion:reduce){.sp-app *,.sp-app :before,.sp-app :after{transition-duration:.01ms!important}}
