:root{--bg:#f8f9fb;--surface:#fff;--ink:#262637;--muted:#828391;--border:#e9e9ef;--accent:#7762d6;--soft:#f0ecfa;--font:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);font:14px/1.55 var(--font);color:var(--ink)}a{color:var(--accent);text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button,summary{cursor:pointer}button:disabled{opacity:.55;cursor:wait}a:hover{color:#5742b5}input:focus,textarea:focus,select:focus,button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #b7a9ed;outline-offset:2px}.sidebar{position:fixed;inset:0 auto 0 0;width:216px;background:#fff;border-right:1px solid var(--border);padding:36px 23px;display:flex;flex-direction:column}.brand{font-size:31px;font-weight:750;letter-spacing:-1.5px;color:#282636;display:flex;align-items:center;gap:9px}.brand-icon{display:grid;place-items:center;width:35px;height:35px;border-radius:11px;background:#7762d6;color:white;font-size:31px;font-weight:400;letter-spacing:0}.brand-dot{color:var(--accent);margin-left:-8px}.workspace{font-size:9px;font-weight:700;letter-spacing:1.8px;color:#a1a0ad;margin:48px 10px 18px}.nav-link{display:flex;gap:12px;align-items:center;color:#85838f;padding:12px 14px;border-radius:8px;margin:5px 0;font-size:12px;font-weight:600}.nav-link span{font-size:18px}.nav-link.active{background:var(--soft);color:var(--accent)}.sidebar-bottom{margin-top:auto;font-size:11px;color:#656271}.sidebar-bottom .muted{padding:8px 0 0 13px;font-size:10px}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#6ca68b;margin-right:6px}.main{margin-left:216px}.topbar{height:77px;background:#ffffffa0;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 44px;color:#817f8e;font-size:11px}.slash{padding:0 14px;color:#bbb9c4}.local-pill{font-size:9px;letter-spacing:1px;border:1px solid var(--border);padding:5px 10px;border-radius:20px;background:#fff}.page{max-width:1380px;margin:0 auto;padding:44px}.eyebrow{font-size:9px;font-weight:700;letter-spacing:1.8px;color:var(--muted)}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px}.page-heading>div{min-width:0}h1{font-size:32px;letter-spacing:-1.1px;line-height:1.2;margin:13px 0}h2{font-size:17px;letter-spacing:-.3px;margin:0}h3{margin:0;font-size:16px}h4{margin:0;font-size:12px}.accent{color:var(--accent)}.lead{color:var(--muted);font-size:12px;margin:0;max-width:850px}.decor-mark{font-size:70px;line-height:1;color:#aca0d0;padding-right:14px}.process{display:flex;align-items:center;gap:20px;font-size:10px;color:#84818f;margin:30px 0 32px}.process b{display:inline-grid;place-items:center;background:#f0edf6;color:var(--accent);font-size:9px;border-radius:50%;width:23px;height:23px;margin-right:6px}.process-line{height:1px;background:#e4e2ea;flex:1;max-width:90px}.setup-grid{display:grid;grid-template-columns:minmax(360px,1.2fr) minmax(280px,1fr);gap:30px;align-items:start}.card{background:#fff;border:1px solid var(--border);border-radius:13px;box-shadow:0 3px 7px #21203702}.setup-card{padding:28px}.section-heading{display:flex;gap:13px;align-items:center;margin-bottom:25px}.section-heading p{color:var(--muted);font-size:11px;margin:4px 0 0}.step-badge{width:35px;height:35px;border-radius:10px;display:grid;place-items:center;background:var(--soft);color:var(--accent);font-size:12px}.section-heading.compact{margin-bottom:18px}.section-heading.compact h2{font-size:15px}label{display:block;font-size:11px;font-weight:650;margin-bottom:18px}input:not([type=radio]),select,textarea{display:block;width:100%;border:1px solid #e3e2ea;border-radius:7px;background:#fff;padding:11px 12px;color:#4a4659;margin-top:7px;font-size:12px}input::placeholder,textarea::placeholder{color:#aaa7b3}textarea{resize:vertical;min-height:80px}input[type=file]{font-size:10px;padding:8px}input[type=file]::file-selector-button{border:0;border-radius:4px;padding:6px 8px;background:var(--soft);color:var(--accent);font:inherit;margin-right:10px}small{display:block;font-size:10px;color:var(--muted);font-weight:400;margin-top:6px}.optional{color:#a29eaa;font-weight:400;font-size:9px;margin-left:5px}.divider{height:1px;background:var(--border);margin:23px 0}.model-row{display:flex;align-items:center;gap:10px}.model-row>div{flex:1}.model-row label{margin-bottom:0}.model-row button{margin-top:22px;white-space:nowrap}.button{border:1px solid transparent;border-radius:7px;padding:11px 17px;display:inline-flex;align-items:center;justify-content:center;gap:12px;font-size:11px;font-weight:600;white-space:nowrap}.primary{background:var(--accent);color:white}.primary:hover{background:#6853c5;color:white}.secondary{background:#fff;border-color:var(--border);color:#6f687e}.small{padding:9px 12px;font-size:10px}.wide{width:100%;justify-content:space-between}.form-note{text-align:center;color:#98939f;font-size:9px;margin:13px 0 0}.palette-picker{display:flex;gap:10px;margin:8px 0 25px}.palette-choice{position:relative;flex:1;padding:10px 4px 7px;border:1px solid var(--border);border-radius:8px;cursor:pointer;text-align:center;font-size:9px;color:#8e879a;margin:0}.palette-choice:has(input:checked){border-color:var(--accent);background:var(--soft);color:var(--accent)}.palette-choice input{position:absolute;opacity:0;width:100%;height:100%;inset:0;margin:0;cursor:pointer}.palette-choice:focus-within{outline:2px solid var(--accent)}.palette-choice>span{display:flex;justify-content:center;margin-bottom:6px}.palette-choice i{display:block;width:18px;height:18px;border:2px solid white;border-radius:50%;margin-left:-4px}.preview-card{background:#f0edf8;border:1px solid #e8e1f2;border-radius:13px;padding:27px;overflow:hidden}.preview-header{display:flex;justify-content:space-between;color:#9382bc;margin-bottom:26px}.pill{display:inline-block;font-size:8px;letter-spacing:1.2px;font-weight:650;background:#e8e0f5;color:#8873b5;padding:6px 9px;border-radius:5px}.preview-card h3{font-size:29px;line-height:1.25;letter-spacing:-.9px;font-weight:600;color:#514063}.preview-card>p{font-size:11px;line-height:1.8;color:#9b8dab;max-width:255px;margin:12px 0 26px}.mock-kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mock-kpis>div{border:1px solid #e9e3f1;border-radius:9px;background:#ffffffbc;padding:15px}.mock-kpis span{font-size:8px;letter-spacing:1px;color:#a095b2}.mock-kpis strong{display:block;font-size:23px;letter-spacing:-.7px;color:#635575;margin:5px 0}.mock-kpis strong span{font-size:18px}.mock-kpis em{font-size:8px;color:#a99ab8;font-style:normal}.mock-chart{padding:16px 16px 10px;border:1px solid #e9e3f1;border-radius:9px;background:#fff;margin-top:12px}.mock-chart-title{display:flex;justify-content:space-between;font-size:9px;color:#877997;margin-bottom:20px}.mock-chart svg{display:block;width:100%}.mock-axis{display:flex;justify-content:space-between;font-size:7px;color:#aba1b4;margin:12px 0}.feature{display:flex;gap:14px;margin:25px 10px}.feature>span{background:#efedf4;display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;border-radius:8px;color:#9585b8}.feature p{font-size:11px;line-height:1.8;margin:5px 0;color:#95909f}.saved{margin-top:42px}.section-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.section-title h2{margin-top:6px}.count{background:#ece9f3;border-radius:6px;padding:4px 10px;color:#9a91ac;font-size:11px}.saved-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.saved-card{display:flex;align-items:center;gap:16px;padding:20px;color:var(--ink)}.saved-card>span:last-child{margin-left:auto;color:#aaa}.saved-icon{background:var(--soft);color:var(--accent);font-size:23px;padding:7px 14px;border-radius:8px}.saved-card h3{font-size:13px;margin:5px 0}.saved-card .eyebrow{font-size:8px;letter-spacing:.7px}.saved-card p{font-size:10px;color:var(--muted);margin:0}.empty{border:1px dashed #dcd8e5;border-radius:10px;padding:25px;font-size:12px;color:var(--muted);grid-column:1/-1}.muted{color:var(--muted);font-size:11px}.narrow{max-width:900px}.back{display:block;font-size:11px;color:var(--muted);margin-bottom:30px}.question-card{padding:32px;margin-top:30px}.question-card h2{font-size:23px;line-height:1.5;margin:20px 0 26px}.question-meta{display:flex;justify-content:space-between;gap:15px}.answer-options{display:grid;gap:10px;margin-bottom:24px}.answer-option{display:flex;align-items:center;gap:12px;padding:17px;border:1px solid var(--border);border-radius:9px;margin:0;cursor:pointer;font-size:12px;font-weight:400}.answer-option:has(input:checked){border-color:var(--accent);background:var(--soft)}input[type=radio]{accent-color:var(--accent)}.answered{margin:30px 0;color:#787280}.answered h3{font-size:13px;margin-bottom:16px}.answered details{padding:12px 0;border-bottom:1px solid var(--border);font-size:12px}.answered p{background:white;border-radius:7px;padding:15px}.loading-card{text-align:center;padding:50px 25px}.loading-card p{font-size:12px;color:var(--muted)}.spinner{width:35px;height:35px;border:3px solid #e6e0f3;border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 25px}@keyframes spin{to{transform:rotate(360deg)}}.error-box{white-space:pre-wrap;overflow-wrap:anywhere;background:#fff0eb;border:1px solid #f0d6ca;border-radius:8px;padding:17px;color:#a75a3a;font-size:12px}.htmx-indicator{display:none}.htmx-request.htmx-indicator{display:block}.dashboard[data-palette=ocean],[data-palette=ocean]{--accent:#197da2;--soft:#e4f3f7}.dashboard[data-palette=forest],[data-palette=forest]{--accent:#28775a;--soft:#e6f0e8}.dashboard[data-palette=sunset],[data-palette=sunset]{--accent:#c66a43;--soft:#fcf0e5}.dashboard .page-heading{align-items:flex-start}.dashboard h1{font-size:29px}.dashboard .lead{line-height:1.8}.dashboard-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 0;margin:15px 0;border-bottom:1px solid var(--border)}.toolbar-actions{display:flex;gap:20px;align-items:center;font-size:11px}.theme-menu{position:relative}.theme-menu form{position:absolute;right:0;top:30px;width:360px;background:#fff;border:1px solid var(--border);padding:18px;border-radius:10px;z-index:3;box-shadow:0 8px 25px #25203215}.widgets{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:20px}.widget{grid-column:span 6;padding:23px;min-width:0;display:flex;flex-direction:column}.widget-kpi{grid-column:span 3}.widget-table{grid-column:1/-1}.widget-heading{display:flex;align-items:start;justify-content:space-between;gap:10px}.widget-heading h2{font-size:13px;font-weight:600;line-height:1.5}.widget-kind{font-size:8px;text-transform:uppercase;letter-spacing:1px;color:#aba4b7}.kpi-value{font-size:32px;font-weight:650;letter-spacing:-1px;padding:22px 0 12px;color:var(--accent)}.kpi-value span{font-size:14px;letter-spacing:0;margin-left:6px}.widget-description{font-size:10px;line-height:1.7;color:var(--muted);margin:10px 0 20px}.widget-details{border-top:1px solid var(--border);padding-top:10px;font-size:10px;color:#92899f;margin-top:auto}.sql{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--bg);padding:13px;border-radius:6px;color:#666;font-size:11px}.chart{width:100%;display:block;margin:18px 0 0;overflow:visible}.axis{font-family:var(--font);font-size:10px;fill:#9791a2}.table-scroll{overflow:auto;max-height:380px;margin-top:16px}table{width:100%;border-collapse:collapse;font-size:11px;text-align:left}th{font-weight:600;color:#8a8298;background:#f8f7fa;position:sticky;top:0}th,td{padding:12px 14px;border-bottom:1px solid var(--border);white-space:nowrap}td{color:#71697b}.download{display:inline-block;margin-top:15px}.context-card{padding:20px;margin-top:26px;font-size:12px}.context-card summary{font-weight:600;color:#73677d}.context-card p{color:var(--muted)}.context-card h4{margin-top:20px}.url-note{font-size:10px;color:#8f8599;margin-top:25px;overflow-wrap:anywhere}.url-note span{display:block;margin-top:5px;color:var(--muted)}.no-data{padding:30px 0;color:var(--muted);font-size:12px}.notice{font-size:10px;color:#a7773f}@media(min-width:1500px){.page{padding-top:55px}.setup-grid{grid-template-columns:1.15fr 1fr;gap:40px}.setup-card{padding:35px}.preview-card{padding:35px}}@media(max-width:1150px){.page{padding:30px}.sidebar{width:185px;padding:30px 16px}.main{margin-left:185px}.setup-grid{gap:20px;grid-template-columns:minmax(330px,1.2fr) minmax(250px,1fr)}.preview-card{padding:22px}.widget-kpi{grid-column:span 6}.topbar{padding:0 30px}}@media(max-width:900px){.sidebar{width:72px;padding:26px 10px}.brand{font-size:0;justify-content:center}.brand-dot,.workspace,.sidebar-bottom{display:none}.brand-icon{font-size:31px}.nav-link{font-size:0;padding:12px;margin-top:20px;justify-content:center}.nav-link span{font-size:20px}.main{margin-left:72px}.setup-grid{grid-template-columns:1fr}.setup-aside{display:none}.decor-mark{font-size:50px}.saved-grid{grid-template-columns:1fr}.dashboard-toolbar{align-items:flex-start;flex-direction:column}.dashboard .page-heading{flex-direction:column}}@media(max-width:600px){.page{padding:24px 18px}.sidebar{display:none}.main{margin-left:0}.topbar{padding:0 18px;height:58px}h1{font-size:26px}.decor-mark{display:none}.process{gap:7px;font-size:9px}.process-line{max-width:15px}.process b{display:none}.setup-card,.question-card{padding:21px}.palette-picker{gap:6px}.widget{grid-column:1/-1}.widget-kpi{grid-column:span 6;padding:17px}.kpi-value{font-size:25px}.widget-kind{display:none}.model-row{align-items:stretch;flex-direction:column}.model-row button{margin-top:0}.theme-menu form{right:-20px;width:300px}.question-meta{flex-direction:column}.page-heading{gap:10px}.optional{display:block;margin:3px 0}.toolbar-actions{gap:12px}.url-note{line-height:1.9}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}
.widget-kpi-multi{grid-column:1/-1}.multi-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:20px;margin-top:20px}.multi-kpis>div{padding-right:18px;border-right:1px solid var(--border)}.multi-kpis>div:last-child{border:0}.metric-label{font-size:10px;color:var(--muted);text-transform:capitalize}.multi-kpis .kpi-value{padding:8px 0}.dashboard .page-heading form{display:flex;flex-wrap:wrap;gap:8px}
.repair-report{padding:16px 20px;margin:0 0 20px;color:var(--accent);font-size:12px}
/* Flexible rows grow to consume the available width; time series get a full row. */
.widgets{display:flex;flex-wrap:wrap;align-items:stretch}.widget{flex:1 1 calc(50% - 20px);max-width:100%}.widget-kpi{flex:1 1 calc(25% - 20px)}.widget-line,.widget-table,.widget-kpi-multi{flex:1 1 100%;width:100%}.widget-line .chart{max-height:350px}.source-help{font-size:11px;color:var(--muted);background:var(--bg);padding:14px;border-radius:8px;margin-bottom:20px}.version-history{margin:0 0 22px;font-size:11px;color:var(--muted)}.version-links{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}.version-links a{padding:7px 12px;background:var(--soft);border-radius:6px}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;margin-top:34px}.gallery-card{color:var(--ink);overflow:hidden;transition:transform .15s,box-shadow .15s}.gallery-card:hover{transform:translateY(-3px);box-shadow:0 10px 30px #302b4710;color:var(--ink)}.gallery-preview{height:215px;background:var(--soft);padding:22px;overflow:hidden;border-bottom:1px solid var(--border)}.gallery-metrics{display:flex;gap:10px;max-height:90px;overflow:hidden;margin-bottom:15px}.gallery-metrics>div{background:white;border-radius:8px;padding:12px;min-width:0;flex:1}.gallery-metrics span{display:block;font-size:9px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:var(--muted)}.gallery-metrics strong{color:var(--accent);font-size:22px}.gallery-widget-list{display:flex;gap:7px;flex-wrap:wrap}.gallery-widget-list span{font-size:9px;background:#ffffffb0;border-radius:5px;padding:6px 8px;color:var(--accent)}.gallery-info{padding:23px}.gallery-info h2{margin:13px 0 10px;font-size:17px;line-height:1.4}.gallery-info p{font-size:11px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:51px}.gallery-meta{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);gap:10px}.preview-pending{display:grid;place-items:center;height:100%;color:var(--accent);font-size:15px}@media(max-width:600px){.widget,.widget-kpi{flex-basis:100%}.gallery-grid{grid-template-columns:1fr}.gallery .page-heading{align-items:flex-start;flex-direction:column}.widget-line .chart{max-height:none}}@media(prefers-reduced-motion:reduce){.gallery-card{transition:none}}
.gallery-open{display:block;color:inherit}.gallery-open:hover{color:inherit}.gallery-card-actions{display:flex;justify-content:flex-end;padding:0 23px 18px}.delete-button{background:none;border:0;color:#ab5f54;font-size:11px;padding:6px 0}.delete-button:hover{color:#833d34;text-decoration:underline}.deletion-notice{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:15px 20px;margin-top:24px;font-size:12px}
#delete-dialog{border:1px solid var(--border);border-radius:16px;padding:0;width:min(480px,calc(100vw - 36px));max-height:90vh;color:var(--ink);background:var(--surface);box-shadow:0 24px 80px #24203530}#delete-dialog::backdrop{background:#24203370;backdrop-filter:blur(3px)}.delete-modal-body{padding:30px}.delete-modal-icon{display:grid;place-items:center;width:40px;height:40px;background:#fff0ec;border-radius:12px;color:#b35446;font-size:26px;margin-bottom:20px}.delete-modal-body h2{font-size:22px}.delete-modal-body>p{font-size:13px;line-height:1.8;color:#797383}.delete-modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:25px}.button.danger{background:#b65348;color:white}.button.danger:hover{background:#954239}@media(max-width:480px){.delete-modal-body{padding:22px}.delete-modal-actions{flex-wrap:wrap}}
.editor-page{max-width:1150px}.editor-section,.editor-widget{padding:26px;margin-top:24px}.editor-section h2{margin-bottom:18px}.editor-section>h3{margin-top:20px}.editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.editor-section-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:25px 0 15px}.editor-widget .editor-section-title{margin-top:0}.remove-widget{display:flex;align-items:center;gap:8px;color:#a75b50;font-weight:400;margin:0}.remove-widget input[type=checkbox]{display:inline-block;width:auto;margin:0}.editor-widget:has(.remove-widget input:checked){opacity:.55}.sql-editor{font-family:ui-monospace,SFMono-Regular,monospace;font-size:12px;line-height:1.6}.editor-add{margin-top:20px}.filter-editor{padding:15px 0;border-top:1px solid var(--border)}.filter-editor summary{font-size:12px;margin-bottom:15px}.editor-save{position:sticky;bottom:16px;background:#fff;box-shadow:0 4px 25px #23203118;border:1px solid var(--border);border-radius:10px;padding:16px 20px;margin-top:25px;display:flex;justify-content:space-between;align-items:center;gap:15px;z-index:2}.editor-save>span{font-size:11px;color:var(--muted)}.schema-columns{display:flex;flex-wrap:wrap;gap:10px}.schema-columns code{font-size:11px;padding:8px;background:var(--bg);border-radius:6px}.interactive-filters{padding:20px;margin:20px 0}.filter-heading{display:flex;justify-content:space-between;margin-bottom:16px}.filter-heading h2{font-size:14px}.filter-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px}.filter-controls label{flex:1 1 160px;margin:0}.filter-controls .button{height:40px}.interactive-filters>small{margin-top:13px}.widget[data-width=full]{flex:1 1 100%;width:100%}.widget[data-width=half]{flex:1 1 calc(50% - 20px);width:auto}.widget[data-width=quarter]{flex:1 1 calc(25% - 20px);width:auto}@media(max-width:600px){.editor-grid{grid-template-columns:1fr}.editor-save{flex-direction:column;align-items:stretch}.editor-section-title{align-items:flex-start;flex-direction:column}.widget[data-width=half],.widget[data-width=quarter]{flex-basis:100%}}

.actions-menu{position:relative;flex-shrink:0;align-self:flex-start}.actions-menu>summary{list-style:none;cursor:pointer}.actions-menu>summary::-webkit-details-marker{display:none}.actions-popover{position:absolute;right:0;top:calc(100% + 8px);width:280px;max-width:80vw;padding:8px;background:var(--card,#fff);border:1px solid var(--border,#e4e4ee);border-radius:14px;box-shadow:0 12px 35px #24223820;z-index:30}.actions-popover>a,.actions-popover button{display:block;width:100%;text-align:left;padding:12px;border:0;border-radius:8px;background:transparent;color:inherit;font:inherit;text-decoration:none;cursor:pointer}.actions-popover>a:hover,.actions-popover button:hover{background:#f1eff8}.actions-popover small{display:block;padding:0 12px 12px;color:#777;font-size:12px}.actions-popover form{display:block!important;margin:0!important}.actions-popover button:disabled{opacity:.5;cursor:wait}.gallery-card-actions{gap:12px;align-items:center;flex-wrap:wrap}
/* Palette-aware categorical series, kept consistent across all visualizers. */
:root{--series-1:#7762d6;--series-2:#399eb6;--series-3:#e3a249;--series-4:#da7087;--series-5:#538d70;--series-6:#a176bc;--series-7:#7396cf;--series-8:#b7a35a}
[data-palette=forest]{--series-1:#28775a;--series-2:#68ab8a;--series-3:#d5a343;--series-4:#418c9b;--series-5:#a9bc76;--series-6:#ba756b;--series-7:#746fa0;--series-8:#88a7bf}
[data-palette=ocean]{--series-1:#197da2;--series-2:#65b7c8;--series-3:#7771c5;--series-4:#e4af55;--series-5:#4e9e90;--series-6:#d07c9e;--series-7:#809ebf;--series-8:#acc88b}
[data-palette=sunset]{--series-1:#c66a43;--series-2:#e4ae58;--series-3:#b76485;--series-4:#587eaa;--series-5:#809b68;--series-6:#ad91c5;--series-7:#5ba7a3;--series-8:#d89693}
.chart-visual{margin:16px 0 8px;min-width:0}.chart-visual .chart{margin:0;max-height:none;overflow:visible}.chart-grid{stroke:var(--border);stroke-width:1}.chart-mark{transition:filter .12s;cursor:crosshair}.chart-mark:hover,.chart-mark:focus{filter:brightness(1.12);stroke:var(--ink);stroke-width:1.5;outline:0}.chart-point-dense{opacity:0}.chart-point-dense:hover,.chart-point-dense:focus{opacity:1}.chart-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 20px;margin:12px 0;font-size:11px;color:var(--muted)}.chart-legend span{display:inline-flex;align-items:center;gap:7px}.chart-legend i{display:inline-block;flex-shrink:0;width:9px;height:9px;border-radius:3px}.chart-legend-values{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));justify-content:stretch}.chart-legend-values span{padding:7px 0;border-bottom:1px solid var(--border)}.chart-legend-values b{font-weight:400;overflow-wrap:anywhere;flex:1}.chart-legend-values strong{color:var(--ink);font-weight:500}.chart-legend-values em{font-style:normal;min-width:42px;text-align:right}.donut-total{font-size:28px;font-weight:650;fill:var(--ink)}.widget-area,.widget-multi_line,.widget-heatmap,.widget-swot{flex-basis:100%}.widget-kind{letter-spacing:.3px;text-transform:none;font-size:9px}.widget-heading-tools{display:flex;align-items:center;gap:10px;flex-shrink:0}.expand-widget{border:1px solid var(--border);background:var(--surface);color:var(--muted);border-radius:6px;padding:3px 7px;cursor:pointer;font-size:15px}.widget:fullscreen{overflow:auto;padding:35px;border-radius:0;display:block;background:var(--surface)}.widget:fullscreen .chart-visual{max-width:1200px;margin:20px auto}.widget:fullscreen .chart{max-height:65vh}.widget:fullscreen .widget-description{font-size:13px}.widget:fullscreen .widget-heading h2{font-size:22px}.widget[data-height=compact]>.table-scroll{max-height:240px}.widget[data-height=tall]>.table-scroll{max-height:560px}.swot-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:20px 0}.swot-quadrant{border:1px solid var(--border);border-top:3px solid var(--series-1);border-radius:10px;padding:20px;background:var(--bg)}.swot-1{border-top-color:var(--series-2)}.swot-2{border-top-color:var(--series-3)}.swot-3{border-top-color:var(--series-4)}.swot-quadrant h3{font-size:14px}.swot-quadrant ul{padding-left:18px;font-size:12px;line-height:1.8;color:var(--muted)}.swot-quadrant li+li{margin-top:8px}.visualizer-guide{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:20px}.visualizer-guide>div{padding:14px;background:var(--bg);border-radius:8px;font-size:12px}.visualizer-guide p{font-size:11px;color:var(--muted)}.chart-tooltip{position:fixed;z-index:1000;max-width:300px;padding:10px 13px;background:#252737;color:#fff;border-radius:8px;box-shadow:0 6px 20px #0002;font-size:12px;line-height:1.5;pointer-events:none;white-space:pre-wrap}.chart-tooltip[hidden]{display:none}@media(max-width:600px){.swot-grid,.visualizer-guide{grid-template-columns:1fr}.actions-popover{right:auto;left:0}.chart-legend-values{grid-template-columns:1fr}.widget-heading-tools{gap:5px}}@media(prefers-reduced-motion:reduce){.chart-mark{transition:none}}

.gallery-heading-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.gallery-heading-actions form{margin:0}
.widget{container-type:inline-size}@container(max-width:600px){.chart .axis{font-size:16px}.chart .donut-total{font-size:32px}}@container(max-width:350px){.chart .axis{font-size:18px}}
.quality-report{padding:22px;margin:20px 0;border-left:4px solid #68987e}.quality-report[data-quality=review],.quality-report[data-quality=pending]{border-left-color:#d5a04a}.quality-report[data-quality=blocked]{border-left-color:#bd6257}.quality-heading{display:flex;justify-content:space-between;align-items:center;gap:18px}.quality-heading h2{margin-top:7px;font-size:16px}.quality-report p,.quality-report li{font-size:12px;color:var(--muted);line-height:1.7}.quality-report details{font-size:12px;margin:15px 0}.quality-report h3{margin:20px 0 10px;font-size:13px}.quality-findings{padding:0;list-style:none}.quality-findings li{padding:12px;background:#fff8ec;border-radius:8px;margin:8px 0}.quality-findings li[data-level=error]{background:#fff0eb;color:#a75a3a}.widget-quality{font-size:11px;margin:0 0 18px;padding:12px;border-radius:8px;background:#fff8ec;color:#896b3a}.widget-quality p{line-height:1.7}.context-card form{margin-top:20px}@media(max-width:600px){.quality-heading{align-items:flex-start;flex-direction:column}}

.gallery-info p.gallery-quality{min-height:0;margin:8px 0;font-size:10px;color:var(--accent)}
.library-links{display:flex;gap:18px;flex-wrap:wrap;margin:18px 0;font-size:12px}.library-summary,.compare-form,.comparison{padding:24px;margin:24px 0}.library-summary>a{display:block;margin-top:14px;overflow-wrap:anywhere}.compare-form h2{margin-bottom:18px}.version-list{display:grid;gap:16px;margin-top:24px}.version-row{display:flex;justify-content:space-between;gap:24px;padding:24px}.version-row h2{margin-top:8px}.version-row p{font-size:12px;color:var(--muted)}.version-actions{display:flex;flex-direction:column;align-items:flex-start;gap:12px;flex:0 0 220px}.version-badge{padding:7px 12px;background:var(--soft);color:var(--accent);border-radius:20px;font-size:11px}.publication-ack{font-size:11px;font-weight:400}.publication-ack input[type=checkbox]{display:inline;width:auto;margin:0 5px 0 0}.comparison-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:20px}.comparison pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;background:var(--bg);padding:16px;border-radius:8px}.comparison-grid>div{min-width:0}@media(max-width:700px){.version-row{flex-direction:column}.version-actions{flex-basis:auto}.comparison-grid{grid-template-columns:1fr}}

.archived-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:15px 0;border-bottom:1px solid var(--border);font-size:12px}

/* Visual builder */
.visual-widget-nav {display:flex;gap:8px;flex-wrap:wrap;margin:24px 0}
.visual-widget-nav .visual-selected {border-color:var(--accent,#7762d6);background:#eeeafa}
.visual-layout {display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:24px;align-items:start}
.visual-preview {position:sticky;top:24px;min-width:0}
.visual-empty {text-align:center;padding:64px 20px;color:#888399}
.visual-metric {border:1px solid #e4e2ed;border-radius:12px;padding:16px;margin:16px 0;min-width:0}
.visual-metric legend {font-weight:600;padding:0 8px}
.visual-column-list {display:flex;flex-wrap:wrap;gap:12px;padding:12px 0}
.visual-column-list label {display:flex;align-items:center;gap:8px}
.visual-column-list input {width:auto}
.visual-editor [hidden] {display:none!important}
.visual-editor .editor-save {flex-wrap:wrap;gap:12px}
@media(max-width:1000px){.visual-layout{grid-template-columns:1fr}.visual-preview{position:static}}
.visual-widget-nav form {display:flex;align-items:end;gap:12px;max-width:100%;width:760px}
.visual-widget-nav label {flex:1;min-width:0;margin:0}
.visual-widget-nav select {width:100%}
@media(max-width:600px){.visual-widget-nav form{flex-direction:column;align-items:stretch}}

/* Product finish: discovery, status, accessible feedback and readable density. */
[hidden]{display:none!important}
.gallery-search{margin:28px 0 22px;padding:20px 24px;background:var(--surface);border:1px solid var(--border);border-radius:14px;display:grid;grid-template-columns:1fr auto;gap:8px 24px;align-items:center}
.gallery-search label{grid-column:1/-1;margin:0;font-size:12px;color:var(--muted)}
.gallery-search input{margin:0;max-width:620px}.gallery-search p{margin:0;color:var(--muted);font-size:12px}
.gallery-preview{background:linear-gradient(135deg,var(--soft),var(--surface))}.gallery-card:hover{box-shadow:0 12px 30px #2626370c}
.generation-steps{display:flex;gap:16px;list-style:none;padding:0;margin:0 0 28px;text-align:left;flex-wrap:wrap}
.generation-steps li{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:12px}
.generation-steps b{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--border);border-radius:50%;font-size:12px}
.generation-steps [data-done=true]{color:var(--accent)}.generation-steps [data-done=true] b{background:var(--soft);border-color:var(--accent)}.generation-steps [aria-current=step]{font-weight:700}
.request-feedback{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:1001;display:flex;align-items:center;gap:18px;max-width:620px;width:calc(100% - 40px);padding:18px 22px;background:#302e40;color:white;border-radius:12px;box-shadow:0 8px 32px #0003}
.request-feedback button{background:transparent;border:0;color:white;padding:8px}
.dashboard .page-heading h1{font-size:clamp(26px,3vw,40px);line-height:1.2;max-width:1050px}
.dashboard .page-heading .lead{font-size:14px;line-height:1.8;max-width:1000px}
.widget-heading h2{line-height:1.45}.widget-description{line-height:1.75}.widget-kpi .kpi-value{font-variant-numeric:tabular-nums;letter-spacing:-1.5px}
.table-scroll{border:1px solid var(--border);border-radius:8px}.table-scroll thead th{position:sticky;top:0;background:var(--surface);z-index:1}.table-scroll tbody tr:nth-child(even){background:var(--bg)}.table-scroll tbody tr:hover{background:var(--soft)}
@media(max-width:650px){.gallery-search{grid-template-columns:1fr}.generation-steps{gap:12px}.generation-steps li{font-size:11px}.dashboard .page-heading h1{font-size:28px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media print{.sidebar,.topbar,.actions-menu,.expand-widget,.interactive-filters,.library-links,.version-history,.widget-details,.widget>a,.theme-menu,.context-card,.request-feedback{display:none!important}.main{margin:0!important}.page{padding:0!important;max-width:none!important}.widget{break-inside:avoid;box-shadow:none!important}.widgets{display:block!important}.widget{width:100%!important;margin:16px 0}.dashboard-toolbar{margin-top:16px}body{background:white}}

/* Visual studio: components first, design controls alongside the result. */
.visual-editor{max-width:1600px}.visual-editor>h1{font-size:32px;margin:8px 0}.visual-editor>.lead{font-size:14px;max-width:850px}
.component-strip{display:flex;gap:10px;overflow-x:auto;padding:4px 0 16px;margin:24px 0;scrollbar-width:thin}
.component-item{flex:0 0 185px;border:1px solid var(--border);border-radius:12px;padding:14px;background:var(--surface);color:var(--ink);display:flex;flex-direction:column;gap:6px;justify-content:center}
.component-item span{font-size:10px;color:var(--muted)}.component-item strong{font-size:12px;line-height:1.5}.component-item.selected{border:2px solid var(--accent);background:var(--soft)}.component-add{border-style:dashed;color:var(--accent);font-weight:600;font-size:12px}
.visual-layout{grid-template-columns:minmax(320px,410px) minmax(0,1fr);gap:28px}.visual-layout .editor-section{margin-top:0;margin-bottom:18px;padding:22px}.visual-layout .editor-section h2{font-size:16px}.visual-layout label{font-size:12px}.visual-layout .editor-grid{gap:0 12px}
.visual-preserved{background:var(--soft);color:var(--accent);font-size:12px;padding:10px 12px;border-radius:8px;margin-bottom:18px}.preview-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.preview-canvas{min-height:400px;box-shadow:0 10px 35px #26263708}.preview-canvas>h3{font-size:20px;margin:24px 0}.visual-preview{top:20px}.visual-preview .chart{width:100%}.visual-editor .editor-save{bottom:12px;padding:14px;box-shadow:0 8px 30px #26263715}.visual-editor .editor-save .button{flex:1;font-size:12px}.visual-editor .htmx-request{opacity:.6;cursor:progress}
@media(max-width:1000px){.visual-layout{grid-template-columns:1fr}.visual-preview{position:static;grid-row:1}.preview-canvas{min-height:250px}.component-item{flex-basis:160px}}

/* Library: readable previews with a fixed information budget. */
.gallery-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));gap:24px;align-items:stretch}
.gallery-card{display:flex;flex-direction:column;overflow:visible;min-width:0;max-width:none;border-radius:18px;box-shadow:0 3px 15px #26263704}
.gallery-card-top{display:flex;align-items:center;justify-content:space-between;padding:18px 22px 0;gap:10px}.source-badge{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--muted)}
.gallery-card .gallery-info{padding:16px 22px}.gallery-card .gallery-info h2{font-size:18px;line-height:1.45;min-height:52px;margin:0 0 12px;overflow-wrap:anywhere}.gallery-open{display:block}
.quality-badge{display:inline-block;font-size:10px;font-weight:600;color:#796136;background:#faf2df;padding:5px 9px;border-radius:6px}.quality-badge[data-quality=passed]{background:#eaf4ed;color:#397049}.quality-badge[data-quality=blocked]{background:#fcebe7;color:#a5463a}
.gallery-card .gallery-preview{height:238px;margin:0 16px;border:1px solid var(--border);border-radius:12px;padding:14px;overflow:hidden;background:linear-gradient(145deg,var(--soft),var(--surface));pointer-events:none}
.gallery-card .gallery-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}.gallery-card .gallery-metrics>div{min-width:0;background:var(--surface);border-radius:8px;padding:12px;overflow:hidden}.gallery-card .gallery-metrics>div:only-child{grid-column:1/-1}
.gallery-card .gallery-metrics span{font-size:10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;overflow:hidden;line-height:1.4;min-height:28px}.gallery-card .gallery-metrics strong{font-size:clamp(17px,1.4vw,24px);line-height:1.4;display:block;white-space:nowrap;letter-spacing:-.6px}.gallery-metrics strong small{display:inline;font-size:11px;margin-left:4px;color:var(--muted)}
.gallery-mini-chart{height:120px;overflow:hidden;margin-top:6px}.gallery-mini-chart .chart-visual{margin:0}.gallery-mini-chart svg{width:100%;height:120px;margin:0}.gallery-mini-chart .chart-legend{display:none}.gallery-inventory{height:96px;display:flex;align-items:center;gap:12px;justify-content:center;color:var(--accent)}.gallery-inventory strong{font-size:28px}.gallery-inventory span{font-size:12px}.gallery-preview .preview-pending{height:100%}
.gallery-bottom{margin-top:auto;padding:18px 22px 20px}.gallery-bottom .gallery-meta{margin:10px 0 18px;font-size:11px}.gallery-card .gallery-card-actions{padding:0;justify-content:space-between;flex-wrap:nowrap}.latest-version{display:block;font-size:11px;padding:8px 10px;border-radius:6px;background:var(--soft);margin-bottom:12px}.gallery-card .actions-menu{align-self:auto}.gallery-card .actions-popover{top:auto;bottom:calc(100% + 8px)}
@media(min-width:1500px){.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Generation controls */
.job-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:18px 0 0;margin-top:18px;border-top:1px solid var(--border);text-align:left}.job-controls strong,.job-controls span,.job-controls small{display:block;font-size:12px}.job-controls span{margin:4px 0;color:var(--muted)}.job-controls small{font-size:10px;color:var(--muted);max-width:430px}.job-controls form{flex-shrink:0}

/* On-dashboard inspector */
.edit-widget{border:1px solid var(--border);background:var(--surface);color:var(--accent);border-radius:6px;padding:4px 9px;font-size:11px;cursor:pointer}.metric-definition{border-top:1px solid var(--border);padding-top:12px;font-size:11px;margin:14px 0;color:var(--muted)}.metric-definition p{white-space:pre-line;line-height:1.8}.metric-definition summary{color:var(--accent);cursor:pointer}
#visual-drawer{position:fixed;inset:0 0 0 auto;margin:0;width:min(100%,1000px);max-width:100vw;height:100dvh;max-height:100dvh;padding:0;border:0;border-left:1px solid var(--border);background:var(--bg);color:var(--ink);box-shadow:-12px 0 60px #26263720;overflow:auto}#visual-drawer::backdrop{background:#25253966;backdrop-filter:blur(2px)}.drawer-heading{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;gap:20px;align-items:center;padding:20px 24px;background:var(--surface);border-bottom:1px solid var(--border)}.drawer-heading h2{font-size:20px;margin:5px 0 0}.drawer-heading .eyebrow{font-size:10px}
#visual-drawer .visual-editor{padding:22px;max-width:none}#visual-drawer .visual-editor>.back,#visual-drawer .visual-editor>.eyebrow,#visual-drawer .visual-editor>h1,#visual-drawer .visual-editor>.lead,#visual-drawer .component-strip{display:none}#visual-drawer .visual-layout{grid-template-columns:minmax(280px, .9fr) minmax(0,1fr);gap:18px}#visual-drawer .visual-preview{top:116px}#visual-drawer .editor-section{padding:18px}#visual-drawer .editor-grid{grid-template-columns:1fr}.preview-stale{font-size:10px;color:#946b20}.preview-title{flex-wrap:wrap}
@media(max-width:700px){#visual-drawer .visual-layout{grid-template-columns:1fr}#visual-drawer .visual-preview{position:static;grid-row:auto}.job-controls{align-items:flex-start;flex-direction:column}.gallery-card .actions-popover{left:auto;right:0}}

/* Presentation and PDF via the browser's print dialog. */
.presentation-mode .sidebar,.presentation-mode .topbar,.presentation-mode .actions-menu,.presentation-mode .library-links,.presentation-mode .version-history,.presentation-mode .theme-menu,.presentation-mode .widget-details,.presentation-mode .edit-widget,.presentation-mode .expand-widget,.presentation-mode .context-card,.presentation-mode .quality-heading form{display:none!important}
.presentation-mode .main{margin:0}.presentation-mode .dashboard{max-width:1500px;margin:auto;padding-top:24px}.presentation-actions{display:flex;justify-content:space-between;gap:15px;margin-bottom:30px}.presentation-mode .quality-report{padding:14px 18px}.presentation-mode .quality-report>small{display:none}.presentation-mode .page-heading .lead{max-width:1100px}.presentation-mode .interactive-filters{background:var(--surface)}
@page{size:A4 landscape;margin:12mm}
@media print{.presentation-actions,#editor-drawer-host,.widget-quality,.metric-definition,.quality-report details,.quality-report>small,.repair-report,.interactive-filters button,.interactive-filters a{display:none!important}.interactive-filters{display:block!important;break-inside:avoid}.interactive-filters input,.interactive-filters select{border:0!important;box-shadow:none!important;padding:0!important;background:white!important;color:#222!important;appearance:none}.quality-report{break-inside:avoid}.dashboard .widgets{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.dashboard .widget{margin:0!important;break-inside:avoid;overflow:visible;padding:18px}.dashboard .widget[data-width=full],.dashboard .widget-table{grid-column:1/-1}.widget .chart{max-height:95mm;width:100%}.table-scroll{max-height:none!important;overflow:visible!important}.widget-heading h2{font-size:13px}.widget-description{font-size:10px}.widget .kpi-value{font-size:30px}.dashboard .page-heading h1{font-size:25px}.dashboard .page-heading .lead{font-size:11px}.edit-widget,.expand-widget{display:none!important}.url-note{font-size:9px}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
/* Two cards per row, as requested; one on small screens. */
.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-card .gallery-metrics strong{font-size:26px}
@media(max-width:850px){.gallery-grid{grid-template-columns:1fr}}
.presentation-buttons{display:flex;gap:10px;align-items:center}

/* Mattear — shared visual identity with MCP Starter. */
:root {
  --bg: #f5f0e6;
  --surface: #fffdf8;
  --ink: #212e28;
  --muted: #6b7f74;
  --border: rgba(33, 46, 40, .12);
  --accent: #415a50;
  --soft: #e7ece6;
  --brand-green: #415a50;
  --brand-dark: #212e28;
  --brand-terracotta: #b46446;
  --brand-border: #c3d3cb;
}
body { background: var(--bg); color: var(--ink); }
a:hover { color: var(--brand-dark); }
input:focus, textarea:focus, select:focus, button:focus-visible,
a:focus-visible, summary:focus-visible { outline-color: var(--brand-terracotta); }
.sidebar {
  width: 256px; padding: 0; background: var(--brand-green);
  border-right: 1px solid rgba(255,255,255,.18); z-index: 40;
  height: 100dvh; overflow-y: auto;
}
.brand { padding: 24px 24px 22px; justify-content: flex-start; flex-shrink: 0; }
.brand img { display: block; width: auto; height: 34px; max-width: 100%; }
.sidebar-nav { padding: 14px 10px; }
.workspace.nav-section { margin-top: 24px; }
.workspace {
  display: block; margin: 0 0 6px; padding: 6px 12px 4px;
  color: rgba(255,255,255,.6); font-size: 10px; letter-spacing: .1em;
}
.nav-link {
  color: rgba(255,255,255,.8); padding: 10px 12px; margin: 2px 0;
  border-radius: 10px; gap: 12px; justify-content: flex-start; font-size: 14px; font-weight: 500;
  transition: background .15s, color .15s;
}
.nav-link span { font-size: inherit; }
.nav-link svg { width: 18px; height: 18px; flex-shrink: 0; }
.nav-link:hover { color: white; background: rgba(255,255,255,.1); }
.nav-link.active { color: white; background: rgba(255,255,255,.18); font-weight: 600; }
.sidebar a:focus-visible, .sidebar button:focus-visible { outline-color: white; }
.sidebar-bottom {
  display: flex; flex-direction: column; align-items: stretch; gap: 18px; margin-top: auto;
  flex-shrink: 0; padding: 20px 12px 12px; border-top: 1px solid rgba(255,255,255,.25); color: white;
}
.sidebar-profile { display: flex; align-items: center; gap: 10px; padding: 0 8px; }
.sidebar-identity { min-width: 0; flex: 1; }
.sidebar-bottom strong { display: block; font-size: 14px; font-weight: 600; line-height: 1.4; overflow-wrap: anywhere; }
.workspace-avatar { width: 38px; height: 38px; flex-shrink: 0; display: grid; place-items: center; border-radius: 50%; background: rgba(255,255,255,.25); font-size: 13px; font-weight: 700; }
.sidebar-status { display: block; margin-top: 2px; font-size: 12px; color: rgba(255,255,255,.65); }
.status-dot { background: #87a797; }
.main { margin-left: 256px; min-width: 0; }
.topbar {
  height: 65px; padding: 0 32px; background: var(--surface);
  color: var(--muted); font-size: 12px; gap: 14px;
}
.breadcrumb { display: flex; align-items: center; min-width: 0; }
.breadcrumb strong { color: var(--brand-green); font-weight: 500; }
.slash { color: #a5bdb1; padding: 0 14px; }
.local-pill { color: var(--brand-green); background: #edf1ea; border-color: var(--brand-border); margin-left: auto; }
.mobile-menu, .mobile-brand { display: none; }
.page { padding: 36px 32px 56px; }
h1 { color: var(--brand-dark); font-weight: 650; }
.eyebrow { color: var(--muted); letter-spacing: .12em; font-size: 10px; }
.accent, .decor-mark { color: var(--brand-terracotta); }
.lead { font-size: 14px; line-height: 1.7; }
.card, .gallery-search, .editor-save, .answered p, .theme-menu form { background: var(--surface); }
.card { box-shadow: 0 2px 8px rgba(33,46,40,.025); }
.button { border-radius: 9px; font-size: 12px; padding: 10px 16px; }
.button.primary { background: var(--brand-green); color: #fffdf8; box-shadow: 0 2px 5px rgba(65,90,80,.12); }
.button.primary:hover { background: var(--brand-dark); color: white; }
.button.secondary { background: var(--surface); border-color: var(--brand-border); color: var(--brand-green); }
.button.secondary:hover { background: #e7ece6; }
.button.small { font-size: 11px; padding: 8px 12px; }
label { font-size: 12px; }
input:not([type=radio]), select, textarea { background: var(--surface); border-color: var(--brand-border); color: var(--ink); border-radius: 8px; font-size: 13px; }
input::placeholder, textarea::placeholder { color: #849088; }
.process { color: var(--muted); }
.process b, .feature>span, .pill, .count { background: var(--soft); color: var(--brand-green); }
.process-line { background: var(--brand-border); }
.form-note, .feature p, .widget-details, .context-card summary, td, th { color: var(--muted); }
.spinner { border-color: var(--brand-border); border-top-color: var(--brand-green); }
.preview-card { background: #e7ece6; border-color: var(--brand-border); }
.preview-header, .preview-card>p, .mock-chart-title { color: var(--muted); }
.preview-card h3, .mock-kpis strong { color: var(--brand-green); }
.mock-kpis>div, .mock-chart { background: var(--surface); border-color: var(--border); }
.feature>span { color: var(--brand-terracotta); }
.gallery-card { border-radius: 14px; }
.gallery-card:hover { box-shadow: 0 10px 28px rgba(33,46,40,.07); }
.gallery-card .gallery-preview { background: var(--soft); }
.gallery-search { border-radius: 12px; }
.empty { background: var(--surface); border-color: var(--brand-border); padding: 34px; }
.empty h2 { color: var(--brand-dark); margin-bottom: 10px; }
.request-feedback, .chart-tooltip { background: var(--brand-dark); }
.axis { fill: var(--muted); }
@media (max-width: 1023px) {
  .sidebar { display: none; }
  .main { margin-left: 0; }
  .topbar { padding: 0 20px; }
  .breadcrumb { display: none; }
  .mobile-brand { display: flex; align-items: center; }
  .mobile-brand img { display: block; }
  .mobile-menu { display: block; position: relative; }
  .mobile-menu>summary { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid var(--brand-border); border-radius: 9px; list-style: none; color: var(--brand-green); }
  .mobile-menu>summary::-webkit-details-marker { display: none; }
  .mobile-menu>summary svg { width: 20px; height: 20px; }
  .mobile-menu-panel { position: absolute; top: 46px; left: 0; width: min(280px, calc(100vw - 36px)); max-height: calc(100dvh - 88px); overflow-y: auto; border-radius: 12px; background: var(--brand-green); box-shadow: 0 12px 35px rgba(33,46,40,.2); z-index: 50; }
  .mobile-menu nav { padding: 12px; }
  .mobile-menu a:focus-visible, .mobile-menu button:focus-visible { outline-color: white; }
  .page { padding: 28px 24px 40px; }
}
@media (max-width: 600px) {
  .page { padding: 24px 18px 36px; }
  .topbar { padding: 0 18px; }
  .page-heading { align-items: flex-start; flex-direction: column; gap: 18px; }
  .gallery-heading-actions { width: 100%; gap: 8px; }
  .gallery-heading-actions .button { padding: 10px 12px; }
  .gallery-search { padding: 18px; }
  .local-pill { font-size: 8px; padding: 5px 8px; }
  .gallery-card .gallery-card-actions { flex-wrap: wrap; gap: 8px; }
}
@media (prefers-reduced-motion: reduce) { .nav-link { transition: none; } }
@media print { .mobile-menu, .mobile-brand { display: none!important; } }
.mock-chart path[fill]:not([fill=none]) { fill: #c3d3cb; }
.mock-chart path[stroke] { stroke: var(--brand-green); }
.mock-kpis span, .mock-kpis em, .mock-axis { color: var(--muted); }

/* Access and shared data administration. */
.login-page { min-height:100dvh; display:grid; place-items:center; padding:24px; }
.login-card { width:100%; max-width:460px; padding:40px; text-align:center; }
.login-logo { display:block; margin:0 auto 28px; object-fit:contain; }
.login-card h1 { font-size:28px; margin:16px 0; }
.login-card p { color:var(--muted); line-height:1.8; }
.login-card small { margin-top:24px; line-height:1.7; }
.google-login { width:100%; margin-top:14px; background:#fff; color:#1f1f1f; border:1px solid #747775; font-size:14px; min-height:44px; }
.google-login:hover { background:#f2f2f2; }
.admin-panel { padding:28px; margin:28px 0; }
.admin-panel h2 { margin-bottom:18px; }
.admin-form { display:flex; align-items:flex-end; gap:16px; flex-wrap:wrap; }
.admin-form label { flex:1; min-width:160px; margin:0; }
.admin-form .check-label { flex:0 0 auto; min-width:0; align-self:center; }
.check-label input[type=checkbox] { display:inline; width:auto; margin:0 7px 0 0; accent-color:var(--brand-green); }
.admin-list { display:grid; gap:16px; }
.admin-user { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:24px; }
.admin-user h2 { overflow-wrap:anywhere; margin-bottom:10px; }
.source-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin:30px 0; }
.source-card { padding:24px; }
.source-card h2 { margin:12px 0; overflow-wrap:anywhere; }
.source-card p { color:var(--muted); white-space:pre-line; }
.source-actions { display:flex; align-items:center; flex-wrap:wrap; gap:10px; margin-top:22px; }
.source-actions form { margin:0; }
.sidebar-email { display:block; margin-top:2px; color:rgba(255,255,255,.8); font-size:12px; overflow-wrap:anywhere; line-height:1.5; }
.nav-logout { margin:0; }
.nav-logout button { border:0; width:100%; background:transparent; text-align:left; }
.nav-logout button:hover { background:rgba(255,255,255,.1); }
@media(max-width:850px) { .source-grid { grid-template-columns:1fr; } .admin-user { flex-direction:column; align-items:stretch; } }
@media(max-width:600px) { .login-card { padding:28px 22px; } .admin-panel { padding:20px; } .admin-form { flex-direction:column; align-items:stretch; } .admin-form .check-label { align-self:flex-start; } }

/* User administration: scan accounts first, edit one at a time. */
.users-page { max-width:1280px; }
.user-create { margin:28px 0 32px; }
.user-create>summary { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 24px; cursor:pointer; list-style:none; }
.user-create>summary strong { display:block; font-size:15px; }
.user-summary-description { display:block; margin-top:5px; color:var(--muted); font-size:13px; }
.user-disclosure { display:grid; place-items:center; width:32px; height:32px; flex-shrink:0; border:1px solid var(--brand-border); border-radius:8px; color:var(--brand-green); font-size:22px; }
.user-create[open] .user-disclosure { transform:rotate(45deg); }
.users-list-heading { display:flex; align-items:center; gap:12px; }
.user-list-help { margin:8px 0 20px; font-size:13px; color:var(--muted); }
.users-list { display:grid; gap:12px; }
.user-card { overflow:hidden; }
.user-summary { display:grid; grid-template-columns:42px minmax(0,1fr) 112px 126px 74px; align-items:center; gap:16px; padding:22px 24px; cursor:pointer; list-style:none; }
.user-summary::-webkit-details-marker,.user-create>summary::-webkit-details-marker { display:none; }
.user-summary:hover,.user-create>summary:hover { background:rgba(65,90,80,.035); }
.user-summary:focus-visible,.user-create>summary:focus-visible { outline-offset:-3px; }
.user-avatar { width:42px; height:42px; display:grid; place-items:center; border-radius:50%; background:var(--soft); color:var(--brand-green); font-size:13px; font-weight:650; }
.user-identity { min-width:0; }
.user-identity>strong { display:block; font-size:14px; line-height:1.5; overflow-wrap:anywhere; }
.user-email { display:block; margin-top:3px; font-size:12px; color:var(--muted); overflow-wrap:anywhere; }
.user-self { display:inline-block; margin-left:5px; font-size:10px; font-weight:500; padding:1px 6px; background:var(--soft); border-radius:4px; color:var(--brand-green); vertical-align:middle; }
.user-role { font-size:12px; color:var(--muted); }
.user-access { display:inline-flex; align-items:center; justify-self:start; gap:6px; border-radius:20px; padding:5px 9px; background:#e7f0e8; color:#315b40; font-size:11px; font-weight:600; white-space:nowrap; }
.user-access>span { width:6px; height:6px; background:currentColor; border-radius:50%; }
.user-access[data-enabled=false] { background:#f1eae2; color:#795637; }
.user-edit-label { display:flex; align-items:center; justify-content:flex-end; gap:6px; color:var(--brand-green); font-size:12px; font-weight:600; }
.user-edit-label svg { width:18px; height:18px; }
.user-card[open] .user-edit-label svg { transform:rotate(180deg); }
.user-form { border-top:1px solid var(--border); padding:24px; }
.user-fields { display:grid; grid-template-columns:minmax(0,1.5fr) repeat(2,minmax(0,1fr)); gap:18px; }
.user-create-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
.user-fields label { min-width:0; margin:0; }
.user-fields input,.user-fields select { min-height:44px; }
.user-fields select:disabled { background:var(--soft); color:var(--muted); opacity:1; cursor:not-allowed; }
.user-form-help { font-size:12px; line-height:1.7; color:var(--muted); margin:14px 0 0; }
.user-form-footer { display:flex; align-items:center; justify-content:space-between; gap:24px; border-top:1px solid var(--border); padding-top:18px; margin-top:22px; }
.user-form-footer>p { color:var(--muted); font-size:12px; line-height:1.7; max-width:560px; margin:0; }
.user-form-actions { display:flex; align-items:center; gap:10px; flex-shrink:0; }
.user-form-footer .button { min-height:42px; }
@media(max-width:1150px) and (min-width:1024px),(max-width:760px) {
 .user-summary { grid-template-columns:42px minmax(0,1fr) auto; gap:10px 14px; }
 .user-avatar { grid-row:1 / 3; }
 .user-identity { grid-column:2; grid-row:1; }
 .user-role { grid-column:2; grid-row:2; }
 .user-access { grid-column:3; grid-row:1; }
 .user-edit-label { grid-column:3; grid-row:2; }
 .user-fields { grid-template-columns:1fr 1fr; }
 .user-fields:not(.user-create-fields)>label:first-child { grid-column:1 / -1; }
 .user-form-footer { align-items:flex-start; flex-direction:column; gap:16px; }
 .user-form-actions { align-self:flex-end; }
}
@media(max-width:480px) {
 .user-summary { padding:18px 16px; grid-template-columns:34px minmax(0,1fr); }
 .user-avatar { width:34px; height:34px; grid-row:1; }
 .user-identity { grid-column:2; }
 .user-role { grid-column:2; grid-row:2; }
 .user-access { grid-column:2; grid-row:3; }
 .user-edit-label { grid-column:2; grid-row:4; justify-content:flex-start; padding-top:4px; }
 .user-create>summary,.user-form { padding:20px 16px; }
 .user-fields,.user-create-fields { grid-template-columns:1fr; }
 .user-form-actions { width:100%; }
 .user-form-actions .button { flex:1; }
 .user-form-footer>.button { width:100%; }
}
