/* Full-height admin workspaces: scrolling belongs to tables and detail panels. */
html,body,#app,.app{height:100%;min-height:0;overflow:hidden}
.main{height:calc(100dvh - 16px);min-height:0;display:flex;flex-direction:column;min-width:0}
.topbar{height:54px;min-height:54px;position:relative;padding:0 20px;flex-shrink:0}
.content{flex:1;min-height:0;min-width:0;padding:16px 20px;display:flex;flex-direction:column;gap:12px;overflow:hidden;margin:0;max-width:none}
.content>*{flex-shrink:0}.page-head{margin:0;gap:14px;min-height:42px}.page-head h1{font-size:20px;line-height:26px;letter-spacing:0}.page-head p{font-size:12px;line-height:18px;margin:3px 0 0}.tabs{margin:0;min-height:35px}.tab{font-size:13px;padding:6px 12px}
.nav-scroll{overflow-y:auto;overflow-x:hidden;scrollbar-width:none;padding:4px 10px}.nav-scroll::-webkit-scrollbar{display:none}.nav-group{margin:0 0 6px}.nav-label{padding:7px 9px 4px;font-size:11px}.nav-item{height:33px;min-height:33px;font-size:13px;padding:6px 10px;margin:0}.brand{height:67px;min-height:67px;padding:0 16px}.brand-switch{margin-left:auto}.sidebar-foot{padding:9px 14px}.sidebar{height:100dvh}
.app.collapsed .sidebar{width:68px}.app.collapsed .main{margin-left:68px}.app.collapsed .brand{padding:0 15px;justify-content:center}.app.collapsed .brand>div,.app.collapsed .brand>img,.app.collapsed .nav-label,.app.collapsed .nav-item>span:not(.ico),.app.collapsed .sidebar-foot{display:none}.app.collapsed .brand-switch{margin:0;display:flex}.app.collapsed .nav-item{justify-content:center;padding:6px}.app.collapsed .nav-scroll{padding:4px 8px}
@media(min-width:761px){.sidebar{width:216px}.main{margin-left:216px}.brand{padding:0 12px;gap:8px}.brand img{width:32px;height:32px}.sidebar-foot{padding:9px 10px}}
.brand>div{min-width:0}.brand strong,.brand small{white-space:nowrap}.sidebar-foot .profile>span:nth-child(2){min-width:0;flex:1}.profile strong,.profile small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand-switch,.profile-switch{flex-shrink:0}
.data-section{display:flex;flex-direction:column;flex:1!important;min-height:0;min-width:0;overflow:hidden}.toolbar{margin:0 0 10px;padding:0;flex-shrink:0;gap:8px}.filter-field .select{padding-left:10px;border-style:solid}.table-card{display:flex;flex:1;min-height:0;overflow:hidden}.data-section .table-wrap{flex:1;min-height:0;overflow:auto}.table th{position:sticky;top:0;z-index:2;box-shadow:0 1px 0 var(--line);height:40px;background:var(--surface)}.table td{height:49px;padding:10px 13px}.table th:last-child,.table td:last-child{position:sticky;right:0;background:var(--surface);z-index:1;border-left:1px solid var(--line);min-width:125px}.table th:last-child{z-index:4}.table tr:hover td:last-child{background:var(--soft)}.pagination{padding:10px 0 0;flex-shrink:0;border:0}.selection-bar{flex-shrink:0;margin:0 0 8px}.search-field{width:235px}
.split-workspace{display:flex;flex:1!important;min-height:0;min-width:0;gap:16px;overflow:hidden}.directory{width:205px;flex-shrink:0;border:1px solid var(--line);border-radius:9px;padding:12px;overflow:auto;background:var(--surface)}.directory h3{font-size:13px;margin:0 0 12px}.directory-item{display:flex;width:100%;justify-content:flex-start;gap:8px;font-size:12px;border:0;box-shadow:none;margin:3px 0;white-space:normal;text-align:left}.directory-item small{margin-left:auto;color:var(--muted);font-size:10px}.directory-item.active{background:var(--soft);font-weight:600}.directory details{font-size:12px;margin:10px 0}.directory details summary{cursor:pointer;font-weight:600;padding:5px}.directory details .directory-item{padding-left:20px}.workspace-list{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0}.settings-layout{flex:1!important;min-height:0;overflow:hidden}.settings-content{overflow:auto;padding-right:10px}.panel-grid{min-height:0;overflow:auto;flex:1!important;margin:0}.quick-actions{margin:0}.metric{min-height:115px;padding:17px}.metric b{margin-top:14px;font-size:25px}.chart-panel{min-height:260px}.snapshot-bar{padding:10px 14px;margin:0;gap:20px}.snapshot-bar .field{min-width:190px}.drawer-body>.tabs{position:static;top:-22px;z-index:8;background:var(--surface);padding:6px 0;margin-bottom:18px}.drawer-body>.tabs:first-child{position:sticky;top:-22px}.dialog .data-section{height:440px;max-height:60dvh}.dialog .table td{white-space:normal}.dialog .table th:last-child,.dialog .table td:last-child{position:static}.dialog .table th{position:sticky}.profile-editor{display:flex;align-items:center;gap:18px}.member-photo{height:78px;width:78px;object-fit:cover;border-radius:12px;border:1px solid var(--line)}.member-photo.placeholder{display:grid;place-items:center;background:var(--soft)}.member-photo.placeholder svg{width:30px;height:30px}.profile-editor .field{margin:0}
.city-config-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.city-config-grid>section{border:1px solid var(--line);border-radius:9px;padding:12px}.city-config-grid h3{margin:0 0 16px;font-size:14px}.city-choice{display:flex;align-items:center;gap:8px;font-size:12px;padding:9px 0}.city-choice small{margin-left:auto;color:var(--muted)}.rule-summary{display:flex;gap:18px;align-items:flex-start;border:1px solid var(--line);border-radius:9px;padding:14px;margin:12px 0}.rule-summary>div{flex:1}.rule-summary b{font-size:13px}.rule-summary p{font-size:12px;line-height:20px;margin:8px 0 0;color:var(--muted)}.mapping-guide{display:flex;align-items:center;gap:16px;border:1px solid var(--line);padding:12px;border-radius:8px;background:var(--soft);font-size:12px}.todo-stats{display:flex;gap:12px}
.drawer.formula-wide{width:min(1400px,98vw)}.formula-workspace{display:grid;grid-template-columns:205px minmax(340px,1fr) 270px;gap:18px;align-items:start}.metric-directory{position:sticky;top:0;max-height:calc(100dvh - 220px);overflow:auto}.metric-directory h3,.formula-preview h3{font-size:14px;margin:0 0 12px}.metric-directory>.input{width:100%;margin-bottom:10px}.metric-choice{display:block;width:100%;padding:11px;text-align:left;border:1px solid var(--line);border-radius:7px;background:var(--surface);margin-bottom:8px;color:var(--ink)}.metric-choice b{font-size:12px}.metric-choice small{display:block;color:var(--muted);font-size:11px;line-height:19px;margin-top:4px}.formula-group,.formula-branch{border:1px solid var(--line);border-radius:9px;padding:12px;background:var(--soft);margin:12px 0}.formula-group>header{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.formula-group>header .field{margin:0;min-width:110px}.formula-group>header .field>span{display:none}.formula-child{margin-top:12px;border-left:2px solid #cbd5e1;padding-left:10px}.formula-order{display:flex;align-items:center;gap:4px;font-size:11px}.formula-order>span{margin-right:auto;color:var(--muted)}.formula-condition{padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:8px;margin-top:7px}.formula-condition .field{margin:0}.formula-condition .form-grid{gap:10px;margin-bottom:12px}.formula-condition .select{max-width:100%}.rule-foot{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.rule-foot>small{flex:1;color:var(--muted);font-size:10px}.formula-branch h3{font-size:14px;margin:0}.formula-branch h4{font-size:12px;margin:13px 0 4px}.formula-preview{border-left:1px solid var(--line);padding-left:16px;max-height:calc(100dvh - 200px);overflow:auto;position:sticky;top:0}.formula-preview p{font-size:12px;line-height:21px}.formula-preview .field{font-size:12px;margin-bottom:10px}.formula-preview details{font-size:12px;margin:16px 0}.formula-preview .table td{padding:6px;height:auto;font-size:11px}
.login{height:100dvh;overflow:auto}.login-template{height:100dvh;min-height:0;overflow:auto}.content>.grid{flex-shrink:0}
.todo-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.todo-status-card{display:flex;align-items:center;gap:12px;padding:12px 16px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);text-align:left;cursor:pointer}.todo-status-card>.svg-icon{width:20px;height:20px;color:var(--muted)}.todo-status-card span{font-size:12px;color:var(--muted)}.todo-status-card b{display:block;color:var(--ink);font-size:22px;margin-top:4px}.todo-status-card.active{background:var(--soft);border-color:var(--ink)}.todo-status-card:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.todo-scope{display:flex;align-items:center;gap:5px}.todo-scope .active{background:var(--soft);font-weight:600}.todo-scope small{font-size:11px;color:var(--muted)}.todo-title{font-size:12px;font-weight:500}.todo-context{max-width:290px;white-space:normal;line-height:18px;font-size:10px}.todo-issue{display:block;min-width:180px;max-width:310px;white-space:normal;line-height:20px}.todo-overdue{display:block;color:#b45309;font-size:11px;margin-top:5px}
.todo-title{display:block;min-width:220px;white-space:normal;line-height:20px}.todo-context{min-width:220px;max-width:290px}
.todo-facts .detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}.todo-facts .detail-list>div:first-child{grid-column:1/-1}.todo-facts .detail-list dd{overflow-wrap:anywhere}.todo-facts .detail-list dt{flex-shrink:0}
.formula-view-controls{display:flex;align-items:center;gap:6px;font-size:12px;margin:12px 0}.formula-view-controls>span{margin-right:auto;color:var(--muted)}.formula-child{border:1px solid var(--line);border-radius:8px;background:var(--surface);padding:0;overflow:hidden}.formula-order{padding:10px;align-items:flex-start;gap:8px}.formula-fold{display:flex;align-items:flex-start;gap:8px;min-width:0;flex:1;border:0;background:transparent;color:var(--ink);text-align:left;padding:3px;cursor:pointer}.formula-fold:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:4px}.formula-fold .svg-icon{width:16px;height:16px;flex-shrink:0;margin-top:2px;transition:transform .15s}.formula-fold[aria-expanded=true] .svg-icon{transform:rotate(90deg)}.formula-fold>span{min-width:0}.formula-fold small{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.formula-fold b{display:block;font-size:12px;line-height:20px;font-weight:500;overflow-wrap:anywhere}.formula-order-tools{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;max-width:160px;flex-shrink:0}.formula-order-tools .btn{font-size:11px;padding:4px 7px}.formula-drag{display:flex;color:var(--muted);cursor:grab;padding:5px}.formula-drag:active{cursor:grabbing}.formula-child>[data-formula-body]{padding:0 12px 12px}.formula-child>[data-formula-body][hidden]{display:none}.formula-child .formula-branch{background:var(--soft)}
.table th:last-child:not(.action-col),.table td:last-child:not(.action-col){position:static;border-left:0}.dialog .table th.action-col,.dialog .table td.action-col{position:sticky;right:0;background:var(--surface);z-index:3;border-left:1px solid var(--line)}.dialog .table th.action-col{top:0;z-index:5}.centered-panel{height:min(780px,90dvh);border-radius:12px;width:min(1100px,95vw)!important}.centered-panel .drawer-body{min-height:0}.centered-panel .data-section{height:440px;max-height:60dvh}
.dashboard-panels .card{min-height:0;display:flex;flex-direction:column}.dashboard-chart .chart-panel{flex:1;min-height:245px;padding:30px 26px 24px;gap:16px}.dashboard-chart .chart-y{height:auto;padding-bottom:28px}.dashboard-chart .bar-chart{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));height:auto;min-width:0;gap:20px;align-items:stretch}.bar-column{display:flex;flex-direction:column;min-width:0;gap:12px}.bar-space{flex:1;min-height:170px;position:relative}.dashboard-chart .bar-unit{position:absolute;bottom:0;width:100%;max-width:none}.dashboard-chart .bar-label{display:block;text-align:center;font-size:12px;color:var(--muted);white-space:nowrap;line-height:18px}.dashboard-recent>.pad{overflow:auto;min-height:0;flex:1}.dashboard-recent .grow{min-width:0}.audit-description{font-size:12px;color:var(--muted);line-height:19px;margin:5px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media(max-width:1100px){.directory{width:170px}.toolbar .search-field{width:190px}.city-config-grid{grid-template-columns:repeat(2,1fr)}}
.formula-wide .drawer-body{display:flex;min-height:0;overflow:hidden;padding:18px 22px}.formula-workspace{flex:1;min-height:0;min-width:0;grid-template-columns:180px minmax(350px,1fr) 230px;gap:18px;align-items:stretch}.metric-directory,.formula-preview{position:static;min-height:0;max-height:none;overflow:auto}.formula-preview{padding-left:18px}.formula-canvas{display:flex;flex-direction:column;min-width:0;min-height:0;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--soft)}.formula-canvas-toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--surface);border-bottom:1px solid var(--line);flex-shrink:0}.formula-canvas-toolbar [role=tablist]{display:flex;gap:3px;padding:3px;background:var(--soft);border-radius:7px}.formula-canvas-toolbar [role=tab]{display:flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--muted);font-size:12px;padding:7px 10px;border-radius:5px}.formula-canvas-toolbar [aria-selected=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #0f172a18}.formula-canvas-toolbar small{font-size:10px;color:var(--muted)}.formula-canvas-scroll{flex:1;min-height:0;overflow:auto;padding:18px}.formula-canvas-scroll [hidden]{display:none!important}.rule-flow-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.rule-flow-caption b{font-size:13px}.rule-flow-caption span{font-size:10px;color:var(--muted)}.rule-flow-group>header{display:flex;align-items:center;gap:8px;font-size:12px;margin-bottom:12px}.rule-flow-group>header small{color:var(--muted);font-size:10px}.rule-flow-group>header .btn{margin-left:auto}.rule-flow-junction{display:flex;padding:7px;background:var(--surface);border:1px solid var(--line);border-radius:7px}.rule-flow-children{position:relative;margin-left:15px;padding-left:23px;border-left:1px solid #cbd5e1;display:grid;gap:12px}.rule-flow-step{position:relative;min-width:0}.rule-flow-step:before{content:'';position:absolute;left:-23px;top:22px;width:23px;border-top:1px solid #cbd5e1}.rule-flow-index{position:absolute;left:-33px;top:12px;display:grid;place-items:center;width:19px;height:19px;background:var(--surface);border:1px solid #cbd5e1;border-radius:50%;font-size:10px;color:var(--muted);z-index:1}.rule-flow-condition{display:flex;align-items:center;gap:9px;width:100%;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:7px;text-align:left;color:var(--ink);transition:border-color .15s,box-shadow .15s}.rule-flow-condition>b{font-size:12px;font-weight:500;line-height:20px;overflow-wrap:anywhere}.rule-flow-condition>span{display:flex;color:var(--muted);flex-shrink:0}.rule-flow-condition:hover{border-color:#94a3b8;box-shadow:0 2px 5px #0f172a08}.rule-flow-condition:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.rule-flow-edit{margin-left:auto}.rule-flow-branch{border:1px solid var(--line);border-radius:8px;background:var(--surface);overflow:hidden}.rule-flow-decision{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--line)}.rule-flow-decision>span{display:flex;gap:5px;align-items:center;font-size:10px;white-space:nowrap;color:var(--muted)}.rule-flow-decision>b{font-size:12px;font-weight:500;line-height:20px}.rule-flow-decision .btn{margin-left:auto;flex-shrink:0}.rule-flow-fork{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:10px 12px 12px;background:var(--soft)}.rule-flow-lane{min-width:0;position:relative;padding-top:5px}.rule-flow-lane-label{display:block;font-size:10px;color:var(--muted);margin-bottom:7px}.rule-flow-lane.yes .rule-flow-lane-label{color:#0f766e}.rule-flow-lane .rule-flow-condition{padding:9px}.rule-flow-lane .rule-flow-condition>b{font-size:11px}.rule-flow-lane .rule-flow-condition>span:first-child{display:none}.rule-flow-result{display:flex;align-items:center;gap:12px;margin:18px 0 0 38px;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:8px}.rule-flow-result b{display:block;font-size:12px}.rule-flow-result small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.formula-edit-board>.formula-group{margin-top:0}.formula-edit-board .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.formula-preview summary{cursor:pointer;line-height:20px}.formula-preview h3:not(:first-child){margin-top:22px}.formula-preview .field{font-size:11px}.formula-preview .input,.formula-preview .select{font-size:12px}.rule-flow-group .rule-flow-group{padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
@media(max-width:1100px){.formula-workspace{grid-template-columns:minmax(350px,1fr) 220px}.formula-workspace>.metric-directory{display:none}.rule-flow-caption{align-items:flex-start;flex-direction:column;gap:5px}}
.formula-selected{outline:2px solid #64748b;outline-offset:2px}
.formula-wide .drawer-body{flex-direction:column}.formula-wide .form-error{flex-shrink:0;margin:10px 0 0}
.policy-filter-row{display:flex;flex-wrap:wrap;gap:10px;flex-shrink:0;padding:12px;border:1px solid var(--line);border-radius:9px;background:var(--surface)}.policy-filter-row .field{margin:0;flex:1;min-width:125px;font-size:11px}.policy-filter-row .field small{display:none}.policy-filter-row .input,.policy-filter-row .select{width:100%;font-size:12px}.policy-summary-cell{display:block;min-width:250px;max-width:350px;white-space:normal;line-height:20px}
.policy-city-scope{padding:14px;border:1px solid var(--line);border-radius:9px;margin:12px 0 18px}.policy-city-scope>[hidden]{display:none}.policy-city-scope>.field{max-width:320px}.policy-city-preview{padding:12px;background:var(--soft);border-radius:7px;font-size:12px}.policy-city-preview p{color:var(--muted);line-height:21px;margin:6px 0 0}.policy-city-scope .check-set{margin-bottom:12px}

.policy-evidence .check-set{display:grid;gap:12px}.policy-evidence .check-set label{align-items:flex-start;line-height:21px}.policy-evidence .table td{white-space:normal;max-width:460px;line-height:20px}.policy-evidence .note{margin:12px 0}.policy-evidence .detail-list dd{max-width:70%}.policy-bonus-result{margin-top:12px}

.policy-filter-row .field{max-width:210px}.policy-name{display:block;min-width:210px;max-width:280px;white-space:normal;line-height:21px}
