:root{--navy:#0b1f3a;--blue:#2563eb;--cyan:#0ea5e9;--bg:#eef3f9;--line:#e1e8f1;--muted:#6f7d91;--text:#13233d;--ok:#0c9964;--bad:#c94747}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 10% 0%,#dbeafe,transparent 35%),var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--text);padding:24px}button,input,textarea{font:inherit}.installer-shell{width:min(980px,100%);min-height:650px;margin:auto;background:#fff;border:1px solid #dce5f1;border-radius:22px;overflow:hidden;display:grid;grid-template-columns:230px 1fr;box-shadow:0 25px 70px rgba(21,45,82,.13)}.installer-side{background:linear-gradient(180deg,var(--navy),#08172d);color:#cfe0f4;padding:22px 15px;display:flex;flex-direction:column}.install-brand{display:flex;align-items:center;gap:10px;padding:0 5px 20px;border-bottom:1px solid rgba(255,255,255,.08)}.install-brand img{width:42px;height:42px;border-radius:11px;object-fit:contain;background:#fff;padding:4px}.install-brand strong{display:block;color:#fff;font-size:14px}.install-brand span{font-size:10px;color:#8fa8c8}.step-list{padding-top:16px;display:grid;gap:4px}.step-item{display:flex;align-items:center;gap:9px;padding:8px 9px;border-radius:10px;color:#8299b8;font-size:11px}.step-item b{width:25px;height:25px;border-radius:8px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.12);font-size:10px}.step-item.active{background:rgba(37,99,235,.3);color:#fff}.step-item.active b{background:#2a71e9;border-color:#5f99f3}.step-item.done{color:#b8cce7}.step-item.done b{background:rgba(14,165,233,.18);color:#68dcff}.install-side-foot{margin-top:auto;padding:16px 5px 0;border-top:1px solid rgba(255,255,255,.07);font-size:9px;line-height:1.7;color:#6f87a8}.installer-main{display:flex;flex-direction:column;min-width:0}.install-top{height:88px;border-bottom:1px solid var(--line);padding:18px 24px;display:flex;align-items:center;justify-content:space-between}.install-top span{font-size:9px;font-weight:800;letter-spacing:.12em;color:#8b98a9}.install-top h1{font-size:19px;margin:4px 0 0}.progress-ring{width:50px;height:50px;border-radius:50%;background:#eef4ff;display:grid;place-items:center;border:5px solid #d8e6ff}.progress-ring b{font-size:10px;color:#235fc5}.mobile-progress{display:none}.install-content{padding:25px;flex:1;display:flex;flex-direction:column}.hero h2,.section-copy h2,.install-run h2{font-size:22px;margin:8px 0}.hero p,.section-copy p,.install-run p{color:var(--muted);font-size:12px;line-height:1.7;max-width:650px}.eyebrow{font-size:9px;font-weight:800;letter-spacing:.14em;color:var(--blue)}.feature-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:20px}.feature-grid>div{background:#f8fafd;border:1px solid var(--line);border-radius:12px;padding:13px}.feature-grid b{display:block;font-size:11px}.feature-grid span{display:block;color:var(--muted);font-size:10px;line-height:1.55;margin-top:4px}.actionbar{margin-top:auto;padding-top:22px;display:flex;justify-content:space-between;align-items:center;gap:10px}.btn{border:0;border-radius:10px;padding:10px 13px;font-weight:750;font-size:11px;text-decoration:none;cursor:pointer}.btn.primary{background:linear-gradient(135deg,var(--blue),#177edc);color:#fff}.btn.secondary{background:#edf3fb;color:#315b92}.btn.disabled{background:#edf0f4;color:#9aa5b4;cursor:not-allowed}.check-list{border:1px solid var(--line);border-radius:13px;overflow:hidden;margin-top:14px}.check-list>div{display:flex;justify-content:space-between;align-items:center;padding:9px 12px;border-bottom:1px solid #edf1f6;font-size:10px}.check-list>div:last-child{border-bottom:0}.check-list b{font-size:9px}.ok,.ok-text{color:var(--ok)}.bad,.bad-text{color:var(--bad)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;margin-top:13px}.span2{grid-column:span 2}label{display:flex;flex-direction:column;gap:6px;font-size:10px;font-weight:750;color:#4c5b72}input,textarea{border:1px solid #d8e1ed;border-radius:10px;padding:9px 10px;outline:none;font-size:11px}input:focus,textarea:focus{border-color:#8eb6ff;box-shadow:0 0 0 3px rgba(37,99,235,.08)}.db-actions{display:flex;align-items:center;gap:10px}.db-actions span{font-size:10px}.upload-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:12px;margin-top:16px}.upload-box{border:1px dashed #c7d5e6;border-radius:14px;padding:14px;background:#fafcff;align-items:center;text-align:center}.upload-box img{width:110px;height:110px;object-fit:contain;background:#fff;border-radius:12px;border:1px solid var(--line);padding:4px}.upload-box.wide img{width:100%;height:150px;object-fit:cover}.upload-box b{margin-top:9px}.upload-box span{font-size:9px;color:var(--muted)}.upload-box input{font-size:9px;width:100%;margin-top:4px}.review-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px;margin-top:15px}.review-grid>div{background:#f8fafd;border:1px solid var(--line);border-radius:11px;padding:11px}.review-grid span{display:block;font-size:9px;color:var(--muted)}.review-grid b{display:block;font-size:11px;margin-top:4px}.notice{display:flex;flex-direction:column;gap:3px;background:#fff9e8;border:1px solid #f5e3a8;color:#765e18;border-radius:11px;padding:11px 13px;margin-top:12px;font-size:10px}.alert{margin:15px 25px 0;padding:10px 12px;border-radius:10px;font-size:10px}.alert.danger{background:#fff3f3;border:1px solid #ffd0d0;color:#a83b3b}.progress-bar{height:10px;background:#edf2f8;border-radius:999px;overflow:hidden;margin:18px 0}.progress-bar i{height:100%;display:block;background:linear-gradient(90deg,var(--blue),var(--cyan));transition:.3s}.install-log{display:grid;gap:7px;margin-bottom:20px}.install-log div{font-size:10px;padding:9px 10px;background:#f8fafd;border-radius:9px;border:1px solid var(--line)}#finishAction{margin-top:18px}.mobile-progress{padding:12px 16px;border-bottom:1px solid var(--line)}.mobile-progress span{font-size:10px;font-weight:700}.mobile-progress i{display:block;height:4px;background:#edf2f7;border-radius:99px;margin-top:7px}.mobile-progress b{display:block;height:100%;background:var(--blue);border-radius:99px}.install-run{padding-top:20px}
@media(max-width:760px){body{padding:0}.installer-shell{min-height:100vh;border-radius:0;border:0;grid-template-columns:1fr}.installer-side{display:none}.install-top{height:74px;padding:14px 16px}.progress-ring{display:none}.mobile-progress{display:block}.install-content{padding:20px 16px}.feature-grid,.form-grid,.review-grid,.upload-grid{grid-template-columns:1fr}.span2{grid-column:span 1}.actionbar.span2{grid-column:span 1}.upload-box.wide img{height:180px}}

/* V1.0 Final Release · mobile installer hardening */
html,body{max-width:100%;overflow-x:hidden}img,svg{max-width:100%}.installer-main,.install-content,.install-top>div{min-width:0}
@media(max-width:760px){.install-top h1{font-size:17px;overflow-wrap:anywhere}.actionbar{gap:8px;flex-wrap:wrap}.actionbar .btn{min-height:44px}.actionbar .btn.primary{margin-left:auto}input,textarea{min-height:44px}.db-actions{align-items:stretch;flex-direction:column}.db-actions .btn{width:100%;min-height:44px}.check-list>div{gap:10px;align-items:flex-start}.check-list b{text-align:right;overflow-wrap:anywhere}}
@media(max-width:420px){.install-content{padding:18px 12px}.install-top{padding:12px}.actionbar{align-items:stretch;flex-direction:column}.actionbar .btn{width:100%;margin-left:0!important}.hero h2,.section-copy h2,.install-run h2{font-size:20px}.upload-box.wide img{height:140px}}

/* Optional Full-Year demo seed */
.demo-option{border:1px solid #cfe0f4;background:#f7fbff;border-radius:12px;padding:12px 13px;gap:7px}.demo-check{display:flex;align-items:center;gap:9px;color:#203a60}.demo-check input{width:18px;height:18px;min-height:0;margin:0;accent-color:var(--blue)}.demo-check b{font-size:11px}.demo-option small{font-size:9px;line-height:1.55;color:var(--muted);font-weight:500}.demo-option em{font-style:normal;font-size:9px;line-height:1.45;color:#355f94;font-weight:650}
