:root{--bg:#eef1f5;--surface:#fff;--surface-2:#f5f7fa;--border:#dde3ea;--text:#142030;--text-2:#5a6878;--accent:#1868c4;--accent-soft:#e3effc;--on-accent:#fff;--select:#ff8a1f;--danger:#c9372c;--danger-soft:#fdecea;--viewport-top:#f7f9fc;--viewport-bottom:#dfe5ec;--shadow:0 6px 24px #101e321f;--radius:12px;--topbar-h:56px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:system-ui,-apple-system,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--bg:#0b121c;--surface:#121b27;--surface-2:#182332;--border:#243245;--text:#e6edf5;--text-2:#93a3b6;--accent:#3aa0ff;--accent-soft:#15304d;--on-accent:#0b121c;--danger:#ff7a6e;--danger-soft:#3a1c1a;--viewport-top:#1a2433;--viewport-bottom:#0d141e;--shadow:0 6px 24px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);overflow:hidden}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{flex-direction:column;height:100dvh;display:flex}.topbar{height:var(--topbar-h);background:var(--surface);border-bottom:1px solid var(--border);z-index:20;align-items:center;gap:12px;padding:0 16px;display:flex}.brand{letter-spacing:-.02em;-webkit-user-select:none;user-select:none;align-items:baseline;font-size:20px;font-weight:700;display:flex}.brand-iq{color:var(--accent)}.badge{text-transform:uppercase;letter-spacing:.06em;background:var(--accent-soft);color:var(--accent);border-radius:999px;margin-left:8px;padding:2px 7px;font-size:12px;font-weight:600}.model-picker{flex:1;justify-content:center;min-width:0;display:flex}.model-picker select{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;width:100%;max-width:420px;height:38px;padding:0 12px;font-weight:500}.btn{border:1px solid var(--border);background:var(--surface);border-radius:10px;align-items:center;gap:8px;height:38px;padding:0 14px;font-weight:500;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.btn:disabled,.tool:disabled,select:disabled{opacity:.45;cursor:default}.icon-btn{width:36px;height:36px;color:var(--text-2);background:0 0;border:0;border-radius:8px;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.only-mobile{display:none}.main{flex:1;min-height:0;display:flex;position:relative}.side,.props{background:var(--surface);flex-direction:column;flex-shrink:0;width:320px;min-height:0;display:flex}.side{border-right:1px solid var(--border)}.props{border-left:1px solid var(--border);width:340px}.viewport{background:linear-gradient(180deg, var(--viewport-top), var(--viewport-bottom));flex:1;min-width:0;position:relative}.canvas{touch-action:none;position:absolute;inset:0}.canvas canvas{outline:none;display:block}.tabs{border-bottom:1px solid var(--border);gap:2px;padding:8px 6px 0;display:flex}.tabs button{white-space:nowrap;color:var(--text-2);background:0 0;border:0;border-bottom:2px solid #0000;flex:auto;padding:10px 3px;font-size:13px;font-weight:600}.tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.side-body{flex:1;padding:8px;overflow-y:auto}.side-foot{color:var(--text-2);border-top:1px solid var(--border);font-variant-numeric:tabular-nums;padding:10px 14px;font-size:12px}.list{margin:0;padding:0;list-style:none}.row{text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;min-height:44px;padding:8px 10px;display:flex}.row:hover{background:var(--surface-2)}.row.active{background:var(--accent-soft);color:var(--accent)}.row.muted{color:var(--text-2);opacity:.6}.row .icon{color:var(--text-2);flex-shrink:0}.row.active .icon{color:var(--accent)}.row-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:14px;overflow:hidden}.row-meta{color:var(--text-2);font-variant-numeric:tabular-nums;font-size:12px}.row.two-line{flex-direction:column;align-items:flex-start;gap:2px}.row.two-line .row-label{width:100%}.row-sub{color:var(--text-2);font-size:12px}.search{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;width:100%;height:40px;margin-bottom:8px;padding:0 12px}.empty,.hint{color:var(--text-2);padding:8px 10px;font-size:13px;line-height:1.5}.props-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:8px;padding:16px 16px 12px;display:flex}.props-head h2{word-break:break-word;margin:2px 0 0;font-size:16px;line-height:1.3}.props-cat{color:var(--select);letter-spacing:.02em;margin:0;font-size:12px;font-weight:600}.props-body{flex:1;padding:4px 0 16px;overflow-y:auto}.props details{border-bottom:1px solid var(--border)}.props summary{cursor:pointer;align-items:center;gap:8px;padding:12px 16px;font-size:13px;font-weight:600;display:flex}.props summary .count{color:var(--text-2);margin-left:auto;font-size:12px;font-weight:500}.props dl{margin:0;padding:0 16px 12px}.prop{border-top:1px dashed var(--border);grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:12px;padding:5px 0;font-size:13px;display:grid}.prop:first-child{border-top:0}.prop dt{color:var(--text-2);word-break:break-word}.prop dd{word-break:break-word;font-variant-numeric:tabular-nums;margin:0}.prop dd.missing{color:var(--text-2);font-style:italic}.props-empty{text-align:center;color:var(--text-2);margin:auto;padding:32px;font-size:14px;line-height:1.5}.props-empty .icon{opacity:.6;width:32px;height:32px}.toolbar{background:var(--surface);box-shadow:var(--shadow);border:1px solid var(--border);border-radius:16px;align-items:center;gap:2px;max-width:calc(100% - 24px);padding:6px;display:flex;position:absolute;bottom:20px;left:50%;overflow:visible;transform:translate(-50%)}.tool{min-width:60px;color:var(--text-2);white-space:nowrap;background:0 0;border:0;border-radius:10px;flex-direction:column;align-items:center;gap:3px;padding:7px 8px 6px;font-size:11px;font-weight:500;display:flex}.tool:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.tool.active{background:var(--accent-soft);color:var(--accent)}.sep{background:var(--border);align-self:stretch;width:1px;margin:6px 4px}.section-slider{background:var(--surface);box-shadow:var(--shadow);border:1px solid var(--border);border-radius:12px;align-items:center;gap:12px;width:min(460px,100% - 24px);padding:10px 16px;font-size:13px;font-weight:500;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%)}.section-slider input{accent-color:var(--accent);flex:1}.mono{font-variant-numeric:tabular-nums;text-align:right;min-width:64px}.overlay{background:color-mix(in srgb, var(--bg) 55%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);place-items:center;display:grid;position:absolute;inset:0}.loader-card{border-radius:var(--radius);background:var(--surface);width:min(340px,100% - 32px);box-shadow:var(--shadow);text-align:center;padding:24px}.loader-card p{margin:12px 0;font-size:14px;font-weight:500}.spinner{border:3px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;width:28px;height:28px;margin:0 auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.bar{background:var(--surface-2);border-radius:3px;height:6px;overflow:hidden}.bar div{background:var(--accent);transform-origin:0;height:100%;transition:transform .2s}.toast{width:min(560px,100% - 24px);box-shadow:var(--shadow);border-radius:12px;align-items:flex-start;gap:8px;padding:12px 12px 12px 16px;font-size:14px;line-height:1.45;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%)}.toast.error{background:var(--danger-soft);color:var(--danger);border:1px solid color-mix(in srgb, var(--danger) 35%, transparent);z-index:5}.toast.error span{flex:1}.toast.info{background:var(--surface);border:1px solid var(--border);color:var(--text)}.dropzone{border:2px dashed var(--accent);background:color-mix(in srgb, var(--accent-soft) 80%, transparent);color:var(--accent);pointer-events:none;border-radius:16px;place-items:center;font-weight:600;display:grid;position:absolute;inset:16px}.more{position:relative}.more-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:220px;box-shadow:var(--shadow);z-index:6;padding:6px;display:grid;position:absolute;bottom:calc(100% + 10px);right:0}.more-menu button{min-height:44px;color:var(--text);text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;padding:0 12px;font-size:14px;display:flex}.more-menu button:hover{background:var(--surface-2)}.side-search{padding:10px 10px 0}.side-search .search{margin:0}.box-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(560px,100% - 24px);box-shadow:var(--shadow);z-index:4;align-items:center;gap:10px;padding:8px 8px 8px 14px;font-size:14px;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%)}.box-bar span{flex:1}.props-actions{flex-wrap:wrap;gap:6px;padding:0 16px 10px;display:flex}.props-actions .btn{align-items:center;gap:6px;min-height:36px;display:inline-flex}.props-actions .btn.active{border-color:var(--accent);color:var(--accent)}.colors,.color-assign{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr);gap:8px;margin-top:16px;padding-top:12px;display:grid}.color-assign{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);margin:0 16px 12px;padding:12px}.colors-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.colors-head h3{margin:0;font-size:14px}.toggle{align-items:center;gap:8px;min-height:36px;font-size:14px;display:inline-flex}.toggle input{width:18px;height:18px;accent-color:var(--accent)}.colors .btn.small{justify-self:start;align-items:center;gap:6px;display:inline-flex}.color-row{align-items:center;gap:10px;min-height:40px;display:flex}.color-row>.row-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;overflow:hidden}.color-name{min-width:0;color:var(--text);text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:8px;padding:6px 4px;display:flex}.color-name .row-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:13px;overflow:hidden}.color-row .solo.active,.solo.active{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.swatch-wrap{display:inline-flex;position:relative}.swatch{border:2px solid var(--surface);outline:1px solid var(--border);cursor:pointer;border-radius:7px;flex:none;width:26px;height:26px;padding:0}.swatch.empty{background:repeating-linear-gradient(45deg, var(--surface-2) 0 4px, var(--surface) 4px 8px)}.swatch.on{outline:2px solid var(--text)}.swatch:disabled{cursor:default}.swatch.custom{background:conic-gradient(#d62828,#f2c200,#2a9d4b,#1f5fd1,#7b2cbf,#d62828);position:relative;overflow:hidden}.swatch.custom input{opacity:0;cursor:pointer;position:absolute;inset:0}.swatch-pop{z-index:8;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);grid-template-columns:repeat(5,26px);gap:6px;padding:10px;display:grid;position:absolute;top:calc(100% + 6px);left:0}.swatch-pop .link-btn{grid-column:1/-1;justify-self:start}.swatch-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.color-assign .field{gap:4px;min-width:0;font-size:13px;display:grid}.color-assign select{width:100%;min-width:0;min-height:40px}.colors-head .toggle{white-space:nowrap;flex:none;padding-right:4px}.colors,.color-assign,.colors-head{min-width:0}@media (width<=900px){.swatch{width:32px;height:32px}.swatch-pop{grid-template-columns:repeat(5,32px)}.props-actions .btn{min-height:44px}.tool{min-width:54px}}.pins3d{pointer-events:none;z-index:2;position:absolute;inset:0;overflow:hidden}.pins3d .pin{pointer-events:auto}.issue-side{padding:16px;overflow:auto}.side-issues{gap:8px;display:grid}.check.small{color:var(--text-2);align-items:center;gap:8px;min-height:36px;font-size:13px;display:flex}.measure-panel,.compare-panel{z-index:4;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);gap:8px;padding:12px;font-size:14px;display:grid;position:absolute;top:16px}.measure-panel{width:min(320px,100% - 32px);left:16px}.measure-head{align-items:center;gap:8px;display:flex}.measure-head .muted{flex:1}.measure-list{gap:6px;max-height:40vh;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.measure-list li{gap:2px;display:grid}.measure-list strong{color:#d61f6c;font-size:18px}.compare-panel{width:min(280px,100% - 32px);right:16px}.compare-panel>label:first-child{align-items:center;gap:8px;display:flex}.compare-panel select{flex:1;min-height:40px}.compare-legend{gap:4px;margin:0;padding:0;list-style:none;display:grid}.compare-legend li{align-items:center;gap:8px;display:flex}.compare-legend i{border-radius:4px;flex:none;width:14px;height:14px}.compare-legend strong{margin-left:auto}.compare-panel .check{align-items:center;gap:8px;min-height:40px;display:flex}@media (width<=900px){.only-mobile{display:inline-grid}.hide-sm{display:none}.topbar{gap:8px;padding:0 8px}.badge{display:none}.side{z-index:15;width:min(320px,86vw);box-shadow:var(--shadow);transition:transform .2s;position:absolute;top:0;bottom:0;left:0;transform:translate(-100%)}.side.open{transform:none}.props{z-index:12;border-left:0;border-top:1px solid var(--border);width:auto;max-height:55%;box-shadow:var(--shadow);border-radius:16px 16px 0 0;transition:transform .2s;position:absolute;bottom:0;left:0;right:0;transform:translateY(100%)}.props.open{transform:none}.props-empty{display:none}.toolbar{bottom:max(12px, env(safe-area-inset-bottom));gap:0;padding:4px}.tool{min-width:0;padding:7px 6px 6px;font-size:10px}.sep{margin:6px 1px}}@media (prefers-reduced-motion:reduce){.side,.props,.bar div{transition:none}.spinner{animation-duration:2s}}.tabs button{padding-inline:2px;font-size:12.5px}.group-title{letter-spacing:.06em;text-transform:uppercase;color:var(--text-2);margin:14px 10px 4px;font-size:11px;font-weight:700}.room-row{align-items:center;gap:2px;display:flex}.room-row .row{flex:1;min-width:0}.room-row .icon-btn{flex-shrink:0;width:40px;height:40px}.room-row .icon-btn:hover:not(:disabled){color:var(--accent);background:var(--accent-soft)}.props-tools{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:10px 16px;display:flex}.search.small{height:34px;margin:0;font-size:13px}.link-btn{color:var(--accent);background:0 0;border:0;flex-shrink:0;padding:6px 4px;font-size:13px;font-weight:600}.props details.overview{background:var(--accent-soft);border-bottom-color:#0000}.props details.overview summary{color:var(--accent)}.props details.overview .prop{border-top-color:color-mix(in srgb, var(--accent) 18%, transparent)}.canvas.picking{cursor:crosshair}.crosshair{pointer-events:none;z-index:4;width:18px;height:18px;margin:-9px 0 0 -9px;position:absolute;top:50%;left:50%}.crosshair:before,.crosshair:after{content:"";background:#fff;border-radius:1px;position:absolute;box-shadow:0 0 0 1px #0000008c}.crosshair:before{width:2px;height:18px;top:0;left:8px}.crosshair:after{width:18px;height:2px;top:8px;left:0}.walk-where{background:color-mix(in srgb, var(--surface) 92%, transparent);border:1px solid var(--border);box-shadow:var(--shadow);pointer-events:none;border-radius:12px;align-items:center;gap:10px;max-width:calc(100% - 32px);padding:10px 14px;display:flex;position:absolute;top:16px;left:16px}.walk-where .icon{color:var(--select);flex-shrink:0}.walk-where strong{font-size:14px;display:block}.walk-where span{color:var(--text-2);font-size:12px;display:block}.walk-bar{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:16px;align-items:center;gap:12px;max-width:calc(100% - 24px);padding:6px 6px 6px 16px;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.walk-help{color:var(--text-2);margin:0;font-size:13px;line-height:1.8}kbd{border:1px solid var(--border);background:var(--surface-2);min-width:22px;color:var(--text);text-align:center;border-bottom-width:2px;border-radius:5px;margin:0 1px;padding:0 5px;font:600 11px/18px ui-monospace,Cascadia Mono,Consolas,monospace;display:inline-block}.walk-actions{flex-shrink:0;gap:2px;display:flex}.joy{pointer-events:none;z-index:6;background:#0f172340;border:2px solid #ffffffb3;border-radius:50%;place-items:center;width:110px;height:110px;margin:-55px 0 0 -55px;display:grid;position:absolute}.joy-knob{background:#ffffffd9;border-radius:50%;width:46px;height:46px}.dialog-backdrop{z-index:50;background:#080e1873;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.dialog{background:var(--surface);border:1px solid var(--border);width:min(480px,100%);max-height:min(80dvh,720px);box-shadow:var(--shadow);border-radius:16px;flex-direction:column;display:flex;overflow:hidden}.dialog-body{padding:8px 16px 20px;overflow-y:auto}.dialog-body .group-title{margin:18px 0 6px}@media (width<=900px){.walk-bar{bottom:max(12px, env(safe-area-inset-bottom));padding:4px 4px 4px 12px}.walk-help{font-size:11.5px;line-height:1.4}.walk-where{padding:8px 12px;top:10px;left:10px}}.layer-tools{justify-content:space-between;align-items:center;gap:8px;padding:4px 4px 10px;display:flex}.seg button{color:var(--text-2);background:0 0;border:0;border-radius:7px;padding:6px 10px;font-size:12.5px;font-weight:600}.seg button.active{background:var(--surface);color:var(--accent);box-shadow:0 1px 3px #101e321f}.layer{border-radius:10px}.layer+.layer{margin-top:2px}.layer-row{align-items:center;gap:2px;display:flex}.layer-row .row{flex:1;min-width:0}.layer-name{text-align:left;background:0 0;border:0;border-radius:8px;flex:1;align-items:center;gap:10px;min-width:0;min-height:44px;padding:8px 6px;display:flex}.layer-name:hover{background:var(--surface-2)}.layer-name .icon{color:var(--text-2);flex-shrink:0}.layer.off .layer-name .row-label,.layer.off .dot{opacity:.45}.layer.part .eye{color:var(--accent);opacity:.6}.layer.on .eye{color:var(--accent)}.dot{border-radius:3px;flex-shrink:0;width:10px;height:10px}.solo{border:1px solid var(--border);background:var(--surface);color:var(--text-2);border-radius:7px;flex-shrink:0;padding:4px 8px;font-size:11.5px;font-weight:600}.solo:hover{color:var(--accent);border-color:var(--accent)}.list.sub{margin:0 0 6px 34px}.list.sub .row{min-height:38px;font-size:13px}body{overflow:auto}a{color:var(--accent)}.page-loading{place-items:center;min-height:100dvh;display:grid}.page-loading:after,.mini-spinner{content:"";border:3px solid var(--accent-soft);border-top-color:var(--accent);border-radius:50%;width:26px;height:26px;animation:.8s linear infinite spin}.page-loading.inline{min-height:80px}.mini-spinner{border-width:2px;width:12px;height:12px;display:inline-block}.muted{color:var(--text-2)}.small{font-size:13px}.right{text-align:right}.btn{color:var(--text);white-space:nowrap;justify-content:center;text-decoration:none}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn.primary:hover:not(:disabled){color:var(--on-accent);filter:brightness(1.08)}.btn.danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger-solid:hover:not(:disabled){color:#fff;border-color:var(--danger);filter:brightness(1.08)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn.block{width:100%;height:44px}.btn.small{height:32px;padding:0 10px;font-size:13px}.btn.danger{color:var(--danger)}.btn.danger:hover:not(:disabled){border-color:var(--danger);color:var(--danger)}.link{color:var(--accent);vertical-align:middle;align-items:center;margin-left:10px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.form{flex-direction:column;gap:14px;display:flex}.form label{color:var(--text-2);flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.form input,.form select,.invite-row input,.invite-row select,.member-list select,.viewer-title select{border:1px solid var(--border);background:var(--surface);height:42px;color:var(--text);border-radius:10px;min-width:0;padding:0 12px;font-size:15px;font-weight:400}.form input:focus,.form select:focus,.invite-row input:focus{outline:2px solid var(--accent);outline-offset:-1px}.form input[readonly]{background:var(--surface-2);color:var(--text-2)}.row2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-error{background:var(--danger-soft);color:var(--danger);border-radius:10px;align-items:flex-start;gap:8px;margin:0;padding:10px 12px;font-size:14px;line-height:1.45;display:flex}.form-error .icon{flex-shrink:0;margin-top:1px}.form-ok{color:#1f8a4c;align-items:center;gap:6px;margin:0;font-size:14px;display:flex}.error-text{color:var(--danger);margin:4px 0 0}.auth-page{background:var(--surface);grid-template-columns:1.1fr 1fr;min-height:100dvh;display:grid}.auth-page.single{grid-template-columns:1fr;place-items:center}.auth-visual{background:#0b1220;position:relative;overflow:hidden}.auth-visual img{object-fit:cover;object-position:60% 50%;opacity:.85;width:100%;height:100%}.auth-panel{width:min(420px,100% - 32px);margin:auto;padding:48px 0}.auth-panel h1{letter-spacing:-.02em;margin:28px 0 6px;font-size:28px}.auth-panel>.muted{margin:0 0 24px}.brand.big{font-size:26px}.brand{color:var(--text);text-decoration:none}.shell{background:var(--bg);flex-direction:column;min-height:100dvh;display:flex}.shell-bar{height:var(--topbar-h);background:var(--surface);border-bottom:1px solid var(--border);z-index:10;align-items:center;gap:14px;padding:0 20px;display:flex;position:sticky;top:0}.spacer{flex:1}.crumbs{white-space:nowrap;align-items:center;min-width:0;font-size:14px;display:flex;overflow:hidden}.crumbs a{color:var(--text-2);text-decoration:none}.crumbs a:hover{color:var(--accent)}.crumbs [aria-current]{text-overflow:ellipsis;font-weight:600;overflow:hidden}.crumb-sep{color:var(--border);margin:0 8px}.shell-main{width:min(1100px,100% - 32px);margin:0 auto;padding:28px 0 64px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.page-head h1{letter-spacing:-.02em;margin:0 0 4px;font-size:28px}.page-head p{margin:0}.head-actions{flex-wrap:wrap;gap:8px;display:flex}.page-search{max-width:420px;margin-bottom:16px}.user-menu{position:relative}.avatar-btn{background:0 0;border:0;border-radius:10px;align-items:center;gap:8px;padding:4px 6px;display:flex}.avatar-btn:hover{background:var(--surface-2)}.avatar{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:50%;flex-shrink:0;place-items:center;font-size:13px;font-weight:700;display:grid}.avatar.small{width:32px;height:32px}.muted-avatar{background:var(--surface-2);color:var(--text-2)}.user-name{font-size:14px;font-weight:500}.menu{background:var(--surface);border:1px solid var(--border);min-width:220px;box-shadow:var(--shadow);z-index:30;border-radius:12px;padding:6px;position:absolute;top:calc(100% + 6px);right:0}.menu-head{border-bottom:1px solid var(--border);flex-direction:column;margin-bottom:4px;padding:8px 10px 10px;font-size:14px;display:flex}.menu-head span{color:var(--text-2);font-size:12px}.menu button{text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;padding:9px 10px;font-size:14px;display:flex}.menu button:hover{background:var(--surface-2)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;display:grid}.skeleton{background:linear-gradient(90deg, var(--surface) 0%, var(--surface-2) 50%, var(--surface) 100%);background-size:200% 100%;height:120px;animation:1.2s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.project-card{color:var(--text);gap:14px;padding:16px;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.project-card:hover{border-color:var(--accent);transform:translateY(-1px)}.project-thumb{background:var(--accent-soft);width:52px;height:52px;color:var(--accent);border-radius:12px;flex-shrink:0;place-items:center;display:grid}.project-thumb .icon{width:26px;height:26px}.project-body{flex:1;min-width:0}.project-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.project-top h2{margin:0;font-size:16px;line-height:1.3}.project-body p{margin:4px 0 0}.project-meta{color:var(--text-2);gap:12px;font-size:12px;display:flex;margin-top:10px!important}.role-pill{background:var(--surface-2);color:var(--text-2);white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700}.role-pill.beheerder{background:var(--accent-soft);color:var(--accent)}.role-pill.modelleur{color:#1f8a4c;background:#2fb37a26}.tag{background:var(--surface-2);color:var(--text-2);border-radius:6px;padding:2px 8px;font-size:11px;font-weight:600}.empty-state{text-align:center;border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface);padding:56px 24px}.empty-state>.icon{width:40px;height:40px;color:var(--text-2)}.empty-state h2{margin:12px 0 6px;font-size:18px}.empty-state p{max-width:460px;margin:0 auto 18px}.page-tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:18px;display:flex}.page-tabs button{color:var(--text-2);background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 12px;font-size:14px;font-weight:600}.page-tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.page-tabs .count{color:var(--text-2);margin-left:4px;font-size:12px;font-weight:500}.model-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.model-card{padding:14px 16px}.model-row{align-items:flex-start;gap:14px;display:flex}.model-icon{background:var(--surface-2);width:40px;height:40px;color:var(--text-2);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.model-main{flex:1;min-width:0}.model-title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.model-title h3{margin:0;font-size:15px}.model-main p{margin:4px 0 0}.model-side{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.model-actions{align-items:center;gap:6px;display:flex}.status{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 9px;font-size:12px;font-weight:600;display:inline-flex}.status .icon{width:14px;height:14px}.status.klaar{color:#1f8a4c;background:#2fb37a24}.status.wacht,.status.bezig{background:var(--accent-soft);color:var(--accent)}.status.fout{background:var(--danger-soft);color:var(--danger)}.versions{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}.versions table{border-collapse:collapse;width:100%;margin-bottom:12px;font-size:13px}.versions th{text-align:left;color:var(--text-2);border-bottom:1px solid var(--border);padding:6px 8px;font-weight:600}.versions td{border-bottom:1px solid var(--border);padding:8px}.form-dialog{width:min(560px,100%);max-height:calc(100dvh - 32px);padding:22px;overflow:auto}.form-dialog h2{margin:0 0 16px;font-size:20px}.dialog-actions{justify-content:flex-end;gap:8px;margin-top:18px;display:flex}.dropzone-box{border:2px dashed var(--border);text-align:center;color:var(--text-2);cursor:pointer;border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding:26px 16px;font-size:14px;display:flex}.dropzone-box .icon{width:28px;height:28px}.dropzone-box.over,.dropzone-box:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.dropzone-box.has-file{color:var(--text);border-style:solid}.upload-progress{color:var(--text-2);flex-direction:column;gap:6px;font-size:13px;display:flex}.members{flex-direction:column;gap:14px;display:flex}.invite-card{padding:16px}.invite-card h3{margin:0 0 4px;font-size:15px}.invite-card p{margin:0 0 12px}.invite-row{grid-template-columns:1fr auto auto;gap:8px;display:grid}.invite-result{background:var(--accent-soft);border-radius:10px;margin-top:12px;padding:12px;font-size:14px}.invite-result p{align-items:flex-start;gap:6px;margin:0 0 8px;display:flex}.copy-row{gap:8px;display:flex}.copy-row input{border:1px solid var(--border);background:var(--surface);border-radius:8px;flex:1;min-width:0;height:38px;padding:0 10px;font-family:ui-monospace,Consolas,monospace;font-size:12px}.member-list{margin:0;padding:4px 0;list-style:none}.member-list li{align-items:center;gap:12px;padding:10px 16px;display:flex}.member-list li+li{border-top:1px solid var(--border)}.member-main{flex-direction:column;flex:1;min-width:0;font-size:14px;display:flex}.member-list select{height:34px;font-size:13px}.section-title{margin:8px 0 0;font-size:14px}.account-grid{grid-template-columns:1fr 1fr;align-items:start;gap:16px;display:grid}.account-grid .card{padding:20px}.account-grid h2{margin:0;font-size:17px}.account-grid .btn{align-self:flex-start}.back-link{height:36px;color:var(--text);border-radius:8px;align-items:center;gap:6px;min-width:0;max-width:260px;padding:0 10px 0 6px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.back-link span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.back-link:hover{background:var(--surface-2)}.viewer-title{white-space:nowrap;flex:1;justify-content:center;align-items:baseline;gap:10px;min-width:0;display:flex;overflow:hidden}.viewer-title strong{text-overflow:ellipsis;overflow:hidden}.viewer-title span{color:var(--text-2);font-size:13px}.viewer-title select{width:100%;max-width:420px;height:38px}.crumb-back{min-width:0;min-height:44px;color:var(--text);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;padding:0 8px;font-size:14px;font-weight:600;text-decoration:none;display:none;overflow:hidden}dialog.modal{border:1px solid var(--border);background:var(--surface);width:min(560px,100% - 32px);max-width:none;max-height:calc(100dvh - 32px);color:var(--text);box-shadow:var(--shadow);border-radius:16px;padding:0;overflow:hidden}dialog.modal.narrow{width:min(440px,100% - 32px)}dialog.modal::backdrop{background:#080e1873}dialog.modal .form-dialog p.muted{line-height:1.5}.notice{background:var(--accent-soft);color:var(--text);border-radius:10px;align-items:flex-start;gap:8px;margin:0 0 4px;padding:10px 12px;font-size:14px;line-height:1.45;display:flex}.notice .icon{color:var(--accent);flex-shrink:0;margin-top:1px}.hint-box.small-gap{margin-top:10px}.upload-progress.retrying span{color:var(--danger)}.empty-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.demo-picker{justify-content:center;align-items:center;gap:8px;width:100%;min-width:0;display:flex}.demo-picker select{flex:1;min-width:0}@media (width<=900px){.crumb-back{display:inline-flex}.shell .btn.small,.shell .icon-btn,.shell .btn{min-height:44px}.shell .icon-btn{min-width:44px}.shell .brand{align-items:center;min-height:44px}.page-tabs button{min-height:44px}.member-list select{height:44px}dialog.modal .btn{min-height:44px}.auth-page{grid-template-columns:1fr}.auth-visual{display:none}.row2,.account-grid,.invite-row{grid-template-columns:1fr}.shell-bar{gap:8px;padding:0 12px}.crumbs{display:none}.model-row{flex-wrap:wrap}.model-side{flex-direction:row;justify-content:space-between;align-items:center;width:100%}.viewer-title span{display:none}}@media (prefers-reduced-motion:reduce){.skeleton,.page-loading:after,.mini-spinner{animation:none}.project-card{transition:none}}.hint-box{background:var(--accent-soft);border-radius:10px;margin:0;padding:10px 12px;font-size:14px;line-height:1.5}.link-btn.inline{padding:0;text-decoration:underline}:root{--st-open:#c9372c;--st-bezig:#9a5800;--st-opgelost:#187a42;--st-gesloten:#5f6b7b;--ok-soft:#2fb37a26;--warn-soft:#f0a0202e}@media (prefers-color-scheme:dark){:root{--st-open:#ff7a6e;--st-bezig:#f2b14a;--st-opgelost:#4cd38e;--st-gesloten:#93a3b6}}.block{display:block}.badge-count{background:var(--surface-2);min-width:22px;height:20px;color:var(--text-2);border-radius:999px;place-items:center;padding:0 6px;font-size:12px;font-weight:700;display:inline-grid}.overdue{font-weight:700;color:var(--danger)!important}.issue-status{white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;height:26px;padding:0 10px;font-size:13px;font-weight:700;display:inline-flex}.issue-status.open{background:var(--danger-soft);color:var(--st-open)}.issue-status.in_behandeling{background:var(--warn-soft);color:var(--st-bezig)}.issue-status.opgelost{background:var(--ok-soft);color:var(--st-opgelost)}.issue-status.gesloten{background:var(--surface-2);color:var(--st-gesloten)}.tag.safety{background:var(--danger-soft);color:var(--danger)}.tag.high{background:var(--warn-soft);color:var(--st-bezig)}.panel-stack{flex-direction:column;gap:14px;display:flex}.panel-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bcf-wrap{align-items:center;gap:2px;display:inline-flex}.page-tabs{scrollbar-width:none;overflow-x:auto}.tabs-wrap{position:relative}.tabs-wrap.more-right .page-tabs{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 56px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 56px),#0000)}.tabs-wrap.more-left .page-tabs{-webkit-mask-image:linear-gradient(270deg,#000 calc(100% - 56px),#0000);mask-image:linear-gradient(270deg,#000 calc(100% - 56px),#0000)}.tabs-wrap.more-left.more-right .page-tabs{-webkit-mask-image:linear-gradient(90deg,#0000,#000 56px calc(100% - 56px),#0000);mask-image:linear-gradient(90deg,#0000,#000 56px calc(100% - 56px),#0000)}.tabs-arrow{z-index:1;width:32px;color:var(--accent);background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute;top:0;bottom:1px}.tabs-arrow.left{left:-6px}.tabs-arrow.right{right:-6px}.only-narrow,.only-narrow-inline{display:none!important}.more-menu{position:relative}.more-menu>summary{cursor:pointer;list-style:none}.more-menu>summary::-webkit-details-marker{display:none}.more-menu[open]>summary .icon{transform:rotate(180deg)}.more-menu-list{z-index:20;border:1px solid var(--border);background:var(--surface);width:min(300px,100vw - 32px);box-shadow:var(--shadow);border-radius:12px;padding:6px;position:absolute;top:calc(100% + 6px);right:0}.more-menu-item{min-height:48px;color:var(--text);border-radius:8px;align-items:center;gap:10px;padding:0 12px;font-weight:600;text-decoration:none;display:flex}.more-menu-item:hover{background:var(--surface-2)}.more-menu-help{margin:4px 12px 8px;line-height:1.45}.page-tabs button{white-space:nowrap;flex-shrink:0}.list-filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.seg{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:3px;display:inline-flex}.seg button{height:40px;color:var(--text-2);background:0 0;border:0;border-radius:9px;align-items:center;gap:6px;padding:0 14px;font-size:14px;font-weight:600;display:inline-flex}.seg button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #101e321f}.seg button.on .badge-count{background:var(--accent-soft);color:var(--accent)}.list-filters select,.report-controls select,.list-search,.key-form input,.issue-facts select,.issue-facts input{border:1px solid var(--border);background:var(--surface);height:44px;color:var(--text);border-radius:10px;min-width:0;padding:0 12px;font-size:15px}.list-search{flex:1;min-width:160px}.list-none{margin:0;padding:24px 4px}.issue-list{margin:0;padding:0;list-style:none;overflow:hidden}.issue-list li{align-items:center;display:flex}.issue-list li+li{border-top:1px solid var(--border)}.issue-list li.selected{background:var(--accent-soft)}.issue-row{text-align:left;min-width:0;min-height:64px;color:var(--text);font:inherit;background:0 0;border:0;flex:1;align-items:center;gap:12px;padding:10px 14px;text-decoration:none;display:flex}.issue-row:hover{background:var(--surface-2)}.issue-no{font-variant-numeric:tabular-nums;color:var(--text-2);min-width:34px;font-size:14px;font-weight:700}.issue-row-main{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.issue-row-title{text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:15px;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.issue-row-meta{color:var(--text-2);flex-wrap:wrap;gap:4px 12px;font-size:13px;display:flex}.issue-row-meta .icon{vertical-align:-2px;width:14px;height:14px}.safety-dot{background:var(--danger);color:#fff;vertical-align:1px;border-radius:50%;place-items:center;width:18px;height:18px;margin-right:6px;font-size:12px;font-weight:800;display:inline-grid}.row-model{flex-shrink:0;margin-right:8px;width:44px!important;height:44px!important}.progress{background:var(--surface-2);border-radius:3px;max-width:320px;height:6px;margin-top:6px;display:block;overflow:hidden}.progress span{background:var(--accent);height:100%;display:block}.progress-num{font-variant-numeric:tabular-nums;color:var(--text-2);font-weight:700}.my-issues{margin-bottom:24px}.my-issues h2{align-items:center;gap:8px;margin:0 0 10px;font-size:17px;display:flex}.drawing-card .model-row{align-items:center}.drawing-open{min-width:0;min-height:48px;color:var(--text);flex:1;align-items:center;gap:14px;text-decoration:none;display:flex}.drawing-open:hover strong{color:var(--accent)}.issue-count{background:var(--danger-soft);color:var(--st-open);border-radius:999px;align-items:center;gap:4px;padding:3px 9px;font-size:13px;font-weight:700;display:inline-flex}.issue-count .icon{width:14px;height:14px}.form textarea,.comment-form textarea,.cl-note{border:1px solid var(--border);background:var(--surface);width:100%;font:inherit;color:var(--text);resize:vertical;border-radius:10px;padding:10px 12px;font-size:15px;font-weight:400}.issue-form h2{margin:0 0 14px;font-size:20px}.place-line{color:var(--text-2);align-items:center;gap:6px;margin:0;font-size:14px;display:flex}.place-line .icon{color:var(--accent)}.chip-group{border:0;flex-wrap:wrap;gap:8px;margin:0;padding:0;display:flex}.chip-group legend,.block-label,.tpl-items legend{color:var(--text-2);margin-bottom:6px;padding:0;font-size:13px;font-weight:600;display:block}.chip{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:999px;align-items:center;height:44px;padding:0 16px;color:var(--text)!important;flex-direction:row!important;font-size:14px!important;display:inline-flex!important}.chip input{opacity:0;pointer-events:none;position:absolute}.chip:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.chip.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)!important}.chip.safety.on{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)!important}.more-toggle{min-height:44px;color:var(--accent);background:0 0;border:0;align-self:flex-start;align-items:center;gap:6px;padding:0;font-size:14px;font-weight:600;display:inline-flex}.photo-buttons{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.photo-strip{flex-wrap:wrap;gap:8px;margin:0 0 8px;padding:0;list-style:none;display:flex}.photo-strip li{position:relative}.photo-strip button:not(.photo-remove),.photo-strip li.local img{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;width:76px;height:76px;padding:0;display:block;overflow:hidden}.photo-strip img{object-fit:cover;width:100%;height:100%;display:block}.photo-remove{border:2px solid var(--surface);background:var(--text);width:30px;height:30px;color:var(--surface);border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:-8px;right:-8px}.photo-remove .icon{width:16px;height:16px}dialog.modal.photo-modal{color:#fff;background:#0b121c;width:min(1100px,100% - 16px)}.photo-view{flex-direction:column;max-height:calc(100dvh - 32px);display:flex}.photo-view-bar{align-items:center;gap:8px;padding:8px 8px 8px 16px;display:flex}.photo-view-bar h2{flex:1;margin:0;font-size:15px}.photo-view-bar .icon-btn{color:#fff;width:44px;height:44px}.photo-view img{object-fit:contain;flex:1;width:100%;min-height:0;max-height:calc(100dvh - 160px)}.photo-view-nav{justify-content:space-between;padding:8px;display:flex}.issue-page{max-width:760px;margin:0 auto;padding:20px}.issue-detail{flex-direction:column;gap:14px;display:flex}.issue-detail-top{justify-content:space-between;align-items:center;gap:8px;min-height:36px;display:flex}.issue-detail-top .icon-btn{width:44px;height:44px;margin:-6px -8px -6px 0}.issue-kicker{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.issue-kicker .issue-no{min-width:0;font-size:15px}.issue-title{letter-spacing:-.01em;overflow-wrap:anywhere;margin:-6px 0 0;font-size:22px;line-height:1.25}.issue-by{margin:-8px 0 0}.status-steps{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.status-step{border:1px solid var(--border);background:var(--surface);min-height:52px;color:var(--text-2);text-align:center;border-radius:12px;justify-content:center;align-items:center;gap:4px;padding:4px 6px;font-size:14px;font-weight:600;line-height:1.15;display:inline-flex}.status-step .icon{flex-shrink:0;width:16px;height:16px}.status-step:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.status-note{grid-column:1/-1;margin:2px 0 0}.status-step:disabled{opacity:.4;cursor:default}.status-step.on{color:#fff;border-color:#0000}.status-step.on.open{background:var(--st-open)}.status-step.on.in_behandeling{background:var(--st-bezig)}.status-step.on.opgelost{background:var(--st-opgelost)}.status-step.on.gesloten{background:var(--st-gesloten)}@media (prefers-color-scheme:dark){.status-step.on{color:#0b121c}}.status-line{flex-wrap:wrap;align-items:center;gap:8px;margin:0;display:flex}.issue-facts{background:var(--surface-2);border-radius:12px;grid-template-columns:1fr 1fr;gap:12px;margin:0;padding:14px;display:grid}.issue-facts .wide{grid-column:1/-1}.issue-facts dt{color:var(--text-2);margin-bottom:4px;font-size:12px;font-weight:600}.issue-facts dd{flex-wrap:wrap;align-items:center;gap:4px 12px;margin:0;font-size:15px;display:flex}.issue-facts select,.issue-facts input{width:100%}.issue-facts dd.overdue input{border-color:var(--danger);color:var(--danger)}.overdue-note{color:var(--danger);font-size:12px;font-weight:700}.inline-link{align-items:center;gap:6px;min-height:44px;font-weight:600;text-decoration:none;display:inline-flex}.issue-desc{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:15px;line-height:1.55}.issue-section{border-top:1px solid var(--border);padding-top:14px}.issue-section h3{align-items:center;gap:6px;margin:0 0 10px;font-size:15px;display:flex}.issue-section h3 .count{color:var(--text-2);font-size:13px;font-weight:500}.history{flex-direction:column;gap:10px;margin:0 0 12px;padding:0;list-style:none;display:flex}.hist-change{border-left:2px solid var(--border);color:var(--text-2);flex-wrap:wrap;gap:2px 10px;padding-left:12px;font-size:13px;display:flex}.hist-change span{color:var(--text)}.hist-change time,.hist-head time{font-size:12px}.hist-comment{background:var(--surface-2);border-radius:12px;padding:10px 12px}.hist-head{align-items:center;gap:8px;font-size:14px;display:flex}.hist-head .avatar.small{width:26px;height:26px;font-size:12px}.hist-comment p{white-space:pre-wrap;overflow-wrap:anywhere;margin:6px 0 0;font-size:15px;line-height:1.5}.comment-form{align-items:flex-end;gap:8px;display:flex}.comment-form textarea{flex:1;min-height:44px}.comment-form .btn{height:44px}.delete-issue{align-self:flex-start}dialog.modal.wide{width:min(720px,100% - 32px)}.tpl-list{margin:12px 0 0}.tpl-items{border:0;margin:0;padding:0}.tpl-items ol{flex-direction:column;gap:10px;margin:0 0 10px;padding:0;list-style:none;display:flex}.tpl-items li{border:1px solid var(--border);border-radius:12px;align-items:flex-start;gap:10px;padding:10px;display:flex}.tpl-no{background:var(--surface-2);width:26px;height:26px;color:var(--text-2);border-radius:50%;flex-shrink:0;place-items:center;margin-top:9px;font-size:13px;font-weight:700;display:grid}.tpl-item-main{flex-direction:column;flex:1;gap:8px;min-width:0;display:flex}.tpl-item-main>input{width:100%}.tpl-item-opts{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.tpl-item-opts select{height:44px!important}.tpl-item-move{margin-left:auto;display:inline-flex}.tpl-item-move .icon-btn{width:44px;height:44px}.form label.check{min-height:40px;color:var(--text);flex-direction:row;align-items:center;gap:6px;font-weight:500}.form label.check input{width:20px;height:20px}.checklist-page{max-width:760px;margin:0 auto;padding-bottom:90px}.cl-items{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.cl-item{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:10px;padding:14px;display:flex}.cl-item.answered .cl-no{color:var(--st-opgelost)}.cl-item.failed{border-color:color-mix(in srgb, var(--st-open) 45%, var(--border))}.cl-item.failed .cl-no{color:var(--st-open)}.cl-item.missing{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger)}.cl-missing{color:var(--danger);margin:-4px 0 0;font-size:14px;font-weight:700}.cl-error{flex-wrap:wrap;align-items:center}.cl-error .btn{margin-left:auto}.cl-linked{margin:-4px 0 0;padding:0;list-style:none}.form-note{color:var(--danger);margin:4px 0 8px;font-weight:600}.cl-q{gap:10px;font-size:16px;font-weight:600;line-height:1.35;display:flex}.cl-no{min-width:22px;color:var(--text-2);font-variant-numeric:tabular-nums;flex-shrink:0}.req{color:var(--danger);margin-left:3px}.answer-btns{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.answer{border:2px solid var(--border);background:var(--surface);height:56px;color:var(--text);border-radius:12px;font-size:17px;font-weight:700}.answer:disabled{cursor:default;opacity:.6}.answer:hover:not(:disabled){border-color:var(--accent)}.answer.ja.on{background:var(--st-opgelost);border-color:var(--st-opgelost);color:#fff}.answer.nee.on{background:var(--st-open);border-color:var(--st-open);color:#fff}.answer.nvt.on{background:var(--st-gesloten);border-color:var(--st-gesloten);color:#fff}.answer.on:disabled{opacity:1}@media (prefers-color-scheme:dark){.answer.on{color:#0b121c!important}}.cl-input{border:1px solid var(--border);background:var(--surface);height:52px;color:var(--text);border-radius:12px;padding:0 14px;font-size:17px}.cl-tools{flex-wrap:wrap;gap:8px;display:flex}.cl-tools .btn,.cl-tools .photo-buttons .btn,.cl-error .btn{height:44px}.cl-by{margin:0;font-size:12px}.cl-issues h2{margin:24px 0 10px;font-size:16px}.cl-delete{margin-top:20px}.cl-footer{padding:12px 0 calc(12px + env(safe-area-inset-bottom));background:linear-gradient(to bottom, transparent, var(--bg) 30%);flex-direction:column;gap:8px;margin-top:16px;display:flex;position:sticky;bottom:0}.cl-footer .btn.block{height:52px;font-size:16px;font-weight:700}.api-keys{margin-top:16px;padding:20px}.api-keys h2{margin:0 0 4px;font-size:17px}.api-keys>p{margin:0 0 14px}.key-form{gap:8px;display:flex}.key-form input{flex:1}.key-form .btn{height:44px}.fresh-key{background:var(--warn-soft)}.fresh-key .copy-row input{font-size:13px}.key-saved{height:44px;margin-top:10px}.key-list{margin-top:12px;padding:0}.key-list li{padding:10px 0}.key-list code{font-family:ui-monospace,Consolas,monospace}.report-controls{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:18px;display:flex}.report{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:24px}.report-head h1{margin:0 0 4px;font-size:24px}.report-head p{margin:0 0 18px}.report-item{border-top:1px solid var(--border);break-inside:avoid;padding:16px 0}.report-item-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.report-item h2{overflow-wrap:anywhere;min-width:0;margin:0 0 8px;font-size:17px}.report-item dl{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px 16px;margin:0;font-size:14px;display:grid}.report-item dt{color:var(--text-2);font-size:12px}.report-item dd{overflow-wrap:anywhere;margin:0}.report-desc{white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0 0;font-size:14px;line-height:1.5}.report-photos{gap:8px;margin-top:10px;display:flex}.report-photos img{aspect-ratio:4/3;object-fit:cover;border:1px solid var(--border);border-radius:6px;width:30%;max-width:220px}@media print{.shell-bar,.no-print,.crumb-back{display:none!important}:root{--bg:#fff;--surface:#fff;--surface-2:#f3f3f3;--text:#000;--text-2:#444;--border:#ccc}body,.shell{background:#fff}.shell-main{width:100%;padding:0}.report{border:0;padding:0}.issue-status{border:1px solid}}.dv{background:var(--bg);flex-direction:column;height:100dvh;display:flex}.dv-bar{gap:8px}.dv-title{flex:1;align-items:center;gap:10px;min-width:0;display:flex;overflow:hidden}.dv-title strong{text-overflow:ellipsis;white-space:nowrap;font-size:15px;overflow:hidden}.dv-title select{border:1px solid var(--border);background:var(--surface);border-radius:8px;min-width:0;max-width:220px;height:38px;padding:0 8px}.dv-ver{background:var(--surface-2);border:1px solid var(--border);height:26px;color:var(--text-2);border-radius:999px;flex-shrink:0;place-items:center;padding:0 9px;font-size:13px;font-weight:700;display:inline-grid}.dv-ver-note{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.dv-off{background:var(--warn-soft);padding:6px 16px;font-size:14px}.dv-off summary{cursor:pointer;align-items:center;min-height:36px;font-weight:600;display:flex}.dv-off ul{margin:4px 0 6px;padding-left:18px}.dv-off .link-btn{text-align:left;min-height:40px;font-size:14px}.dv-place .short{display:none}.dv-place{flex-shrink:0;height:44px!important}.dv-old,.dv-hint{text-align:center;margin:0;padding:8px 16px;font-size:14px}.dv-old{background:var(--warn-soft)}.dv-hint{background:var(--accent);color:var(--on-accent);font-weight:600}.dv-body{flex:1;min-height:0;display:flex;position:relative}.dv-scroll{background:var(--viewport-bottom);touch-action:pan-x pan-y;overscroll-behavior:contain;cursor:grab;-webkit-user-select:none;user-select:none;flex:1;min-width:0;padding:12px;display:flex;position:relative;overflow:auto}.dv-scroll.placing{cursor:crosshair}.dv-sheet{box-shadow:var(--shadow);background:#fff;flex-shrink:0;margin:auto;position:relative}.dv-sheet canvas{width:100%;height:100%;display:block}.pin{background:var(--st-gesloten);color:#fff;cursor:pointer;z-index:1;border:3px solid #fff;border-radius:50%;place-items:center;width:34px;height:34px;padding:0;font-size:13px;font-weight:800;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 6px #00000059}.pin:before{content:"";border-radius:50%;position:absolute;inset:-8px}.pin.open{background:#c9372c}.pin.in_behandeling{background:#9a5800}.pin.opgelost{background:#187a42}.pin.gesloten{opacity:.85;background:#5f6b7b}.pin.old{border-style:dashed}.pin-ver{color:#fff;white-space:nowrap;pointer-events:none;background:#1c2733;border-radius:6px;padding:1px 6px;font-size:11px;font-weight:700;position:absolute;top:calc(100% + 3px);left:50%;transform:translate(-50%)}.pin.on{outline:3px solid var(--accent);z-index:2;transform:translate(-50%,-50%)scale(1.25)}.pin.draft{background:var(--accent);pointer-events:none;font-size:20px}.dv-controls{left:50%;bottom:calc(12px + env(safe-area-inset-bottom));background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);z-index:3;white-space:nowrap;border-radius:14px;align-items:center;gap:2px;padding:4px;display:flex;position:absolute;transform:translate(-50%)}.dv-controls .icon-btn{width:44px;height:44px}.dv-zoom{font-variant-numeric:tabular-nums;background:0 0;border:0;border-radius:8px;min-width:56px;height:44px;font-size:13px;font-weight:700}.dv-zoom:hover{background:var(--surface-2)}.dv-page{font-variant-numeric:tabular-nums;min-height:44px;color:var(--text);text-underline-offset:3px;background:0 0;border:0;border-radius:8px;padding:0 6px;font-size:13px;font-weight:600;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.dv-page:hover{background:var(--surface-2)}.dv-page-input{border:1px solid var(--accent);background:var(--surface);text-align:center;width:64px;height:40px;color:var(--text);border-radius:8px;padding:0 8px;font-size:15px}.dv-sep{background:var(--border);width:1px;height:24px;margin:0 4px}.dv-closed{align-items:center;gap:6px;min-height:44px;padding:0 8px;font-size:13px;font-weight:600;display:inline-flex}.dv-panel{background:var(--surface);border-left:1px solid var(--border);flex-shrink:0;width:400px;padding:16px;overflow:auto}.dv-body.with-panel .dv-controls{left:calc(50% - 200px)}.dv-panel .status-steps{grid-template-columns:1fr 1fr}@media (width<=900px){.dv .btn,.dv .icon-btn,.dv .back-link,.dv .link-btn,.issue-detail .btn,.issue-detail .icon-btn,.issue-detail .inline-link,.issue-detail select,.issue-detail input,.issue-form .btn,.issue-form .icon-btn,.issue-form select,.issue-form input:not([type=radio]),.issue-form .more-toggle,.photo-view .btn,.photo-buttons .btn{min-height:44px}.dv .icon-btn,.issue-detail .icon-btn,.issue-form .icon-btn{min-width:44px}.dv-title select{height:44px}.only-wide{display:none!important}.only-narrow{display:block!important}.only-narrow-inline{display:inline!important}.seg button{height:44px}.page-tabs button{padding:10px}.project-head{gap:10px;margin-bottom:14px}.project-head h1{overflow-wrap:anywhere;font-size:22px;line-height:1.2}.project-head p{font-size:14px}.project-head .head-actions{flex-wrap:nowrap;width:100%}.project-head .head-actions .btn{flex:1;min-width:0}.panel-actions .more-menu{flex:none}.panel-actions>.btn.primary{flex:1}.tpl-items li{gap:6px;padding:10px 8px}.tpl-no{width:22px;height:22px;font-size:12px}.issue-page{padding:16px}.issue-title{font-size:20px}.status-step{min-height:56px;font-size:13px}.list-filters .seg{width:100%}.list-filters .seg button{flex:1;justify-content:center;height:44px}.list-filters select{flex:1}.list-search{flex:2}.issue-facts{grid-template-columns:1fr}.issue-row{gap:10px;padding:10px 12px}.panel-actions>.btn,.panel-actions>.bcf-wrap{flex:auto}.panel-actions>.bcf-wrap .btn{flex:1}.report{padding:16px}.key-form,.dv-body.with-panel{flex-direction:column}.dv-body.with-panel .dv-scroll{flex:38%}.dv-panel{border-left:0;border-top:1px solid var(--border);width:auto;min-height:0;padding-bottom:calc(16px + env(safe-area-inset-bottom));z-index:4;border-radius:18px 18px 0 0;flex:0 62%;margin-top:-14px;position:relative;box-shadow:0 -8px 30px #101e3233}.dv-body.with-panel .dv-controls,.dv-place .long{display:none}.dv-place .short{display:inline}.dv-title{gap:6px}.dv-title select{max-width:92px}.dv-ver-note{display:none}}@media (width<=420px){.status-steps{grid-template-columns:1fr 1fr}.comment-form{flex-direction:column;align-items:stretch}}
