/* Common visual language for all council, management and resident screens. */
:root {
  --ui-control-h:42px;
  --ui-radius:12px;
  --ui-border:#d9e1eb;
  --ui-soft:#f5f8fc;
  --ui-selected:#edf4fe;
  --ui-focus:0 0 0 3px rgba(42,120,214,.16);
  --ui-popup-shadow:0 12px 32px rgba(16,38,77,.16),0 2px 6px rgba(16,38,77,.05);
}
button,input,select { font:inherit; }
button,a,input,select { -webkit-tap-highlight-color:transparent; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible {
  outline:2px solid var(--blue);outline-offset:3px;
}
.field input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=file]),
.password-reset input,.period-form input,.table-toolbar input[type=search],.ui-select-search {
  height:var(--ui-control-h);min-height:var(--ui-control-h);min-width:0;
  padding:0 12px;border:1px solid var(--ui-border);border-radius:var(--ui-radius);
  background:#fff;color:var(--ink);font-size:14px;line-height:1.4;
  transition:border-color .15s,box-shadow .15s,background .15s;
}
.field input:not([type=hidden]):not([type=checkbox]):focus,
.password-reset input:focus,.period-form input:focus,.table-toolbar input[type=search]:focus,.ui-select-search:focus {
  border-color:var(--blue);box-shadow:var(--ui-focus);outline:none;background:#fff;
}
input::placeholder { color:#8995a7;opacity:1; }
input[type=checkbox],input[type=radio] { width:16px;height:16px;min-height:0;flex:none;accent-color:var(--blue); }
.field label,.period-form label { color:var(--ink2);font-weight:700; }
.btn-primary,.btn-tool,.btn-page,.btn-period,.btn-more,.group-link {
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  min-height:var(--ui-control-h);border-radius:var(--ui-radius);padding:9px 15px;
  font-size:13px;font-weight:700;line-height:1.4;text-decoration:none;
  transition:background .15s,border-color .15s,box-shadow .15s;color:var(--ink2);
}
.btn-primary { border:1px solid var(--navy);background:var(--navy);color:#fff;box-shadow:0 2px 3px rgba(16,38,77,.09); }
.btn-primary:hover:not(:disabled) { background:var(--navy2);border-color:var(--navy2); }
.btn-tool,.btn-page,.btn-period,.btn-more,.group-link { border:1px solid var(--ui-border);background:#fff; }
.btn-tool:hover:not(:disabled),.btn-page:hover:not(:disabled),.btn-period:hover:not(:disabled),.btn-more:hover:not(:disabled),.group-link:hover:not(:disabled) {
  color:var(--blue);border-color:#a7c8f1;background:var(--ui-selected);
}
.btn-full { display:flex;width:100%; }
.btn-link { min-height:32px;border-radius:8px; }
.btn-pdf,.btn-delete {
  display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:5px 11px;border:1px solid transparent;border-radius:8px;line-height:1.4;
}
.btn-pdf { color:var(--blue);background:var(--ui-selected);border-color:#d8e7fb; }
.btn-delete { color:#b42318;background:#fff4f2;border-color:#f2d5d1; }
.btn-logout { min-height:32px;border-radius:9px; }
button:disabled { opacity:.5;cursor:not-allowed; }
.btn-page { min-width:72px; }
.card,.resident-document-card { border:1px solid #e1e7ef;border-radius:18px;box-shadow:0 4px 18px rgba(16,38,77,.045); }
.card h2 { color:var(--ink);font-weight:800; }
.zone-card,.group-tile,.overview-total { border-color:#e1e7ef;border-radius:14px; }
.filter-bar { border:1px solid #e7edf5;border-radius:var(--ui-radius);background:var(--ui-soft); }
.chip,.sort-chip {
  min-height:36px;padding:7px 12px;border:1px solid var(--ui-border);border-radius:10px;background:#fff;color:var(--ink2);font-weight:700;
}
.chip[aria-pressed=true],.sort-chip[aria-pressed=true] { background:var(--ui-selected);color:var(--blue);border-color:#a7c8f1; }
.record-tabs { gap:6px;padding:6px;margin:0 0 16px;flex-wrap:wrap;border:1px solid #e7edf5;border-radius:var(--ui-radius);background:var(--ui-soft);overflow:visible; }
.record-tab { min-height:36px;margin:0;padding:8px 12px;border:1px solid transparent;border-radius:9px;color:var(--ink2);font-size:13px; }
.record-tab[aria-selected=true] { border-color:#dbe5f1;background:#fff;color:var(--blue);box-shadow:0 1px 3px rgba(16,38,77,.06); }
.tab-count { background:#eaf0f8;color:var(--ink2); }
.table-toolbar { gap:12px;align-items:center; }
.toolbar-actions { align-items:center;flex-wrap:wrap;gap:8px; }
.signature-option { display:inline-flex;align-items:center;gap:7px;min-height:var(--ui-control-h); }
.table-scroll { border-radius:12px; }
.table-card th { background:#f7f9fc;color:#627187; }
.table-card td { border-bottom-color:#edf1f6; }
.sort-button { min-height:38px; }
.pagination { gap:10px; }
.roster-dialog { border:1px solid var(--ui-border);border-radius:18px;box-shadow:var(--ui-popup-shadow); }
.roster-close { display:inline-flex;align-items:center;justify-content:center;min-height:34px;border:1px solid var(--ui-border);background:#fff;line-height:1; }
.roster-list { border-color:var(--ui-border);border-radius:var(--ui-radius); }
.notice,.resident-privacy-note { border-radius:var(--ui-radius); }
.hero-copy { flex:1;min-width:0; }
.ui-select { position:relative;display:inline-block;min-width:0;max-width:100%;vertical-align:middle; }
.field>.ui-select { display:block;width:100%; }
.ui-select--hero { display:block;width:100%;max-width:470px; }
.ui-select--compact { min-width:150px;max-width:250px; }
.ui-select-trigger {
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  width:100%;min-height:var(--ui-control-h);padding:9px 12px;
  border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:#fff;color:var(--ink);font-size:14px;line-height:1.4;text-align:left;cursor:pointer;
}
.ui-select-trigger::after { content:'';width:7px;height:7px;flex:none;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);opacity:.65; }
.ui-select-value { min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.ui-select-trigger:hover:not(:disabled) { border-color:#a7c8f1; }
.ui-select.is-open .ui-select-trigger,.ui-select-trigger:focus-visible { border-color:var(--blue);box-shadow:var(--ui-focus);outline:none; }
.ui-select-trigger[aria-invalid=true] { border-color:var(--danger); }
.ui-select--hero .ui-select-trigger { border-color:rgba(255,255,255,.28);background:rgba(255,255,255,.09);color:#fff; }
.ui-select--hero .ui-select-trigger:hover,.ui-select--hero.is-open .ui-select-trigger { border-color:rgba(255,255,255,.55);background:rgba(255,255,255,.15); }
.ui-select--compact .ui-select-trigger { min-height:36px;font-size:12.5px;border-radius:10px;padding:7px 10px; }
.ui-select-panel {
  position:fixed;z-index:1000;min-width:180px;max-width:calc(100vw - 24px);padding:6px;
  border:1px solid var(--ui-border);border-radius:var(--ui-radius);background:#fff;box-shadow:var(--ui-popup-shadow);
}
.ui-select-search { width:100%;margin:0 0 6px;border-radius:9px; }
.ui-select-options { max-height:288px;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin; }
.ui-select-option {
  position:relative;display:block;width:100%;min-height:40px;margin:0;padding:10px 34px 10px 12px;
  border:0;border-radius:8px;background:#fff;color:var(--ink);font-size:13px;line-height:1.5;text-align:left;white-space:normal;overflow-wrap:anywhere;cursor:pointer;
}
.ui-select-option[aria-selected=true] { color:var(--blue);background:#f3f7fd;font-weight:700; }
.ui-select-option[aria-selected=true]::after { content:'✓';position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:14px;color:var(--blue); }
.ui-select-option:hover:not(:disabled),.ui-select-option[data-active=true] { background:var(--ui-selected);color:var(--blue); }
.ui-select-empty { padding:12px;color:var(--muted);font-size:13px; }
.resident-complex-results { z-index:1000;max-height:min(280px,40vh);padding:6px;border-color:var(--ui-border);border-radius:var(--ui-radius);box-shadow:var(--ui-popup-shadow); }
.resident-complex-results [role=option] { min-height:40px;padding:10px 12px;border-radius:8px;font-size:13px; }
.resident-complex-results [role=option]:hover,.resident-complex-results [role=option][aria-selected=true] { color:var(--blue);background:var(--ui-selected); }
@media(max-width:640px) {
  :root { --ui-control-h:44px; }
  .btn-pdf,.btn-delete { min-height:36px; }
  .btn-logout { min-height:36px; }
  .chip,.sort-chip,.record-tab { min-height:38px; }
  .record-tabs { gap:5px; }
  .record-tab { padding:8px 10px;font-size:12px; }
  .table-toolbar input[type=search] { width:100%; }
  .table-toolbar .toolbar-actions { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;margin-left:0; }
  .toolbar-actions .signature-option { grid-column:1 / -1; }
  .toolbar-actions .btn-tool { min-width:0;padding:9px 8px;font-size:12px; }
  .ui-select--compact { min-width:136px;max-width:min(210px,52vw); }
  .ui-select--compact .ui-select-trigger { min-height:40px; }
  .ui-select-option { min-height:44px; }
}
@media(prefers-reduced-motion:reduce) { button,input,select { transition:none!important; } }
