/* Quadro design tokens. GetTheme overrides these via quadro-theme.js. */
:root {
    --q-primary:#fea916; --q-on-primary:#111827; --q-background:#f3f5f8;
    --q-surface:#fff; --q-text:#263449; --q-muted:#68778b; --q-border:#dfe5ed;
    --q-success:#18794e; --q-danger:#bc3545; --q-radius:10px; --q-font-size:14px;
    --q-soft:color-mix(in srgb,var(--q-surface) 94%,var(--q-text));
    --q-accent-soft:color-mix(in srgb,var(--q-primary) 13%,var(--q-surface));
    --q-shadow:0 12px 40px #16243a18;
    --bs-primary:var(--q-primary); --bs-success:var(--q-success); --bs-danger:var(--q-danger); --bs-body-color:var(--q-text);
    --bs-body-bg:var(--q-background); --bs-body-font-size:var(--q-font-size);
    --bs-border-color:var(--q-border); --bs-border-radius:var(--q-radius);
}
body { font-family:Inter,"Segoe UI",sans-serif; color:var(--q-text); background:var(--q-background); font-size:var(--q-font-size); }
body .top-row { background:var(--q-surface); border-color:var(--q-border); box-shadow:0 2px 12px #16243a06; }
body .btn { border-radius:calc(var(--q-radius) * .65); font-size:inherit; font-weight:550; padding:.45rem .8rem; box-shadow:none; }
body .btn-primary { background:var(--q-primary)!important; border-color:var(--q-primary)!important; color:var(--q-on-primary)!important; }
body .btn-primary:hover { filter:brightness(.96); }
body .btn-secondary { background:var(--q-surface)!important; color:var(--q-text)!important; border-color:var(--q-border)!important; }
body .btn-success { --bs-btn-bg:var(--q-success); --bs-btn-border-color:var(--q-success); --bs-btn-hover-bg:var(--q-success); --bs-btn-hover-border-color:var(--q-success); }
body .btn-danger { --bs-btn-bg:var(--q-danger); --bs-btn-border-color:var(--q-danger); --bs-btn-hover-bg:var(--q-danger); --bs-btn-hover-border-color:var(--q-danger); }
body :is(input,select,textarea):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]) {
    background:var(--q-surface); color:var(--q-text); border:1px solid var(--q-border); border-radius:calc(var(--q-radius) * .5); padding:.4rem .55rem; min-height:34px; font:inherit;
}
body :is(button,input,select,textarea,summary,a):focus-visible { outline:3px solid color-mix(in srgb,var(--q-primary) 65%,transparent); outline-offset:2px; }
body input[type=checkbox] { accent-color:var(--q-primary); }
body .text-muted { color:var(--q-muted)!important; }
body .alert-danger { --bs-alert-color:var(--q-danger); --bs-alert-bg:color-mix(in srgb,var(--q-danger) 8%,var(--q-surface)); --bs-alert-border-color:color-mix(in srgb,var(--q-danger) 35%,var(--q-surface)); }
body .alert-success { --bs-alert-color:var(--q-success); --bs-alert-bg:color-mix(in srgb,var(--q-success) 8%,var(--q-surface)); --bs-alert-border-color:color-mix(in srgb,var(--q-success) 35%,var(--q-surface)); }
body .invalid { outline-color:var(--q-danger); }
body .modal-backdrop { background: #15233766; backdrop-filter:blur(3px); }
body .modal-content { background:var(--q-surface); color:var(--q-text); border:1px solid var(--q-border); border-radius:var(--q-radius); box-shadow:var(--q-shadow); }
body .dialog-body { padding:1.5rem; }
body .dialog-footer { display:flex; justify-content:flex-end; gap:.5rem; padding:1rem 1.5rem; border-top:1px solid var(--q-border); background:var(--q-soft); }
.data-instance-root h3 { font-size:1.3rem; font-weight:650; letter-spacing:-.025em; color:var(--q-text); }
body .data-tabs > .nav-tabs { gap:.25rem; border-bottom:1px solid var(--q-border); flex-wrap:wrap; padding-bottom:0; }
body .data-tabs > .nav-tabs .nav-link { border:0; border-bottom:3px solid transparent; border-radius:0; padding:.8rem 1rem; background:transparent; color:var(--q-muted)!important; }
body .data-tabs > .nav-tabs .nav-link.active { color:var(--q-text)!important; border-bottom-color:var(--q-primary); background:var(--q-accent-soft); font-weight:650; }
.q-fields-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr)); gap:1rem 1.5rem; padding:.5rem 0 1rem; align-items:start; }
.q-field { min-width:0; padding:.65rem .8rem; border:1px solid var(--q-border); border-radius:calc(var(--q-radius) * .75); background:var(--q-soft); }
.q-value-row { display:flex; flex-direction:column; gap:.4rem; min-width:0; }
.q-field-label { color:var(--q-muted); font-size:.85em; font-weight:600; }
.q-field-control { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; width:100%; min-width:0; }
.q-field-control > input:not([type=checkbox]), .q-field-control > select { flex:1; width:100%; min-width:0; }
.q-field-invalid { border-color:var(--q-danger); }
.q-validation { display:block; color:var(--q-danger); margin-top:.4rem; }
body .data-instance-root .accordion-item { background:var(--q-surface); border-color:var(--q-border); border-radius:var(--q-radius); margin:.65rem 0; }
body .accordion-button { background: var(--q-soft); color: var(--q-text); font-size: var(--q-font-size); font-weight: 600; border-radius: var(--q-radius);}
body .accordion-button:not(.collapsed) { background:var(--q-accent-soft); color:var(--q-text); box-shadow:inset 0 -1px var(--q-border); }
body .table { --bs-table-bg:var(--q-surface); --bs-table-color:var(--q-text); --bs-table-striped-bg:var(--q-soft); --bs-table-hover-bg:var(--q-accent-soft); --bs-table-border-color:var(--q-border); font-size:inherit; }
body .table > thead > tr > th { background:var(--q-soft); color:var(--q-muted); font-size:.85em; font-weight:650; padding:.8rem; border-bottom:1px solid var(--q-border); }
body .table > tbody > tr > td { padding:.6rem .8rem; vertical-align:middle; border-left:0; border-right:0; }
body .grid-container { background:var(--q-surface); border:1px solid var(--q-border); border-radius:var(--q-radius); padding:.6rem; }
body .header-container { margin-bottom:1rem; gap:1rem; align-items:center; }
body .header-container { display:flex; flex-wrap:wrap; justify-content:space-between; padding:.5rem 0; }
.button-group { display:flex; flex-wrap:wrap; gap:.4rem; }
.page-title { margin:0; }
.modal-backdrop { position:fixed; inset:0; width:100vw; height:100dvh; display:flex; align-items:flex-start; justify-content:center; overflow-y:auto; padding:2rem; z-index:1000; }
.modal-content { position:relative; padding:1rem 2rem; margin:1rem; width:95%; height:95%; max-height:95dvh; display:flex; flex-direction:column; }
.dialog-body { flex:1 1 auto; overflow-y:auto; min-height:0; }
.modal-content.q-default-modal { max-width:1100px; height:min(720px,calc(100dvh - 6rem)); padding:0; }
body .q-field-control .btn-primary { background:var(--q-surface)!important; border-color:var(--q-border)!important; color:var(--q-text)!important; }
.dialog-footer { flex:0 0 auto; }
.dropdown-menu { z-index:2000; }
.table-responsive { overflow-x:auto; }
.table-responsive .dropdown { position:static; }
.page-link { --bs-pagination-color:var(--q-text); --bs-pagination-active-bg:var(--q-primary); --bs-pagination-active-color:var(--q-on-primary); --bs-pagination-active-border-color:var(--q-primary); --bs-pagination-border-color:var(--q-border); }
.btn-outline-primary { --bs-btn-color:var(--q-text); --bs-btn-border-color:var(--q-border); --bs-btn-hover-bg:var(--q-primary); --bs-btn-hover-color:var(--q-on-primary); --bs-btn-hover-border-color:var(--q-primary); }
body .page-title { color:var(--q-text); font-size:1.5rem; font-weight:650; letter-spacing:-.025em; }
.q-settings { position:relative; }
.q-settings > summary { cursor:pointer; list-style:none; font-size:1.5rem; color:var(--q-muted); padding:.25rem .5rem; border-radius:var(--q-radius); }
.q-settings > summary::-webkit-details-marker { display:none; }
.q-settings[open] > summary { background:var(--q-accent-soft); color:var(--q-text); }
.q-settings-panel { position:absolute; right:0; top:calc(100% + .75rem); width:min(290px,85vw); padding:1.2rem; background:var(--q-surface); border:1px solid var(--q-border); box-shadow:var(--q-shadow); border-radius:var(--q-radius); z-index:1100; }
.q-settings-toggle { display:flex; align-items:center; gap:.6rem; margin:1rem 0 .5rem; cursor:pointer; }
.q-settings-panel p { color:var(--q-muted); font-size:.85em; margin:0; line-height:1.5; }
@media(max-width:700px) { body .dialog-body { padding:1rem; } .q-fields-grid { grid-template-columns:1fr; gap:.65rem; } .modal-backdrop { padding:.5rem; } .modal-content { margin:0; padding:.5rem; width:100%; max-height:calc(100dvh - 1rem); } .modal-content.q-default-modal { height:calc(100dvh - 1rem); } }
@media(prefers-reduced-motion:reduce) { .accordion-collapse,.btn { transition:none!important; } }

/* Value controls shrink inside grids. Clip the displayed value, never a selection dialog. */
.q-fields-grid > *, .q-field-control, .erp-field, .erp-fields > * { min-width: 0; max-width: 100%; }
.q-compact-value, .q-multi-value { display: flex; align-items: center; gap: .35rem; min-width: 0; max-width: 100%; }
.q-value-input { field-sizing: content; width: auto; min-width: 0; max-width: 100%; flex: 0 1 auto; text-overflow: ellipsis; }
.q-value-text { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.q-value-unit { flex: 0 0 auto; color: var(--q-muted); }
.q-multi-selection { flex: 0 1 auto; min-width: 0; max-width: 100%; }
.q-multi-trigger { display: block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.q-multi-value > .dropdown { min-width: 0; max-width: 100%; flex: 0 1 auto; }
.q-multi-value .dropdown-toggle { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.q-data-list-table { table-layout: fixed; width: 100%; max-width: 100%; }
.q-data-list-table > :not(caption) > * > * { min-width: 0; }
.q-data-list-table th { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.q-data-list-table td input { max-width: 100%; min-width: 0; }
.q-data-list-table .q-compact-value, .q-data-list-table .q-multi-value { width: 100%; }
[aria-invalid="true"].q-value-input { border-color: var(--q-danger); }
