@import url('./tokens.css');
.ng-scope { font: var(--ng-font-size)/1.45 Arial, sans-serif; color:var(--ng-text); background:var(--ng-background); color-scheme:light; }
.ng-scope[data-ng-theme=dark] { color-scheme:dark; }
.ng-scope *, .ng-dialog * { box-sizing:border-box; }
.ng-button,.ng-input { font:inherit; min-height:var(--ng-height); border:1px solid var(--ng-border); border-radius:var(--ng-radius); color:var(--ng-text); background:var(--ng-surface); padding:6px 12px; }
.ng-button { cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:8px; }
.ng-button:hover:not(:disabled) { background:var(--ng-subtle); }
.ng-primary { background:var(--ng-primary); border-color:var(--ng-primary); color:white; }
[data-ng-theme=dark] .ng-primary { color:#191919; }
.ng-primary:hover:not(:disabled) { background:var(--ng-primaryHover); }
.ng-button:disabled,.ng-input:disabled,.ng-check:has(input:disabled) { opacity:.5; cursor:not-allowed; }
.ng-scope :focus-visible { outline:2px solid var(--ng-primary); outline-offset:3px; }
.ng-field { display:flex; flex-direction:column; gap:6px; font-weight:500; }
.ng-input { width:100%; font-weight:400; }
.ng-input:focus { border-color:var(--ng-primary); }
.ng-input.invalid { border-color:var(--ng-error); }
.validation-message { color:var(--ng-error); margin-top:4px; }
.ng-check { display:inline-flex; align-items:center; gap:8px; cursor:pointer; min-height:var(--ng-height); }
.ng-check input { accent-color:var(--ng-primary); width:18px; height:18px; margin:0; }
.ng-check .ng-switch { appearance:none; width:36px; height:20px; background:var(--ng-border); border-radius:12px; position:relative; transition:background .15s; }
.ng-switch::before { content:''; position:absolute; width:16px; height:16px; background:white; border-radius:50%; top:2px; left:2px; transition:transform .15s; }
.ng-switch:checked { background:var(--ng-primary); }
.ng-switch:checked::before { transform:translateX(16px); }
.ng-radio-group { border:0; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:16px; }
.ng-radio-group legend { padding:0; margin-bottom:6px; }
.ng-tabs [role=tablist] { display:flex; border-bottom:1px solid var(--ng-border); gap:4px; }
.ng-tabs [role=tab] { font:inherit; color:var(--ng-muted); background:transparent; border:0; border-bottom:3px solid transparent; padding:12px 18px; cursor:pointer; }
.ng-tabs [role=tab][aria-selected=true] { border-bottom-color:var(--ng-primary); color:var(--ng-primary); }
.ng-tabs [role=tab]:disabled { opacity:.4; cursor:not-allowed; }
.ng-tabs [role=tabpanel] { padding:20px 0; }
.ng-dialog { width:min(480px,calc(100vw - 32px)); padding:0; color:var(--ng-text); background:var(--ng-surface); border:1px solid var(--ng-border); border-radius:var(--ng-radius); box-shadow:0 16px 60px #0004; }
.ng-dialog::backdrop { background:#0007; }
.ng-dialog header,.ng-dialog footer { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 20px; }
.ng-dialog header { border-bottom:1px solid var(--ng-border); }
.ng-dialog h2 { font-size:18px; margin:0; }
.ng-dialog footer { justify-content:flex-end; border-top:1px solid var(--ng-border); }
.ng-dialog-body { padding:24px 20px; }
.ng-tooltip-anchor { display:inline-flex; position:relative; }
.ng-tooltip { pointer-events:none; position:absolute; bottom:calc(100% + 8px); left:50%; transform:translateX(-50%); background:var(--ng-text); color:var(--ng-surface); padding:6px 10px; border-radius:4px; white-space:nowrap; visibility:hidden; z-index:10; }
.ng-tooltip-anchor:hover .ng-tooltip,.ng-tooltip-anchor:focus-within .ng-tooltip { visibility:visible; }
.ng-notification { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 16px; border:1px solid var(--ng-success); border-left-width:4px; border-radius:var(--ng-radius); background:var(--ng-surface); }
.ng-notification.ng-error { border-color:var(--ng-error); }
@media(prefers-reduced-motion:reduce) { .ng-switch,.ng-switch::before { transition:none; } }

/* Dates, selections and forms */
.ng-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.ng-field-error,.ng-validation-summary { color:var(--ng-error); font-size:12px; }
.ng-field-error { display:block; margin-top:4px; }
.ng-range,.ng-multiselect { border:1px solid var(--ng-border); border-radius:var(--ng-radius); padding:16px; margin:0; min-width:0; }
.ng-range legend,.ng-multiselect legend { padding:0 6px; }
.ng-date-picker,.ng-combo { position:relative; min-width:0; }
.ng-date-picker>.ng-field>.ng-input { padding-right:44px; }
.ng-picker-trigger { position:absolute; top:25px; right:0; border-left:0; }
.ng-picker-panel,.ng-options { z-index:20; position:absolute; top:100%; left:0; background:var(--ng-surface); border:1px solid var(--ng-border); box-shadow:0 8px 24px #0003; border-radius:var(--ng-radius); padding:8px; max-width:calc(100vw - 64px); }
.ng-calendar { width:280px; max-width:100%; padding:8px; background:var(--ng-surface); border-radius:var(--ng-radius); }
.ng-calendar header { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-bottom:8px; }
.ng-calendar-week { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); text-align:center; }
.ng-calendar [role=columnheader] { font-size:11px; padding:8px 0; color:var(--ng-muted); }
.ng-day { border:0; border-radius:var(--ng-radius); background:transparent; color:var(--ng-text); font:inherit; width:100%; height:34px; cursor:pointer; }
.ng-day:disabled { opacity:.3; cursor:not-allowed; }
.ng-day:not(:disabled):hover,.ng-option:hover,.ng-active { background:var(--ng-subtle); }
.ng-day.ng-other-month { color:var(--ng-muted); }
.ng-day.ng-selected { background:var(--ng-primary); color:var(--ng-surface); }
[data-ng-theme=dark] .ng-day.ng-selected { color:#191919; }
.ng-day[aria-current=date] { box-shadow:inset 0 0 0 1px var(--ng-primary); }
.ng-picker-actions { display:flex; justify-content:space-between; gap:12px; padding:8px; }
.ng-options { width:100%; max-height:240px; overflow:auto; padding:4px; }
.ng-option { display:block; border:0; background:transparent; color:var(--ng-text); font:inherit; text-align:left; padding:10px; width:100%; cursor:pointer; }
.ng-option:disabled { opacity:.4; }
.ng-chips { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:8px; }
.ng-chip { background:var(--ng-subtle); color:var(--ng-text); border:1px solid var(--ng-border); border-radius:16px; padding:4px 10px; cursor:pointer; font:inherit; }
.ng-multiselect-options { display:flex; flex-wrap:wrap; gap:6px 16px; max-height:160px; overflow:auto; margin-top:8px; }
.ng-empty { display:block; padding:10px; color:var(--ng-muted); }
textarea.ng-input { resize:vertical; min-height:80px; }
@media(max-width:640px) { .ng-form-grid { grid-template-columns:1fr; } .ng-calendar { width:250px; } }

.ng-sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.ng-data-toolbar { display:flex;align-items:end;gap:16px;flex-wrap:wrap;margin-bottom:16px; }
.ng-data-toolbar>.ng-field { flex:1;min-width:160px;max-width:340px; }
.ng-table-scroll { overflow:auto;max-width:100%;border:1px solid var(--ng-border);border-radius:var(--ng-radius); }
.ng-data-table { width:100%;border-collapse:collapse;white-space:nowrap;background:var(--ng-surface); }
.ng-data-table td,.ng-data-table th { padding:10px 14px;text-align:left;border-bottom:1px solid var(--ng-border); }
[data-ng-density=compact] .ng-data-table td,[data-ng-density=compact] .ng-data-table th { padding:6px 10px; }
.ng-data-table th { background:var(--ng-subtle);font-weight:600; }
.ng-data-table th button,.ng-link,.ng-breadcrumb button { border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;padding:4px 0; }
.ng-data-table input[type=checkbox] { width:16px;height:16px;accent-color:var(--ng-primary); }
.ng-row-selected { background:color-mix(in srgb,var(--ng-primary) 12%,var(--ng-surface)); }
.ng-data-table tbody tr:hover { background:var(--ng-subtle); }
.ng-pager { display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:16px 0;min-height:0;border:0; }
.ng-pager-buttons { display:flex;gap:4px; }.ng-pager .ng-button { padding:4px 10px; }
.ng-pager label { display:flex;gap:8px;align-items:center; }.ng-pager select { width:76px; }
.ng-breadcrumb { border:0;min-height:0;padding:12px 0; }.ng-breadcrumb ol { list-style:none;display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0; }
.ng-breadcrumb li+li:before { content:'›';margin-right:8px;color:var(--ng-muted); }.ng-breadcrumb button,.ng-link { color:var(--ng-primary); }
.ng-tree-view>.ng-field,.ng-tree-list>.ng-field { margin-bottom:16px; }
.ng-tree-row { display:flex;align-items:center;min-height:var(--ng-height);border-radius:var(--ng-radius);cursor:pointer;padding-right:8px; }
.ng-tree-row[aria-disabled=true] { opacity:.5;cursor:not-allowed; }.ng-tree-row>button { width:28px;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer; }
.ng-tree-spacer { display:inline-block;width:28px;flex-shrink:0; }.ng-tree-cell { display:flex;gap:4px;align-items:center; }
.ng-tree-cell .ng-button { width:28px;min-height:28px;padding:0; }
.ng-chart h3,.ng-scheduler h3{margin:0 0 16px}.ng-chart-svg{display:block;width:100%;min-width:0;max-height:360px}.ng-chart-legend,.ng-chart-data{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.ng-chart-swatch{width:12px;height:12px;border-radius:2px}.ng-chart-legend [aria-pressed=false]{opacity:.5}.ng-chart [role=button]{cursor:pointer}.ng-chart [role=button]:hover{filter:brightness(1.15)}.ng-chart-selection{color:var(--ng-primary)}.ng-gauge{padding:12px;min-width:0}.ng-gauge-heading{display:flex;justify-content:space-between;gap:12px}.ng-gauge-track{height:16px;background:var(--ng-border);border-radius:8px;overflow:hidden;margin:16px 0}.ng-gauge-track>div{height:100%;background:var(--ng-primary)}.ng-arc-gauge{display:block;width:100%;max-height:180px}.ng-schedule-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;margin-bottom:20px}.ng-week{display:grid;grid-template-columns:repeat(7,minmax(130px,1fr));overflow:auto;gap:8px}.ng-schedule-day{border:1px solid var(--ng-border);padding:10px;border-radius:4px;min-height:200px}.ng-schedule-day h4{margin:0 0 12px}.ng-schedule-event{display:flex;flex-direction:column;gap:8px;width:100%;text-align:left;border:0;border-left:3px solid var(--ng-primary);border-radius:3px;background:var(--ng-subtle);color:var(--ng-text);font:inherit;padding:10px;margin:12px 0;cursor:pointer}.ng-schedule-event span{font-size:11px}.ng-schedule-day>.ng-empty{display:block;margin-top:16px}@media(max-width:640px){.ng-week{grid-template-columns:1fr}.ng-schedule-day{min-height:100px}}
.ng-sheet-toolbar{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:16px}.ng-formula{flex:1;min-width:200px}.ng-workbook-table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}.ng-workbook-table th,.ng-workbook-table td{border:1px solid var(--ng-border);padding:0;min-width:100px}.ng-workbook-table th{background:var(--ng-background);padding:10px;text-align:left}.ng-workbook-table th:first-child{min-width:40px}.ng-sheet-cell,.ng-pivot-cell{border:0;background:transparent;color:var(--ng-text);font:inherit;min-height:38px;padding:8px 10px;display:block;width:100%;text-align:left;white-space:nowrap}.ng-sheet-cell{min-width:100px;max-width:240px;overflow:hidden;text-overflow:ellipsis}.ng-cell-selected{outline:2px solid var(--ng-primary);outline-offset:-2px;background:var(--ng-background)}.ng-cell-error{color:var(--ng-error)}.ng-pivot-cell{text-align:right;cursor:pointer}.ng-pivot-cell:hover{background:var(--ng-background)}.ng-pivot-total{font-weight:700;background:var(--ng-background)}.ng-sheet details{margin-top:16px}.ng-sheet small{display:block;margin-top:8px;color:var(--ng-muted)}

.ng-sheet-cell{position:relative}

/* Structured document editor */
.ng-editor{min-width:0}.ng-editor-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:end;margin:12px 0}.ng-editor-layout{display:grid;grid-template-columns:minmax(150px,230px) minmax(0,1fr);gap:16px}.ng-editor-outline{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;justify-content:flex-start;padding:0;min-height:0;gap:6px;max-height:330px;overflow:auto}.ng-editor-outline button{flex-shrink:0;text-align:left;white-space:normal;overflow-wrap:anywhere}.ng-editor [aria-current="true"],.ng-editor [aria-pressed="true"]{outline:2px solid var(--ng-primary);outline-offset:-2px}.ng-editor-controls{min-width:0}.ng-editor-controls small{display:block;margin-top:8px}.ng-editor-preview{border:1px solid var(--ng-border);border-radius:6px;padding:20px;overflow-wrap:anywhere;min-height:140px}.ng-editor-preview blockquote{border-left:3px solid var(--ng-primary);padding-left:16px;margin-left:0}.ng-editor-preview h1{font-size:28px}.ng-editor-preview h2{font-size:22px}.ng-editor-preview p,.ng-editor-preview li{min-height:1.4em}.ng-document-source{width:100%;max-height:240px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:650px){.ng-editor-layout{grid-template-columns:1fr}.ng-editor-outline{max-height:140px}.ng-editor-preview{padding:12px}}

.ng-diagram{min-width:0}.ng-diagram-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ng-diagram-viewport{width:100%;height:420px;overflow:auto;border:1px solid var(--ng-border);background:var(--ng-surface);border-radius:6px}.ng-diagram svg{display:block;max-width:none;touch-action:none}.ng-diagram-node{cursor:grab}.ng-diagram-node rect,.ng-diagram-node ellipse,.ng-diagram-node polygon{fill:var(--ng-surface);stroke:var(--ng-border);stroke-width:2}.ng-diagram-node.ng-selected>rect,.ng-diagram-node.ng-selected>ellipse,.ng-diagram-node.ng-selected>polygon{stroke:var(--ng-primary);stroke-width:3}.ng-diagram-node text{fill:var(--ng-text);font-size:14px;pointer-events:none}.ng-diagram-edge{cursor:pointer}.ng-diagram-edge line{stroke:var(--ng-muted);stroke-width:2}.ng-diagram-edge .ng-diagram-hit{stroke:transparent;stroke-width:14}.ng-diagram-edge.ng-selected line:not(.ng-diagram-hit){stroke:var(--ng-primary);stroke-width:3}.ng-diagram-edge text{font-size:12px;fill:var(--ng-text);paint-order:stroke;stroke:var(--ng-surface);stroke-width:4px;stroke-linejoin:round}.ng-diagram-arrow{fill:var(--ng-muted)}.ng-diagram-ghost{fill:var(--ng-primary);fill-opacity:.15;stroke:var(--ng-primary);stroke-width:2;stroke-dasharray:6 4;pointer-events:none}.ng-diagram [data-readonly=true] .ng-diagram-node{cursor:pointer}

/* Prompt composition and provider-independent AI interaction */
.ng-ai-prompt{min-width:0}.ng-ai-layout{display:grid;grid-template-columns:minmax(250px,1fr) minmax(0,1.2fr);gap:24px}.ng-ai-compose{min-width:0}.ng-prompt-box textarea{width:100%;resize:vertical;min-height:100px}.ng-prompt-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:12px 0}.ng-prompt-actions small{flex:1;color:var(--ng-muted)}.ng-prompt-actions h4{margin:0;flex:1}.ng-ai-history{display:grid;gap:6px;max-height:260px;overflow:auto}.ng-ai-history button{text-align:left;white-space:normal;overflow-wrap:anywhere}.ng-ai-history [aria-pressed=true],.ng-ai-response [aria-pressed=true]{outline:2px solid var(--ng-primary);outline-offset:-2px}.ng-ai-response{background:var(--ng-surface);border:1px solid var(--ng-border);border-radius:4px;padding:20px;min-width:0}.ng-ai-response h4{margin-top:0}.ng-ai-text{white-space:pre-wrap;overflow-wrap:anywhere;max-height:500px;overflow:auto}.ng-ai-question{color:var(--ng-muted);white-space:pre-wrap;overflow-wrap:anywhere}.ng-ai-error{color:var(--ng-error)}@media(max-width:760px){.ng-ai-layout{grid-template-columns:1fr}}

.ng-stepper ol{display:flex;flex-wrap:wrap;gap:12px;list-style:none;padding:0;margin:0}.ng-stepper li{flex:1;min-width:150px}.ng-step-button{display:flex;align-items:center;gap:10px;width:100%;padding:12px;text-align:left;border:1px solid var(--ng-border);border-radius:var(--ng-radius);background:var(--ng-surface);color:var(--ng-text);font:inherit;cursor:pointer}.ng-step-button[aria-current=step]{border-color:var(--ng-primary);box-shadow:inset 0 -3px var(--ng-primary)}.ng-step-button:disabled{opacity:.5;cursor:default}.ng-step-number{display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;border-radius:50%;border:1px solid currentColor}.ng-step-button small{display:block;color:var(--ng-muted)}.ng-stepper-vertical ol{flex-direction:column}.ng-wizard-content{padding:24px 0}.ng-wizard-actions{display:flex;justify-content:space-between;gap:12px}.ng-wizard-error{color:var(--ng-error)}

.ng-menu [role=menubar]{display:flex;gap:4px;overflow-x:auto;padding:4px;border:1px solid var(--ng-border);border-radius:var(--ng-radius);background:var(--ng-surface)}.ng-menu-vertical [role=menubar]{flex-direction:column}.ng-menu-entry{flex-shrink:0}.ng-menu-button{display:flex;justify-content:space-between;align-items:center;gap:18px;background:transparent;border:0;border-radius:var(--ng-radius);color:var(--ng-text);padding:12px 16px;font:inherit;text-align:left;cursor:pointer;width:100%;white-space:nowrap}.ng-menu-button:hover:not(:disabled),.ng-menu-button[aria-expanded=true]{background:var(--ng-subtle)}.ng-menu-button[data-selected=true]{color:var(--ng-primary)}.ng-menu-button:disabled{opacity:.45;cursor:default}.ng-menu-popup{position:fixed;margin:0;inset:auto;min-width:200px;max-width:calc(100vw - 16px);max-height:min(420px,calc(100dvh - 16px));overflow:auto;padding:5px;border:1px solid var(--ng-border);border-radius:var(--ng-radius);background:var(--ng-surface);color:var(--ng-text);box-shadow:0 8px 30px #0003}.ng-menu-popup .ng-menu-button{white-space:normal;overflow-wrap:anywhere}.ng-menu-empty{color:var(--ng-muted)}.ng-drawer{position:relative}.ng-drawer-push{display:grid;grid-template-columns:min(var(--ng-drawer-width),40%) minmax(0,1fr);gap:20px}.ng-drawer-panel{background:var(--ng-surface);border:1px solid var(--ng-border);border-radius:var(--ng-radius)}.ng-drawer-content{min-width:0}.ng-drawer-page{padding-top:20px}.ng-drawer-inner{padding:18px}.ng-drawer-inner header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.ng-drawer-inner nav{display:flex;flex-direction:column;gap:6px}.ng-drawer-item{width:100%;text-align:left;overflow-wrap:anywhere;background:transparent;border:1px solid transparent;border-radius:var(--ng-radius);color:var(--ng-text);padding:12px;font:inherit;cursor:pointer}.ng-drawer-item[aria-current=page]{background:var(--ng-subtle);border-color:var(--ng-primary);color:var(--ng-primary)}.ng-drawer-item:hover:not(:disabled){background:var(--ng-subtle)}.ng-drawer-item:disabled{opacity:.45;cursor:default}.ng-drawer-dialog{position:fixed;inset:0 auto 0 0;margin:0;padding:0;width:min(var(--ng-drawer-width),calc(100vw - 24px));max-width:none;height:100dvh;max-height:none;border:0;border-right:1px solid var(--ng-border);background:var(--ng-surface);color:var(--ng-text);overflow:auto}.ng-drawer-dialog::backdrop{background:#0008}@media(max-width:600px){.ng-drawer-push{grid-template-columns:1fr}}
.ng-button-group{display:flex;flex-wrap:wrap;gap:4px;align-items:stretch}.ng-button-group .ng-button{min-width:72px}.ng-button-group-vertical{flex-direction:column;align-items:stretch;max-width:100%}

.ng-chip-list{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.ng-chip{display:inline-flex;align-items:center;max-width:100%;border:1px solid var(--ng-border);border-radius:999px;background:var(--ng-surface);color:var(--ng-text);overflow:hidden}.ng-chip-selected{border-color:var(--ng-primary);background:var(--ng-primary);color:white}.ng-chip-label{min-width:0;overflow-wrap:anywhere;padding:7px 13px}.ng-chip button{font:inherit;color:inherit;background:transparent;border:0;cursor:pointer;min-height:36px}.ng-chip-remove{padding:5px 12px;font-size:20px!important;border-inline-start:1px solid currentColor!important}.ng-chip-disabled{opacity:.5}.ng-chip button:disabled{cursor:default}.ng-chip button:focus-visible{outline:3px solid var(--ng-text);outline-offset:-4px}.ng-chip button:hover:not(:disabled){box-shadow:inset 0 0 0 100px #80808025}

[data-ng-theme=dark] .ng-chip-selected{color:#191919}
/* Chip presentation values are shared with Flutter; selection uses a check marker plus color. */
.ng-chip{--chip-tone:var(--ng-text);--chip-bg:var(--ng-subtle);--chip-size:14px;border-color:var(--ng-border);font-size:var(--chip-size)}
.ng-chip-sm{--chip-size:12px}.ng-chip-lg{--chip-size:16px}.ng-chip-sm .ng-chip-label{padding:4px 9px}.ng-chip-lg .ng-chip-label{padding:10px 16px}
.ng-chip-rounded-sm{border-radius:4px}.ng-chip-rounded-md{border-radius:8px}.ng-chip-rounded-lg{border-radius:14px}.ng-chip-rounded-full{border-radius:999px}
.ng-chip-tone-info{--chip-tone:#174b9a;--chip-bg:#e4efff}.ng-chip-tone-success{--chip-tone:#165c38;--chip-bg:#def5e8}.ng-chip-tone-warning{--chip-tone:#694200;--chip-bg:#fff0cb}.ng-chip-tone-error{--chip-tone:#982727;--chip-bg:#ffe6e6}
[data-ng-theme=dark] .ng-chip-tone-info{--chip-tone:#b8d5ff;--chip-bg:#183861}[data-ng-theme=dark] .ng-chip-tone-success{--chip-tone:#a5e6c0;--chip-bg:#19442e}[data-ng-theme=dark] .ng-chip-tone-warning{--chip-tone:#ffe0a0;--chip-bg:#503916}[data-ng-theme=dark] .ng-chip-tone-error{--chip-tone:#ffc1c1;--chip-bg:#592828}
.ng-chip-solid{background:var(--chip-bg);color:var(--chip-tone)}.ng-chip-outline{background:var(--ng-surface);color:var(--chip-tone);border-color:var(--chip-tone)}
.ng-chip-selected,[data-ng-theme=dark] .ng-chip-selected{background:var(--chip-bg);color:var(--chip-tone);border-color:var(--chip-tone);box-shadow:inset 0 0 0 1px var(--chip-tone)}
.ng-chip-selected .ng-chip-label::before{content:'✓';margin-inline-end:6px}.ng-chip-label{display:inline-flex;align-items:center;gap:6px}.ng-chip-leading{display:inline-flex;align-items:center;flex:none}.ng-chip-leading img{width:22px;height:22px;border-radius:50%;object-fit:cover}.ng-chip button:focus-visible{outline:3px solid var(--chip-tone);outline-offset:-4px}

.ng-chip-list.ng-chip-gap-sm{gap:4px}.ng-chip-list.ng-chip-gap-md{gap:8px}.ng-chip-list.ng-chip-gap-lg{gap:12px}
/* Selection buttons: original palette and shared command/toggle appearance. */
.ng-button-style{--button-tone:var(--ng-primary);--button-on:#fff;--button-soft:var(--ng-subtle);color:var(--button-tone);border-color:var(--button-tone);background:var(--ng-surface)}
.ng-button-style.ng-button-size-sm{min-height:28px;padding:3px 8px;font-size:12px}.ng-button-style.ng-button-size-md{min-height:36px;padding:6px 12px;font-size:14px}.ng-button-style.ng-button-size-lg{min-height:44px;padding:10px 16px;font-size:16px}
.ng-button-style.ng-button-rounded-sm{border-radius:4px}.ng-button-style.ng-button-rounded-md{border-radius:6px}.ng-button-style.ng-button-rounded-lg{border-radius:12px}.ng-button-style.ng-button-rounded-full{border-radius:999px}
.ng-button-tone-base{--button-tone:var(--ng-text);--button-on:var(--ng-surface)}.ng-button-tone-secondary{--button-tone:#536176}.ng-button-tone-tertiary{--button-tone:#7040a0}.ng-button-tone-info{--button-tone:#174b9a}.ng-button-tone-success{--button-tone:#165c38}.ng-button-tone-warning{--button-tone:#805000}.ng-button-tone-error{--button-tone:#982727}.ng-button-tone-dark{--button-tone:#202938}.ng-button-tone-light{--button-tone:#475569;--button-on:#fff}.ng-button-tone-inverse{--button-tone:var(--ng-text);--button-on:var(--ng-surface)}
[data-ng-theme=dark] .ng-button-tone-secondary{--button-tone:#c1cede;--button-on:#202938}[data-ng-theme=dark] .ng-button-tone-tertiary{--button-tone:#dcc2ff;--button-on:#202938}[data-ng-theme=dark] .ng-button-tone-info{--button-tone:#b8d5ff;--button-on:#202938}[data-ng-theme=dark] .ng-button-tone-success{--button-tone:#a5e6c0;--button-on:#202938}[data-ng-theme=dark] .ng-button-tone-warning{--button-tone:#ffe0a0;--button-on:#202938}[data-ng-theme=dark] .ng-button-tone-error{--button-tone:#ffc1c1;--button-on:#202938}
.ng-button-style.ng-button-fill-solid,.ng-button-style.ng-selected{background:var(--button-tone);color:var(--button-on);border-color:var(--button-tone)}
.ng-button-style.ng-button-fill-flat:not(.ng-selected),.ng-button-style.ng-button-fill-link:not(.ng-selected),.ng-button-style.ng-button-fill-clear:not(.ng-selected){background:transparent;border-color:transparent}
.ng-button-style.ng-button-fill-link{text-decoration:underline}.ng-button-style.ng-button-fill-clear:not(.ng-selected){color:var(--ng-text)}
.ng-button-style:hover:not(:disabled){background:var(--button-soft);color:var(--button-tone)}.ng-button-style.ng-selected{box-shadow:inset 0 0 0 2px currentColor}

[data-ng-theme=dark] .ng-button-tone-dark,[data-ng-theme=dark] .ng-button-tone-light{--button-tone:#e5e7eb;--button-on:#202938}
[data-ng-theme=dark] .ng-button-tone-primary{--button-on:#202938}

/* Navigation templates and logical start/end positioning. */
.ng-navigation-caption{display:inline-flex;align-items:center;gap:10px;min-width:0}.ng-menu-button,.ng-drawer-item{text-align:start}
.ng-menu-separator{border-top:1px solid var(--ng-border);margin:6px 4px}.ng-menu [role=menubar][aria-orientation=horizontal]>.ng-menu-entry:has(>.ng-menu-separator){display:flex;align-items:stretch}.ng-menu [role=menubar][aria-orientation=horizontal]>.ng-menu-entry>.ng-menu-separator{border-top:0;border-inline-start:1px solid var(--ng-border);margin:4px 6px}
.ng-drawer-separator{width:100%;border:0;border-top:1px solid var(--ng-border);margin:8px 0}.ng-drawer-footer{margin-top:20px;padding-top:14px;border-top:1px solid var(--ng-border)}
.ng-drawer-dialog{inset-inline-start:0;inset-inline-end:auto;border-right:0;border-inline-end:1px solid var(--ng-border)}
.ng-drawer[data-position=end]>.ng-drawer-dialog{inset-inline-start:auto;inset-inline-end:0;border-inline-end:0;border-inline-start:1px solid var(--ng-border)}
.ng-drawer-push[data-position=end]{grid-template-columns:minmax(0,1fr) min(var(--ng-drawer-width),40%)}
.ng-drawer-push[data-position=end]>.ng-drawer-panel{grid-column:2;grid-row:1}.ng-drawer-push[data-position=end]>.ng-drawer-content{grid-column:1;grid-row:1}
@media(max-width:600px){.ng-drawer-push[data-position=end]{grid-template-columns:1fr}.ng-drawer-push[data-position=end]>.ng-drawer-panel,.ng-drawer-push[data-position=end]>.ng-drawer-content{grid-column:auto;grid-row:auto}}

/* Wizard layout uses logical start/end and stacks its rail on narrow screens. */
.ng-step-button{text-align:start}.ng-stepper[data-display-mode=indicators] li{flex:0 0 auto;min-width:56px}.ng-stepper[data-display-mode=indicators] .ng-step-button{justify-content:center}
.ng-wizard{display:flex;flex-direction:column;gap:12px}.ng-wizard-body{min-width:0}.ng-wizard[data-position=bottom]>.ng-wizard-stepper{order:2}
.ng-wizard[data-position=start],.ng-wizard[data-position=end]{display:grid;grid-template-columns:minmax(150px,240px) minmax(0,1fr);gap:24px;align-items:start}
.ng-wizard[data-position=end]{grid-template-columns:minmax(0,1fr) minmax(150px,240px)}.ng-wizard[data-position=end]>.ng-wizard-stepper{grid-column:2;grid-row:1}.ng-wizard[data-position=end]>.ng-wizard-body{grid-column:1;grid-row:1}
@media(max-width:600px){.ng-wizard[data-position=start],.ng-wizard[data-position=end]{display:flex;flex-direction:column}.ng-wizard-stepper{min-width:0;width:100%}}

/* Text adornments remain siblings of the labelled editor. */
.ng-text-editor{display:flex;align-items:center;gap:8px;min-width:0}.ng-text-editor>.ng-input{min-width:0;flex:1}.ng-input-adornment{flex-shrink:0;color:var(--ng-muted)}.ng-field>small{color:var(--ng-muted)}.ng-input[readonly]{background:var(--ng-bg)}
.ng-form-fields{border:0;padding:0;margin:0;min-width:0}.ng-form-error{color:var(--ng-error)}

.ng-text-field{margin-block-end:12px}
.ng-selection-actions{display:flex;flex-wrap:wrap;gap:8px;margin-block:8px}.ng-combo-editor{display:flex;gap:8px;min-width:0}.ng-combo-editor>.ng-input{flex:1;min-width:0}.ng-remove-mark{margin-inline-start:6px}

.ng-data-table input[aria-checked="mixed"] { appearance:none; border:1px solid var(--ng-primary);border-radius:2px;background:linear-gradient(currentColor,currentColor) center / 9px 2px no-repeat var(--ng-primary);color:var(--ng-on-primary,white); }

.ng-gauge-ranges{position:relative;height:5px;margin:-8px 0 8px}.ng-gauge-ranges:empty{display:none}.ng-gauge-ranges span{position:absolute;height:100%}.ng-gauge-legend{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:12px;font-size:12px}.ng-gauge-legend span{display:inline-flex;gap:6px;align-items:center}.ng-gauge-legend i{width:10px;height:10px;flex-shrink:0;border-radius:2px}.ng-gauge-status{margin:8px 0;font-weight:600}.ng-gauge-heading{flex-wrap:wrap;overflow-wrap:anywhere}

.ng-schedule-event:disabled{cursor:default;color:inherit;opacity:.75}.ng-schedule-single{display:grid;grid-template-columns:1fr}.ng-schedule-event strong{overflow-wrap:anywhere}
.ng-sheet-protected{display:block;font-size:10px;opacity:.8}.ng-sheet-cell{min-height:40px}

.ng-pivot-cell:disabled{color:inherit;cursor:default;opacity:1}
.ng-diagram [aria-disabled=true]{cursor:default}

/* Automatic TextArea sizing owns height; fixed mode retains native resizing. */
textarea.ng-textarea-auto{box-sizing:border-box;line-height:1.5;resize:none}

/* Text appearance: medium/theme inherit the established density and theme. */
.ng-text-size-small>.ng-input{font-size:13px;min-height:30px;padding:4px 8px}
.ng-text-size-large>.ng-input{font-size:18px;min-height:48px;padding:10px 16px}
.ng-text-size-small>.ng-button{font-size:13px;min-height:30px;padding:4px 8px}
.ng-text-size-large>.ng-button{font-size:18px;min-height:48px;padding:10px 16px}
.ng-text-fill-outline>.ng-input{background:transparent}
.ng-text-fill-filled>.ng-input{background:var(--ng-subtle)}
.ng-text-size-small>textarea.ng-input:not(.ng-textarea-auto){min-height:60px}
.ng-text-size-large>textarea.ng-input:not(.ng-textarea-auto){min-height:104px}
.ng-text-editor>textarea.ng-textarea-auto{min-height:0}

.ng-form-container{container-type:inline-size;container-name:ng-form-columns}
.ng-form-layout{display:grid;gap:var(--ng-form-gap);grid-template-columns:repeat(var(--ng-form-count,1),minmax(0,1fr));align-items:start}
.ng-form-cell{min-width:0}
.ng-form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:24px}

.ng-validation-summary{color:var(--ng-error)}
.ng-validation-summary ul{padding-inline-start:24px}

.ng-text-rounded-none>.ng-input{border-radius:0}
.ng-text-rounded-small>.ng-input{border-radius:4px}
.ng-text-rounded-medium>.ng-input{border-radius:8px}
.ng-text-rounded-large>.ng-input{border-radius:16px}
.ng-text-rounded-full>.ng-input{border-radius:9999px}
.ng-text-fill-flat>.ng-input{background:var(--ng-subtle)}
.ng-text-fill-flat>.ng-input:not(:focus):not(.invalid){border-color:transparent}

.ng-form-sections{display:flex;flex-direction:column;gap:24px;min-width:0}
.ng-form-section{margin:0;padding:16px;min-width:0;border:1px solid var(--ng-border);border-radius:8px}
.ng-form-section>legend{padding:0 8px;font-weight:700}
.ng-form-section-description{margin:0 0 16px;color:var(--ng-muted)}

.ng-form-section .ng-form-section{padding:12px}

.ng-section-toggle{font-weight:700;padding:4px 8px;gap:8px}

.ng-range-presets{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 16px}.ng-range-presets [aria-pressed=true]{outline:2px solid var(--ng-primary);outline-offset:-2px}

.ng-text-counter{display:block;overflow-wrap:anywhere}.ng-text-counter[data-over-limit=true]{color:var(--ng-error)}

.ng-grid-editor { margin:16px 0; padding:20px; border:1px solid var(--ng-border); border-radius:var(--ng-radius); background:var(--ng-surface); display:grid; gap:12px; max-width:640px; }
.ng-grid-editor h3 { margin:0; }
.ng-grid-editor [role="alert"] { color:var(--ng-error); }

/* Virtual rows have a fixed extent; templates must fit that extent. */
.ng-virtual-table .ng-data-table { table-layout:fixed; min-width:600px; }
.ng-virtual-table .ng-data-table thead { position:sticky; top:0; z-index:1; }
.ng-virtual-table .ng-data-table tbody tr:not([aria-hidden=true]) { height:var(--ng-row-height); }
.ng-virtual-table .ng-data-table td,.ng-virtual-table .ng-data-table tbody th { height:var(--ng-row-height); box-sizing:border-box; padding-block:0; overflow:hidden; text-overflow:ellipsis; }
.ng-virtual-tree .ng-tree-row { height:var(--ng-row-height); min-height:var(--ng-row-height); box-sizing:border-box; white-space:nowrap; overflow:hidden; }

.ng-virtual-table .ng-data-table thead th:has(>input[type=checkbox]) { width:48px; }
