:root{--ink:#152647;--muted:#657895;--blue:#2864e7;--deep:#11378a;--soft:#edf4ff;--stroke:#dce6f5;--bg:#f6f9ff;--white:#fff;--good:#137e64;--warn:#b66c18;--danger:#bc4d55;--shadow:0 12px 35px rgba(17,54,107,.055)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.55 system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(31px,4vw,51px);line-height:1.12;letter-spacing:-.048em;margin-bottom:14px}h2{font-size:22px;letter-spacing:-.035em}h3{font-size:16px}p{color:var(--muted)}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.shell{width:min(1220px,calc(100% - 38px));margin:auto}.top{background:rgba(255,255,255,.96);border-bottom:1px solid var(--stroke);position:sticky;top:0;z-index:30;backdrop-filter:blur(8px)}.top .shell{display:flex;align-items:center;gap:25px;min-height:73px}.brand{font-size:24px;font-weight:850;letter-spacing:-.065em;color:#123d93;white-space:nowrap}.brand span{font-weight:400;color:#7399d3}.top nav{display:flex;gap:8px;margin-left:auto}.top nav a{padding:9px 14px;border-radius:11px;color:#536c93;font-size:13px;font-weight:650}.top nav a:hover{background:var(--soft);text-decoration:none}.hero{padding:57px 0 24px;display:flex;justify-content:space-between;gap:35px;align-items:center}.hero>div{max-width:790px}.eyebrow{font-weight:850;letter-spacing:.15em;font-size:11px;text-transform:uppercase;color:#3175ea;display:inline-block;margin-bottom:14px}.hero p{font-size:16px;max-width:730px}.tag{display:inline-flex;gap:5px;align-items:center;background:#eaf2ff;color:#3b65a6;border:1px solid #d4e4ff;border-radius:99px;font-size:11px;padding:7px 11px;font-weight:760}.tag.good{background:#e6f7f2;color:#247963;border-color:#c7ebdf}.tag.warn{background:#fff5e8;color:#975c23;border-color:#f4dfc6}.hero-art{width:175px;height:140px;border-radius:28px;background:radial-gradient(circle at 70% 20%,#b6d6ff,transparent 45%),linear-gradient(135deg,#ddefff,#88b5fa);display:flex;align-items:center;justify-content:center;font-size:64px;box-shadow:var(--shadow);flex-shrink:0}.card{border:1px solid var(--stroke);border-radius:20px;background:#fff;padding:23px;box-shadow:var(--shadow)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.layout{display:grid;grid-template-columns:330px 1fr;gap:19px;margin:22px auto 44px;align-items:start}.layout.wide{grid-template-columns:390px 1fr}.controls{position:relative}.controls h2,.results h2{font-size:19px;margin:0 0 18px}.line{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.line.between{justify-content:space-between}.field{display:block;margin-bottom:13px;min-width:0}.field span,.field>label{display:block;font-size:11px;font-weight:750;letter-spacing:.015em;color:#61718b;margin-bottom:6px}.field input,.field select,.field textarea,input.control,select.control,textarea.control{display:block;width:100%;background:#f9fbff;border:1px solid #d6e1f2;border-radius:11px;min-height:42px;padding:9px 11px;color:var(--ink);font:inherit;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:#477ff0;box-shadow:0 0 0 3px #3370ed1a}.field textarea{min-height:100px;resize:vertical}.field input[type=checkbox]{width:auto;min-height:auto;display:inline}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.btn{border:0;border-radius:11px;background:var(--blue);color:#fff;font:inherit;font-size:13px;font-weight:700;line-height:1.3;padding:12px 16px;cursor:pointer;min-height:41px;display:inline-flex;justify-content:center;align-items:center;gap:7px}.btn:hover{filter:brightness(.96)}.btn.secondary{background:#edf4ff;color:#2454a5;border:1px solid #caddf9}.btn.ghost{background:#fff;border:1px solid var(--stroke);color:#44618d}.btn.danger{background:#fff1f0;color:#9a3342;border:1px solid #f4cccc}.btn:disabled{opacity:.45;cursor:not-allowed}.kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:18px}.kpi{background:#f1f6ff;border:1px solid #e0e9fa;border-radius:15px;padding:17px}.kpi small{font-size:11px;color:#647897;display:block;font-weight:650}.kpi strong{display:block;font-size:23px;line-height:1.25;letter-spacing:-.036em;color:#153f91;margin:8px 0 2px;word-break:break-word}.kpi em{font-size:11px;color:#7085a5;font-style:normal}.muted{color:var(--muted)}.tiny{font-size:11px;color:#7c8ca4}.notice{border:1px solid #cddffc;border-radius:14px;background:#f0f6ff;padding:12px 14px;color:#557195;font-size:12px;margin:13px 0}.notice.warn{background:#fff8ea;border-color:#f2dfb8;color:#8b652b}.notice.error{background:#ffefef;border-color:#f5bfc4;color:#8b3e45}.notice.good{background:#eaf7f0;border-color:#cce9da;color:#286f57}.table-scroll{overflow-x:auto;max-width:100%}table{border-collapse:collapse;width:100%;font-size:12px}thead th{background:#eff5ff;color:#49648c;font-size:10px;letter-spacing:.06em;text-transform:uppercase;text-align:left}th,td{padding:11px 10px;border-bottom:1px solid #ebf0f8;white-space:nowrap}tbody tr:hover{background:#f7faff}td.num{text-align:right;font-variant-numeric:tabular-nums}.chartbox{height:285px;position:relative;margin:20px 0 11px;background:linear-gradient(180deg,#fbfdff,#fff);border:1px solid #ebf1fb;border-radius:16px;overflow:hidden}.chartbox svg{width:100%;height:100%}.pillrow{display:flex;flex-wrap:wrap;gap:7px}.pill{background:#eff5ff;border:1px solid #dae8fb;border-radius:999px;font-size:11px;padding:5px 10px;color:#49678f}.app-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin:25px 0 60px}.app-link{display:flex;flex-direction:column;gap:8px;padding:25px;border:1px solid var(--stroke);background:#fff;border-radius:20px;box-shadow:var(--shadow);transition:transform .15s,border-color .15s;color:inherit}.app-link:hover{transform:translateY(-3px);border-color:#a9c6f5;text-decoration:none}.app-icon{font-size:30px;width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:16px;background:#eaf3ff;margin-bottom:7px}.app-link h3{margin:0;font-size:18px}.app-link p{font-size:12px;flex:1}.app-link b{font-size:12px;color:#2f69c8}.footer{border-top:1px solid var(--stroke);margin-top:58px;padding:23px 0;color:#8190a7;font-size:12px}.blank{padding:35px;text-align:center;color:#72819a}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px}.hidden{display:none!important}.progress{height:7px;background:#ecf2fa;border-radius:9px;overflow:hidden}.progress>div{height:100%;background:#3377ec;transition:width .15s}.filepick{display:block;border:1px dashed #b6cbea;background:#f7fbff;border-radius:13px;padding:16px;color:#546b8f;cursor:pointer}.filepick input{width:100%;margin-top:8px}.status{font-size:12px;margin-top:9px;min-height:20px}.range{width:100%;accent-color:var(--blue)}.image-stage{height:330px;background:#eaf2ff;border-radius:16px;overflow:hidden;position:relative;display:grid;place-items:center}.image-stage img{max-width:100%;max-height:100%;object-fit:contain}.image-stage .compare-overlay{position:absolute;inset:0;overflow:hidden}.image-stage .compare-overlay img{width:100%;height:100%;object-fit:contain;max-width:unset;max-height:unset}.image-stage .compare-under{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;max-width:unset;max-height:unset}.image-stage .image-divider{position:absolute;top:0;bottom:0;width:3px;background:white;box-shadow:0 0 0 1px #447abf,0 0 12px #17397075;pointer-events:none}.map-frame{width:100%;height:340px;border:0;border-radius:14px;background:#ecf2f8}.sources a{display:inline-block;margin-right:12px;font-size:12px}.code{font-family:ui-monospace,Consolas,monospace}.kbd{border:1px solid #dce6f4;background:#f6f9ff;padding:4px 8px;border-radius:6px;font-size:11px}.sub{padding-bottom:6px;border-bottom:1px solid var(--stroke);margin-bottom:16px}.labelled-icon{font-size:36px}.preview{display:grid;place-items:center;min-height:160px;background:linear-gradient(130deg,#edf6ff,#d9eaff);border:1px solid #d9e5f5;border-radius:18px;font-size:50px}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.project-row{border:1px solid #dce6f4;border-radius:12px;padding:11px;cursor:pointer;background:#fff}.project-row.active{border-color:#4a86f2;background:#f0f6ff}.right{margin-left:auto}.linklike{background:none;border:0;color:var(--blue);cursor:pointer;font:inherit;padding:0}.inline-badge{background:#edf5ff;padding:3px 8px;border-radius:8px;font-size:10px;color:#3c6ab6}.money{font-variant-numeric:tabular-nums}.docs{padding:34px;border-radius:20px;background:#e9f2ff;color:#506a90;margin:35px 0}.docs h3{color:#24456f}.controls details{border-top:1px solid #edf0f5;margin-top:15px;padding-top:15px}.controls details summary{font-weight:800;cursor:pointer;margin-bottom:10px}.chip{border-radius:9px;border:1px solid #d4e2f7;background:white;color:#5074ab;padding:5px 8px;font-size:11px}.checkbox-row{display:flex;align-items:center;gap:7px;font-size:12px}.checkbox-row input{accent-color:var(--blue)}@media(max-width:1020px){.app-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.layout,.layout.wide{grid-template-columns:1fr}.controls{position:static}.hero-art{width:100px;height:100px;font-size:38px}}@media(max-width:670px){.shell{width:min(100% - 24px,1220px)}.top .shell{gap:6px}.top .brand{font-size:20px}.top nav a{padding:8px 6px;font-size:11px}.hero{padding-top:30px}.hero-art{display:none}.app-grid,.grid,.grid.three,.two-col,.form-grid{grid-template-columns:1fr}.kpis{grid-template-columns:1fr 1fr}.card{padding:17px;border-radius:16px}.kpi{padding:11px}.kpi strong{font-size:19px}h1{font-size:31px}.chartbox{height:250px}}
