:root{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",sans-serif;color:#141815;background:#f4f6f4;line-height:1.45;font-synthesis:none;--green:#0f7a45;--green-dark:#085a32;--muted:#67736c;--border:#dde5df;--danger:#a22b2b;--shadow:0 12px 34px rgba(18,46,29,.08)}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#f4f6f4}button,input,select{font:inherit}.loading,.fatal{padding:3rem 1.25rem;text-align:center}.app-shell{max-width:760px;margin:0 auto;padding:env(safe-area-inset-top) 1rem calc(92px + env(safe-area-inset-bottom))}.page{padding-top:1rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.topbar h1{margin:.1rem 0 0;font-size:1.75rem}.eyebrow{margin:0;color:var(--green);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.status-pill{background:#dff3e7;color:var(--green-dark);padding:.42rem .68rem;border-radius:999px;font-size:.78rem;font-weight:700}.status-pill.offline{background:#fff0d8;color:#8a5a00}.hero-card,.card,.warning-card{background:#fff;border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow);padding:1rem;margin-bottom:1rem}.hero-card{display:flex;gap:1rem;align-items:center;background:linear-gradient(145deg,#fff,#edf8f1)}.hero-card img{width:78px;height:78px;object-fit:contain;border-radius:18px;background:#fff}.hero-card span{color:var(--green);font-weight:700;font-size:.82rem}.hero-card h2{margin:.15rem 0}.hero-card p,.card p,.muted,.help{color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem;margin-bottom:1rem}.metrics article{background:#fff;border:1px solid var(--border);border-radius:18px;padding:.85rem}.metrics span{display:block;color:var(--muted);font-size:.76rem}.metrics strong{display:block;margin-top:.3rem;font-size:1rem}.card-heading{display:flex;justify-content:space-between;align-items:start}.sequence-row{display:flex;justify-content:space-between;padding:.7rem 0;border-top:1px solid var(--border)}.sequence-row:first-of-type{margin-top:.5rem}.primary-button,.secondary-button,.text-button{border:0;border-radius:14px;cursor:pointer;font-weight:750}.primary-button{display:inline-block;background:var(--green);color:white;padding:.82rem 1rem}.primary-button:hover{background:var(--green-dark)}.secondary-button{display:inline-block;background:#eaf4ee;color:var(--green-dark);padding:.7rem .9rem}.text-button{background:transparent;color:var(--green);padding:.4rem}.form-section h2{font-size:1.1rem;margin-top:0}.field{display:block;margin:.85rem 0}.field>span{display:block;font-size:.83rem;font-weight:700;margin-bottom:.35rem}.field input,.field select{width:100%;border:1px solid #cad6ce;border-radius:13px;background:#fff;padding:.78rem}.field input:focus,.field select:focus{outline:3px solid rgba(15,122,69,.15);border-color:var(--green)}.error{display:block;color:var(--danger);min-height:1rem;margin-top:.2rem}.switch-row{display:flex;justify-content:space-between;align-items:center;padding:.8rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.switch-row small{display:block;color:var(--muted)}.switch-row input{width:22px;height:22px;accent-color:var(--green)}.image-field{display:grid;grid-template-columns:1fr auto;gap:.7rem;align-items:center;border-top:1px solid var(--border);padding:.9rem 0}.image-field p{margin:.1rem 0;font-size:.8rem}.image-field img,.image-placeholder{grid-row:1/3;grid-column:2;width:74px;height:58px;border-radius:12px;object-fit:contain;border:1px solid var(--border);background:#fafafa}.image-placeholder{display:grid;place-items:center;font-size:.66rem;color:var(--muted);text-align:center}.danger-link{border:0;background:transparent;color:var(--danger);padding:0;text-align:left;cursor:pointer}.sequence-edit{display:grid;grid-template-columns:50px 1fr 1fr;gap:.55rem;align-items:end;border-top:1px solid var(--border);padding:.8rem 0}.sequence-edit label{font-size:.74rem}.sequence-edit input{width:100%;padding:.6rem;border:1px solid #cad6ce;border-radius:10px}.sequence-edit code{grid-column:1/-1;background:#f3f6f4;padding:.55rem;border-radius:9px}.sticky-actions{position:sticky;bottom:82px;display:flex;align-items:center;gap:.8rem;background:rgba(244,246,244,.94);backdrop-filter:blur(12px);padding:.8rem 0}.warning-card{background:#fff8e8;border-color:#efdba7}.bottom-nav{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(5,1fr);align-items:end;background:rgba(255,255,255,.96);backdrop-filter:blur(18px);border-top:1px solid var(--border);padding:.45rem max(.4rem,env(safe-area-inset-right)) calc(.45rem + env(safe-area-inset-bottom)) max(.4rem,env(safe-area-inset-left));z-index:10}.nav-item{border:0;background:transparent;color:#6f7a73;font-size:.67rem;padding:.25rem;display:grid;gap:.1rem;place-items:center}.nav-item span{font-size:1.25rem}.nav-item.active{color:var(--green);font-weight:800}.nav-item.add span{display:grid;place-items:center;background:var(--green);color:#fff;width:48px;height:48px;border-radius:50%;font-size:1.8rem;box-shadow:0 7px 20px rgba(15,122,69,.28)}.nav-item:disabled{opacity:.45}.file-button{cursor:pointer}@media(max-width:520px){.metrics{grid-template-columns:1fr}.hero-card{align-items:flex-start}.topbar h1{font-size:1.48rem}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.primary-icon{border:0;background:var(--green);color:#fff;width:44px;height:44px;border-radius:14px;font-size:1.6rem;cursor:pointer}.search-panel{display:flex;gap:.65rem;align-items:center;margin-bottom:.75rem}.search-panel input[type=search]{flex:1;border:1px solid var(--border);border-radius:15px;padding:.82rem;background:#fff}.compact-check{display:flex;gap:.35rem;align-items:center;font-size:.78rem;color:var(--muted)}.result-count{color:var(--muted);font-size:.82rem}.catalogue-grid{display:grid;gap:1rem}.model-card{background:#fff;border:1px solid var(--border);border-radius:22px;padding:1rem;box-shadow:var(--shadow)}.model-card.inactive{opacity:.68}.model-card-top{display:flex;justify-content:space-between;gap:1rem;align-items:start}.model-card h2{font-size:1.18rem;margin:.4rem 0}.code-pill{display:inline-block;background:#e8f4ed;color:var(--green-dark);padding:.25rem .52rem;border-radius:8px;font-size:.72rem;font-weight:900;letter-spacing:.06em}.status-dot{font-size:.72rem;font-weight:800;color:var(--green)}.model-card.inactive .status-dot{color:var(--muted)}.chip-row{display:flex;flex-wrap:wrap;gap:.4rem;margin:.7rem 0}.chip-row span{background:#f0f4f1;border:1px solid var(--border);border-radius:999px;padding:.3rem .55rem;font-size:.72rem;font-weight:700}.model-summary,.detail-list{margin:0}.model-summary>div,.detail-list>div{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid var(--border);padding:.58rem 0}.model-summary dt,.detail-list dt{color:var(--muted);font-size:.78rem}.model-summary dd,.detail-list dd{margin:0;text-align:right;font-weight:700;font-size:.82rem}.card-actions{display:flex;justify-content:flex-end;gap:.55rem;margin-top:.8rem}.model-quick{width:100%;display:flex;justify-content:space-between;align-items:center;border:0;border-top:1px solid var(--border);background:transparent;padding:.8rem 0;text-align:left;cursor:pointer}.model-quick small{display:block;color:var(--muted);margin-top:.15rem}.model-quick b{font-size:1.4rem;color:var(--green)}.empty-state{text-align:center;background:#fff;border:1px dashed #b8c7bd;border-radius:22px;padding:2rem 1rem;color:var(--muted)}.model-hero{background:linear-gradient(145deg,#0f7a45,#07552f);color:#fff;border-radius:24px;padding:1.2rem;margin-bottom:1rem;box-shadow:var(--shadow)}.model-hero .code-pill{background:rgba(255,255,255,.18);color:#fff}.model-hero h2{margin:.55rem 0 .25rem}.model-hero p{opacity:.88}.model-hero .chip-row span{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25)}.component-pair{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.55rem}.component-pair>div:not(.plus-sign){background:#f6f8f6;border:1px solid var(--border);border-radius:16px;padding:.8rem}.component-pair span,.component-pair small{display:block;color:var(--muted);font-size:.74rem}.component-pair strong{display:block;margin:.25rem 0}.plus-sign{font-size:1.4rem;color:var(--green);font-weight:900}.simulation-grid{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-bottom:.8rem}.simulation-grid label{font-size:.76rem;font-weight:700}.simulation-grid input,.simulation-grid select{width:100%;padding:.65rem;border:1px solid var(--border);border-radius:11px;margin-top:.25rem;background:#fff}.generated-lines{margin-top:.8rem;border:1px solid var(--border);border-radius:14px;overflow:hidden}.generated-lines>div{display:grid;grid-template-columns:65px 1fr auto;gap:.5rem;padding:.7rem;border-top:1px solid var(--border);align-items:center}.generated-lines>div:first-child{border-top:0}.generated-lines span{color:var(--muted);font-size:.72rem}.error-message,.form-errors{color:var(--danger)}.form-errors p{background:#fff0f0;border:1px solid #efcaca;border-radius:10px;padding:.6rem;margin:.4rem 0}.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.choice-box input{position:absolute;opacity:0}.choice-box span{display:block;border:1px solid var(--border);border-radius:13px;padding:.7rem;text-align:center;font-size:.8rem;font-weight:750;background:#fff}.choice-box input:checked+span{background:#e5f4eb;border-color:var(--green);color:var(--green-dark)}textarea{width:100%;border:1px solid #cad6ce;border-radius:13px;background:#fff;padding:.78rem;font:inherit}.size-selector{margin:.9rem 0}.size-selector>strong{display:block;font-size:.8rem;margin-bottom:.45rem}.size-grid{display:flex;flex-wrap:wrap;gap:.4rem}.size-grid label:not(.custom-size) input{position:absolute;opacity:0}.size-grid label:not(.custom-size) span{display:grid;place-items:center;min-width:42px;height:38px;border:1px solid var(--border);border-radius:10px;font-size:.75rem;font-weight:800;background:#fff}.size-grid label:not(.custom-size) input:checked+span{background:var(--green);border-color:var(--green);color:#fff}.custom-size input{width:75px;height:38px;border:1px dashed #aebdb4;border-radius:10px;padding:.5rem}.two-columns,.three-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.three-columns{grid-template-columns:repeat(3,minmax(0,1fr))}.dynamic-row{display:grid;gap:.45rem;align-items:center;border-top:1px solid var(--border);padding:.65rem 0}.dynamic-row input{min-width:0;border:1px solid #cad6ce;border-radius:10px;padding:.62rem}.dynamic-row button{border:0;background:#fff0f0;color:var(--danger);border-radius:9px;width:34px;height:34px;font-size:1.2rem}.color-row{grid-template-columns:1fr 1fr auto auto}.color-row label{font-size:.72rem;white-space:nowrap}.pocket-row{grid-template-columns:1fr 85px auto}.level-summary{background:#edf7f1;border-radius:12px;padding:.65rem}.result-count{margin:.2rem 0 .8rem}@media(max-width:520px){.two-columns,.three-columns,.simulation-grid{grid-template-columns:1fr}.color-row{grid-template-columns:1fr 1fr}.color-row label,.color-row button{justify-self:start}.component-pair{grid-template-columns:1fr}.plus-sign{text-align:center}.generated-lines>div{grid-template-columns:1fr auto}.generated-lines span{grid-column:1/-1}}
textarea { width: 100%; border: 1px solid var(--border); border-radius: 14px; padding: 12px 14px; font: inherit; resize: vertical; background: #fff; color: var(--text); }
.form-errors { color: #a51d2d; margin: 10px 0; }
.form-errors p { margin: 4px 0; }
.header-actions{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.line-card{border:1px solid var(--border);border-radius:18px;padding:1rem;margin:.75rem 0;background:#fff}.line-card-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.line-card h3{margin:.45rem 0 .25rem}.line-card p{margin:.25rem 0 .8rem;color:var(--muted)}.line-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin:0}.line-metrics div{background:var(--surface-soft);padding:.65rem;border-radius:12px}.line-metrics dt{font-size:.72rem;color:var(--muted)}.line-metrics dd{margin:.15rem 0 0;font-weight:700}.totals-card{background:#111;color:#fff;border-radius:22px;padding:1rem;margin:1rem 0;box-shadow:var(--shadow)}.totals-card>div{display:flex;justify-content:space-between;padding:.55rem 0;border-bottom:1px solid rgba(255,255,255,.12)}.totals-card>div:last-child{border-bottom:0}.totals-card .grand-total{font-size:1.18rem;color:#8fe6b2;padding-top:.85rem}.preview-line{display:grid;grid-template-columns:1fr auto auto;gap:.8rem;align-items:center;padding:.85rem 0;border-bottom:1px solid var(--border)}.preview-line:last-child{border-bottom:0}.preview-line small{display:block;color:var(--muted);margin-top:.25rem}.add-line-panel{border:1px solid rgba(22,163,74,.25)}
@media(max-width:540px){.form-grid{grid-template-columns:1fr}.preview-line{grid-template-columns:1fr auto}.preview-line b{grid-column:2}.header-actions{justify-content:flex-end}.line-metrics{grid-template-columns:1fr 1fr}}
.quality-head{display:flex;justify-content:space-between;gap:1rem;align-items:center}.quality-list{list-style:none;padding:0;margin:.75rem 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.quality-list li{display:flex;gap:.45rem;align-items:center;padding:.55rem .65rem;border-radius:11px;font-size:.78rem}.quality-ok{background:#e8f6ee;color:#07552f}.quality-missing{background:#fff3dc;color:#8a5a00}.quality-list span{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:rgba(255,255,255,.75);font-weight:900}.payment-method-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;border-top:1px solid var(--border);padding:.85rem 0}.payment-method-row input,.payment-method-row select{width:100%;padding:.65rem;border:1px solid var(--border);border-radius:10px;background:#fff}.payment-method-row label{font-size:.76rem;display:flex;align-items:center;gap:.35rem}.payment-method-row .danger-link{justify-self:start}@media(max-width:540px){.quality-list,.payment-method-row{grid-template-columns:1fr}}
.payment-selection{border:1px solid #dbe3de;border-radius:14px;padding:14px;margin:16px 0}.payment-selection legend{font-weight:800;color:#0f7a45;padding:0 6px}
