/* Smart Building Score v2 – components. Mobile first. No inline styles anywhere (CSP: style-src 'self' + Google Fonts). */
:root{--green:#2e9e5b;--safe:#2b6cb0;--productive:#e07b1f;--cyber:#6f42c1;--ok:#15803d;--warn:#b45309;--err:#b91c1c}
/* landing */
.sbs-hero{background:radial-gradient(1200px 500px at 85% -10%,rgba(232,192,102,.22),transparent 60%),linear-gradient(135deg,var(--navy),var(--navy2));color:#fff}
.sbs-hero-in{display:grid;grid-template-columns:1.05fr 1fr;gap:3rem;align-items:center;max-width:1240px;margin:0 auto;padding:4.2rem 5vw 4.6rem}
.sbs-hero h1{color:#fff;font-size:clamp(2rem,4.2vw,3.2rem)}
.sbs-hero .eyebrow{color:var(--teal2)}
.sbs-facts{display:flex;gap:2rem;list-style:none;padding:0;margin:2rem 0 0;color:#9aa0ab;font-size:.84rem}
.sbs-facts b{display:block;color:#fff;font-size:1.25rem;font-weight:800}
.hero-img img{width:100%}
.sbs-steps{list-style:none;counter-reset:s;padding:0;margin:1.6rem 0 0;display:grid;gap:1rem}
.sbs-steps li{counter-increment:s;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.3rem 1.3rem 1.1rem;box-shadow:var(--shadow);position:relative}
.sbs-steps li:before{content:counter(s,decimal-leading-zero);display:block;font-weight:800;font-size:1.5rem;color:var(--teal);margin-bottom:.3rem}
.sbs-steps p{color:var(--mut);margin:0;font-size:.94rem}
.sbs-grid{display:grid;gap:1rem;margin-top:1.6rem}
.sbs-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem 1.35rem;box-shadow:var(--shadow)}
.sbs-card p,.sbs-card li{color:var(--mut);font-size:.93rem}
.sbs-card ul{margin:.4rem 0 0;padding-left:1.1rem}
.cat{border-top:4px solid var(--teal)}
.cat-green{border-top-color:var(--green)}.cat-safe{border-top-color:var(--safe)}.cat-productive{border-top-color:var(--productive)}.cat-cyber{border-top-color:var(--cyber)}
.sbs-list{padding-left:1.2rem}.sbs-list li{margin:.45rem 0}
.wrap-dark .sbs-list b{color:#fff}
.sbs-sample{margin:2rem 0 0;position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:.8rem;box-shadow:var(--shadow)}
.sbs-sample img{width:100%;border-radius:8px}
.sbs-sample .badge{position:absolute;top:1.3rem;left:1.3rem;background:var(--err);color:#fff;font-weight:800;font-size:.72rem;letter-spacing:.14em;padding:.25rem .7rem;border-radius:6px}
.sbs-sample figcaption{font-size:.85rem;color:var(--mut2);padding:.7rem .3rem 0}
details.faq{background:#fff;border:1px solid var(--line);border-radius:12px;padding:.1rem 1.1rem;margin:.6rem 0}
details.faq summary{cursor:pointer;min-height:48px;display:flex;align-items:center;font-weight:600;color:var(--navy)}
details.faq p{color:var(--mut);margin:.2rem 0 1rem}
.sbs-note{background:#f8f4ea;border:1px solid var(--line);border-left:4px solid var(--teal);border-radius:10px;padding:.95rem 1.15rem;font-size:.92rem;color:#3d3a30}
.sbs-note.warn{background:#fff7ed;border-color:#fed7aa;border-left-color:var(--warn);color:#7c2d12}
.sbs-note.err{background:#fef2f2;border-color:#fecaca;border-left-color:var(--err);color:#7f1d1d}
.sbs-note.ok{background:#f0fdf4;border-color:#bbf7d0;border-left-color:var(--ok);color:#14532d}
.sbs-note ul{margin:.4rem 0 0;padding-left:1.2rem}
/* assessment shell */
.sbs-band{background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff}
.sbs-head{max-width:960px;margin:0 auto;padding:2.4rem 5vw 4.4rem}
.sbs-head h1{color:#fff}
.sbs-head .eyebrow{color:var(--teal2)}
.sbs-head p{color:#e9e4d4;max-width:46rem;margin:.2rem 0 0}
.sbs-shell{max-width:960px;margin:-3rem auto 0;padding:0 4vw 3.5rem;position:relative}
.sbs-shell.wide{max-width:1120px;margin-top:0;padding-top:2rem}
.sbs-progress{position:sticky;top:66px;z-index:10;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:.85rem 1.1rem .9rem;box-shadow:var(--shadow);margin-bottom:1rem}
.sbs-rail{display:flex;gap:.35rem;list-style:none;margin:0 0 .6rem;padding:0;overflow-x:auto;scrollbar-width:none}
.sbs-rail li{flex:1 0 auto;font-size:.72rem;font-weight:600;color:var(--mut2);padding:.25rem .6rem;border-radius:999px;background:#f8f4ea;text-align:center;white-space:nowrap}
.sbs-rail li.done{background:var(--mint);color:#a8741a}
.sbs-rail li.cur{background:var(--navy);color:#fff}
.sbs-progress .meta{display:flex;justify-content:space-between;gap:1rem;font-size:.82rem;color:var(--mut);margin-bottom:.45rem}
.sbs-progress .meta span:first-child{font-weight:600;color:var(--navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sbs-track{height:6px;background:#ece6d8;border-radius:99px;overflow:hidden}
.sbs-fill{height:100%;width:0;background:linear-gradient(90deg,var(--teal),var(--teal2));border-radius:99px;transition:width .3s}
.sbs-errsum{background:#fef2f2;border:1px solid #fecaca;border-left:4px solid var(--err);border-radius:10px;padding:.9rem 1.15rem;margin-bottom:1rem;color:#7f1d1d}
.sbs-errsum ul{margin:.4rem 0 0;padding-left:1.2rem}.sbs-errsum a{color:#7f1d1d}
.sbs-wait{display:flex;align-items:center;gap:.7rem;padding:1.4rem;color:var(--mut)}
.sbs-spin{width:22px;height:22px;border:3px solid #e9e4d4;border-top-color:var(--teal);border-radius:50%;animation:sbsspin .8s linear infinite;flex:none}
@keyframes sbsspin{to{transform:rotate(360deg)}}
.sbs-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.sbs-disc{font-size:.8rem;color:var(--mut2);line-height:1.55}
.sbs-step{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1.6rem 1.6rem 1.4rem}
.sbs-step-head{border-bottom:1px solid var(--line);padding-bottom:1rem;margin-bottom:1.2rem}
.sbs-step h2{margin:.5rem 0 .3rem;font-size:1.55rem}
.sbs-sub{color:var(--mut);margin:.2rem 0 0;font-size:.95rem}
.sbs-instr{margin-top:.6rem;font-size:.88rem;background:#fbfaf7;border-radius:8px;padding:.6rem .8rem}
.sbs-cat-tag{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.22rem .6rem;border-radius:6px;background:#f8f4ea;color:var(--navy)}
.t-green{background:#dcfce7;color:#166534}.t-safe{background:#e5eef8;color:#1f4f86}.t-productive{background:#ffedd5;color:#9a3412}.t-cyber{background:#efe9f8;color:#5a35a0}.t-review{background:var(--mint);color:#a8741a}
.sbs-step .sbs-card{box-shadow:none;margin:0 0 1rem;padding:1.1rem 1.2rem;background:#fffdf8}
.sbs-card-h{font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:var(--mut);margin:0 0 .8rem}
.sbs-step .sbs-grid{margin-top:0;gap:.9rem 1rem}
@media(min-width:700px){.sbs-step .sbs-grid{grid-template-columns:1fr 1fr}.sbs-field.full{grid-column:1/-1}}
.sbs-field{display:flex;flex-direction:column;gap:.3rem}
.sbs-field label,.sbs-radio legend{font-weight:600;font-size:.9rem;color:var(--ink)}
.req{color:var(--err)}.opt{color:var(--mut2);font-weight:400;font-size:.82rem}
.sbs-field input,.sbs-field select,.sbs-field textarea{width:100%;min-height:46px;padding:.65rem .8rem;border:1.5px solid var(--line2);border-radius:10px;font:inherit;font-size:.96rem;background:#fff;color:var(--ink);transition:border-color .15s,box-shadow .15s}
.sbs-field textarea{min-height:160px;resize:vertical}
.sbs-field input:focus,.sbs-field select:focus,.sbs-field textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(201,149,43,.18);outline:none}
.hint{font-size:.8rem;color:var(--mut2)}
.sbs-msg{font-size:.84rem;color:var(--err);font-weight:600;min-height:0}
.sbs-msg:empty{display:none}
.bad input,.bad select,.bad textarea{border-color:var(--err)}
.sbs-radio{border:0;padding:0;margin:0}
.sbs-q{border:1px solid var(--line);border-radius:12px;padding:1.15rem 1.2rem 1rem;margin:0 0 1rem;background:#fffdf8}
.sbs-q.bad,.sbs-field.bad .sbs-radio,.sbs-gas.bad{border-color:var(--err);box-shadow:0 0 0 3px rgba(185,28,28,.08)}
.sbs-q legend{display:contents}
.sbs-qno{display:inline-block;font-size:.75rem;font-weight:800;color:#fff;background:var(--navy);border-radius:6px;padding:.15rem .45rem;margin-right:.45rem}
.sbs-dim{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#a8741a;background:var(--mint);border-radius:6px;padding:.15rem .5rem}
.d-coverage{color:#1f4f86;background:#e5eef8}.d-uptime{color:#9a3412;background:#ffedd5}.d-cyber{color:#5a35a0;background:#efe9f8}
.sbs-qtext{display:block;font-weight:600;font-size:1.02rem;color:var(--ink);margin:.55rem 0 .2rem;line-height:1.45}
.sbs-qdesc{color:var(--mut);font-size:.88rem;margin:.1rem 0 .5rem}
.sbs-guide{margin:.35rem 0 .8rem;display:grid;gap:.45rem;font-size:.88rem}
.sbs-guide .g-row{display:grid;grid-template-columns:8.2rem 1fr;gap:.2rem .8rem;align-items:start;padding:.5rem .75rem;border-radius:8px;background:#fbf8f0;border-left:3px solid var(--gold)}
.sbs-guide .g-lab{font-family:Montserrat,Inter,sans-serif;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#8a5a00;padding-top:.15rem}
.sbs-guide p{margin:0;color:#3d3a30;line-height:1.5}
.sbs-guide .g-imp{background:#fff5df;border-left-color:#e07b1f}
.sbs-guide .g-ex{background:#fff;border:1px dashed var(--line2);border-left:3px solid var(--gold2)}
.sbs-guide .g-note{margin:0;font-size:.78rem;color:var(--mut);font-style:italic}
@media(max-width:560px){.sbs-guide .g-row{grid-template-columns:1fr}}
.sbs-opts{display:grid;gap:.45rem}
@media(min-width:700px){.sbs-opts.compact{grid-template-columns:repeat(4,1fr)}}
.sbs-opt{position:relative;display:flex;align-items:center;gap:.7rem;min-height:46px;padding:.55rem .85rem;border:1.5px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;font-size:.93rem;transition:border-color .15s,background .15s}
.sbs-opt:hover{border-color:var(--line2);background:#fbfaf7}
.sbs-opt input{position:absolute;opacity:0;width:1px;height:1px}
.sbs-opt .dot{flex:none;width:18px;height:18px;border-radius:50%;border:2px solid var(--line2);background:#fff;transition:.15s}
.sbs-opt input:checked~.dot{border-color:var(--teal);box-shadow:inset 0 0 0 4px #fff;background:var(--teal)}
.sbs-opt:has(input:checked){border-color:var(--teal);background:#fbf3de}
.sbs-opt input:focus-visible~.dot{outline:3px solid #2b6cb0;outline-offset:2px}
.sbs-opt.ns .txt{color:var(--mut)}
.sbs-opt.na{border-style:dashed}
.sbs-gas{border:1px solid var(--line);border-radius:12px;padding:.9rem 1.1rem;background:#fbfaf7;margin-bottom:1rem}
.sbs-gas .rule{margin:0 0 .4rem;font-size:.88rem;color:var(--mut)}
.sbs-gas.warn{background:#fff7ed;border-color:#fed7aa}.sbs-gas.warn .rule{color:#7c2d12;font-weight:600}
.sbs-check{display:flex;gap:.7rem;align-items:flex-start;padding:.45rem 0;cursor:pointer;font-size:.93rem}
.sbs-check input{width:20px;height:20px;margin-top:.15rem;accent-color:var(--teal);flex:none}
.sbs-nav{display:flex;justify-content:space-between;align-items:center;gap:.8rem;flex-wrap:wrap;margin-top:1.4rem;padding-top:1.1rem;border-top:1px solid var(--line)}
.sbs-row{display:flex;justify-content:space-between;gap:1rem}
.sbs-count{font-size:.8rem;color:var(--mut2);white-space:nowrap}
.sbs-review dl{margin:0}
.sbs-review .row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.6fr) auto;gap:.8rem;padding:.5rem 0;border-bottom:1px solid #f8f4ea;align-items:center;font-size:.9rem}
.sbs-review .row:last-child{border-bottom:0}
.sbs-review dt{color:var(--mut)}.sbs-review dd{margin:0;font-weight:600;overflow-wrap:anywhere;white-space:pre-line}
.sbs-review .row.warn dd{color:var(--err)}
.sbs-review .sbs-card-h .sbs-cat-tag{margin-right:.3rem}
.ed{background:none;border:1px solid var(--line2);border-radius:8px;padding:.3rem .7rem;color:var(--navy);font-size:.8rem;font-weight:600;cursor:pointer;min-height:34px}
.ed:hover{border-color:var(--navy)}
.sbs-consent{border:1px solid var(--line);border-radius:12px;padding:1.1rem 1.2rem;margin:1rem 0;background:#fbfaf7}
.sbs-consent h3{margin-top:0}
.sbs-consent p{font-size:.88rem;color:#3d3a30}
/* result */
.rs-msg{margin-top:1rem}
.rs-hero{display:grid;grid-template-columns:240px 1fr;gap:2rem;align-items:center;background:linear-gradient(135deg,var(--navy),var(--navy2));color:#fff;border-radius:18px;padding:2rem 2.2rem;box-shadow:var(--shadow);margin-bottom:1rem}
.rs-hero h1{color:#fff;margin:.1rem 0 .3rem}
.rs-hero .eyebrow{color:var(--teal2)}
.rs-hero-score svg{width:100%;max-width:220px}
.rs-nc{display:flex;flex-direction:column;gap:.4rem;border:2px dashed rgba(255,255,255,.3);border-radius:16px;padding:1.6rem 1.2rem;text-align:center}
.rs-nc b{font-size:1.5rem}.rs-nc span{color:#e9e4d4;font-size:.86rem}
.rs-meta{color:#9aa0ab;margin:0 0 .7rem;font-size:.9rem}
.rs-chip{display:inline-block;font-size:.74rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:.3rem .75rem;border-radius:999px}
.rs-chip.final{background:#2e9e5b;color:#fff}.rs-chip.prov{background:#f59e0b;color:#151922}
.rs-basis{color:#ece6d8;margin:.8rem 0 .3rem;font-size:.94rem}
.rs-comp{color:var(--teal2);font-weight:600;font-size:.88rem;margin:0}
.rs-reasons{margin:1rem 0}
.rs-sec{margin-top:2.2rem}
.rs-sec>h2{font-size:1.35rem}
.rs-cats{display:grid;gap:1rem}
.rs-cat{background:#fff;border:1px solid var(--line);border-top:4px solid var(--teal);border-radius:var(--radius);padding:1.1rem 1.2rem;box-shadow:var(--shadow)}
.rs-cat h3{margin:0;font-size:.95rem;color:var(--mut)}
.rs-sc{font-size:2rem;font-weight:800;margin:.2rem 0 .5rem;color:var(--navy)}
.rs-cat.cat-green{border-top-color:var(--green)}.rs-cat.cat-safe{border-top-color:var(--safe)}.rs-cat.cat-productive{border-top-color:var(--productive)}.rs-cat.cat-cyber{border-top-color:var(--cyber)}
.rs-bar{height:8px;border-radius:99px;background:#ece6d8;overflow:hidden}
.rs-bar i{display:block;height:100%;background:var(--teal);border-radius:99px}
.cat-green .rs-bar i{background:var(--green)}.cat-safe .rs-bar i{background:var(--safe)}.cat-productive .rs-bar i{background:var(--productive)}.cat-cyber .rs-bar i{background:var(--cyber)}
.rs-note{color:var(--mut2);font-size:.84rem;margin:.6rem 0 0}
.rs-top5{list-style:none;padding:0;margin:0;display:grid;gap:.8rem}
.rs-top5 li{background:#fff;border:1px solid var(--line);border-left:4px solid var(--teal);border-radius:12px;padding:1rem 1.2rem;box-shadow:var(--shadow)}
.rs-top5 li.cat-green{border-left-color:var(--green)}.rs-top5 li.cat-safe{border-left-color:var(--safe)}.rs-top5 li.cat-productive{border-left-color:var(--productive)}
.rs-top5 .hd{display:flex;align-items:center;gap:.9rem}
.rs-top5 .hd>div{flex:1}.rs-top5 .hd b{display:block;color:var(--navy)}
.rs-top5 .rk{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff;font-weight:800}
.rs-top5 .cat{font-size:.76rem;text-transform:uppercase;letter-spacing:.08em;color:var(--mut2)}
.rs-top5 .sc{font-size:1.35rem;font-weight:800;color:var(--navy)}
.rs-top5 .focus{color:var(--mut);font-size:.88rem;font-style:italic;margin:.6rem 0 .3rem}
.rs-top5 .act{margin:.3rem 0 0;font-size:.92rem}
.rs-top5 .conf{margin:.4rem 0 0;font-size:.84rem;color:var(--warn)}
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow)}
.rs-table{width:100%;border-collapse:collapse;font-size:.88rem;min-width:640px}
.rs-table th,.rs-table td{padding:.6rem .8rem;text-align:left;border-bottom:1px solid #f8f4ea;vertical-align:top}
.rs-table thead th{background:var(--navy);color:#fff;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}
.rs-table tr.grp th{background:#fbfaf7;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;color:var(--navy);border-left:4px solid var(--teal)}
.rs-table tr.grp.cat-green th{border-left-color:var(--green)}.rs-table tr.grp.cat-safe th{border-left-color:var(--safe)}.rs-table tr.grp.cat-productive th{border-left-color:var(--productive)}
.rs-table td b{display:block}.rs-table td small{color:var(--mut2)}
.rs-table td.muted b{color:var(--warn);font-weight:600}
.rs-table td.num{font-weight:800;color:var(--navy);text-align:right;white-space:nowrap}
.rs-cyber{display:grid;gap:1rem}
.rs-cyber .sbs-card{border-top:4px solid var(--cyber)}
.rs-cyber .ans{font-weight:700;color:var(--navy)}.rs-cyber .ans.muted{color:var(--warn)}
.rs-cta{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.3rem 1.4rem;box-shadow:var(--shadow)}
.rs-actions{display:flex;gap:.8rem;flex-wrap:wrap}
.rs-road{list-style:none;counter-reset:r;padding:0;margin:0;display:grid;gap:.8rem}
.rs-road li{counter-increment:r;background:#fff;border:1px solid var(--line);border-radius:12px;padding:1rem 1.1rem;box-shadow:var(--shadow)}
.rs-road li:before{content:counter(r,decimal-leading-zero);display:block;color:var(--teal);font-weight:800}
.rs-road b{display:block;color:var(--navy)}.rs-road span{color:var(--mut);font-size:.9rem}
@media(min-width:700px){.sbs-steps{grid-template-columns:1fr 1fr}.sbs-grid.c3,.sbs-grid.c4,.rs-cats,.rs-cyber,.rs-road{grid-template-columns:1fr 1fr}}
@media(min-width:1000px){.sbs-steps,.sbs-grid.c4,.rs-cats,.rs-road{grid-template-columns:repeat(4,1fr)}.sbs-grid.c3{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.sbs-hero-in{grid-template-columns:1fr;padding:2.6rem 6vw 3rem}.hero-img{max-width:520px}.sbs-progress{top:58px}}
@media(max-width:700px){.rs-hero{grid-template-columns:1fr;padding:1.5rem;text-align:left}.rs-hero-score{max-width:200px}.sbs-step{padding:1.2rem 1rem}.sbs-review .row{grid-template-columns:1fr auto}.sbs-review dd{grid-column:1/2}.sbs-review .row>div{grid-row:1/3;grid-column:2}.sbs-facts{gap:1.2rem}}
