:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#eef2f1;color:#17211f;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--bg: #f3f4f6;--surface: #ffffff;--surface-strong: #f8f8f8;--line: #dedede;--muted: #6b6f76;--text: #151515;--primary: #ff1c05;--primary-dark: #c91606;--accent: #ff1c05;--blue: #3c6f9f;--green: #267a4b;--red: #c91606;--yellow: #a76612;--sidebar: #050505;--sidebar-soft: #111111;--shadow: 0 18px 50px rgba(14, 14, 14, .08)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg)}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:#111}.login-panel{width:min(420px,100%);display:grid;gap:20px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:#fff;padding:24px;box-shadow:0 24px 70px #00000047}.access-denied-panel{text-align:center}.login-logo{width:min(260px,100%);margin:0 auto;border-radius:8px;background:#050505}.login-return-button{border:0;border-radius:8px;background:#ff1c05;color:#fff;padding:12px 16px;font-weight:800;cursor:pointer}.login-return-button.secondary{border:1px solid #d7dde8;background:#fff;color:var(--text)}.login-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.login-brand{display:flex;align-items:center;gap:12px}.login-brand svg{color:var(--primary)}.login-brand h1{font-size:1.35rem}.login-brand p{margin-top:4px;color:var(--muted)}.login-form{display:grid;gap:12px}.login-form label{display:grid;gap:6px;color:var(--muted);font-size:.82rem;font-weight:800}.login-form input{min-height:42px;border:1px solid var(--line);border-radius:8px;padding:0 12px;outline:0}.login-error{border:1px solid #f2b1a9;border-radius:8px;background:#fff0ee;color:var(--primary-dark);padding:10px;font-size:.86rem;font-weight:700}button,input{font:inherit}button{cursor:pointer}button:disabled,select:disabled{cursor:not-allowed;opacity:.55}code{border:1px solid var(--line);border-radius:6px;background:#f4f6f5;color:#1f5e58;padding:2px 6px}.app-shell{display:grid;grid-template-columns:280px 1fr;height:100vh;overflow:hidden}.sidebar{position:sticky;top:0;height:100vh;min-height:0;background:var(--sidebar);color:#f3fbf8;display:flex;flex-direction:column;padding:22px 16px;gap:22px}.brand{display:flex;align-items:center;gap:10px;padding:6px 6px 16px;border-bottom:1px solid rgba(255,255,255,.12)}.brand-logo{display:block;width:168px;height:auto;object-fit:contain}.brand-copy{display:none}.brand-title{font-weight:800}.brand-subtitle{color:#b9b9b9;font-size:.82rem}.nav-list{display:grid;gap:6px;min-height:0;overflow-y:auto}.nav-item{width:100%;height:42px;display:flex;align-items:center;gap:10px;border:0;border-radius:7px;background:transparent;color:#e6e6e6;padding:0 12px;text-align:left}.nav-item:hover,.nav-item.active{background:#ff1c0529;color:#fff;box-shadow:inset 3px 0 0 var(--primary)}.utility-strip{margin-top:auto;min-height:126px;max-height:34vh;display:grid;align-content:start;gap:8px;overflow-y:auto;padding-right:2px}.utility-strip::-webkit-scrollbar,.nav-list::-webkit-scrollbar{width:8px}.utility-strip::-webkit-scrollbar-thumb,.nav-list::-webkit-scrollbar-thumb{border-radius:999px;background:#ffffff38}.utility-badge{display:flex;align-items:center;gap:8px;width:100%;min-height:36px;color:#d7d7d7;font-size:.86rem;padding:8px;border:1px solid rgba(255,255,255,.12);border-radius:7px;background:#ffffff0a;text-align:left}.utility-badge:hover,.utility-badge.active{border-color:#ffffff57;background:#ffffff1f;color:#fff}.utility-badge img{width:18px;height:18px;border-radius:4px;object-fit:contain}.main{min-width:0;height:100vh;overflow-y:auto}.topbar{position:sticky;top:0;z-index:10;height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;background:#f3f4f6e0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);gap:18px}.search-box{flex:1;max-width:620px;height:42px;display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted)}.search-box input{width:100%;border:0;outline:0;color:var(--text)}.topbar-actions,.button-row{display:flex;align-items:center;gap:10px}.icon-button{position:relative;display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text)}.notification-count{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--primary);color:#fff;font-size:.68rem;font-weight:900;line-height:1}.user-chip{display:flex;align-items:center;gap:10px;min-width:190px;height:44px;padding:0 10px;background:#fff;border:1px solid var(--line);border-radius:8px}.avatar{display:grid;place-items:center;width:30px;height:30px;border-radius:7px;background:#ffe4df;color:var(--primary-dark);font-weight:800}.user-name{font-weight:750;font-size:.88rem}.user-role{color:var(--muted);font-size:.76rem}.content{padding:28px}.api-status-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding:10px 12px;border:1px solid #bfd7d3;border-radius:8px;background:#eef9f7;color:#174a43;font-size:.88rem;font-weight:700}.api-status-bar.error{border-color:#f2b1a9;background:#fff0ee;color:var(--primary-dark)}.api-status-bar button{border:1px solid currentColor;border-radius:7px;background:transparent;color:inherit;padding:6px 10px;font-weight:800}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:24px}.eyebrow{color:var(--primary);font-size:.78rem;font-weight:800;letter-spacing:0;text-transform:uppercase}h1,h2,h3,p{margin:0}h1{margin-top:4px;font-size:2rem;line-height:1.15}h2{font-size:1.05rem}h3{font-size:.98rem}.page-header p,.panel-heading p,.section-heading p{margin-top:5px;color:var(--muted);line-height:1.45}.button{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:7px;padding:0 14px;border:1px solid transparent;font-weight:750;white-space:nowrap}.button-primary{background:var(--primary);color:#fff}.button-primary:hover{background:var(--primary-dark)}.button-secondary{background:#fff;color:var(--text);border-color:var(--line)}.button-ghost{background:#f6f8f6;color:var(--text);border-color:var(--line)}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.stat-card,.panel{border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow)}.stat-card{min-height:116px;display:flex;gap:14px;padding:18px}.stat-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:8px;background:#ffe7e3;color:var(--primary)}.stat-label{color:var(--muted);font-size:.82rem}.stat-value{margin-top:4px;font-size:1.8rem;font-weight:850}.stat-meta{margin-top:2px;color:var(--muted);font-size:.8rem}.dashboard-grid,.split-layout{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.6fr);gap:18px}.review-page-layout{display:grid;gap:18px}.dashboard-grid{grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr)}.panel-wide{min-width:0}.panel{padding:18px}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px;margin-top:14px}.expandable-table{margin-top:0}.expandable-table table{min-width:1080px}.expandable-row{cursor:pointer}.expandable-row:hover,.expandable-row.selected{background:#ffe4df}.expandable-row td{vertical-align:middle}.expanded-detail-row>td{padding:0;background:#f0f4f2}.expanded-detail-panel{display:grid;gap:10px;padding:12px;background:#f0f4f2;border-top:1px solid var(--line)}.expanded-detail-panel .expanded-detail-row>td,.expanded-detail-panel .expanded-detail-panel{background:#e5ebe8}.expanded-detail-panel .expanded-detail-panel .expanded-detail-row>td,.expanded-detail-panel .expanded-detail-panel .expanded-detail-panel{background:#dbe4e0}.table-status-cell{display:inline-flex;align-items:center;gap:8px;white-space:nowrap}.critical-control-detail{background:#e5ebe8}.question-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;display:grid;align-items:start;justify-items:center;padding:34px 24px;background:#0000007a}.question-modal{width:min(920px,calc(100vw - 48px));max-height:calc(100vh - 68px);display:grid;grid-template-rows:auto minmax(0,1fr);border-radius:8px;background:#fff;box-shadow:0 26px 90px #00000057;overflow:hidden}.question-modal-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 22px;border-bottom:1px solid var(--line)}.question-modal-heading p{margin-top:4px;color:var(--muted)}.question-modal-heading button{display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:8px;background:transparent;color:var(--text)}.question-modal-body{overflow-y:auto;padding:18px 22px 22px}.question-modal-body>.form-grid{margin-bottom:0;border:0;padding:0;background:#fff}.entity-modal{width:min(860px,calc(100vw - 48px))}.user-assignment-modal{width:min(1160px,calc(100vw - 48px))}.route-modal{width:min(980px,calc(100vw - 48px))}.route-diagnostics-modal{width:min(1180px,calc(100vw - 48px))}.modal-content-form{margin-bottom:0;border:0;padding:0;background:#fff}.nested-table{margin-top:0}.nested-table table{min-width:820px}.baseline-tag-table table{min-width:1040px}.table-inline-input{width:min(260px,100%);min-height:34px;border:1px solid var(--line);border-radius:7px;padding:0 10px;color:var(--text);background:#fff;font:inherit;font-weight:700}.approval-review-row{display:grid;grid-template-columns:minmax(220px,360px) auto;align-items:end;gap:12px}.approval-decision-panel{display:grid;gap:12px;max-width:760px;margin:14px 0;padding:14px;border:1px solid #dce4e0;border-radius:8px;background:#f8faf9}.approval-review-row label,.approval-note-field{display:grid;gap:6px;color:var(--muted);font-size:.78rem;font-weight:800}.approval-review-row select,.approval-note-field textarea{width:100%;border:1px solid #cfd9d4;border-radius:8px;background:#fff;color:var(--text);font:inherit;font-weight:700;box-shadow:0 1px #11182705}.approval-review-row select{min-height:38px;padding:0 10px}.approval-note-field textarea{min-height:74px;padding:10px 12px;resize:vertical}.approval-review-row select:focus,.approval-note-field textarea:focus{border-color:var(--primary);outline:0;box-shadow:0 0 0 3px #ff1c051f}.approval-review-message{padding:10px 12px;border:1px solid #dce4e0;border-radius:8px;background:#fff;color:var(--muted);font-size:.82rem;font-weight:800}.control-overview-edit{display:grid;grid-template-columns:minmax(240px,520px) auto;align-items:end;gap:12px;margin-bottom:10px}.control-overview-edit label{display:grid;gap:5px;color:var(--muted);font-size:.74rem;font-weight:800}.control-overview-edit input{width:100%;min-height:34px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--text);padding:0 10px;font-weight:750}.change-indicator{min-height:28px;display:inline-flex;align-items:center;justify-self:start;border-radius:999px;background:#eef1ef;color:var(--muted);padding:0 10px;font-size:.74rem;font-weight:850}.change-indicator.active{background:#fff1d8;color:var(--yellow)}.publish-update-button{min-height:34px;border-color:#d4d8d6;background:#eef1ef;color:var(--muted);padding:0 12px}.publish-update-button.active{border-color:#50b26d;background:#22a854;color:#fff}.publish-update-button.active:hover{background:#158443}.save-question-button{min-height:34px;border-color:#d4d8d6;background:#eef1ef;color:var(--muted)}.save-question-button.active{border-color:#50b26d;background:#22a854;color:#fff}.save-question-button.active:hover{background:#158443}table{width:100%;border-collapse:collapse;min-width:760px}th,td{padding:13px 14px;text-align:left;border-bottom:1px solid var(--line);font-size:.9rem}th{color:var(--muted);background:#f7f9f8;font-size:.76rem;text-transform:uppercase;letter-spacing:0}tr:last-child td{border-bottom:0}.badge,.state-dot,.method-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:5px 9px;font-size:.76rem;font-weight:800;text-transform:capitalize}.badge-success,.state-dot.passed,.state-dot.delivered,.state-dot.current{background:#e7f4eb;color:var(--green)}.badge-warning,.state-dot.warning,.state-dot.queued,.state-dot.review{background:#fff1d8;color:var(--yellow)}.badge-danger,.state-dot.failed,.state-dot.security{background:#ffe4df;color:var(--red)}.badge-blue,.state-dot.info{background:#e7eef6;color:var(--blue)}.badge-neutral{background:#eef1ef;color:var(--muted)}.attention-list{display:grid;gap:10px}.attention-list div{display:flex;justify-content:space-between;gap:12px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fbfcfb}.attention-list strong{font-size:1.45rem}.attention-list span{color:var(--muted);text-align:right}.tree-list,.control-list{display:grid;gap:8px;margin-bottom:14px}.tree-node{padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:#fbfcfb;color:var(--muted)}.tree-node.strong{color:var(--text);font-weight:800}.indent{margin-left:16px}.indent-2{margin-left:32px}.indent-3{margin-left:48px}.full-width{width:100%}.control-row{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;border:1px solid var(--line);border-radius:8px;background:#fbfcfb;padding:12px;text-align:left}.control-select{display:flex;flex:1;align-items:center;justify-content:space-between;gap:12px;min-width:0;border:0;background:transparent;color:inherit;padding:0;text-align:left}.control-select:focus-visible,.table-link:focus-visible{outline:2px solid rgba(255,28,5,.38);outline-offset:4px;border-radius:6px}.control-row.selected{border-color:#ff1c0573;background:#ffe4df}.control-row small{display:block;margin-top:4px;color:var(--muted)}.library-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) minmax(170px,220px) minmax(220px,280px);gap:12px;align-items:end;margin-bottom:14px}.split-layout .library-toolbar{grid-template-columns:1fr;align-items:stretch}.library-toolbar label,.search-field{display:grid;gap:6px;color:var(--muted);font-size:.78rem;font-weight:800}.search-field{position:relative}.search-field svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.search-field input{min-height:40px;padding-left:36px}.library-toolbar select,.library-toolbar input{width:100%;min-height:40px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--text);padding:0 12px}.compact-heading{margin-bottom:0}.compact-heading h3{font-size:1rem}.control-summary-strip{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.control-summary-strip>span{display:inline-flex;align-items:center;min-height:30px;max-width:100%;padding:5px 9px;border:1px solid var(--line);border-radius:8px;background:#f7faf8;color:var(--muted);font-size:.82rem;font-weight:750}.ordered-library-layout>.user-library-panel{order:1}.ordered-library-layout>.user-editor-panel,.ordered-library-layout>.panel:not(.user-library-panel){order:2}.builder-toolbar{display:flex;gap:10px;padding:10px;border:1px dashed #b8c5c1;border-radius:8px;background:#f7faf8;margin-bottom:14px}.section-card{border:1px solid var(--line);border-radius:8px;padding:14px;background:#fbfcfb}.section-heading{display:flex;gap:10px;margin-bottom:14px}.method-pill{background:#fff0ed;color:var(--primary-dark);text-transform:none}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px;align-items:end;margin-bottom:16px}.stacked-form{display:grid;gap:12px;margin-bottom:16px}.compact-form{padding:14px;border:1px solid var(--line);border-radius:8px;background:#fbfbfb}.form-grid label,.stacked-form label,.field-block{display:grid;gap:6px;color:var(--muted);font-size:.78rem;font-weight:800}.form-grid input,.form-grid select,.stacked-form input,.stacked-form select{width:100%;min-height:38px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--text);padding:0 10px;outline:0}.form-grid select[multiple]{min-height:112px;padding:8px 10px}.form-grid .checkbox-line{display:flex;align-items:center;gap:8px;min-height:38px}.form-grid .checkbox-line input{width:auto;min-height:0}.route-method-placeholder{display:grid;gap:6px;grid-column:1 / -1;border:1px dashed #cfd7e5;border-radius:8px;background:#f8fafc;color:var(--muted);padding:14px}.route-method-placeholder strong{color:var(--text)}.route-modal-actions{grid-column:1 / -1}.route-checkbox-group{display:grid;gap:8px;min-width:0;border:0;padding:0}.route-checkbox-group legend{color:var(--muted);font-size:.78rem;font-weight:850}.route-checkbox-options{display:grid;align-content:start;gap:6px;min-height:112px;max-height:150px;overflow:auto;border:1px solid #d7dde8;border-radius:8px;background:#fff;padding:8px}.route-checkbox-options label{display:flex;align-items:center;gap:8px;min-height:28px;border-radius:6px;padding:4px 6px;color:var(--text);font-size:.9rem}.route-checkbox-options label:hover{background:#f4f7fb}.route-checkbox-options input{width:auto;min-height:0}.route-checkbox-empty{color:var(--muted);font-size:.88rem}.route-selected-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;grid-column:1 / -1}.route-diagnostics-filters{margin-bottom:16px}.route-diagnostics-layout{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(360px,1.4fr);gap:16px;min-height:420px}.route-attempt-list{display:grid;align-content:start;gap:8px;max-height:520px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:8px}.route-attempt-list button{display:grid;gap:4px;width:100%;border:1px solid transparent;border-radius:8px;background:#fff;padding:10px;text-align:left;cursor:pointer}.route-attempt-list button.selected,.route-attempt-list button:hover{border-color:#ffb3a8;background:#ffe4df}.route-attempt-list span,.route-attempt-list small{color:var(--muted)}.route-attempt-detail{display:grid;align-content:start;gap:14px;border:1px solid var(--line);border-radius:8px;padding:14px;min-width:0}.route-attempt-detail h3{margin-bottom:4px}.route-attempt-detail p{color:var(--muted)}.route-attempt-detail dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.route-attempt-detail dt{color:var(--muted);font-size:.76rem;font-weight:850}.route-attempt-detail dd{margin:3px 0 0;overflow-wrap:anywhere;font-weight:750}.route-attempt-detail pre{max-height:260px;overflow:auto;border-radius:8px;background:#101827;color:#f8fafc;padding:12px;font-size:.8rem}.route-diagnostics-empty{border:1px dashed #cfd7e5;border-radius:8px;color:var(--muted);padding:14px}.location-tag-builder{align-content:start}.tag-builder-control{display:grid;grid-template-columns:auto minmax(130px,1fr);align-items:center;min-height:38px;overflow:hidden;border:1px solid var(--line);border-radius:7px;background:#fff}.tag-builder-control input{min-height:36px;border:0;border-left:1px solid var(--line);border-radius:0;font-weight:800}.locked-tag-prefix{padding:0 10px;color:var(--muted);font-size:.86rem;font-weight:900;white-space:nowrap}.form-hint,.form-warning{color:var(--muted);font-size:.76rem;font-weight:700}.form-warning.danger{color:#b42318}.wide-field{grid-column:span 2}.user-editor-panel{padding-bottom:20px}.user-editor-form{display:grid;gap:16px}.role-selector{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px}.role-card{min-height:74px;display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfbfb;color:var(--text);cursor:pointer}.role-card input{position:absolute;opacity:0;pointer-events:none}.role-card svg{flex:0 0 auto;color:var(--muted)}.role-card span{display:grid;gap:4px}.role-card strong{color:var(--text);font-size:.84rem}.role-card small{color:var(--muted);font-size:.76rem}.role-card.selected{border-color:#ff1c056b;background:#fff3f0;box-shadow:inset 3px 0 0 var(--primary)}.role-card.selected svg{color:var(--primary)}.user-form-layout{display:grid;grid-template-columns:minmax(260px,.58fr) minmax(0,1.42fr);gap:14px}.identity-card,.scope-card,.assignment-group{border:1px solid var(--line);border-radius:8px;background:#fbfbfb}.identity-card,.scope-card{padding:14px}.identity-card{display:grid;align-content:start;gap:12px}.identity-card label{display:grid;gap:6px;color:var(--muted);font-size:.78rem;font-weight:800}.identity-card input{width:100%;min-height:38px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--text);padding:0 10px;outline:0}.toggle-field{grid-template-columns:18px 1fr;align-items:start;gap:10px!important;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.toggle-field input{width:16px;min-width:16px;min-height:16px;height:16px;margin-top:2px;accent-color:var(--primary)}.toggle-field span{display:grid;gap:3px}.toggle-field strong{color:var(--text);font-size:.84rem}.toggle-field small{color:var(--muted);font-size:.76rem;line-height:1.35}.nested-toggle-group{display:grid;gap:8px;margin-top:-4px;padding-left:14px;border-left:3px solid #ffd1c9}.selected-role-summary{display:grid;gap:4px;margin-top:2px;padding:12px;border-radius:8px;background:#fff;border:1px dashed #c8c8c8}.selected-role-summary span{color:var(--muted);font-size:.76rem;font-weight:800}.selected-role-summary strong{color:var(--primary-dark)}.scope-heading{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}.scope-heading p{margin-top:4px;color:var(--muted);font-size:.82rem;line-height:1.4}.assignment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.assignment-group{min-height:184px;padding:12px}.assignment-group legend{width:100%;display:flex;justify-content:space-between;gap:8px;padding:0;color:var(--text);font-size:.82rem;font-weight:850}.assignment-group legend strong{color:var(--muted);font-size:.74rem}.assignment-list{display:grid;gap:8px;max-height:196px;overflow-y:auto;padding-top:10px}.assignment-tools{display:grid;gap:8px;margin-top:10px}.assignment-tools.compact{margin-top:8px}.assignment-tools input{width:100%;min-height:36px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--text);padding:0 10px;outline:0}.assignment-tools .button-row{gap:6px}.assignment-tools .button{min-height:32px;padding:0 10px;font-size:.78rem}.location-validity-list{display:grid;gap:8px;padding-top:10px}.location-validity-row{display:grid;grid-template-columns:minmax(0,1fr) 96px;align-items:center;gap:10px;padding:8px;border-radius:7px;background:#fff}.location-validity-row span{display:grid;gap:3px}.location-validity-row small{color:var(--muted);font-size:.74rem;font-weight:700}.assignment-check{display:flex;gap:9px;align-items:flex-start;padding:8px;border-radius:7px;background:#fff;color:var(--text)}.assignment-check input{width:16px;min-width:16px;height:16px;min-height:16px;margin-top:3px;padding:0;border-radius:4px;accent-color:var(--primary)}.assignment-check span{display:grid;gap:2px;min-width:0}.assignment-check strong{font-size:.86rem}.assignment-check small{color:var(--muted);font-size:.76rem}.assignment-empty{display:grid;place-items:center;min-height:132px;color:var(--muted);text-align:center;font-size:.84rem}.form-actions{display:flex;flex-wrap:wrap;gap:10px}.tenant-assignment-field{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff}.tenant-assignment-field legend{width:100%;display:flex;justify-content:space-between;gap:10px;padding:0;color:var(--text);font-size:.82rem;font-weight:850}.tenant-assignment-field legend strong{color:var(--muted);font-size:.74rem}.tenant-check-grid{display:grid;gap:8px;max-height:96px;overflow-y:auto}.tenant-assignment-field .assignment-check{display:flex;grid-template-columns:none;align-items:flex-start;gap:9px;min-height:0;color:var(--text);font-size:.86rem}.tenant-assignment-field .assignment-check span{display:grid;gap:2px}.tenant-assignment-field .assignment-tools{margin-top:4px}.tenant-assignment-field .assignment-tools input{min-height:36px}.user-filter-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin-bottom:14px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfbfb}.record-card-list{display:grid;gap:10px}.record-card{display:grid;gap:10px;border:1px solid var(--line);border-radius:8px;background:#fbfcfb;padding:12px}.record-card.selected{border-color:#ff1c0573;background:#ffe4df}.record-card-main{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:0;background:transparent;color:var(--text);padding:0;text-align:left}.record-card-main>span{display:grid;gap:4px;min-width:0}.record-card-main strong{font-size:1rem}.record-card-main small{color:var(--muted)}.record-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}.record-meta-grid>span{display:grid;gap:3px;min-width:0;color:var(--muted);font-size:.84rem}.record-meta-grid strong{color:var(--text);font-size:.74rem;text-transform:uppercase}.record-card-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.submission-filter-bar{display:grid;grid-template-columns:minmax(220px,1.35fr) repeat(5,minmax(130px,1fr));gap:10px;align-items:end;margin-bottom:12px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fbfbfb}.approval-filter-bar{grid-template-columns:minmax(220px,1.35fr) repeat(6,minmax(120px,1fr))}.control-filter-bar{grid-template-columns:minmax(260px,1.5fr) repeat(4,minmax(160px,1fr))}.submission-filter-bar label{display:grid;gap:5px;min-width:0;color:var(--muted);font-size:.72rem;font-weight:800}.submission-filter-bar select,.submission-filter-bar input{width:100%;min-height:34px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);padding:0 10px;font-size:.86rem}.clear-filter-button{align-self:end;min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);padding:0 10px;font-size:.8rem;font-weight:800}.clear-filter-button:hover{color:var(--primary-dark);border-color:#ffd1c9;background:#fff7f5}.submission-search input,.submission-filter-bar .search-field input{padding-left:34px}.submission-capture-form{margin-bottom:12px}.portal-capture-fields{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:12px;padding-top:4px}.capture-field-pair{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:12px}.json-modal{width:min(980px,calc(100vw - 48px))}.json-viewer{margin:0;padding:18px 22px 22px;overflow:auto;background:#111827;color:#e5e7eb;font-size:.82rem;line-height:1.55}.submission-card-list{gap:8px}.submission-card{gap:8px;padding:10px 12px;background:#fff}.submission-card-main{cursor:pointer}.submission-card-main strong{font-size:.95rem}.submission-card-main small{line-height:1.25}.submission-card .record-meta-grid{grid-template-columns:1.1fr 1fr .45fr 2fr;gap:6px 12px}.submission-card .baseline-meta-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.submission-card .record-meta-grid>span{gap:2px;min-width:0}.submission-card .record-meta-grid>span:last-child{overflow-wrap:anywhere}.submission-card-actions{display:inline-flex;align-items:center;gap:8px}.submission-card .chevron{color:var(--muted);transition:transform .18s ease}.submission-card .chevron.open{transform:rotate(180deg)}.baseline-detail-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);padding:10px;font-size:.86rem}.validation-issue-panel{display:grid;gap:8px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);padding:10px}.validation-issue-panel.failed{border-color:#f2b1a9;background:#fff6f4}.validation-issue-panel.warning{border-color:#f2d39f;background:#fffaf0}.validation-issue-panel.passed{border-color:#bfd7d3;background:#f3fbf8;color:#174a43;font-weight:700}.validation-issue-heading,.validation-issue-item{display:flex;align-items:center;justify-content:space-between;gap:10px}.validation-issue-heading strong{color:var(--text)}.validation-issue-heading span{font-size:.78rem;font-weight:800}.validation-issue-list{display:grid;gap:8px}.validation-issue-item{justify-content:flex-start}.validation-issue-item>div{display:grid;gap:3px}.validation-issue-item small{color:var(--muted)}.submission-values{display:block;overflow-wrap:anywhere;white-space:normal;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);padding:10px;font-family:ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.8rem;line-height:1.5}@media(max-width:1180px){.submission-filter-bar{grid-template-columns:repeat(3,minmax(160px,1fr))}.submission-search{grid-column:1 / -1}.submission-card .record-meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.baseline-detail-row{align-items:flex-start;flex-direction:column}}@media(max-width:720px){.submission-filter-bar,.submission-card .record-meta-grid{grid-template-columns:1fr}}.location-card-list{margin-bottom:14px}.linked-chip-list{display:flex;flex-wrap:wrap;gap:8px}.linked-chip-list button{display:inline-flex;align-items:center;gap:6px;min-height:30px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--text);padding:0 10px;font-weight:750}.user-filter-bar label{display:grid;gap:6px;min-width:220px;color:var(--muted);font-size:.78rem;font-weight:800}.user-filter-bar select{min-height:38px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--text);padding:0 10px}.table-action{display:inline-flex;align-items:center;gap:6px;min-height:32px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--text);padding:0 10px;font-weight:800}.table-actions{display:inline-flex;flex-wrap:wrap;gap:8px}.table-action.danger{border-color:#ffd1c9;color:var(--red);background:#fff7f5}.diagnostic-details summary{cursor:pointer;font-weight:800;color:var(--primary-dark)}.diagnostic-details pre{max-width:360px;max-height:220px;overflow:auto;margin:10px 0 0;padding:12px;border:1px solid var(--line);border-radius:7px;background:#f7f9fb;color:var(--text);font-size:12px}.pagination-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);font-weight:800}.pagination-actions{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px}.pagination-actions label{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}.pagination-actions select,.pagination-actions button{min-height:32px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--text);padding:0 10px;font-weight:800}.pagination-actions button:disabled{opacity:.45;cursor:not-allowed}.white-label-form{grid-template-columns:repeat(3,minmax(180px,1fr))}.palette-picker{display:grid;grid-template-columns:repeat(3,minmax(130px,1fr));gap:10px}.palette-picker>strong{grid-column:1 / -1}.palette-picker label{display:grid;grid-template-columns:1fr 44px;align-items:center;gap:8px;min-height:42px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);font-size:.78rem;font-weight:800}.palette-picker input{width:44px;min-height:28px;padding:0;border:0;background:transparent}.logo-upload{align-self:end}.logo-upload span{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--text);font-weight:800;cursor:pointer}.logo-upload input{display:none}.logo-preview,.table-logo,.table-logo-fallback{width:46px;height:46px;border:1px solid var(--line);border-radius:8px;background:#0b0b0b;object-fit:contain}.table-logo-fallback{display:inline-grid;place-items:center;background:#ffe4df;color:var(--primary-dark);font-weight:850}.palette-swatches{display:inline-flex;gap:5px}.palette-swatches span{width:22px;height:22px;border:1px solid var(--line);border-radius:999px}.role-pill{display:inline-flex;align-items:center;min-height:26px;border-radius:999px;background:#fff0ed;color:var(--primary-dark);padding:0 10px;font-size:.78rem;font-weight:850;white-space:nowrap}.validation-builder{grid-column:1 / -1;display:grid;gap:12px;padding:14px;border:1px dashed #c8c8c8;border-radius:8px;background:#fff}.calculation-builder{grid-column:1 / -1;display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fff}.calculation-builder>div:first-child{display:grid;gap:4px}.calculation-builder span{color:var(--muted);font-size:.84rem}.calculation-grid{display:grid;grid-template-columns:minmax(0,1fr) 150px minmax(0,1fr);gap:12px}.validation-builder-heading,.validation-rule-title{display:grid;grid-template-columns:1fr;align-items:flex-start;justify-content:space-between;gap:12px}.validation-builder-heading .button-row{align-items:center;flex-wrap:wrap}.validation-builder-heading select{width:min(320px,100%);min-width:210px}.validation-builder-heading span{display:block;margin-top:4px;color:var(--muted);font-size:.82rem;font-weight:500}.validation-list{display:grid;gap:10px}.validation-rule{display:grid;grid-template-columns:repeat(3,minmax(190px,1fr));gap:10px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfbfb}.validation-rule-title{grid-column:1 / -1}.validation-rule label,.validation-rule select,.validation-rule input{min-width:0}.validation-empty{color:var(--muted);font-size:.88rem}.tag-stack{display:inline-flex;flex-wrap:wrap;gap:5px}.linked-count,.map-link{display:inline-flex;align-items:center;gap:7px}.map-link{color:var(--primary-dark);font-weight:800;text-decoration:none}.template-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.upload-button{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:7px;padding:0 14px;border:1px solid var(--line);background:#fff;color:var(--text);font-size:.88rem;font-weight:750;cursor:pointer}.upload-button input{display:none}.bulk-upload-status{display:grid;gap:8px;max-width:520px;margin:-6px 0 16px;padding:10px 12px;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff}.bulk-upload-status.success{border-color:#bbf7d0;background:#f0fdf4}.bulk-upload-status-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--text);font-size:.82rem;font-weight:800}.bulk-upload-status-heading strong{font-size:.78rem}.bulk-upload-progress{height:8px;overflow:hidden;border-radius:999px;background:#dbeafe}.bulk-upload-status.success .bulk-upload-progress{background:#dcfce7}.bulk-upload-progress span{display:block;height:100%;border-radius:inherit;background:var(--primary);transition:width .18s ease}.bulk-upload-status.success .bulk-upload-progress span{background:#16a34a}.map-accordion{margin-bottom:16px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}.map-toggle{width:100%;min-height:48px;display:flex;align-items:center;justify-content:space-between;border:0;background:#fbfbfb;color:var(--text);padding:0 14px;font-weight:850}.map-toggle span{display:inline-flex;align-items:center;gap:8px}.chevron{transition:transform .18s ease}.chevron.open{transform:rotate(180deg)}.map-panel{position:relative;padding:14px}.google-map{min-height:360px;overflow:hidden;border:1px solid var(--line);border-radius:8px}.leaflet-label-marker{display:inline-flex;align-items:center;gap:6px;color:#111;font-size:.78rem;font-weight:850}.leaflet-label-marker span{width:18px;height:18px;border:3px solid #ffffff;border-radius:999px;background:var(--primary);box-shadow:0 6px 16px #00000047}.leaflet-label-marker strong{padding:3px 6px;border-radius:6px;background:#ffffffeb;white-space:nowrap}.map-empty{color:var(--muted);font-weight:750}.map-empty-overlay{position:absolute;top:14px;right:14px;bottom:14px;left:14px;display:grid;place-items:center;pointer-events:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;align-items:start;justify-items:start;padding:60px 0 0 300px;background:#0000007a}.control-link-backdrop{z-index:60;align-items:center;justify-items:center;padding:28px}.control-modal{width:min(520px,calc(100vw - 40px));max-height:min(76vh,620px);display:grid;grid-template-rows:auto minmax(0,1fr) auto;border-radius:8px;background:#fff;box-shadow:0 24px 80px #00000059}.control-image-modal{width:min(820px,calc(100vw - 40px));max-height:min(86vh,760px)}.control-image-list{display:grid;gap:14px;overflow-y:auto;padding:0 18px 18px}.control-image-location,.control-image-row{display:grid;gap:8px}.control-image-location{padding:14px;border:1px solid var(--line);border-radius:8px;background:#fbfbfb}.control-image-location h3,.control-image-location p{margin:0}.control-image-location p,.control-image-gallery small,.modal-heading p{color:var(--muted);font-size:.82rem}.control-image-row{margin-top:4px;padding-top:12px;border-top:1px solid var(--line)}.control-image-row-heading,.control-image-gallery{display:flex;align-items:center;flex-wrap:wrap;gap:9px}.control-image-row-heading{justify-content:space-between}.control-image-preview{position:relative}.control-image-preview img{width:92px;height:72px;object-fit:cover;border:1px solid var(--line);border-radius:7px}.control-image-preview button{position:absolute;top:-6px;right:-6px;display:grid;width:20px;height:20px;place-items:center;border:0;border-radius:999px;background:#111;color:#fff}.modal-heading,.modal-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px}.modal-heading button{display:grid;place-items:center;width:34px;height:34px;border:0;background:transparent;color:var(--muted)}.control-checklist{display:grid;gap:10px;overflow-y:auto;padding:0 18px 16px}.control-check{display:flex;align-items:center;gap:9px;color:var(--text);font-size:.92rem;font-weight:800}.control-check input{width:17px;height:17px;accent-color:#090914}.modal-actions{border-top:1px solid var(--line);color:var(--muted);font-size:.88rem;font-weight:750}.edit-location-modal{width:min(560px,calc(100vw - 40px))}.modal-form{margin:0;padding:0 18px 18px}.embedded-checklist{display:grid;gap:10px;max-height:210px;overflow-y:auto;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfbfb}.inline-actions{padding:14px 0 0}.form-grid input:focus,.form-grid select:focus,.stacked-form input:focus,.stacked-form select:focus{border-color:var(--primary);box-shadow:0 0 0 3px #ff1c051f}.empty-state{display:grid;gap:5px;padding:18px;border:1px dashed #c8c8c8;border-radius:8px;background:#fbfbfb;color:var(--muted)}.empty-state strong{color:var(--text)}.report-builder-panel{display:grid;gap:18px}.report-type-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.report-type-card{display:grid;gap:6px;min-height:94px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);text-align:left;cursor:pointer}.report-type-card.active{border-color:var(--primary);background:#fff1ef;box-shadow:0 0 0 3px #ff1c051a}.report-type-card span{color:var(--muted);font-size:.88rem;line-height:1.35}.report-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:12px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fbfbfb}.report-filter-grid label{display:grid;gap:6px;color:var(--muted);font-size:.78rem;font-weight:800}.report-filter-grid input,.report-filter-grid select{min-height:38px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);padding:0 10px}.report-toggle{align-content:end;grid-template-columns:auto 1fr;align-items:center;color:var(--text)!important}.report-summary-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.report-summary-strip span{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted)}.report-summary-strip strong{color:var(--text);text-transform:uppercase;font-size:.72rem}.report-preview-table td{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.iot-device-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.iot-assignment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:stretch}.iot-assignment-card{min-width:0;border:1px solid var(--line);border-radius:10px;background:#fbfcfb;padding:0;overflow:hidden}.iot-assignment-card legend{margin-left:12px;padding:0 5px;color:var(--text);font-size:.82rem;font-weight:850}.iot-assignment-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;color:var(--muted);font-size:.75rem;font-weight:800}.iot-assignment-summary span{color:var(--primary-dark)}.iot-assignment-options{display:grid;align-content:start;gap:4px;max-height:190px;overflow-y:auto;padding:6px 8px 9px;border-top:1px solid var(--line);background:#fff}.iot-assignment-options label{display:flex;align-items:center;gap:9px;min-height:34px;border:1px solid transparent;border-radius:7px;padding:6px 8px;color:var(--text);font-size:.86rem;font-weight:700;cursor:pointer}.iot-assignment-options label:hover{background:#f4f7f5}.iot-assignment-options label.selected{border-color:#cbded5;background:#edf7f1}.form-grid .iot-assignment-options input{flex:0 0 auto;width:17px;height:17px;min-height:0;margin:0;accent-color:var(--primary)}.iot-assignment-options span{min-width:0;line-height:1.3}.iot-link-modal{width:min(560px,calc(100vw - 40px))}.iot-link-modal .modal-heading{align-items:flex-start;border-bottom:1px solid var(--line)}.iot-link-modal .modal-heading h2,.iot-link-modal .modal-heading p{margin:0}.iot-link-modal .modal-heading p{margin-top:5px;color:var(--muted);font-size:.86rem;line-height:1.45}.iot-link-checklist{padding-top:16px}.iot-link-option{min-height:54px;border:1px solid var(--line);border-radius:8px;background:#fbfcfb;padding:9px 11px;cursor:pointer}.iot-link-option:hover{border-color:#b9cbc3;background:#f4f8f6}.iot-link-option:has(input:checked){border-color:#a9d2be;background:#edf7f1}.iot-link-option span{display:grid;gap:3px}.iot-link-option small{color:var(--muted);font-weight:650}.iot-link-saving{margin-left:auto;color:var(--primary-dark)!important;font-weight:800!important}.question-order-table th:first-child,.question-order-table td:first-child{width:44px;padding-left:12px;padding-right:4px}.question-order-table tbody tr{transition:background .12s ease,opacity .12s ease,box-shadow .12s ease}.question-order-table tbody tr.dragging{opacity:.42}.question-order-table tbody tr.drag-over{background:#edf7f1;box-shadow:inset 0 2px 0 var(--primary)}.question-drag-handle{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:7px;color:var(--muted);cursor:grab}.question-drag-handle:hover{background:#eef3f0;color:var(--text)}.question-order-table tr:active .question-drag-handle{cursor:grabbing}@media(max-width:1100px){.iot-assignment-grid{grid-template-columns:1fr}}.iot-field-row{display:grid;grid-template-columns:1.3fr 1fr 150px 110px auto;gap:8px;align-items:center;margin-top:10px}.iot-field-row>label{display:flex;flex-direction:row;align-items:center;gap:6px}.iot-field-editor{border:1px solid var(--line);border-radius:10px;padding:10px;margin-top:10px}.iot-validation-row{display:flex;gap:10px;margin-top:10px}.iot-validation-row label{flex:1}@media(max-width:1100px){.app-shell{grid-template-columns:86px 1fr}.brand{justify-content:center}.brand-copy,.nav-item span,.utility-strip{display:none}.brand-logo{width:54px;max-width:54px;object-position:left}.nav-item{justify-content:center}.stat-grid,.dashboard-grid,.split-layout,.form-grid,.role-selector,.user-form-layout,.assignment-grid,.report-filter-grid,.report-summary-strip,.white-label-form,.palette-picker,.iot-field-row{grid-template-columns:1fr}.iot-validation-row{flex-direction:column}.wide-field{grid-column:span 1}.validation-rule{grid-template-columns:1fr}.modal-backdrop{justify-items:center;padding:40px 16px}}@media(max-width:760px){.app-shell{display:block;height:auto;overflow:visible}.sidebar{position:sticky;top:0;z-index:20;height:auto;padding:10px}.main{height:auto;overflow:visible}.brand{display:none}.nav-list{display:flex;overflow-x:auto}.nav-item{width:44px;flex:0 0 44px}.topbar{height:auto;align-items:stretch;flex-direction:column;padding:12px}.topbar-actions{justify-content:space-between}.user-chip{min-width:0;flex:1}.content{padding:16px}.page-header{flex-direction:column}h1{font-size:1.55rem}.stat-grid{gap:10px}.panel-heading{flex-direction:column}.route-selected-fields{grid-template-columns:1fr}}
