:root{--background:#fff;--foreground:#171717;--danger:#b91c1c;--ok:#1a7f37;--warn:#b45309;--error:#c81e1e;--refusal:#b00020;--info:#1f4e79;--unevaluated:#8a6d00;--note:#374151;--muted:#6b7280;--faint:#666}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--background:#0a0a0a;--foreground:#ededed;--danger:#f87171;--ok:#3fb950;--warn:#d97706;--error:#ef4444;--refusal:#f43f5e;--info:#5b9bd5;--unevaluated:#d29922;--note:#9ca3af;--muted:#8d95a0;--faint:#999}}:root[data-theme=dark]{--background:#0a0a0a;--foreground:#ededed;--danger:#f87171;--ok:#3fb950;--warn:#d97706;--error:#ef4444;--refusal:#f43f5e;--info:#5b9bd5;--unevaluated:#d29922;--note:#9ca3af;--muted:#8d95a0;--faint:#999}html{height:100%}html,body{max-width:100vw;overflow-x:hidden}body{min-height:100%;color:var(--foreground);background:var(--background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;font-family:Arial,Helvetica,sans-serif;display:flex}*{box-sizing:border-box;margin:0;padding:0}a{color:inherit;text-decoration:none}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.console{min-height:100vh;display:flex}.sidebar{border-right:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);flex-direction:column;flex-shrink:0;gap:20px;width:240px;padding:16px 12px;display:flex}.sidebar-brand{letter-spacing:.04em;font-size:18px;font-weight:700}.backend-status{font-size:12px}.backend-status-up{color:var(--ok)}.backend-status-down{color:var(--error);font-weight:700}.sidebar-section{flex-direction:column;gap:6px;display:flex}.sidebar-label{text-transform:uppercase;opacity:.6;font-size:11px}.sidebar select,.sidebar input{border:1px solid color-mix(in srgb, var(--foreground) 25%, transparent);background:var(--background);width:100%;color:var(--foreground);border-radius:4px;padding:6px 8px;font-size:13px}.sidebar-create{gap:4px;display:flex}.sidebar-create button{border:1px solid color-mix(in srgb, var(--foreground) 25%, transparent);background:var(--background);color:var(--foreground);cursor:pointer;border-radius:4px;padding:0 10px}.project-list,.tool-list{flex-direction:column;gap:2px;list-style:none;display:flex}.project-list-empty{opacity:.65;padding:4px 8px;font-size:12px}.project,.tool{text-align:left;width:100%;color:var(--foreground);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:6px 8px;font-size:13px}.project:hover,.tool:hover{background:color-mix(in srgb, var(--foreground) 8%, transparent)}.project.active,.tool.active{background:color-mix(in srgb, var(--foreground) 14%, transparent);font-weight:600}.content{flex:1;padding:32px}.content-note{opacity:.7}.failure-notice{border:1px solid var(--danger);background:var(--background);max-width:680px;color:var(--foreground);border-left-width:5px;border-radius:6px;margin:4px 0 16px;padding:12px 16px}.failure-notice-title{color:var(--danger);margin:0 0 6px;font-weight:700}.failure-notice-error{overflow-wrap:anywhere;margin:6px 0;font-size:12px}.failure-notice-error code{font-family:monospace}.failure-notice-consequence{margin:6px 0;font-size:13px}.failure-notice-actions{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.failure-notice-actions button{border:1px solid var(--foreground);background:var(--background);color:var(--foreground);cursor:pointer;border-radius:4px;padding:5px 12px;font-size:12px}.failure-page{max-width:760px}.sidebar-alert{border:1px solid var(--danger);color:var(--foreground);background:var(--background);overflow-wrap:anywhere;border-left-width:4px;border-radius:4px;margin:2px 0 0;padding:6px 8px;font-size:12px}.error-card{border:2px solid #c81e1e;border-radius:8px;max-width:560px;padding:24px}.error-card h2{color:#c81e1e;margin-bottom:8px}.error-card pre{background:color-mix(in srgb, #c81e1e 8%, var(--background));white-space:pre-wrap;border-radius:4px;margin:12px 0;padding:10px;font-size:12px}.error-card button{border:1px solid var(--foreground);background:var(--background);color:var(--foreground);cursor:pointer;border-radius:4px;padding:6px 16px}.tool-panel h2{margin-bottom:8px}.tool-panel-empty{opacity:.6;margin-bottom:16px}.tool-panel-meta dt{text-transform:uppercase;opacity:.6;margin-top:12px;font-size:11px}.tool-panel-meta dd{font-size:14px}.auth-page{flex-direction:column;gap:16px;max-width:380px;margin:12vh auto;padding:0 16px;display:flex}.auth-card{border:1px solid color-mix(in srgb, var(--foreground) 20%, transparent);border-radius:8px;flex-direction:column;gap:8px;padding:20px;display:flex}.auth-card label{opacity:.7;font-size:12px}.auth-card input{border:1px solid color-mix(in srgb, var(--foreground) 25%, transparent);background:var(--background);color:var(--foreground);border-radius:4px;padding:8px}.auth-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.auth-actions button{border:1px solid var(--foreground);background:var(--background);color:var(--foreground);cursor:pointer;white-space:nowrap;border-radius:4px;padding:8px 14px}.auth-divider{opacity:.7;align-items:center;gap:8px;margin:8px 0;font-size:12px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:color-mix(in srgb, var(--foreground) 20%, transparent);flex:1;height:1px}.auth-google{border:1px solid var(--foreground);background:var(--background);color:var(--foreground);cursor:pointer;white-space:nowrap;border-radius:4px;padding:8px 14px}.auth-error{color:#c81e1e;font-size:13px}.auth-note{opacity:.8;font-size:13px}.auth-heading{margin:0 0 4px;font-size:16px;font-weight:700}.auth-form{flex-direction:column;gap:8px;display:flex}.auth-intro{margin:0;font-size:13px}.auth-links{text-align:center;margin:4px 0 0;font-size:13px}.auth-links span{opacity:.7}.auth-links a{color:var(--foreground);text-underline-offset:2px;text-decoration:underline}.auth-links a:hover{text-decoration-thickness:2px}.auth-rules-title{opacity:.7;margin:4px 0 0;font-size:12px}.auth-rules{gap:2px;margin:0;padding:0;font-size:12px;list-style:none;display:grid}.auth-rules li{color:var(--muted);gap:6px;display:flex}.auth-rules li:before{content:"・" / ""}.auth-rules li[data-passed=true]{color:var(--ok)}.auth-rules li[data-passed=true]:before{content:"✓" / ""}.auth-page button:disabled,.auth-page button[aria-disabled=true]{opacity:.45;cursor:not-allowed}.auth-card :is(a,button,input):focus-visible{outline:2px solid var(--foreground);outline-offset:2px}.auth-page{word-break:auto-phrase}.auth-wordmark{color:inherit;text-decoration:none}.auth-wordmark:hover{text-decoration:underline}.auth-wordmark:focus-visible,.auth-toggles button:focus-visible{outline:2px solid var(--foreground);outline-offset:2px}.auth-screen{display:flow-root;position:relative}.auth-toggles{position:absolute;top:16px;right:16px}@media (min-width:1024px){.auth-toggles{top:24px;right:24px}}.auth-toggles .lp-toggles{align-items:center;gap:8px;display:flex}.auth-toggles .lp-seg{border:1px solid var(--muted);border-radius:999px;padding:2px;display:inline-flex}.auth-toggles .lp-seg button{font:inherit;letter-spacing:.04em;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;line-height:1.4}.auth-toggles .lp-seg button:hover{color:var(--foreground);background:color-mix(in srgb, var(--foreground) 7%, var(--background))}.auth-toggles .lp-seg button[aria-pressed=true]{background:var(--foreground);color:var(--background)}.auth-toggles .lp-theme{border:1px solid var(--muted);width:30px;height:30px;color:var(--foreground);cursor:pointer;background:0 0;border-radius:999px;place-items:center;padding:0;display:inline-grid}.auth-toggles .lp-theme svg{width:14px;height:14px}.auth-toggles .lp-theme:hover{border-color:var(--foreground)}:root[data-theme=dark] .auth-toggles .lp-theme{background:var(--foreground);color:var(--background);border-color:var(--foreground)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .auth-toggles .lp-theme{background:var(--foreground);color:var(--background);border-color:var(--foreground)}}.auth-toggles .lp-sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}html[data-lp-pending] [data-auth-screen]{opacity:0;animation:0s linear 2s forwards auth-reveal}@keyframes auth-reveal{to{opacity:1}}.sidebar-user{flex-direction:column;gap:4px;font-size:12px;display:flex}.sidebar-user button{border:1px solid var(--muted);color:var(--foreground);cursor:pointer;background:0 0;border-radius:4px;align-self:flex-start;padding:2px 8px;font-size:11px}.sidebar-user-actions{gap:4px;display:flex}.sidebar-user .theme-toggle{border-color:var(--muted);place-items:center;padding:2px 6px;display:inline-grid}.theme-toggle svg{width:12px;height:13px;display:block}.sidebar-user .theme-toggle:hover{border-color:var(--foreground)}.sidebar-user .theme-toggle:focus-visible{outline:2px solid var(--foreground);outline-offset:2px}:root[data-theme=dark] .sidebar-user .theme-toggle{background:var(--foreground);color:var(--background);border-color:var(--foreground)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .sidebar-user .theme-toggle{background:var(--foreground);color:var(--background);border-color:var(--foreground)}}.theme-toggle-label{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tool-panel-sub{opacity:.7;margin-bottom:16px;font-size:13px}.site-error{color:var(--error);margin-bottom:12px}.site-grid{grid-template-columns:clamp(260px,30%,380px) minmax(0,1fr);gap:32px;display:grid}.site-col{flex-direction:column;gap:6px;display:flex}.site-col h3{text-transform:uppercase;opacity:.65;margin:10px 0 4px;font-size:13px}.site-col label{opacity:.7;margin-top:6px;font-size:12px}.site-col input,.site-col textarea{border:1px solid color-mix(in srgb, var(--foreground) 25%, transparent);background:var(--background);color:var(--foreground);border-radius:4px;padding:7px 8px;font-family:inherit;font-size:13px}.site-col textarea{font-family:monospace;font-size:12px}.frontages{border:1px solid var(--border,#444);border-radius:4px;margin-top:12px;padding:8px 10px}.frontages legend{padding:0 4px;font-size:12px}.frontage-none{opacity:.8;margin:4px 0;font-size:12px}.frontage-list{flex-direction:column;gap:6px;margin:4px 0;padding:0;list-style:none;display:flex}.frontage-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.frontage-width{width:72px}.frontage-unit{opacity:.7}.frontage-main{align-items:center;gap:4px;font-size:12px;display:inline-flex}.frontage-remove{cursor:pointer;padding:2px 8px}.declaration{border:1px solid var(--border,#444);border-radius:4px;flex-direction:column;gap:6px;margin-top:12px;padding:8px 10px;display:flex}.declaration legend{padding:0 4px;font-size:12px}.site-col select{border:1px solid color-mix(in srgb, var(--foreground) 25%, transparent);background:var(--background);color:var(--foreground);border-radius:4px;padding:7px 8px;font-family:inherit;font-size:13px}.declaration-basis{color:var(--foreground);margin:4px 0;font-size:12px}.declaration-blocked{color:var(--warn);margin:4px 0;font-size:12px;font-weight:600}.declaration-note{color:var(--foreground);margin:6px 0 0;font-size:12px}.site-actions{gap:8px;margin-top:12px;display:flex}.site-actions button{border:1px solid var(--foreground);background:var(--background);color:var(--foreground);cursor:pointer;border-radius:4px;padding:7px 14px}.site-actions button:disabled{opacity:.45;cursor:default}.constraint-list,.report-list{flex-direction:column;gap:6px;list-style:none;display:flex}.constraint{border:1px solid color-mix(in srgb, var(--foreground) 15%, transparent);border-radius:6px;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:8px 10px;font-size:13px;display:flex}.constraint.unconfirmed{border-color:#b45309}.constraint-key{min-width:90px;font-family:monospace}.constraint-value{overflow-wrap:anywhere;flex:calc(100% - 140px);min-width:0}.constraint-list{container:constraints/inline-size}@container constraints (max-width:480px){.constraint-value{flex-basis:100%}}.constraint.unconfirmed .constraint-value{color:var(--warn);font-weight:600}.badge{text-transform:uppercase;letter-spacing:.04em;border:1px solid color-mix(in srgb, var(--foreground) 25%, transparent);border-radius:999px;padding:2px 7px;font-size:10px}.badge-fetched,.badge-declared,.badge-derived{opacity:.8}.badge-confirmed{color:var(--ok);border-color:var(--ok)}.badge-unconfirmed{color:var(--warn);border-color:var(--warn)}.badge-pass{color:var(--ok);border-color:var(--ok)}.badge-fail{color:var(--error);border-color:var(--error)}.badge-unevaluated{opacity:.6}.badge-evaluated{color:var(--info);border-color:var(--info)}.frontage-complete{color:var(--foreground);margin:6px 0;font-size:12px}.report-item{flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:13px;display:flex}.report-label{min-width:110px}.report-detail{opacity:.65;overflow-wrap:anywhere;flex:16em;min-width:0;font-size:12px}.constraint-vintage{opacity:.6;font-size:10px}.data-credits{margin-top:4px}.credit-list{flex-direction:column;gap:6px;font-size:12px;line-height:1.6;list-style:none;display:flex}.credit-list p{margin:0}.credit-list a{overflow-wrap:anywhere;text-decoration:underline}.credit-translation{display:block}.maplibregl-ctrl.maplibregl-ctrl-attrib{background-color:#ffffffeb}.maplibregl-ctrl-attrib a{color:#000000d9;text-decoration:underline}.boundary-map{margin-bottom:20px}.boundary-map-canvas{border:1px solid color-mix(in srgb, var(--foreground) 20%, transparent);border-radius:8px;height:320px}.boundary-map-actions{align-items:center;gap:10px;margin-top:6px;display:flex}.boundary-map-actions button{border:1px solid var(--foreground);background:var(--background);color:var(--foreground);cursor:pointer;border-radius:4px;padding:5px 12px;font-size:12px}.boundary-map-actions button:disabled{opacity:.45;cursor:default}.dxf-report{border:1px dashed color-mix(in srgb, var(--foreground) 25%, transparent);border-radius:6px;flex-direction:column;gap:4px;padding:10px;font-size:12px;display:flex}.dxf-warn{color:var(--warn);font-weight:600}.scheme-toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;font-size:13px;display:flex}.scheme-toolbar select,.scheme-toolbar input{border:1px solid color-mix(in srgb, var(--foreground) 25%, transparent);background:var(--background);color:var(--foreground);border-radius:4px;padding:5px 8px}.scheme-toolbar button{border:1px solid var(--foreground);background:var(--background);color:var(--foreground);cursor:pointer;border-radius:4px;padding:5px 12px;font-size:12px}.scheme-toolbar button:disabled{opacity:.45;cursor:default}.scheme-summary{flex-wrap:wrap;align-items:baseline;gap:16px;margin-bottom:12px;font-size:13px;display:flex}.scheme-exceeded summary{color:var(--warn);cursor:pointer}.scheme-exceeded ul{margin:6px 0 0 16px;font-size:12px}.scheme-stale{color:var(--warn);font-size:12px}.scheme-predates{color:var(--muted);font-size:12px}.scheme-starting-point{color:var(--info);flex-basis:100%;font-size:12px;font-weight:600}.envelope-provenance summary{color:var(--note);cursor:pointer}.envelope-provenance ul{margin:4px 0 0 16px;font-size:12px}.envelope-applied li{color:var(--note)}.envelope-unevaluated{margin-top:4px}.scheme-grid{grid-template-columns:auto 1fr;align-items:start;gap:24px;display:grid}.scheme-canvas{border:1px solid color-mix(in srgb, var(--foreground) 20%, transparent);background:color-mix(in srgb, var(--foreground) 3%, var(--background));border-radius:8px}.scheme-boundary-ref{fill:none;stroke:color-mix(in srgb, var(--foreground) 35%, transparent);stroke-dasharray:6 4;stroke-width:1px}.scheme-floor{fill:#2563eb1f;stroke:#2563eb;stroke-width:1px;cursor:pointer}.scheme-floor.selected{fill:#2563eb47;stroke-width:2px}.scheme-draft{fill:none;stroke:#16a34a;stroke-width:2px}.scheme-compass line,.scheme-scale line{stroke:var(--foreground);stroke-width:1.5px}.scheme-compass text,.scheme-scale text{fill:var(--foreground);font-size:11px}.scheme-floors ul{flex-direction:column;gap:4px;list-style:none;display:flex}.scheme-row{border:1px solid color-mix(in srgb, var(--foreground) 12%, transparent);cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:flex}.scheme-row.selected{border-color:#2563eb}.scheme-row-label{min-width:56px;font-family:monospace}.scheme-height,.scheme-count{border:1px solid color-mix(in srgb, var(--foreground) 25%, transparent);background:var(--background);width:60px;color:var(--foreground);border-radius:4px;padding:3px 6px}.scheme-area{text-align:right;flex:1;font-family:monospace;font-size:12px}.scheme-flag{color:var(--warn)}.scheme-mini{border:1px solid color-mix(in srgb, var(--foreground) 30%, transparent);color:var(--foreground);cursor:pointer;background:0 0;border-radius:4px;padding:2px 8px;font-size:11px}.badge-mixed{opacity:.8}.docset-new,.docset-meta{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;font-size:13px;display:flex}.docset-new input,.docset-new select,.docset-meta input,.docset-meta select{border:1px solid color-mix(in srgb, var(--foreground) 25%, transparent);background:var(--background);color:var(--foreground);border-radius:4px;padding:4px 8px}.docset-new button,.docset-meta button{border:1px solid color-mix(in srgb, var(--foreground) 30%, transparent);color:var(--foreground);cursor:pointer;background:0 0;border-radius:4px;padding:4px 12px}.docset-new button:disabled,.docset-meta button:disabled,.docset-add button:disabled{opacity:.45;cursor:default}.docset-blockers,.docset-refusal{border:1px solid var(--warn);color:var(--warn);border-radius:6px;margin:10px 0;padding:8px 12px;font-size:12px}.docset-refusal{border-color:var(--refusal);color:var(--refusal)}.docset-blockers ul,.docset-refusal ul{margin:4px 0 0 16px}.docset-add{flex-wrap:wrap;gap:8px;margin:10px 0;display:flex}.docset-add button{border:1px dashed color-mix(in srgb, var(--foreground) 30%, transparent);color:var(--foreground);cursor:pointer;background:0 0;border-radius:4px;padding:3px 10px;font-size:12px}.docset-pages{flex-direction:column;gap:6px;margin:8px 0;list-style:none;display:flex}.docset-page{border:1px solid color-mix(in srgb, var(--foreground) 12%, transparent);border-radius:6px;padding:8px 10px;font-size:13px}.docset-page-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.docset-page-actions{gap:4px;display:flex}.docset-page-summary{opacity:.8;margin-top:4px;font-size:12px}.docset-unavailable{color:var(--warn);margin-top:4px;font-size:12px}.floors-fit{border:1px solid var(--warn);color:var(--warn);border-radius:6px;margin:8px 0;padding:6px 12px;font-size:12px}.floors-fit p{margin:2px 0}.floors-dropped{color:var(--warn);font-size:12px}.floors-consequence{color:var(--warn);max-width:420px;font-size:12px}.floors-room{fill:#16a34a1a;stroke:#16a34a;stroke-width:1px;cursor:pointer}.floors-room.selected{fill:#16a34a42;stroke-width:2px}.floors-name{border:1px solid color-mix(in srgb, var(--foreground) 25%, transparent);background:var(--background);width:110px;color:var(--foreground);border-radius:4px;padding:3px 6px}.floors-use{border:1px solid color-mix(in srgb, var(--foreground) 25%, transparent);background:var(--background);color:var(--foreground);border-radius:4px;padding:3px 6px;font-size:12px}.finance-panel{max-width:720px}.finance-head{align-items:center;gap:12px;margin-bottom:8px;display:flex}.finance-note{color:var(--faint);margin:4px 0 10px;font-size:12px}.finance-inputs,.finance-results{border-collapse:collapse;width:100%;margin:4px 0 12px}.finance-inputs th,.finance-results th{text-align:left;vertical-align:top;width:45%;padding:4px 8px 4px 0;font-weight:500}.finance-inputs td,.finance-results td{vertical-align:top;padding:4px 0}.finance-input{width:110px}.finance-unit{color:var(--faint);margin-left:6px;font-size:12px}.finance-status{color:var(--faint);padding-left:10px;font-size:12px}.finance-basis{margin:4px 0;padding-left:18px;font-size:13px}.finance-panel .unconfirmed{color:var(--warn);font-weight:600}.finance-panel .unevaluated{color:var(--unevaluated);font-weight:600}
