.analytics-main{max-width:1540px;margin:0 auto;padding:38px 40px 64px}.analytics-main h2{font-size:18px;font-weight:650;letter-spacing:-.025em;margin:5px 0 12px}.analytics-tabs{display:flex;gap:24px;border-bottom:1px solid var(--bloom-border);margin-bottom:24px;flex-wrap:wrap}.analytics-configuration{display:grid;gap:22px}.analytics-reporting-scope{display:grid;gap:8px;max-width:520px;margin-bottom:24px;font-size:13px;font-weight:600}.analytics-reporting-scope select{width:100%;min-width:0}.configuration-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap}.configuration-heading h2{font-size:24px;font-weight:650}.configuration-heading h3{font-size:18px;font-weight:650}.configuration-section{padding:24px}.configuration-list{margin-top:18px}.configuration-list li{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 0;border-top:1px solid var(--bloom-border)}.configuration-list li>div{min-width:0;overflow-wrap:anywhere}.configuration-list h4{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font-weight:650}.configuration-list p,.configuration-heading p{margin-top:6px}.configuration-access,.configuration-connection{padding:16px;background:var(--bloom-bg);border:1px solid var(--bloom-border);border-radius:10px}.configuration-connection{display:grid;gap:16px}.configuration-form fieldset{display:grid;gap:18px;border:0;padding:20px 0 0;min-width:0}.configuration-form label{display:grid;gap:7px;font-size:13px;font-weight:600;min-width:0}.configuration-form input,.configuration-form select{width:100%;min-width:0}.configuration-form .muted{font-size:13px;line-height:1.6}.configuration-definition{display:grid;gap:12px;margin-top:16px;font-size:13px;overflow-wrap:anywhere}.configuration-definition dt{color:var(--bloom-muted)}.configuration-definition dd{margin-top:3px}.configuration-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:10px}.configuration-form .configuration-checkbox{display:flex;align-items:center;gap:10px}.configuration-checkbox input{width:auto}@media(max-width:760px){.configuration-list li{flex-direction:column}.configuration-list .configuration-actions{justify-content:flex-start}}.analytics-tabs button{padding:12px 0;border-bottom:3px solid transparent;color:var(--bloom-muted);font-weight:600}.analytics-tabs button[aria-current=page]{border-color:var(--bloom-brand);color:var(--bloom-brand-deep)}.analytics-filters{display:grid;grid-template-columns:.65fr 1fr .7fr .9fr 1.8fr;gap:14px;border:0;padding:0;margin-bottom:22px;min-width:0}.analytics-filters label,.analytics-studio-fields label{display:grid;gap:7px;font-size:12px;font-weight:600;min-width:0}.analytics-filters select,.analytics-studio-fields select,.analytics-studio-fields input{width:100%;text-overflow:ellipsis}.analytics-breadcrumbs{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:16px 0;border-top:1px solid var(--bloom-border);font-size:13px}.analytics-breadcrumbs button,.analytics-area-link{color:var(--bloom-brand-deep);font-weight:650;text-align:left}.analytics-breadcrumbs button:hover,.analytics-area-link:hover{text-decoration:underline}.analytics-group-by{margin-left:auto;display:flex;align-items:center;gap:10px;color:var(--bloom-muted)}.analytics-group-by select{padding:7px 10px}.analytics-results{display:grid;gap:22px}.analytics-policy-strip{display:flex;flex-wrap:wrap;gap:12px;align-items:center;color:var(--bloom-muted);font-size:12px}.analytics-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.analytics-metric{padding:23px}.analytics-metric p{color:var(--bloom-muted);font-size:12px;font-weight:600}.analytics-metric strong{display:block;color:var(--bloom-brand-deep);font-size:clamp(25px,2.7vw,38px);font-weight:550;letter-spacing:-.045em;margin:10px 0}.analytics-metric small{color:var(--bloom-muted);font-size:11px}.analytics-chart-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,1fr);gap:22px}.analytics-map-panel,.analytics-distribution,.analytics-table-panel,.analytics-methods,.analytics-studio{padding:24px;min-width:0}.analytics-panel-heading{display:flex;align-items:start;justify-content:space-between;gap:20px}.analytics-panel-heading>span{font-size:11px;margin-top:8px}.analytics-map{width:100%;min-height:260px;background:var(--bloom-bg);border-radius:12px;margin-top:12px}.analytics-map-region{fill:var(--bloom-brand);stroke:var(--bloom-surface);stroke-width:2px;cursor:pointer}.analytics-map-region:hover,.analytics-map-region:focus,.analytics-map-point circle:focus,.analytics-map-point:hover circle{stroke:var(--bloom-ink);stroke-width:3px;outline:none}.analytics-map-region.is-missing{fill:var(--bloom-border-strong)}.analytics-map-region.is-context{fill:var(--bloom-divider);cursor:default}.analytics-map-point text{font-size:16px;fill:var(--bloom-ink);paint-order:stroke;stroke:var(--bloom-surface);stroke-width:5px;stroke-linejoin:round}.analytics-map-point{cursor:pointer}.analytics-map-key{display:flex;flex-wrap:wrap;gap:18px;font-size:11px;margin-top:14px;color:var(--bloom-muted)}.analytics-map-key span{display:flex;align-items:center;gap:7px}.analytics-key-swatch,.analytics-key-missing{display:inline-block;width:40px;height:10px;background:linear-gradient(90deg,var(--bloom-brand-wash),var(--bloom-brand));border:1px solid var(--bloom-border-strong);border-radius:2px}.analytics-key-missing{width:12px;background:var(--bloom-border-strong)}.analytics-map-note,.analytics-method{font-size:11px;line-height:1.6;margin-top:14px}.analytics-map-empty{display:grid;place-content:center;min-height:250px;text-align:center;gap:12px}.analytics-distribution>p,.analytics-methods>p,.analytics-methods li{font-size:12px;line-height:1.8}.analytics-bars{display:grid;gap:16px;margin:30px 0}.analytics-bar-row{display:grid;grid-template-columns:52px 1fr 35px;align-items:center;gap:10px;font-size:12px}.analytics-bar-row strong{text-align:right}.analytics-bar-track{height:18px;background:var(--bloom-brand-wash);border-radius:4px;overflow:hidden}.analytics-bar-track>div{height:100%;background:var(--bloom-brand);border-radius:4px}.analytics-spread{display:flex;flex-wrap:wrap;justify-content:space-between;gap:15px;border-top:1px solid var(--bloom-border);padding-top:20px}.analytics-spread dt{font-size:10px;color:var(--bloom-muted)}.analytics-spread dd{font-size:18px;font-weight:600;margin:6px 0 0}.analytics-table-scroll{overflow-x:auto}.analytics-table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}.analytics-table th,.analytics-table td{padding:14px 12px;border-bottom:1px solid var(--bloom-border);white-space:nowrap}.analytics-table thead th{color:var(--bloom-muted);font-size:11px;font-weight:550}.analytics-table tbody th{white-space:normal;min-width:150px}.analytics-table small{display:block;font-size:10px;color:var(--bloom-muted);font-weight:400;margin-top:4px}.analytics-outlier{border-radius:20px;padding:4px 9px;background:var(--bloom-accent-wash);color:var(--bloom-ink)}.analytics-methods ul{padding-left:20px;list-style:disc}.analytics-methods details,.analytics-definition{margin-top:12px;font-size:12px}.analytics-snapshot-list{overflow-wrap:anywhere}.analytics-studio{margin:8px 0 24px;border-color:var(--bloom-brand-line)}.analytics-studio-fields{display:grid;grid-template-columns:1fr 1.5fr;gap:18px;margin:22px 0}.analytics-view-options{display:flex;flex-wrap:wrap;gap:20px;padding:12px 0;border:0}.analytics-view-options legend{font-size:12px;font-weight:600;margin-bottom:6px}.analytics-view-options label{display:flex;align-items:center;gap:8px;font-size:12px}.analytics-view-options input{accent-color:var(--bloom-brand);width:16px;height:16px}.analytics-studio-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-top:15px;font-size:12px}.analytics-definition dl{overflow-wrap:anywhere;padding:15px;background:var(--bloom-bg);border-radius:8px;margin-top:10px}.analytics-definition dt{font-weight:650}.analytics-definition dd{margin:4px 0 12px}.analytics-definition dd:last-child{margin-bottom:0}.analytics-save-notice{padding:12px;background:var(--bloom-brand-wash);color:var(--bloom-brand-deep);border-radius:8px;margin-bottom:20px}.analytics-loading{padding:50px 0;color:var(--bloom-muted)}.analytics-source-panel{padding:20px 24px;margin-top:22px;font-size:12px}.analytics-source-panel li{padding:14px 0;border-bottom:1px solid var(--bloom-border)}.analytics-source-panel li span{display:block;margin-top:5px;color:var(--bloom-muted)}@media(max-width:1020px){.analytics-main{padding:28px 24px}.analytics-filters{grid-template-columns:repeat(4,minmax(0,1fr))}.analytics-measure-filter{grid-column:1 / -1}.analytics-chart-grid{grid-template-columns:1fr}.analytics-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:580px){.analytics-main{padding:24px 16px}.analytics-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.analytics-metric{padding:16px}.analytics-map-panel,.analytics-distribution,.analytics-table-panel,.analytics-methods,.analytics-studio{padding:18px}.analytics-panel-heading{flex-wrap:wrap;gap:0}.analytics-map{min-height:220px}.analytics-group-by{margin-left:0;width:100%}.analytics-studio-fields{grid-template-columns:1fr}}.configuration-sections{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.schools-geography{display:grid;gap:20px}.configuration-sections [aria-pressed=true]{background:var(--bloom-brand-wash);color:var(--bloom-brand-deep);border-color:var(--bloom-brand)}.location-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.location-form-grid label,.school-location-map{min-width:0}.location-map-controls{gap:6px;margin-bottom:10px}.location-map-surface{display:block;width:100%;padding:0;overflow:hidden;border:1px solid var(--bloom-border);border-radius:8px;background:var(--bloom-bg);cursor:crosshair}.location-map-surface svg{display:block;width:100%;height:auto}.location-map-surface path{fill:var(--bloom-brand-wash);stroke:var(--bloom-muted);stroke-width:.8}.location-map-surface .map-crosshair{stroke:var(--bloom-border);stroke-dasharray:4 5}.location-map-surface .school-map-pin path{fill:var(--bloom-brand-deep);stroke:var(--bloom-bg);stroke-width:2}.location-map-surface .school-map-pin circle{fill:var(--bloom-bg)}.location-map-credit{font-size:11px}@media(max-width:580px){.location-form-grid{grid-template-columns:1fr}}@layer properties;@layer theme,base,components,utilities;@layer theme{:root,:host{--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing: .25rem;--container-lg: 32rem;--text-xs: .75rem;--text-xs--line-height: calc(1 / .75);--text-sm: .875rem;--text-sm--line-height: calc(1.25 / .875);--text-xl: 1.25rem;--text-xl--line-height: calc(1.75 / 1.25);--font-weight-semibold: 600;--default-font-family: var(--font-sans);--default-mono-font-family: var(--font-mono)}}@layer base{*,:after,:before,::backdrop,::file-selector-button{box-sizing:border-box;margin:0;padding:0;border:0 solid}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:var(--default-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings, normal);font-variation-settings:var(--default-font-variation-settings, normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings, normal);font-variation-settings:var(--default-mono-font-variation-settings, normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea,::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:transparent;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px){::placeholder{color:currentcolor;@supports (color: color-mix(in lab,red,red)){color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]),::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border-width:0}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.z-10{z-index:10}.mx-6{margin-inline:calc(var(--spacing) * 6)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-7{margin-top:calc(var(--spacing) * 7)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.flex{display:flex}.grid{display:grid}.table{display:table}.min-h-screen{min-height:100vh}.w-full{width:100%}.max-w-lg{max-width:var(--container-lg)}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.border{border-style:var(--tw-border-style);border-width:1px}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.py-3{padding-block:calc(var(--spacing) * 3)}.text-center{text-align:center}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading, var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading, var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading, var(--text-xs--line-height))}.font-semibold{--tw-font-weight: var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.whitespace-nowrap{white-space:nowrap}.shadow{--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}@media(width>=40rem){.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}}@layer base{:root{--bloom-bg: #f9f9f6;--bloom-surface: #fff;--bloom-ink: #181814;--bloom-brand: #4a7c59;--bloom-accent: #e1af49;font-family:Segoe UI,Inter,system-ui,sans-serif;background:var(--bloom-bg);color:var(--bloom-ink);font-size:14px;font-synthesis:none}body{margin:0;min-width:320px}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button:not(:disabled),summary,select{cursor:pointer}button,input,select,textarea{font:inherit}:focus-visible{outline:2px solid var(--bloom-brand-mid);outline-offset:3px}input,select,textarea{min-width:0;border:1px solid var(--bloom-border-strong);border-radius:8px;padding:10px 12px;color:var(--bloom-ink);background:var(--bloom-surface)}input::placeholder,textarea::placeholder{color:var(--bloom-muted)}h3{font-size:15px;font-weight:650;letter-spacing:-.015em}}@layer components{.app-shell{min-height:100dvh}.muted{color:var(--bloom-muted)}.brand-text{color:var(--bloom-brand-deep)}.danger{color:var(--bloom-danger)}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--bloom-border-strong);border-radius:9px;padding:10px 14px;line-height:1.3;font-size:13px;font-weight:600;white-space:nowrap;background:var(--bloom-surface);color:var(--bloom-ink-soft);transition:background .14s ease,border-color .14s ease}.button:hover{background:var(--bloom-divider)}.button-primary{background:var(--bloom-brand);border-color:var(--bloom-brand);color:var(--bloom-on-brand);box-shadow:var(--bloom-shadow-sm)}.button-primary:hover{background:var(--bloom-brand-mid);border-color:var(--bloom-brand-mid)}.button-quiet{border-color:transparent;background:transparent;box-shadow:none}.button:disabled{opacity:.45;cursor:default}.badge{display:inline-flex;align-items:center;padding:4px 9px;border-radius:6px;white-space:nowrap;background:var(--bloom-divider);color:var(--bloom-body);font-size:11px;font-weight:600}.badge-brand{background:var(--bloom-brand-tint);color:var(--bloom-brand-deep)}.badge-accent{background:var(--bloom-accent-tint);color:var(--bloom-accent-ink)}.app-header{position:relative;display:flex;align-items:center;gap:24px;height:82px;padding:0 32px;border-bottom:1px solid var(--bloom-border);background:var(--bloom-surface)}.app-brand{display:flex;align-items:center;gap:9px;text-decoration:none;min-width:195px}.brand-name{display:block;font-size:30px;font-weight:650;letter-spacing:-.055em;line-height:1.1}.brand-dot{color:var(--bloom-brand)}.brand-caption{color:var(--bloom-muted);display:block;font-size:10px;letter-spacing:.04em;margin-top:3px}.header-divider{height:28px;width:1px;background:var(--bloom-border)}.header-workspace{color:var(--bloom-muted);font-size:13px}.header-actions{margin-left:auto;display:flex;align-items:center;gap:14px}.organisation-switcher{position:relative}.organisation-switcher>summary{list-style:none}.organisation-switcher>summary::-webkit-details-marker{display:none}.organisation-options{position:absolute;right:0;top:calc(100% + 12px);width:280px;max-width:calc(100vw - 32px);padding:20px;border:1px solid var(--bloom-border);border-radius:12px;background:var(--bloom-surface);box-shadow:0 12px 32px #0000001f;z-index:30}.organisation-name{margin:8px 0 16px;overflow-wrap:anywhere}.organisation-options .muted{margin-top:12px;font-size:12px}.app-layout{display:grid;grid-template-columns:258px minmax(0,1fr);min-height:calc(100dvh - 82px)}.sidebar{padding:28px 20px;border-right:1px solid var(--bloom-border);display:flex;flex-direction:column;background:var(--bloom-surface)}.sidebar-eyebrow,.eyebrow{font-size:10px;letter-spacing:.12em;font-weight:700;color:var(--bloom-muted)}.module-navigation{display:grid;gap:6px;margin-top:12px}.module-link{display:flex;align-items:center;gap:11px;padding:12px;border:1px solid transparent;border-radius:9px;font-weight:600;font-size:13px;text-decoration:none}.module-link:hover{background:var(--bloom-bg)}.module-link[aria-current=page]{background:var(--bloom-brand-wash);border-color:var(--bloom-brand-line);color:var(--bloom-brand-deep);font-weight:650}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--bloom-brand);margin-left:auto}.budget-count{font-size:10px;color:var(--bloom-muted);background:var(--bloom-divider);border-radius:4px;padding:2px 6px}.budget-browser{padding:20px;margin-bottom:24px}.budget-browser-heading{display:flex;align-items:center;gap:12px;margin-bottom:14px}.budget-browser-heading h2{font-size:15px;font-weight:650}.budget-search{display:flex;align-items:center;gap:6px;border:1px solid var(--bloom-border);background:var(--bloom-bg);border-radius:8px;padding:0 10px;color:var(--bloom-muted);max-width:360px}.budget-search input{width:100%;border:0;background:transparent;font-size:12px;padding:9px 0}.budget-list{margin-top:14px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:5px;max-height:260px;overflow-y:auto;margin-bottom:8px}.budget-list button{display:flex;align-items:flex-start;gap:9px;padding:12px 9px;text-align:left;border-left:2px solid transparent;border-radius:0 7px 7px 0;min-width:0;overflow-wrap:anywhere}.budget-list .is-selected,.budget-list button:hover{border-left-color:var(--bloom-brand);background:var(--bloom-bg)}.budget-list-mark{color:var(--bloom-brand);margin-top:2px}.budget-list strong{display:block;font-size:12px;font-weight:600;line-height:1.5}.budget-list small{display:block;margin-top:5px;color:var(--bloom-muted);font-size:10px}.main-content{padding:36px 40px 26px;width:100%;min-width:0;max-width:1600px;margin:0 auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:25px}.page-heading h1{font-size:30px;font-weight:600;letter-spacing:-.035em;line-height:1.25;margin-top:10px}.page-heading>div>p:last-child{font-size:13px}.preview-banner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;background:var(--bloom-accent-wash);border:1px solid var(--bloom-accent-line);color:var(--bloom-accent-ink);border-radius:9px;padding:11px 15px;font-size:12px;margin-bottom:22px}.preview-banner span,.preview-banner button{display:flex;align-items:center;gap:8px}.preview-banner button{font-weight:600}.budget-ribbon{display:flex;align-items:center;justify-content:space-between;position:relative;overflow:hidden;gap:20px;padding:28px 30px;border-radius:15px;background:var(--bloom-ribbon);color:var(--bloom-ribbon-fg)}.ribbon-eyebrow{display:flex;gap:8px;align-items:center;color:var(--bloom-ribbon-fg-soft);font-size:11px;font-weight:500}.ribbon-eyebrow .status-dot{margin-left:0;background:var(--bloom-accent-light)}.budget-ribbon h2{font-size:24px;font-weight:600;letter-spacing:-.025em;margin-top:10px;line-height:1.35}.budget-ribbon p{margin-top:6px;font-size:12px;color:var(--bloom-ribbon-fg-soft)}.ribbon-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border:1px solid var(--bloom-ribbon-pill-line);background:var(--bloom-ribbon-pill-bg);color:var(--bloom-accent-light);font-size:10px;border-radius:6px}.ribbon-note{font-size:11px;color:var(--bloom-ribbon-fg-soft)}.ribbon-button{color:var(--bloom-ribbon-btn-fg);background:var(--bloom-ribbon-btn-bg);border-color:transparent;flex-shrink:0}.ribbon-art{position:absolute;width:275px;height:275px;right:100px;top:-35px;opacity:.22;pointer-events:none}.workspace-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:23px 0}.inline-filter{display:flex;align-items:center;gap:10px;color:var(--bloom-muted);font-size:12px}.inline-filter select{padding:8px 10px;border-color:var(--bloom-border);font-size:12px}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.summary-card{border:1px solid var(--bloom-border);border-radius:12px;background:var(--bloom-surface);padding:19px 20px;box-shadow:var(--bloom-shadow-sm);min-width:0}.summary-card h3{font-size:11px;color:var(--bloom-muted);font-weight:500;letter-spacing:0}.summary-card svg{color:var(--bloom-muted)}.summary-card.is-highlighted{background:var(--bloom-brand-wash);border-color:var(--bloom-brand-line)}.summary-card.is-highlighted svg,.summary-card.is-highlighted .summary-amount{color:var(--bloom-brand-deep)}.summary-card .summary-amount.danger{color:var(--bloom-danger)}.summary-amount{font-size:clamp(18px,1.8vw,26px);font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.035em;margin:14px 0 7px;overflow-wrap:anywhere}.workspace-tabs{display:flex;gap:28px;margin:28px 0 22px;border-bottom:1px solid var(--bloom-border)}.workspace-tabs button{border-bottom:2px solid transparent;padding:0 0 13px;color:var(--bloom-muted);font-size:12px;font-weight:600}.workspace-tabs .is-active{color:var(--bloom-brand-deep);border-bottom-color:var(--bloom-brand)}.panel{border-radius:12px;border:1px solid var(--bloom-border);background:var(--bloom-surface);box-shadow:var(--bloom-shadow-sm);overflow:hidden}.overview-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:20px;margin-bottom:22px}.allocation-panel,.income-panel{padding:24px}.allocation-panel>div>svg,.income-panel svg{color:var(--bloom-brand)}.allocation-panel .muted,.income-panel .muted,.panel-heading .muted{font-size:12px}.metric-label{font-size:11px;color:var(--bloom-muted)}.big-number{font-size:clamp(22px,2.5vw,34px);font-weight:600;letter-spacing:-.04em;line-height:1.5;font-variant-numeric:tabular-nums}.allocation-bar{margin:18px 0 24px;height:13px;display:flex;border-radius:4px;overflow:hidden;background:var(--bloom-brand-tint)}.actual{background:var(--bloom-brand)}.committed{background:var(--bloom-accent)}.remaining{background:var(--bloom-brand-tint);border:1px solid var(--bloom-brand-line)}.allocation-legend{display:grid;gap:12px}.allocation-legend span{display:flex;align-items:center;gap:9px;color:var(--bloom-muted);font-size:12px}.allocation-legend i{height:8px;width:8px;border-radius:2px}.allocation-legend strong{margin-left:auto;font-weight:600;color:var(--bloom-body);font-variant-numeric:tabular-nums}.income-panel{background:linear-gradient(140deg,var(--bloom-surface),var(--bloom-accent-wash))}.income-totals{margin-top:23px;display:grid;gap:15px;font-size:12px}.income-totals div{display:flex;justify-content:space-between;gap:14px}.income-totals dt{color:var(--bloom-muted)}.income-totals dd{font-weight:600;font-variant-numeric:tabular-nums}.income-totals .net-total{border-top:1px solid var(--bloom-border);padding-top:17px;margin-top:4px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:23px 24px;flex-wrap:wrap}.table-scroll{overflow-x:auto}table{width:100%;text-align:left;border-collapse:collapse;font-size:12px}th,td{padding:15px 24px;border-top:1px solid var(--bloom-border)}th{font-weight:500}thead{background:var(--bloom-bg);color:var(--bloom-muted);font-size:10px}tbody tr:hover{background:var(--bloom-brand-wash)}.numeric{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.table-link:hover{color:var(--bloom-brand-deep);text-decoration:underline}.category-label{text-transform:capitalize}.entry-details{font-size:10px;margin-top:5px;color:var(--bloom-muted);overflow-wrap:anywhere}.entry-details p{padding-top:7px}.workspace-footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:24px;color:var(--bloom-muted);font-size:10px}.modal{width:min(920px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;margin:auto;padding:28px;border:1px solid var(--bloom-border);border-radius:16px;background:var(--bloom-surface);color:var(--bloom-ink);box-shadow:var(--bloom-shadow-lg)}.modal:not(:has(.plan-editor)){max-width:560px}.modal::backdrop{background:var(--bloom-scrim)}.form-grid{display:grid;gap:18px}.field{display:grid;gap:7px;min-width:0;font-size:12px;font-weight:600}.field input,.field textarea,.field select{width:100%;font-weight:400}.field small{color:var(--bloom-muted);font-weight:400;font-size:11px;line-height:1.5}.form-actions{border-top:1px solid var(--bloom-border);margin-top:24px;padding-top:20px;display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.plan-editor{max-height:50dvh;overflow-y:auto;padding:4px}.plan-editor-row{display:grid;grid-template-columns:minmax(140px,1.4fr) 100px 145px minmax(100px,1fr) 35px;align-items:end;gap:12px;padding:13px 0;border-bottom:1px solid var(--bloom-border)}.callout,.error-notice,.success-notice{padding:13px 16px;border-radius:8px;font-size:12px;line-height:1.6;margin:14px 0}.callout{background:var(--bloom-accent-wash);color:var(--bloom-accent-ink);border:1px solid var(--bloom-accent-line)}.error-notice{background:var(--bloom-danger-tint);border:1px solid var(--bloom-danger-line);color:var(--bloom-danger-strong)}.success-notice{display:flex;align-items:center;gap:10px;background:var(--bloom-brand-wash);border:1px solid var(--bloom-brand-line);color:var(--bloom-brand-deep)}.success-notice button{margin-left:auto}.empty-state{display:grid;justify-items:center;text-align:center;padding:60px 24px;gap:16px;color:var(--bloom-muted)}.empty-state h2{color:var(--bloom-ink);font-size:20px;font-weight:600}.skip-link{position:absolute;top:-100px;left:20px;z-index:100;background:var(--bloom-surface);padding:10px}.skip-link:focus{top:10px}.mobile-menu{display:none}}@media(max-width:1200px){.main-content{padding:30px 25px}.app-layout{grid-template-columns:220px minmax(0,1fr)}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-amount{font-size:26px}.overview-grid{grid-template-columns:1fr}}@media(max-width:760px){.app-header{height:auto;min-height:74px;padding:14px 16px;flex-wrap:wrap;gap:12px}.app-brand{min-width:0}.header-divider,.header-workspace,.header-actions>.badge{display:none}.header-actions{gap:3px}.header-actions>.button,.organisation-switcher>summary{padding:9px;font-size:11px}.organisation-switcher{position:static}.organisation-options{left:auto;right:16px;top:calc(100% + 8px)}.brand-name{font-size:25px}.brand-caption{display:none}.app-brand svg{width:30px}.mobile-menu{display:inline-flex}.app-layout{display:block}.sidebar{display:none}.sidebar.is-open{display:flex;border-bottom:1px solid var(--bloom-border)}.main-content{padding:26px 16px}.page-heading{align-items:flex-start;flex-wrap:wrap}.page-heading h1{font-size:26px}.page-heading>.button{align-self:flex-start}.budget-ribbon{align-items:flex-start;flex-direction:column;padding:24px}.budget-ribbon h2{font-size:22px}.ribbon-art{right:-80px}.workspace-toolbar>div{width:100%}.inline-filter{width:100%;justify-content:space-between}.inline-filter select{flex:1;max-width:75%}.summary-grid{gap:10px}.summary-card{padding:15px 12px}.summary-amount{font-size:21px}.workspace-tabs{justify-content:space-between;gap:10px}.allocation-panel,.income-panel,.panel-heading{padding:20px}th,td{padding:14px 18px}.big-number{font-size:27px}.modal{padding:20px}.plan-editor-row{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}@property --tw-rotate-x{syntax: "*"; inherits: false;}@property --tw-rotate-y{syntax: "*"; inherits: false;}@property --tw-rotate-z{syntax: "*"; inherits: false;}@property --tw-skew-x{syntax: "*"; inherits: false;}@property --tw-skew-y{syntax: "*"; inherits: false;}@property --tw-border-style{syntax: "*"; inherits: false; initial-value: solid;}@property --tw-font-weight{syntax: "*"; inherits: false;}@property --tw-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: "*"; inherits: false;}@property --tw-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: "*"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: "*"; inherits: false;}@property --tw-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: "*"; inherits: false;}@property --tw-inset-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: "*"; inherits: false;}@property --tw-ring-offset-width{syntax: "<length>"; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: "*"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-outline-style{syntax: "*"; inherits: false; initial-value: solid;}@property --tw-blur{syntax: "*"; inherits: false;}@property --tw-brightness{syntax: "*"; inherits: false;}@property --tw-contrast{syntax: "*"; inherits: false;}@property --tw-grayscale{syntax: "*"; inherits: false;}@property --tw-hue-rotate{syntax: "*"; inherits: false;}@property --tw-invert{syntax: "*"; inherits: false;}@property --tw-opacity{syntax: "*"; inherits: false;}@property --tw-saturate{syntax: "*"; inherits: false;}@property --tw-sepia{syntax: "*"; inherits: false;}@property --tw-drop-shadow{syntax: "*"; inherits: false;}@property --tw-drop-shadow-color{syntax: "*"; inherits: false;}@property --tw-drop-shadow-alpha{syntax: "<percentage>"; inherits: false; initial-value: 100%;}@property --tw-drop-shadow-size{syntax: "*"; inherits: false;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x: initial;--tw-rotate-y: initial;--tw-rotate-z: initial;--tw-skew-x: initial;--tw-skew-y: initial;--tw-border-style: solid;--tw-font-weight: initial;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-outline-style: solid;--tw-blur: initial;--tw-brightness: initial;--tw-contrast: initial;--tw-grayscale: initial;--tw-hue-rotate: initial;--tw-invert: initial;--tw-opacity: initial;--tw-saturate: initial;--tw-sepia: initial;--tw-drop-shadow: initial;--tw-drop-shadow-color: initial;--tw-drop-shadow-alpha: 100%;--tw-drop-shadow-size: initial}}}
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
