/* White, graphite and one lime accent. The live 3D view remains the main content. */
:root{--ink:#25282e;--muted:#717680;--paper:#fff;--line:#e5e7eb;--forest:#25282e;--brass:#718800;--accent:#c5f500}
body{background:#fff;color:var(--ink);font-family:'Golos Text','Segoe UI',sans-serif}
button{border-radius:10px;color:var(--ink)}button:hover{background:#eceef0}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #677d00;outline-offset:4px}
header{height:90px;padding:0 30px;background:#fff;border-color:var(--line);gap:24px;position:relative;z-index:30}
.brand{color:#303238;letter-spacing:-.035em;font-size:29px;font-weight:600;gap:18px}.brandmark{width:55px;height:55px;font-size:32px;border-color:#d5d9df;color:#303238}.brand small{font-size:14px;letter-spacing:0;color:#737984;margin-top:2px;font-weight:400}
header nav{border:0;gap:12px;padding:0}.mode{font-size:15px;font-weight:400;padding:24px 16px 17px;color:#6b717c;white-space:nowrap}.mode.active{color:#16181c;border-color:var(--accent);font-weight:600}.mode:hover{color:#17191d}
main{grid-template-columns:minmax(0,1fr) minmax(330px,32%);height:calc(100dvh - 90px);min-height:520px}
.scene-heading{display:none!important}.ui-icon{width:22px;height:22px;flex:none;stroke-width:1.7}
#settings{position:relative;align-self:stretch;display:flex;align-items:center;min-width:177px;border-left:1px solid var(--line);padding-left:26px;margin:17px 0}
#settings summary{display:flex;align-items:center;justify-content:center;gap:13px;list-style:none;cursor:pointer;color:#6d7280;font-size:15px;padding:10px 0;border-radius:6px}
#settings summary::-webkit-details-marker{display:none}#settings summary .ui-icon:last-child{width:16px}#settings[open] summary{color:#202329}#settings[open] summary .ui-icon:last-child{transform:rotate(180deg)}
.settings-panel{position:absolute;right:0;top:calc(100% + 12px);width:340px;max-width:calc(100vw - 28px);max-height:calc(100dvh - 110px);overflow:auto;background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;box-shadow:0 16px 55px #1e263226;z-index:40}
.settings-heading{font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;color:#757983;margin:0 0 12px}.settings-heading:not(:first-child){margin-top:24px}.settings-actions{display:grid;gap:7px}.settings-actions button{background:#f3f4f5;text-align:left;padding:12px;font-size:13px;min-height:44px}.settings-actions button[aria-pressed=true]{box-shadow:inset 3px 0 #c5f500}.settings-panel .outline{width:100%;background:#26292e;color:white;border:0;border-radius:9px;padding:13px;font-size:13px}.settings-panel .outline:hover{background:#3d4148}
.look-setting{display:grid;grid-template-columns:1fr 36px;background:transparent;border:0;padding:0;margin:20px 0;color:#424650;font-size:12px}.look-setting span{grid-column:1 / -1}.look-setting input{accent-color:#596617;width:100%}.look-setting output{color:#454a51}
footer{margin-top:15px;display:flex;flex-wrap:wrap;border-color:var(--line);padding-top:15px;gap:10px 14px}footer button,footer a,.import-label{color:#656b76;font-size:11px}footer small{color:#7b8089;line-height:1.5}
.view-tools{left:38px;right:auto;bottom:62px;gap:12px;flex-wrap:nowrap;overflow:visible}.view-tools button{display:flex;align-items:center;gap:10px;padding:17px 24px;font-size:15px;font-weight:600;border-radius:32px;background:#fff;color:#1a1d23;border:0;box-shadow:0 3px 14px #0002;white-space:nowrap;min-height:56px}.view-tools #inside{background:var(--accent);color:#141800}.view-tools #inside:hover{background:#d4ff29}.view-tools button:hover{transform:translateY(-2px)}
body.overview #outside{display:none}body:not(.overview) .view-tools #inside{display:none}
.time-switch{position:absolute;bottom:65px;right:32px;display:flex;gap:3px;padding:4px;background:#33383c85;backdrop-filter:blur(16px);border-radius:30px;box-shadow:0 2px 9px #0001}.time-switch button{display:grid;place-items:center;width:53px;height:39px;border-radius:24px;color:white;background:transparent;border:0}.time-switch button[aria-pressed=true],#evening[aria-pressed=true]{background:white;color:#24282d;border:0;box-shadow:0 1px 5px #0001}.time-switch button:hover{background:#ffffff45}.time-switch button[aria-pressed=true]:hover{background:#fff}
.scene-bottom{min-height:38px;padding:8px 22px;background:#ffffffeb;border-color:#ffffff30;gap:15px;backdrop-filter:blur(12px)}#location{font-size:11px;color:#353a41}#location span{display:none}#controls{font-size:10px;color:#636b75;max-width:none}#fps{display:none}
aside{padding:32px 28px 24px;background:#fff;border-color:var(--line);scrollbar-color:#d4d7db transparent}.panel-top h2{font-family:'Golos Text',sans-serif;font-size:13px;line-height:1.4;font-weight:500;letter-spacing:.16em;color:#737884;margin:3px 0 25px}
.floors{display:flex;background:#f3f4f6;border:0;border-radius:13px;padding:5px;gap:3px}.floors button{flex:1;padding:14px 6px;color:#555b65;font-size:15px;border-radius:10px;min-height:50px;white-space:nowrap}.floors .active{background:var(--accent);color:#191e03;font-weight:600}
.map-wrap{background:#f7f7f7;border:0;border-radius:13px;margin-top:18px;padding:10px 4px}#map{min-height:260px;max-height:none;width:100%;aspect-ratio:1/1;height:auto}.north{font-size:11px;color:#777d85;top:20px;right:18px}.map-zoom{border:1px solid #e2e4e7;box-shadow:0 1px 6px #0001;border-radius:8px}.map-zoom button{min-width:34px;min-height:32px;font-size:16px}.plan-dimension text{fill:#343940;stroke:#fff;font-size:.36px}.person-dot{background:#737e36}
.map-caption{color:#777d86;font-size:10px}.overview .map-caption,.overview #map-help,.overview #rooms,.overview #room-facts,.overview .catalog,.overview #selection{display:none!important}
#map-help{color:#6b717b;font-size:12px}.rooms{gap:7px;margin-bottom:22px}.rooms button{background:#f3f4f5;color:#464d57;padding:10px 12px;border-radius:8px;font-size:12px}.rooms button.active{background:#e7edce;color:#242d12;box-shadow:none}
#room-facts{background:#f7f8f9;border-color:#e7e9ec;border-radius:10px;color:#30353e}#room-facts small,#room-facts p{color:#737a85}#room-facts strong{font-family:'Golos Text',sans-serif;font-weight:500;font-size:19px}#room-facts>span{color:#454e59}
.catalog{border-color:var(--line)}.catalog-head h2{font:500 19px 'Golos Text',sans-serif;color:#343a43;letter-spacing:-.025em}#catalog-toggle{color:#4e5661;border-color:#d9dde3;border-radius:8px;padding:9px 11px}.catalog-card{background:#fff;border-color:#e2e5e9;border-radius:12px}.catalog-card:hover{border-color:#a3ae7e;background:#fff}.catalog-card b{color:#333a44}.catalog-card small{color:#707783}.catalog-categories button{background:#f5f6f7;color:#56606a;border-color:#e1e5e9}.catalog-categories button.active{background:#292f34;color:#fff;border-color:#292f34}#catalog-search{border-color:#dce0e5;color:#333a44;border-radius:9px}.catalog-search-label{color:#737b86}.catalog-card .add{background:var(--accent);color:#323e04}#selection{background:#f5f7ee;border-color:#d5dec0;border-radius:12px}
#walktip{background:#fffffff2;border-color:#e2e5e9;color:#49515b;border-radius:10px;font-size:11px;max-width:310px}#walktip button{background:#2d333b;color:white;border-radius:6px}#escape-hint{bottom:130px;right:24px;background:#fffffff2;border:1px solid #e1e5ea;color:#3e454e;font-size:11px;border-radius:10px;padding:9px 12px;box-shadow:0 2px 12px #0002}#escape-hint kbd{background:#2c3239;font-size:12px}#escape-hint.paused{background:#fffffff2;border-color:#e1e5ea}
#measure-panel{background:#fffffff5;border-color:#e2e5e9;color:#343c45;border-radius:12px}.measure-heading,#measure-status,#measure-panel>small{color:#626b76}.measure-actions button{background:#313941;color:white}.measure-row{background:#f3f4f5}.measure-row b{color:#343c46}.measure-row small{color:#707885}#measure-right-angle{background:#eef2e3;border-color:#d7dec4;color:#52632d}#measure-right-angle[aria-pressed=true]{background:#c5f500;border-color:#c5f500;color:#263001}#loading{background:#f8f9fa}#loading h2{font-family:'Golos Text',sans-serif}
@media(min-width:721px) and (max-width:1150px){header{padding:0 20px;gap:12px}.brand{font-size:23px;gap:11px}.brandmark{width:46px;height:46px}.brand small{font-size:12px}.mode{font-size:13px;padding:24px 10px 17px}header nav{gap:2px}#settings{min-width:145px;padding-left:16px}#settings summary{font-size:13px;gap:8px}main{grid-template-columns:minmax(0,1fr) 330px}aside{padding:28px 20px}.view-tools{left:20px;gap:8px}.view-tools button{font-size:13px;padding:15px 18px;min-height:50px}.time-switch{right:18px;bottom:64px}.time-switch button{width:39px;height:33px}.view-tools .ui-icon{width:18px}}
@media(max-width:850px) and (min-width:721px){#settings{min-width:auto}#settings summary span{display:none}.view-tools{bottom:112px}.time-switch{bottom:57px}}
@media(max-width:720px){header{height:118px;padding:12px 16px 0;gap:6px;align-content:space-between}.brand{font-size:22px;gap:10px}.brandmark{width:41px;height:41px;font-size:27px}.brand small{font-size:11px;margin-top:1px}header nav{order:3;width:100%;height:44px;gap:0;align-items:stretch}.mode{font-size:12px;padding:10px 5px 12px;flex:1}#settings{margin:0;align-self:auto;min-width:auto;border:0;padding:0}#settings summary{padding:10px 5px;gap:7px;font-size:12px}#settings summary .ui-icon:last-child{display:none}.settings-panel{top:calc(100% + 10px);right:0;max-height:calc(100dvh - 135px)}main{display:flex;height:auto;min-height:0}#viewport{height:calc(75dvh - 80px);min-height:460px}body.walk #viewport{min-height:530px}.view-tools{left:16px;right:auto;bottom:68px;gap:8px}.view-tools button{font-size:13px;padding:13px 18px;min-height:47px;gap:8px}.view-tools .ui-icon{width:19px;height:19px}.time-switch{right:14px;bottom:15px;padding:3px;z-index:3}.time-switch button{width:37px;height:31px}.time-switch .ui-icon{width:18px}.scene-bottom{background:#ffffffed;min-height:58px;padding:11px 110px 11px 16px;flex-direction:column;align-items:flex-start;gap:3px}#controls{font-size:9px;max-width:none}#location{font-size:11px}aside{padding:24px 20px;border-top:1px solid #e5e7eb}.panel-top h2{font-size:12px;margin:0 0 18px}.panel-top #map-toggle{display:block;font-size:20px;padding:0 12px 12px;color:#626a74}.floors button{font-size:14px;padding:12px 6px;min-height:46px}#map{max-height:400px;min-height:260px}.map-wrap{margin-top:14px}#touchcontrols{bottom:139px}#touchcontrols>span{background:#303841bf;border-radius:10px}#touch-arrows button.is-held{background:var(--accent)}#measure-panel{max-height:calc(100% - 190px);width:min(300px,calc(100% - 28px));top:14px;left:14px}#escape-hint{bottom:126px}.catalog-head h2{font-size:18px}}
.overview .scene-bottom{display:none}
@media(min-width:1151px){.view-tools button{font-size:16px;padding:17px 30px}.mode{font-size:16px}.floors button{font-size:16px}#settings summary{font-size:16px}}
@media(max-width:720px){.overview .time-switch{bottom:14px}.overview .view-tools{bottom:66px}}
@media(prefers-reduced-motion:reduce){button{transition:none}.view-tools button:hover{transform:none}}
/* A stable plan above a separately scrolling furniture panel. */
#map .room-label-name{fill:#25282e;font-size:.43px;font-weight:650}
#map .room-label-size{fill:#515660;font-size:.39px;font-weight:500;font-variant-numeric:tabular-nums}
#map .plan-dimension text{font-size:.4px;font-weight:650;stroke-width:.06px}
.panel-details{position:relative;min-width:0;scrollbar-width:thin;scrollbar-color:#d4d7db transparent}
.panel-details:focus-visible{outline:2px solid #778829;outline-offset:2px}
.overview .panel-details{display:none}
@media(min-width:721px){
 main{min-height:0}
 aside{display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:22px 24px 16px;container-type:inline-size}
 .panel-top,.floors,.map-wrap,.map-caption{flex:none}
 .panel-top h2{margin:0 0 16px;font-size:12px}
 .floors{padding:4px}
 .floors button{min-height:40px;padding:10px 6px;font-size:14px}
 .map-wrap{margin-top:12px;padding:8px 4px}
 #map{height:min(390px,calc(100dvh - 465px),92cqw);min-height:190px;max-height:none;aspect-ratio:auto}
 .overview #map{height:min(100cqw,calc(100dvh - 240px));min-height:190px}
 .map-caption{margin-top:7px;font-size:10px}
 .panel-details{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;margin-top:12px;padding-right:3px}
 #map-help{margin:0 0 10px;font-size:11px}
 body.walk #map-help,body.measure #map-help{display:none}
 #room-facts{padding:10px 12px;margin:0 0 10px}
 #room-facts>small{display:none}
 #room-facts strong{font-size:16px;line-height:1.4;margin:0}
 #room-facts>span{font-size:11px;line-height:1.6}
 #room-facts p{font-size:10px;line-height:1.4;margin:4px 0 0}
 .rooms{gap:5px;margin:0 0 12px}
 .rooms button{padding:7px 9px;min-height:32px;font-size:11px}
 .catalog{padding-top:12px}
 .catalog-head h2{font-size:17px}
 #catalog-toggle{padding:7px 9px;min-height:32px}
 .north{top:10px;right:12px}
}
@media(max-width:720px){
 #map{height:auto;min-height:0;max-height:calc(100dvh - 210px);aspect-ratio:1.09}
 .north{top:8px;right:10px;font-size:10px}
 .panel-details{margin-top:14px}
}

/* Persistent return link, also available without browser history. */
.site-return{display:inline-flex;align-items:center;min-height:24px;color:#555d66;text-decoration:underline;text-underline-offset:3px;font-size:12px;letter-spacing:0;font-weight:400}.site-return:hover{color:#202329}.brand small{margin-top:0}
@media(max-width:720px){.site-return{font-size:11px;min-height:24px}}
