/* Shared controls: default, hover, focus, selected, mixed, invalid and disabled. */
.portal-page { --control-border:var(--border-default); --control-border-hover:var(--border-strong); --control-soft:var(--surface-subtle); --control-selected:var(--surface-hover); --control-accent:var(--text-primary); --control-focus:var(--field-focus-border,#c4cfda); }
.portal-page .portal-button { gap:8px; border-color:var(--border-default); border-radius:8px; background:#fff; color:var(--text-secondary); box-shadow:0 1px 2px #00000003; transition:background var(--ui-motion),border-color var(--ui-motion),box-shadow var(--ui-motion),color var(--ui-motion); }
.portal-page .portal-button:not(:disabled):hover { background:var(--surface-subtle); border-color:var(--border-strong); box-shadow:0 1px 3px #00000006; }
.portal-page .portal-button:not(:disabled):active { filter:none; background:var(--surface-selected); box-shadow:none; }
.portal-page .portal-button.primary,.portal-page .portal-button.accent { background:var(--ui-ink); border-color:var(--ui-ink); color:#fff; box-shadow:0 1px 2px #0000000a; }
.portal-page .portal-button.primary:not(:disabled):hover,.portal-page .portal-button.accent:not(:disabled):hover { background:#343a43; border-color:#343a43; }
.portal-page .portal-button.primary:not(:disabled):active,.portal-page .portal-button.accent:not(:disabled):active { background:var(--text-primary); }
.portal-page .portal-button.ghost { background:transparent; border-color:transparent; box-shadow:none; }
.portal-page .portal-button:disabled:not([aria-busy="true"]) { box-shadow:none; cursor:default; }
.portal-page .portal-text-button:not(:disabled):hover { color:var(--ui-ink); text-decoration:underline; text-underline-offset:4px; }
.portal-page .portal-icon-button:not(:disabled):hover { color:var(--ui-ink); background:var(--ui-hover); }
.portal-page :is(button,a,summary,[tabindex]):focus-visible { outline:2px solid var(--text-tertiary); outline-offset:3px; }
.portal-page :is(h1,h2,h3)[tabindex="-1"]:focus { outline:none; }
.portal-page :is(.portal-input,.portal-select,.portal-textarea) { border:1px solid var(--control-border); border-radius:var(--radius-control); background-color:#fff; padding:9px var(--ui-field-space); line-height:1.6; transition:border-color 120ms,box-shadow 120ms,background-color 120ms; }
.portal-page :is(.portal-input,.portal-select,.portal-textarea):hover:not(:disabled) { border-color:var(--control-border-hover); }
.portal-page :is(.portal-input,.portal-textarea)::placeholder { color:var(--text-tertiary); }
.portal-page :is(.portal-input,.portal-select,.portal-textarea)[aria-invalid="true"] { border-color:#b3442c; box-shadow:0 0 0 3px #b3442c0b; }
.portal-page :is(.portal-input,.portal-select,.portal-textarea):disabled { background-color:var(--surface-subtle); color:var(--text-tertiary); cursor:not-allowed; }
.portal-page .portal-label { font-size:var(--font-small); font-weight:500; color:var(--text-primary); }
.portal-page .portal-field-hint { font-size:var(--font-caption); color:var(--text-tertiary); line-height:1.7; }
.portal-page .portal-select { appearance:none; padding-right:40px; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' viewBox='0 0 24 24'%3E%3Cpath d='m7 10 5 5 5-5' stroke='%23585858' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 13px center; }
.portal-page input[type="checkbox"] { appearance:none; display:inline-grid; place-content:center; box-sizing:border-box; flex:0 0 18px; width:18px; height:18px; padding:0; margin:0; border:1.5px solid #9aa1aa; border-radius:5px; background:#fff; cursor:pointer; transition:border-color 120ms,background-color 120ms,box-shadow 120ms; }
.portal-page input[type="checkbox"]::after { content:""; width:8px; height:4px; border:solid #fff; border-width:0 0 1.7px 1.7px; transform:translateY(-1px) rotate(-45deg) scale(0); }
.portal-page input[type="checkbox"]:checked,.portal-page input[type="checkbox"]:indeterminate { background:var(--text-primary); border-color:var(--text-primary); }
.portal-page input[type="checkbox"]:checked::after { transform:translateY(-1px) rotate(-45deg) scale(1); }
.portal-page input[type="checkbox"]:indeterminate::after { width:8px; height:0; border-width:0 0 2px; transform:none; }
.portal-page input[type="checkbox"]:hover:not(:disabled) { border-color:var(--text-primary); box-shadow:0 0 0 3px #24242408; }
.portal-page input[type="checkbox"]:disabled { opacity:.45; cursor:default; }
.select-menu {position:relative;display:inline-block;max-width:100%;font-size:13px}
.select-menu.is-field {display:block;width:100%;min-width:0}
.select-menu.is-field .select-menu-trigger {width:100%;min-height:var(--ui-size-field);padding:9px var(--ui-field-space);border-radius:var(--radius-control);text-align:left;font-weight:400}
.select-menu.is-field .select-menu-trigger::after {margin-left:auto}
.select-menu.is-compact .select-menu-trigger {min-height:var(--ui-size-compact);padding:4px 8px;font-size:var(--font-caption);font-weight:400}
.select-menu-trigger {display:flex;align-items:center;gap:12px;min-height:var(--ui-size-control);padding:7px var(--ui-field-space);border:1px solid #dce0e5;border-radius:var(--radius-control);background:#fff;color:var(--text-secondary);font:inherit;font-weight:500;line-height:1.5;cursor:pointer;transition:border-color .15s,background .15s}
.select-menu-trigger::after {content:"";width:6px;height:6px;margin-left:4px;margin-top:-3px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .15s;flex:none}
.select-menu-trigger:hover,.select-menu-trigger[aria-expanded="true"] {border-color:#a7afb9;background:#fafbfc}
.select-menu-trigger[aria-expanded="true"]::after {transform:translateY(3px) rotate(225deg)}
.select-menu-value {overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.select-menu-popup {position:absolute;inset:calc(100% + 7px) auto auto 0;z-index:100;box-sizing:border-box;min-width:max(100%,168px);max-width:calc(100vw - 24px);max-height:280px;overflow-y:auto;overscroll-behavior:contain;padding:5px;border:1px solid #e0e4e9;border-radius:9px;background:#fff;box-shadow:0 8px 24px #17223414,0 2px 5px #17223406;animation:select-menu-enter var(--motion-menu) var(--motion-ease)}
.select-menu-option {display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;min-height:38px;padding:9px 10px;border:0;border-radius:5px;background:transparent;color:#58616e;font:inherit;line-height:1.5;text-align:left;cursor:pointer}
.select-menu-option::after {content:"";width:9px;height:5px;border-left:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:translateY(-1px) rotate(-45deg);opacity:0;flex:none}
.select-menu-option[aria-selected="true"] {color:#232a33;font-weight:500;background:#edf1f5}
.select-menu-option[aria-selected="true"]::after {opacity:1}
.portal-page .select-menu-option:hover,.portal-page .select-menu-option:focus-visible {background:#f0f2f4;outline:0}
.select-menu-trigger:disabled,.select-menu-option:disabled {cursor:default;opacity:.45}
@keyframes select-menu-enter {from {opacity:0;transform:translateY(-3px)} to {opacity:1;transform:translateY(0)}}
@media (max-width:760px) {.select-menu-trigger,.select-menu-option {min-height:42px}.select-menu-option {padding-block:11px}}
@media (prefers-reduced-motion:reduce) {.select-menu-popup {animation:none}.select-menu-trigger,.select-menu-trigger::after {transition:none}}
@media (forced-colors:active) {.select-menu-popup,.select-menu-trigger {border-color:CanvasText}.portal-page .select-menu-option:focus-visible {outline:2px solid Highlight;outline-offset:-2px}.select-menu-option[aria-selected="true"] {color:Highlight}}
.dashboard-actions { display:flex; align-items:center; flex-wrap:wrap; gap:9px; }
.dashboard-actions .portal-button { min-height:38px; font-size:var(--font-small); }
.portal-page .portal-button.ghost { border-color:transparent; background:transparent; color:var(--text-secondary); }
.portal-page .portal-button.ghost:hover { border-color:var(--border-subtle); background:var(--surface-subtle); }
.field-label-row { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.field-label-row>span { color:var(--text-tertiary); font-size:var(--font-caption); }
.field-preset-row { display:flex; align-items:center; flex-wrap:wrap; gap:7px; margin-top:9px; }
.field-preset-row button { border:1px solid var(--border-default); background:#fff; color:var(--text-secondary); border-radius:8px; font-size:var(--font-caption); min-height:32px; padding:6px 12px; }
.field-preset-row button:hover { border-color:var(--text-tertiary); background:var(--surface-subtle); }
.field-preset-row button[aria-pressed="true"] { border-color:var(--text-primary); color:var(--text-primary); background:var(--surface-hover); }
.portal-page .filter-tabs { background:var(--surface-hover); border:1px solid var(--border-subtle); border-radius:10px; padding:3px; }
.portal-page .filter-tabs button { min-height:32px; border-radius:7px; padding:6px 13px; }
.portal-page .filter-tabs button[aria-pressed="true"] { background:#fff; color:var(--text-primary); box-shadow:0 1px 4px #0000000c; }
@media (max-width:640px) {
  .dashboard-title:has(.dashboard-actions) { flex-wrap:wrap; gap:14px; }
  .dashboard-actions { width:100%; }
  .dashboard-actions .portal-button { min-height:40px; }
  .portal-page :is(.portal-input,.portal-select,.portal-textarea) { font-size:var(--font-reading); }
}
@media (forced-colors:active) {
  .portal-page input[type="checkbox"] { appearance:auto; accent-color:Highlight; }
  .portal-page input[type="checkbox"]::after { display:none; }
  .portal-page .portal-select { appearance:auto; background-image:none; }
}
