:root{--primary:#0062ff;--secondary:#28a5ff;--ink:#111827;--muted:#5f6673;--softBlue:#eaf3ff;--border:#d6e6ff;--background:#f5f7fb;--white:#fff;--danger:#ef4444;--success:#10b981;--warning:#f59e0b;color:var(--ink);background:var(--background);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--background);min-height:100vh;margin:0}#root{max-width:480px;min-height:100vh;margin:0 auto;position:relative}input,select,button,textarea{font-family:inherit}button{cursor:pointer;border:none;font-weight:700;transition:opacity .15s}button:active{opacity:.7}input,select,textarea{background:var(--white);width:100%;color:var(--ink);appearance:none;border:1.5px solid #d1d5db;border-radius:14px;padding:12px 14px;font-size:15px}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #0062ff1f}label{color:var(--muted);text-transform:uppercase;letter-spacing:.3px;margin-bottom:4px;font-size:12px;font-weight:700;display:block}.card{background:var(--white);box-shadow:var(--shadow);border:1px solid var(--border);border-radius:22px;margin-bottom:14px;padding:18px}.card-inset{background:#f8fafe;border:1px solid #dfe7f2;border-radius:16px;padding:12px}.btn-primary{background:linear-gradient(135deg, var(--primary), var(--secondary), #7dd3fc);color:#fff;border-radius:18px;justify-content:center;align-items:center;gap:8px;width:100%;padding:16px 24px;font-size:17px;display:flex;box-shadow:0 8px 18px #0062ff2e}.btn-primary:disabled{opacity:.5;cursor:default}.btn-secondary{background:var(--softBlue);color:var(--primary);border-radius:14px;width:100%;padding:12px 24px;font-size:14px;font-weight:800}.tab-bar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:100;background:#fffc;border-radius:34px;gap:4px;max-width:448px;margin:0 auto;padding:6px;display:flex;position:fixed;bottom:16px;left:16px;right:16px;box-shadow:0 10px 28px #0f172a17}.tab-item{color:#9aa3b2;background:0 0;border-radius:28px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:8px 4px;font-size:10px;font-weight:700;transition:all .2s;display:flex}.tab-item.active{background:var(--softBlue);color:var(--primary)}.tab-item svg{width:21px;height:21px}.home-content{padding:20px 20px 100px}.hero-panel{background:linear-gradient(135deg,#0062ff 0%,#28a5ff 50%,#7dd3fc 100%);border-radius:28px;margin-bottom:22px;padding:18px;box-shadow:0 16px 24px #0062ff38}.hero-header{justify-content:space-between;align-items:flex-start;display:flex}.hero-badge{color:#def;letter-spacing:.5px;font-size:12px;font-weight:800}.hero-icon{color:#fff;font-size:25px}.hero-illustration{perspective:200px;justify-content:center;align-items:center;gap:4px;height:80px;margin:8px 0;display:flex}.hero-floor{background:#ffffff26;border-radius:8px;width:140px;height:50px}.hero-wall-north{background:#fff3;border-radius:4px;width:130px;height:22px;margin-top:-36px}.hero-window{background:#fff9;border-radius:2px;width:28px;height:6px;margin-top:-14px;margin-left:50px}.hero-text{color:#fff;margin-bottom:12px;font-size:22px;font-weight:900;line-height:1.2}.hero-cta{color:var(--primary);cursor:pointer;background:#fff;border:none;border-radius:20px;justify-content:center;align-items:center;gap:10px;width:100%;padding:14px;font-size:17px;font-weight:800;display:flex}.section-title{color:var(--ink);margin-bottom:10px;font-size:17px;font-weight:800}.recent-row{background:var(--white);cursor:pointer;border-radius:18px;align-items:center;gap:12px;margin-bottom:8px;padding:12px;display:flex;box-shadow:0 4px 14px #0000000a}.recent-icon{background:var(--softBlue);width:44px;height:44px;color:var(--primary);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:flex}.recent-text{flex:1;min-width:0}.recent-title{color:var(--ink);font-size:15px;font-weight:800}.recent-subtitle{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.row-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.phase-panel{background:var(--white);border:1px solid var(--border);border-radius:22px;margin-bottom:14px;padding:16px}.steps{justify-content:center;gap:8px;margin-bottom:20px;display:flex}.step-dot{background:#d1d5db;border-radius:50%;width:8px;height:8px;transition:all .2s}.step-dot.active{background:var(--primary);border-radius:4px;width:24px}.step-dot.done{background:var(--primary)}.nav-bar{justify-content:space-between;align-items:center;min-height:44px;margin-bottom:8px;display:flex}.nav-back{color:var(--primary);text-align:left;background:0 0;width:42px;font-size:30px;font-weight:600;line-height:1}.nav-title{font-size:15px;font-weight:800}.nav-step{color:var(--muted);font-size:14px;font-weight:800}.progress-track{background:#dde7f6;border-radius:10px;height:7px;margin-bottom:16px;overflow:hidden}.progress-fill{background:linear-gradient(135deg, var(--primary), var(--secondary), #7dd3fc);border-radius:10px;min-width:12px;height:100%;transition:width .4s}.slider-group{margin-bottom:14px}.slider-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.slider-label{color:var(--muted);text-transform:uppercase;letter-spacing:.3px;font-size:12px;font-weight:800}.slider-value{color:var(--primary);font-size:13px;font-weight:800}input[type=range]{appearance:none;background:#dde7f6;border:none;border-radius:4px;outline:none;width:100%;height:8px;padding:0}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;border:4px solid var(--primary);background:#fff;border-radius:50%;width:28px;height:28px;box-shadow:0 2px 8px #00000026}input[type=range]::-webkit-slider-runnable-track{height:8px}input[type=range]:focus{box-shadow:none}.slider-range{color:#9aa3b2;justify-content:space-between;margin-top:4px;font-size:11px;font-weight:700;display:flex}.badge{background:var(--softBlue);color:var(--primary);white-space:nowrap;border-radius:20px;padding:4px 10px;font-size:12px;font-weight:800}.result-hero{border-radius:28px;margin-bottom:14px;padding:18px}.result-value{text-align:center;margin:8px 0;font-size:28px;font-weight:900}.result-unit{text-align:center;font-size:14px}.breakdown-item{align-items:center;gap:8px;margin-bottom:6px;display:flex}.breakdown-label{width:100px;color:var(--muted);text-align:right;flex-shrink:0;font-size:12px}.breakdown-track{background:#e5e7eb;border-radius:5px;flex:1;height:10px;overflow:hidden}.breakdown-fill{border-radius:5px;height:100%;transition:width .5s}.breakdown-value{width:80px;color:var(--ink);text-align:right;flex-shrink:0;font-size:11px;font-weight:700}.grid-2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.option-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.option-btn{text-align:left;background:var(--softBlue);color:var(--ink);border:1px solid #0000;border-radius:14px;padding:10px 12px;font-size:13px;font-weight:800}.option-btn.selected{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff;border-color:#0000}.stepper{align-items:center;gap:12px;display:flex}.stepper-btn{border-radius:16px;justify-content:center;align-items:center;width:48px;height:48px;font-size:20px;font-weight:700;display:flex}.stepper-btn.primary{background:linear-gradient(135deg, var(--primary), var(--secondary));color:#fff}.stepper-btn.secondary{background:var(--softBlue);color:var(--primary);border:1px solid var(--border)}.stepper-value{text-align:center;background:var(--softBlue);border-radius:18px;flex:1;padding:16px}.stepper-number{color:var(--primary);font-size:28px;font-weight:900}.stepper-unit{color:var(--muted);font-size:12px;font-weight:700}.summary-row{justify-content:space-between;align-items:center;padding:6px 0;display:flex}.summary-label{color:var(--muted);font-size:13px;font-weight:700}.summary-value{color:var(--ink);text-align:right;font-size:14px;font-weight:800}.toggle-row{background:#f8fafe;border:1px solid #dfe7f2;border-radius:16px;justify-content:space-between;align-items:center;padding:12px;display:flex}.toggle-label{color:var(--ink);font-size:13px;font-weight:800}.toggle-switch{cursor:pointer;background:#d1d5db;border-radius:14px;width:48px;height:28px;transition:background .2s;position:relative}.toggle-switch.active{background:var(--primary)}.toggle-thumb{background:#fff;border-radius:50%;width:24px;height:24px;transition:left .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 4px #00000026}.toggle-switch.active .toggle-thumb{left:22px}.summary-card{background:var(--white);border:1px solid var(--border);border-radius:22px;padding:16px}.metric-tile{background:var(--white);border:1px solid var(--border);text-align:center;border-radius:18px;padding:12px}.metric-tile .label{color:var(--muted);font-size:12px;font-weight:700}.metric-tile .value{color:var(--primary);font-size:22px;font-weight:900}.history-card{background:var(--white);border:1px solid var(--border);cursor:pointer;border-radius:18px;align-items:center;gap:12px;margin-bottom:10px;padding:14px;display:flex}.history-thumb{background:var(--softBlue);width:50px;height:50px;color:var(--primary);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:20px;display:flex}.history-info{flex:1;min-width:0}.history-name{color:var(--ink);font-size:15px;font-weight:800}.history-address{color:var(--muted);font-size:12px}.divider{background:var(--border);height:1px;margin:10px 0}.empty-state{text-align:center;background:var(--white);border-radius:18px;padding:24px}.empty-icon{color:var(--primary);margin-bottom:10px;font-size:36px}.empty-title{color:var(--ink);font-size:17px;font-weight:800}.empty-body{color:var(--muted);font-size:13px}.mini-room{perspective:120px;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.mini-floor{background:#ffffff1f;border-radius:6px;width:120px;height:44px}.mini-north-wall{background:#ffffff2e;border-radius:3px;width:110px;height:18px;margin-top:-30px}.mini-window{background:#ffffff8c;border-radius:2px;width:24px;height:5px;margin-top:-12px;margin-left:40px}.checkmark{background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.checkmark svg{width:24px;height:24px;color:var(--primary)}.item-row{align-items:center;gap:12px;padding:10px 0;display:flex}.item-icon{background:var(--softBlue);width:34px;height:34px;color:var(--primary);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;display:flex}.item-content{flex:1;min-width:0}.item-label{color:var(--muted);font-size:13px;font-weight:700}.item-value{color:var(--ink);font-size:14px;font-weight:800}.disclaimer{color:#92400e;text-align:center;background:#fffbeb;border:1px solid #fde68a;border-radius:14px;margin-top:12px;padding:12px;font-size:12px;line-height:1.5}.screen-header{align-items:flex-start;margin-bottom:16px;display:flex}.screen-header-text{flex:1}.screen-eyebrow{color:var(--primary);margin-bottom:4px;font-size:12px;font-weight:800}.screen-title{color:var(--ink);font-size:28px;font-weight:900;line-height:1.1}.screen-subtitle{color:var(--muted);margin-top:4px;font-size:14px;line-height:1.4}.home-header{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.home-header-title{color:var(--ink);font-size:31px;font-weight:900;line-height:1.1}.home-header-subtitle{color:var(--primary);font-size:14px;font-weight:700}.sun-card{background:linear-gradient(135deg,#071a3a 0%,#0b3d91 50%,#0062ff 100%);border-radius:28px;margin-bottom:14px;padding:18px}.sun-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.sun-header-label{color:#ffd22e;font-size:11px;font-weight:800}.sun-header-time{color:#fffc;font-size:12px;font-weight:800}.sun-compass{aspect-ratio:1;width:100%;margin:0 auto;position:relative}.gps-btn{background:var(--softBlue);color:var(--primary);cursor:pointer;border:none;border-radius:14px;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px;font-size:14px;font-weight:700;transition:opacity .15s;display:flex}.gps-btn:hover{opacity:.85}.gps-btn:disabled{opacity:.5;cursor:default}.scroll-area{-webkit-overflow-scrolling:touch;overflow-y:auto}
