@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{--ink:oklch(23% .012 256);--ink-2:oklch(38% .012 256);--muted:oklch(54% .012 256);--faint:oklch(70% .01 256);--line:oklch(90% .006 256);--line-2:oklch(94% .005 256);--surface:oklch(100% 0 0);--surface-2:oklch(98.5% .003 256);--surface-3:oklch(96.5% .004 256);--bg:oklch(94.5% .005 256);--brand:oklch(47% .13 258);--brand-700:oklch(40% .13 258);--brand-300:oklch(70% .09 258);--brand-tint:oklch(95% .025 258);--brand-ink:oklch(34% .12 258);--pass:oklch(58% .12 152);--pass-tint:oklch(95% .04 152);--pass-ink:oklch(42% .1 152);--fail:oklch(56% .18 27);--fail-tint:oklch(95% .04 27);--fail-ink:oklch(47% .17 27);--partial:oklch(74% .13 73);--partial-tint:oklch(96% .045 80);--partial-ink:oklch(52% .11 65);--na:oklch(62% .008 256);--na-tint:oklch(95% .004 256);--knockout:oklch(45% .19 22);--r-sm:6px;--r:10px;--r-lg:14px;--r-xl:20px;--sh-1:0 1px 2px oklch(23% .012 256/.06), 0 1px 3px oklch(23% .012 256/.05);--sh-2:0 4px 12px oklch(23% .012 256/.08), 0 2px 4px oklch(23% .012 256/.05);--sh-3:0 12px 32px oklch(23% .012 256/.14);--font:"IBM Plex Sans", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}.mono{font-family:var(--mono);font-feature-settings:"tnum" 1}.tnum{font-variant-numeric:tabular-nums}.chip{font:600 12px/1 var(--font);letter-spacing:.01em;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:5px 9px;display:inline-flex}.dot{border-radius:50%;flex:none;width:7px;height:7px}html,body,#root{min-height:100%;margin:0}body{background:var(--bg);min-width:1120px;color:var(--ink);font-family:var(--font);overflow:auto}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.62}svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;flex:none;width:18px;height:18px}h1,h2,h3,p{margin:0}table{border-collapse:collapse;width:100%}th{color:var(--faint);font:600 11px/1 var(--mono);letter-spacing:.12em;text-align:left;text-transform:uppercase;padding:10px 18px}td{border-top:1px solid var(--line-2);color:var(--ink-2);padding:12px 18px;font-size:13px}tr:hover td{background:var(--surface-2)}.portal{grid-template-columns:232px minmax(0,1fr);min-height:100vh;display:grid}.side{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;height:100vh;padding:18px 14px;display:flex;position:sticky;top:0}.side__brand{align-items:center;gap:10px;padding:4px 6px 18px;display:flex}.logo{background:var(--brand);color:#fff;width:38px;height:38px;box-shadow:var(--sh-2);border-radius:10px;place-items:center;display:grid}.logo svg{stroke-width:2.4px;width:20px;height:20px}.brand-title{color:var(--ink);letter-spacing:.12em;font-size:15px;font-weight:700}.brand-title span{color:var(--brand)}.nav{flex-direction:column;flex:1;gap:4px;min-height:0;display:flex}.nav__sec,.eyebrow{color:var(--faint);font:600 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase}.nav__sec{padding:18px 10px 7px}.nav__item{width:100%;min-height:38px;color:var(--ink-2);text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:9px 10px;font-size:13px;font-weight:600;display:flex}.nav__item:hover{background:var(--surface-3)}.nav__item.on{background:var(--brand-tint);color:var(--brand-ink)}.side__user{border-top:1px solid var(--line-2);align-items:center;gap:10px;padding:12px 8px 2px;display:flex}.avatar{background:var(--brand-tint);width:34px;height:34px;color:var(--brand-ink);font:700 12px/1 var(--mono);border-radius:50%;place-items:center;display:grid}.side__user-text{min-width:0}.side__user-text div{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.side__user-text span,.muted{color:var(--muted);font-size:12px}.main{min-width:0}.top{z-index:20;background:color-mix(in oklch, var(--bg) 92%, white);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);justify-content:space-between;align-items:center;min-height:60px;padding:0 22px;display:flex;position:sticky;top:0}.top h1{font-size:22px;font-weight:700;line-height:1.1}.top p{color:var(--muted);margin-top:3px;font-size:12.5px}.top__actions{align-items:center;gap:8px;display:flex}.notification-shell{position:relative}.notification-button{width:42px;height:42px;color:var(--ink-2);position:relative}.notification-button.has{border-color:color-mix(in oklch, var(--brand) 38%, var(--line));color:var(--brand)}.notification-badge{border:2px solid var(--surface);background:var(--fail);color:#fff;min-width:19px;height:19px;font-family:var(--mono);border-radius:999px;justify-content:center;align-items:center;padding:0 5px;font-size:10px;font-weight:700;display:inline-flex;position:absolute;top:-5px;right:-5px}.notification-panel{z-index:60;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);width:min(430px,100vw - 32px);box-shadow:var(--sh-2);position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.notification-panel__head{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:center;gap:12px;padding:14px 14px 12px;display:flex}.notification-panel__head b{font-size:14px;display:block}.notification-panel__head span{color:var(--muted);margin-top:3px;font-size:12px;display:block}.notification-panel__actions{align-items:center;gap:8px;display:flex}.notification-list{max-height:420px;padding:6px;overflow:auto}.notification-item{border-radius:var(--r);width:100%;color:var(--ink);text-align:left;background:0 0;border:0;grid-template-columns:8px 1fr;gap:10px;padding:11px 10px;display:grid}.notification-item:hover{background:var(--surface-2)}.notification-item__marker{background:var(--brand);border-radius:999px;width:8px;height:8px;margin-top:5px}.notification-item--success .notification-item__marker{background:var(--pass)}.notification-item--warning .notification-item__marker{background:var(--partial)}.notification-item--danger .notification-item__marker{background:var(--fail)}.notification-item b,.notification-item small,.notification-item em{display:block}.notification-item b{font-size:13px;line-height:1.25}.notification-item small{color:var(--muted);margin-top:3px;font-size:12px;line-height:1.35}.notification-item em{color:var(--muted-2);font-family:var(--mono);margin-top:5px;font-size:11px;font-style:normal}.notification-empty{color:var(--muted);text-align:center;padding:20px 12px;font-size:13px}.body{padding:22px}.card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--sh-1)}.pad{padding:16px 18px}.btn,.icon-btn{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);color:var(--ink-2);justify-content:center;align-items:center;font-size:13px;font-weight:600;transition:background .15s,border-color .15s,color .15s,transform .12s;display:inline-flex}.btn{white-space:nowrap;gap:8px;min-height:42px;padding:0 14px}.btn:active,.icon-btn:active{transform:scale(.985)}.btn--sm{min-height:34px;padding:0 11px;font-size:12.5px}.btn--primary{background:var(--brand);color:#fff;box-shadow:var(--sh-2);border-color:#0000}.btn--primary:hover{background:var(--brand-700)}.btn--danger{border-color:color-mix(in oklch, var(--fail) 34%, var(--line));color:var(--fail-ink)}.btn--danger:hover,.icon-btn--danger:hover{background:var(--fail-tint);border-color:var(--fail)}.icon-btn{width:34px;height:34px;padding:0}.inp,.sel{border:1.5px solid var(--line);border-radius:var(--r);background:var(--surface);width:100%;min-height:40px;color:var(--ink);outline:0;font-size:13px}.inp{padding:9px 11px}.sel{padding:0 10px}.inp:focus,.sel:focus,textarea:focus{border-color:var(--brand-300)}.inp--strong{font-size:17px;font-weight:700}.mono,.id{font-family:var(--mono);font-variant-numeric:tabular-nums}.id{color:var(--muted);font-size:12px;font-weight:600}.tag{background:var(--surface-3);min-height:24px;color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:4px 8px;font-size:11.5px;font-weight:600;display:inline-flex}.tag--pass{background:var(--pass-tint);color:var(--pass-ink)}.tag--warn{background:var(--partial-tint);color:var(--partial-ink)}.tag--fail{background:var(--fail-tint);color:var(--fail-ink)}.chip .dot{background:currentColor}.login{background:linear-gradient(135deg, color-mix(in oklch, var(--brand-tint) 60%, transparent), transparent 38%), var(--bg);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);width:min(420px,100%);box-shadow:var(--sh-2);flex-direction:column;gap:16px;padding:22px;display:flex}.login-card--shake-a{animation:.44s both loginShakeA}.login-card--shake-b{animation:.44s both loginShakeB}@keyframes loginShakeA{0%,to{transform:translate(0)}18%{transform:translate(-8px)}36%{transform:translate(7px)}54%{transform:translate(-5px)}72%{transform:translate(4px)}}@keyframes loginShakeB{0%,to{transform:translate(0)}18%{transform:translate(-8px)}36%{transform:translate(7px)}54%{transform:translate(-5px)}72%{transform:translate(4px)}}.login-card h1{font-size:22px}.login-card p{color:var(--muted);margin-top:5px;font-size:13px}.login-card label,.field{flex-direction:column;gap:6px;display:flex}.login-card label span,.field span{color:var(--muted);font-size:12px;font-weight:600}.form-error{border-radius:var(--r);border:1px solid color-mix(in oklch, var(--fail) 26%, transparent);background:var(--fail-tint);color:var(--fail-ink);padding:10px 12px;font-size:13px;line-height:1.35;animation:.18s ease-out both formErrorIn}@keyframes formErrorIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.builder{grid-template-columns:250px minmax(0,1fr);align-items:start;gap:18px;display:grid}.template-list{position:sticky;top:82px;overflow:hidden}.template-list__head,.table-head{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:center;gap:12px;padding:14px 14px 12px;display:flex}.template-list>.sel{width:calc(100% - 28px);margin:12px 14px 8px}.template-list__items{flex-direction:column;gap:6px;max-height:calc(100vh - 225px);padding:8px;display:flex;overflow:auto}.template-row{border-radius:var(--r);width:100%;color:var(--ink-2);text-align:left;background:0 0;border:0;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:9px;padding:8px;display:grid}.template-row:hover{background:var(--surface-3)}.template-row.on{background:var(--brand-tint);color:var(--brand-ink)}.template-row b{text-overflow:ellipsis;font-size:12.5px;line-height:1.3;display:block;overflow:hidden}.template-row small{color:var(--muted);margin-top:4px;font-size:11px;display:block}.code-tile{background:var(--brand);color:#fff;min-width:34px;height:32px;font:700 11px/1 var(--mono);border-radius:9px;place-items:center;display:inline-grid}.empty-list{color:var(--muted);padding:16px 8px;font-size:13px}.editor{flex-direction:column;gap:14px;min-width:0;display:flex}.template-head{flex-direction:column;justify-content:space-between;align-items:stretch;gap:12px;display:flex}.template-head__main{flex-direction:column;flex:1;gap:12px;min-width:0;display:flex}.field-grid{grid-template-columns:minmax(0,1.4fr) minmax(190px,.8fr);gap:12px;display:grid}.field--wide{grid-column:1/-1}.template-meta,.template-actions,.section-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.template-actions{flex:none;order:-1;justify-content:flex-end;align-self:flex-end}.validation-strip{grid-template-columns:minmax(240px,.9fr) minmax(260px,1fr);align-items:center;gap:16px;display:grid}.validation-strip__sum{align-items:center;gap:12px;margin-top:7px;font-size:13px;font-weight:600;display:flex}.ok{color:var(--pass-ink)}.warn{color:var(--partial-ink)}.pbar{background:var(--line);border-radius:999px;height:7px;overflow:hidden}.pbar i{border-radius:inherit;background:var(--brand);height:100%;transition:width .25s;display:block}.add-section{grid-template-columns:minmax(220px,1fr) 92px auto;gap:10px;display:grid}.section-card{overflow:hidden}.section-card__head{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:center;gap:12px;padding:14px;display:flex}.section-title-edit{flex:1;grid-template-columns:minmax(240px,1fr) 88px;gap:10px;display:grid}.inp--section{font-weight:700}.section-weight{text-align:center}.section-card__items{flex-direction:column;gap:10px;padding:14px;display:flex}.item-card{border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface-2);grid-template-columns:80px minmax(0,1fr) auto;gap:12px;padding:14px;display:grid}.item-card--muted{opacity:.72}.item-index{flex-direction:column;gap:12px;display:flex}.mini-check{color:var(--muted);align-items:center;gap:6px;font-size:11.5px;font-weight:600;display:flex}.item-main{flex-direction:column;gap:9px;min-width:0;display:flex}.item-text{resize:vertical;min-height:54px;font-weight:600;line-height:1.35}.item-fields{grid-template-columns:repeat(3,minmax(140px,1fr));gap:8px;display:grid}.item-fields--secondary{grid-template-columns:1fr 1fr 82px 120px}.weight-line{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.weight-line input[type=range]{width:min(260px,32vw);accent-color:var(--brand)}.weight-input{text-align:center;width:82px}.toggle-line{color:var(--muted);align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.toggle{background:var(--line);border:0;border-radius:999px;width:40px;height:23px;transition:background .15s;position:relative}.toggle i{width:18px;height:18px;box-shadow:var(--sh-1);background:#fff;border-radius:50%;transition:transform .15s;position:absolute;top:2.5px;left:3px}.toggle.on{background:var(--brand)}.toggle.on i{transform:translate(16px)}.item-actions{align-items:flex-start;gap:8px;display:flex}.add-item-btn{align-self:flex-start}.toast{z-index:100;border-radius:var(--r);background:var(--ink);color:#fff;max-width:min(560px,100vw - 44px);box-shadow:var(--sh-3);padding:12px 14px;font-size:13px;line-height:1.35;position:fixed;bottom:22px;right:22px}.toast--ok{background:var(--pass-ink)}.toast--error{background:var(--fail-ink)}.toast--info{background:var(--ink)}.chip--brand{background:var(--brand-tint);color:var(--brand-ink)}.chip--pass{background:var(--pass-tint);color:var(--pass-ink)}.chip--partial{background:var(--partial-tint);color:var(--partial-ink)}.chip--fail{background:var(--fail-tint);color:var(--fail-ink)}.chip--na{background:var(--na-tint);color:var(--muted)}.reports-view{grid-template-columns:minmax(0,1fr);align-items:start;gap:16px;display:grid}.reports-list{position:sticky;top:82px;overflow:hidden}.reports-filter{grid-template-columns:minmax(240px,1fr) minmax(360px,1.4fr);align-items:end;gap:12px 18px;display:grid}.reports-search{flex-direction:column;gap:5px;margin-bottom:0;display:flex}.category-breakdown{grid-template-columns:repeat(auto-fit,minmax(82px,1fr));gap:7px;margin-bottom:0;display:grid}.category-breakdown__item{border:1px solid var(--line);border-radius:var(--r);background:var(--surface);min-width:0;height:34px;color:var(--ink-2);cursor:pointer;font:700 11px/1 var(--mono);justify-content:space-between;align-items:center;gap:6px;padding:0 9px;display:flex}.category-breakdown__item:hover,.category-breakdown__item.on{border-color:var(--brand-300);background:var(--brand-tint);color:var(--brand-ink)}.category-breakdown__item span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.category-breakdown__item b{font-size:12px}.reports-filter__row{grid-column:1/-1;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.reports-filter label{flex-direction:column;gap:5px;display:flex}.reports-filter label span{color:var(--muted);font-size:11.5px;font-weight:600}.reports-filter__meta{grid-column:1/-1;justify-content:space-between;align-items:center;gap:10px;margin-top:0;display:flex}.reports-filter__actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.report-rows{flex-direction:column;gap:6px;max-height:calc(100vh - 390px);padding:8px;display:flex;overflow:auto}.report-row{border-radius:var(--r);width:100%;color:var(--ink-2);text-align:left;background:0 0;border:0;flex-direction:column;gap:7px;padding:12px;display:flex}.report-row:hover{background:var(--surface-3)}.report-row.on{background:var(--brand-tint);color:var(--brand-ink)}.report-row__top,.report-row__footer,.report-hero__head{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.report-row__top{justify-content:space-between}.report-row__title{color:var(--ink);font-size:14px;font-weight:700}.report-row__sub,.report-row__footer{color:var(--muted);font-size:11.5px;line-height:1.35}.report-detail{min-width:0}.report-summary-stack{flex-direction:column;gap:14px;min-width:0;display:flex}.report-summary__head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.report-summary h2{margin-top:8px;font-size:22px;line-height:1.15}.report-summary p{max-width:720px;color:var(--muted);margin-top:6px;font-size:13px}.report-summary-metrics{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:9px;margin-top:16px;display:grid}.report-metric{border:1px solid var(--line-2);border-radius:var(--r);background:var(--surface-2);flex-direction:column;gap:5px;min-width:0;padding:10px 11px;display:flex}.report-metric span{color:var(--faint);font:600 10.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}.report-metric b{color:var(--ink);font:700 20px/1.1 var(--mono)}.report-metric small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.report-summary-table-card{overflow:hidden}.report-summary-table-wrap{overflow:auto}.report-summary-table{border-collapse:collapse;width:100%;min-width:1080px}.report-summary-table th,.report-summary-table td{border-bottom:1px solid var(--line-2);text-align:left;vertical-align:top;padding:10px 12px}.report-summary-table th{z-index:1;background:var(--surface);color:var(--faint);font:700 10.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;position:sticky;top:0}.report-summary-table td{color:var(--ink-2);font-size:12.5px}.report-summary-table td b{color:var(--ink);font-size:12.5px;line-height:1.25;display:block}.report-summary-table td span:not(.chip):not(.tag){max-width:260px;color:var(--muted);margin-top:3px;font-size:11px;line-height:1.25;display:block}.report-summary-row{cursor:pointer}.report-summary-row:hover,.report-summary-row:focus{background:var(--surface-3);outline:none}.report-detail-toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.report-detail-toolbar b{color:var(--ink);margin-top:5px;display:block}.report-detail__stack{flex-direction:column;gap:14px;min-width:0;display:flex}.report-hero{grid-template-columns:minmax(0,1fr) 128px;align-items:start;gap:18px;display:grid}.report-hero h2{margin-top:10px;font-size:22px;line-height:1.15}.report-hero p{color:var(--muted);margin-top:6px;font-size:13px}.report-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px;display:grid}.meta{flex-direction:column;gap:4px;min-width:0;display:flex}.meta span{color:var(--faint);font:600 10.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase}.meta b{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;overflow:hidden}.score-panel{flex-direction:column;align-items:center;gap:9px;display:flex}.score-circle{border:9px solid var(--brand);width:112px;height:112px;color:var(--brand);font-family:var(--mono);border-radius:50%;place-items:center;display:grid}.score-circle--pass{border-color:var(--pass);color:var(--pass)}.score-circle--partial{border-color:var(--partial);color:var(--partial)}.score-circle--fail{border-color:var(--fail);color:var(--fail)}.score-circle strong{font-size:30px;line-height:1}.score-circle span{color:var(--muted);margin-top:-22px;font-size:11px;font-weight:700}.score-panel__sub{color:var(--muted);font:600 11px/1.2 var(--mono)}.report-location{grid-template-columns:minmax(240px,.65fr) minmax(320px,1fr);align-items:stretch;gap:16px;display:grid}.report-location--empty{grid-template-columns:1fr}.report-location__info{flex-direction:column;gap:10px;min-width:0;display:flex}.report-location h3{color:var(--ink);margin:0;font-size:17px;line-height:1.2}.report-location p{color:var(--muted);margin:0;font-size:12.5px}.report-location__meta{grid-template-columns:1fr;gap:8px;margin-top:2px;display:grid}.report-location__link{width:fit-content;margin-top:auto}.report-location__map{border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2);min-height:240px;overflow:hidden}.report-location__map iframe{border:0;width:100%;height:100%;min-height:240px;display:block}.report-actions{justify-content:space-between;align-items:center;gap:14px;display:flex}.report-actions p{color:var(--muted);margin-top:6px;font-size:12.5px}.report-actions__buttons{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.task-list{flex-direction:column;gap:8px;margin-top:12px;display:flex}.task-row{border-radius:var(--r);background:var(--surface-2);flex-direction:column;gap:4px;padding:10px 12px;display:flex}.task-row b{font-size:13px}.task-row span{color:var(--muted);font-size:12px}.report-section{overflow:hidden}.report-section__head{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.report-section h3{font-size:16px}.answer-list{flex-direction:column;display:flex}.answer-row{border-top:1px solid var(--line-2);grid-template-columns:42px minmax(0,1fr);gap:12px;padding:14px 16px;display:grid}.answer-row:first-child{border-top:0}.answer-row__idx{color:var(--faint);font-size:12px;font-weight:700}.answer-row__body{min-width:0}.answer-row__top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.answer-row__top b{color:var(--ink);font-size:13.5px;line-height:1.38}.answer-comment{border-radius:var(--r);background:var(--surface-2);color:var(--ink-2);margin-top:8px;padding:9px 10px;font-size:12.5px;line-height:1.45}.photo-strip{gap:8px;margin-top:10px;display:flex;overflow:auto}.photo-thumb{border:1px solid var(--line);border-radius:var(--r);background:var(--surface-3);width:70px;height:70px;color:var(--muted);cursor:pointer;flex:none;place-items:center;font-size:11px;text-decoration:none;display:grid;overflow:hidden}.photo-thumb img{object-fit:cover;width:100%;height:100%}.photo-modal{z-index:200;background:#0f172ac2;place-items:center;padding:28px;display:grid;position:fixed;inset:0}.photo-modal__dialog{border-radius:var(--r-lg);background:var(--surface);max-width:min(960px,100vw - 56px);max-height:calc(100vh - 56px);box-shadow:var(--sh-3);border:1px solid #ffffff2e;flex-direction:column;display:flex;overflow:hidden}.photo-modal__bar{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:center;gap:14px;padding:10px 12px;display:flex}.photo-modal__bar div{flex-direction:column;gap:3px;min-width:0;display:flex}.photo-modal__bar b{font-size:14px}.photo-modal__bar span{color:var(--muted);font-size:12px}.photo-modal__dialog>img{object-fit:contain;background:#000;max-width:100%;max-height:calc(100vh - 120px);display:block}.workspace-stack{flex-direction:column;gap:16px;display:flex}.mobile-app-card{justify-content:space-between;align-items:center;gap:16px;display:flex}.mobile-app-card p{color:var(--muted);margin-top:6px;font-size:13px}.mobile-version-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:16px;display:grid}.mobile-version-block{border-top:1px solid var(--line-2);flex-direction:column;gap:8px;padding:14px 16px;display:flex}.mobile-version-block__head{justify-content:space-between;align-items:center;gap:12px;display:flex}.mobile-version-block code{overflow-wrap:anywhere;border-radius:var(--r);background:var(--surface-2);color:var(--ink-2);font:600 12px/1.45 var(--mono);padding:10px 12px}.mobile-version-block p{color:var(--ink-2);font-size:13px;line-height:1.45}.danger-text{color:var(--fail-ink)}.control-strip{grid-template-columns:repeat(3,minmax(180px,1fr)) auto;align-items:end;gap:12px;display:grid}.control-strip label{flex-direction:column;gap:5px;min-width:0;display:flex}.control-strip label span{color:var(--muted);font-size:11.5px;font-weight:600}.sel--compact{min-width:150px;height:34px;padding-block:0;font-size:12px}.metric-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;display:grid}.metric-card{border-left:4px solid var(--brand);flex-direction:column;justify-content:space-between;min-height:108px;display:flex}.metric-card--pass{border-left-color:var(--pass)}.metric-card--fail{border-left-color:var(--fail)}.metric-card strong{color:var(--ink);font:700 30px/1 var(--mono)}.metric-card small{color:var(--muted);font-size:12px}.dashboard-grid{grid-template-columns:minmax(360px,.9fr) minmax(0,1.2fr);align-items:start;gap:16px;display:grid}.category-score-list{flex-direction:column;padding:8px;display:flex}.category-score{border-top:1px solid var(--line-2);grid-template-columns:minmax(0,1fr) 210px;align-items:center;gap:14px;padding:12px;display:grid}.category-score:first-child{border-top:0}.category-score b{color:var(--ink);font-size:13.5px;display:block}.category-score span{color:var(--muted);margin-top:4px;font-size:12px;display:block}.category-score__bar{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.schedule-create{flex-direction:column;gap:12px;display:flex}.schedule-create__grid{grid-template-columns:1.2fr 1fr 1.4fr 1.2fr 160px 150px auto;align-items:center;gap:10px;display:grid}.directory-create{grid-template-columns:auto minmax(180px,1fr) minmax(220px,1.3fr) minmax(220px,1fr) auto;align-items:center;gap:10px;display:grid}.directory-create--users{grid-template-columns:auto minmax(180px,1.2fr) 150px 160px 190px 220px auto}.row-actions{flex-wrap:wrap;justify-content:flex-end;gap:7px;display:flex}.app-dialog{z-index:300;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a9e;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.app-dialog__panel{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);width:min(620px,100vw - 48px);max-height:calc(100vh - 48px);box-shadow:var(--sh-3);overflow:auto}.app-dialog__header{border-bottom:1px solid var(--line-2);justify-content:space-between;align-items:flex-start;gap:20px;padding:20px 22px 16px;display:flex}.app-dialog__header h2{color:var(--ink);font-size:19px;line-height:1.25}.app-dialog__header p{color:var(--muted);margin-top:6px;font-size:13px;line-height:1.45}.app-dialog__fields{gap:14px;padding:18px 22px 4px;display:grid}.app-dialog__textarea{resize:vertical;min-height:96px;line-height:1.45}.app-dialog__error{border-left:3px solid var(--fail);background:var(--fail-tint);color:var(--fail-ink);margin:14px 22px 0;padding:9px 11px;font-size:12.5px;line-height:1.4}.app-dialog__actions{justify-content:flex-end;gap:9px;padding:18px 22px 20px;display:flex}.table-head__actions{align-items:center;gap:8px;display:flex}.table-scroll{width:100%;overflow-x:auto}.tasks-table{min-width:720px}.categories-table{min-width:980px}.row-actions{flex-wrap:wrap;align-items:center;gap:7px;display:flex}@media (width<=900px){body{min-width:0}.portal{grid-template-columns:1fr}.side{height:auto;position:static}.builder,.reports-view,.reports-filter,.report-summary__head,.report-detail-toolbar,.report-hero,.report-location,.report-actions,.control-strip,.dashboard-grid,.metric-grid,.mobile-version-grid,.category-score,.schedule-create__grid,.directory-create,.directory-create--users,.template-head,.validation-strip,.add-section,.item-card{grid-template-columns:1fr}.mobile-app-card{flex-direction:column;align-items:flex-start}.template-list,.reports-list{position:static}.reports-filter__row,.report-meta-grid{grid-template-columns:1fr}.category-breakdown{grid-template-columns:repeat(2,minmax(0,1fr))}.report-summary__head,.report-detail-toolbar{flex-direction:column;align-items:stretch}.report-summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.field-grid,.item-fields,.item-fields--secondary,.section-title-edit{grid-template-columns:1fr}.top{flex-direction:column;align-items:flex-start;gap:10px;padding:14px 16px;position:static}.top__actions{flex-wrap:wrap;width:100%}.notification-panel{left:0;right:auto}.body{padding:16px}.app-dialog{align-items:end;padding:12px}.app-dialog__panel{width:100%;max-height:calc(100vh - 24px)}.app-dialog__header,.app-dialog__fields,.app-dialog__actions{padding-inline:16px}}
