/* EDU-FE-039: approved Figma direction, shared by every existing work area. */
:root {
  color-scheme:light;
  --surface:#ffffff; --surface-subtle:#f7f9fa; --field-bg:#ffffff; --field-border:#76838f;
  --focus:#1746b3; --action-bg:#1746b3; --on-action:#ffffff;
  --radius-control:10px; --radius-card:16px; --radius-panel:20px;
  --signal-neutral-text:#40505f; --signal-neutral-bg:#f7f9fa;
  --signal-info-text:#176281; --signal-info-bg:#e2f2f7;
  --signal-danger-text:#a52828; --signal-danger-bg:#fde8e8;
  --signal-warning-text:#744500; --signal-warning-bg:#fff1d6;
}
:root[data-theme="dark"] {
  color-scheme:dark;
  --canvas:#17212b; --surface:#24323e; --surface-subtle:#2c4052;
  --ink:#ffffff; --muted:#cbd6dd; --line:#536575;
  --field-bg:#17212b; --field-border:#8496a6; --focus:#afc2ff;
  --blue:#afc2ff; --action-bg:#2559cf; --red:#f0bcbc; --amber:#efd69e; --green:#9de3c9;
  --signal-neutral-text:#cbd6dd; --signal-neutral-bg:#2c4052; --signal-neutral-border:#8999a7;
  --signal-info-text:#b9dce8; --signal-info-bg:#17343e; --signal-info-border:#809dcc;
  --signal-warning-text:#efd69e; --signal-warning-bg:#382c17; --signal-warning-border:#b69760;
  --signal-danger-text:#f0bcbc; --signal-danger-bg:#3b2023; --signal-danger-border:#c78489;
  --signal-success-text:#9de3c9; --signal-success-bg:#183c33; --signal-success-border:#70b69c;
}
html { scroll-padding-block:24px 120px; }
:focus-visible { outline-color:var(--focus); }
:is(input,select,textarea) { color:var(--ink); background:var(--field-bg); border-color:var(--field-border); }
/* Existing selectors have greater specificity; field colors must apply in every task pane. */
:is(.form-grid,.executive-field,.referral-dialog-grid,.portfolio-filter-grid) :is(input,select,textarea),.theme-preference select { color:var(--ink); background:var(--field-bg); border-color:var(--field-border); }
:is(input,textarea)::placeholder { color:var(--muted); opacity:1; }
.button { min-height:44px; border-color:var(--field-border); }
.button.primary { color:var(--on-action); background:var(--action-bg); border-color:var(--action-bg); }
.button.primary:hover { background:var(--action-bg); text-decoration:underline; }
.sidebar-control-tooltip { background:var(--surface); }
.theme-preference { display:flex; align-items:center; flex-wrap:wrap; gap:8px; flex:0 0 auto; max-width:100%; font-size:.9375rem; color:var(--ink); }
.theme-preference select { min-height:44px; min-width:108px; max-width:100%; padding:6px 9px; border:1px solid var(--field-border); border-radius:7px; }
.theme-preference>span { color:var(--ink); }
.topbar { flex-wrap:wrap; }
.topbar .theme-preference { order:2; }
.executive-drawer-header .theme-preference { margin:12px 0; justify-content:flex-end; }
.centered-state .theme-preference { justify-content:center; margin-top:20px; }
.skip-link { position:fixed; top:8px; left:12px; z-index:20; padding:12px 16px; transform:translateY(-200%); color:var(--ink); background:var(--surface); border:2px solid var(--focus); border-radius:6px; }
.skip-link:focus { transform:none; }
.task-skip-link { position:fixed; }
:is(input,textarea,select,button,a,summary,[tabindex]) { scroll-margin-block:24px 120px; }
.executive-close,.referral-dialog-close { min-width:44px; min-height:44px; }
/* Field help stays explanatory rather than contributing to the label. */
[aria-invalid="true"] { border-color:var(--red); }
.deadline-results { margin-top:24px; }
.deadline-periods { display:flex; flex-wrap:wrap; gap:8px; padding:20px 20px 8px; }
.deadline-periods .button { gap:8px; font-weight:500; background:var(--canvas); }
.deadline-periods [aria-pressed="true"] { color:var(--signal-info-text); background:var(--signal-info-bg); border-color:var(--signal-info-text); font-weight:600; }
.deadline-scope { padding:0 20px 16px; color:var(--muted); font-size:.9375rem; line-height:1.5; border-bottom:1px solid var(--line); }
.deadline-scope strong { color:var(--ink); }
.deadline-scope p { margin:8px 0 0; }
.deadline-list { list-style:none; padding:0; margin:0; }
.deadline-item { display:grid; grid-template-columns:minmax(140px,.5fr) minmax(0,2fr) minmax(140px,.6fr); gap:16px 24px; padding:20px; border-bottom:1px solid var(--line); }
.deadline-item:last-child { border-bottom:0; }
.deadline-item :is(div,p,h3) { min-width:0; overflow-wrap:anywhere; }
.deadline-date { align-self:start; display:grid; gap:4px; padding:8px 10px; color:var(--signal-text); background:var(--signal-bg); border:1px solid var(--signal-border); border-radius:7px; }
.deadline-date span { font-size:.875rem; }
.deadline-identity h3 { margin:8px 0; font-size:1.0625rem; line-height:1.4; }
.deadline-identity p { margin:6px 0; color:var(--muted); font-size:.9375rem; line-height:1.5; }
.deadline-actions { display:flex; align-items:flex-start; flex-direction:column; gap:8px; }
.deadline-actions .button { width:100%; font-weight:500; }
@media (max-width:768px) {
  .deadline-item { grid-template-columns:minmax(0,1fr); }
  .deadline-date { justify-self:start; }
  .deadline-actions { flex-direction:row; flex-wrap:wrap; }
  .deadline-actions .button { width:auto; }
}
@media (max-width:480px) {
  .theme-preference { width:100%; justify-content:space-between; }
  .deadline-periods,.deadline-scope,.deadline-item { padding-left:16px; padding-right:16px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none !important; transition:none !important; }
}
/* Compact, shared appearance preference; never an always-visible theme question. */
.appearance-trigger { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:44px; padding:8px 10px; color:var(--muted); background:transparent; border:1px solid transparent; border-radius:7px; font:inherit; font-size:.875rem; cursor:pointer; }
.appearance-trigger:hover { color:var(--ink); border-color:var(--field-border); background:var(--surface-subtle); }
.appearance-panel { width:min(420px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); padding:24px; overflow-y:auto; color:var(--ink); background:var(--surface); border:1px solid var(--line); border-radius:12px; }
.appearance-panel::backdrop { background:rgba(8,16,24,.45); }
.appearance-panel header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.appearance-panel h2 { margin:0; font-size:1.375rem; }
.appearance-panel p { color:var(--muted); line-height:1.5; }
.appearance-panel fieldset { display:grid; gap:8px; margin:16px 0 0; padding:0; border:0; }
.appearance-panel legend { margin-bottom:10px; font-weight:600; }
.appearance-choice { display:flex; align-items:center; gap:12px; padding:12px; color:var(--ink); background:var(--surface-subtle); border:1px solid var(--field-border); border-radius:8px; cursor:pointer; }
.appearance-choice:has(:checked) { border-color:var(--focus); background:var(--signal-info-bg); }
.appearance-choice input { flex:0 0 20px; width:20px; height:20px; margin:0; accent-color:var(--action-bg); }
.appearance-choice>span { display:grid; gap:3px; color:var(--ink); }
.appearance-choice small { color:var(--muted); }
/* Stable anonymous chrome reserves geometry; no stored organization or protected content. */
.navigation-shell { min-height:100dvh; margin-left:252px; min-width:0; }
.pending-sidebar { pointer-events:none; }
.pending-sidebar .brand { min-height:64px; }
.pending-sidebar .skeleton-lines { padding:24px 20px; }
[data-sidebar-collapsed="true"] .pending-sidebar { display:none; }
[data-sidebar-collapsed="true"] .navigation-shell { margin-left:0; }
.pending-topbar { min-height:64px; }
.pending-content { min-height:calc(100dvh - 64px); }
.pending-content h1 { margin-top:5px; }
.workspace-loading-status { color:var(--muted); font-size:.9375rem; line-height:1.5; margin:0 0 24px; }
.workspace-skeleton { display:grid; gap:16px; padding-top:12px; min-height:400px; }
.skeleton-bar { display:block; height:14px; width:75%; margin:12px 0; border-radius:4px; background:var(--line); }
.skeleton-bar.short { width:45%; }
.skeleton-block { min-height:124px; background:var(--surface); border:1px solid var(--line); border-radius:8px; }
.skeleton-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.skeleton-lines .skeleton-bar { background:#33414d; }
.pending-task { margin-top:0; padding:24px; }
.pending-task h1 { font-size:1.625rem; }
@media (max-width:980px) { .pending-sidebar { display:none; } .navigation-shell { margin-left:0; } }
@media (max-width:600px) { .skeleton-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .pending-task { padding:16px; } }

/* Shared controls: field boundaries stay stronger than decorative panel borders. */
.button,.appearance-trigger,.theme-preference select { border-radius:var(--radius-control); }
:is(.form-grid,.executive-field,.referral-dialog-grid,.portfolio-filter-grid,.summary-filter-grid) :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea) { min-height:44px; padding:10px 12px; border-radius:var(--radius-control); }
.button:disabled { cursor:not-allowed; }
.topbar .appearance-trigger { color:var(--ink); background:var(--surface); border-color:var(--field-border); padding-inline:12px; }
.appearance-panel { border-radius:var(--radius-panel); }
.deadline-item { padding:24px; }
.deadline-item:nth-child(even) { background:var(--surface-subtle); }
.deadline-date { border-radius:var(--radius-control); padding:12px; }
@media(max-width:640px) { .deadline-item { padding:20px 16px; } }
/* Access entry points reuse this foundation; Clerk owns its sign-in controls. */
.access-shell { min-height:100dvh; line-height:1.5; }
.access-shell:is(.access-index,.access-login) { display:grid; place-items:center; padding:24px; }
.access-shell :is(.card,.wrap) { width:100%; max-width:480px; padding:32px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-panel); text-align:center; }
.access-shell .badge { display:inline-block; margin-bottom:16px; color:var(--blue); font-size:.875rem; font-weight:600; }
.access-shell h1 { margin:0 0 24px; font-size:2rem; font-weight:700; line-height:1.25; }
.access-shell p,.access-shell #usuario-info,.access-shell #carregando { color:var(--muted); }
.access-shell #sign-in { display:flex; justify-content:center; min-width:0; }
.access-shell .status { display:block; padding:0; margin-top:16px; min-height:1.5em; font-size:.9375rem; font-weight:400; background:transparent; }
.access-painel header { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px; padding:24px 32px; }
.access-painel header h1 { margin:0; font-size:1.25rem; }
.access-painel header .badge { margin:0 0 8px; }
.access-painel nav { display:flex; flex-wrap:wrap; gap:8px; padding:0 32px 24px; }
.access-painel nav :is(a,button) { display:inline-flex; align-items:center; min-height:44px; padding:10px 16px; color:var(--ink); font-weight:600; background:var(--surface); border:1px solid var(--field-border); border-radius:var(--radius-control); cursor:pointer; }
.access-painel nav :is(a,button):hover { background:var(--surface-subtle); }
.access-painel main { width:calc(100% - 64px); max-width:720px; margin:0 32px; padding:32px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-panel); }
.access-painel main h2 { margin:0 0 12px; font-size:1.5rem; }
.access-painel #carregando { padding:48px 24px; text-align:center; }
@media(max-width:640px) {
  .access-shell:is(.access-index,.access-login) { padding:16px; }
  .access-shell :is(.card,.wrap) { padding:24px 16px; }
  .access-shell h1 { font-size:1.75rem; }
  .access-painel header { padding:20px; }
  .access-painel nav { padding:0 20px 20px; }
  .access-painel main { width:calc(100% - 40px); margin:0 20px; padding:24px 20px; }
}

/* EDU-DES-005-IMP-002: scaled official signatures in the existing brand slots. */
.product-brand,.brand>.product-brand,.sidebar .brand>.product-brand {
  display:inline-flex; align-items:center; flex:0 1 150px; width:150px; max-width:100%;
  height:36px; min-width:0; padding:0; background:none; border:0; border-radius:0;
}
.product-brand img { display:block; width:100%; height:auto; max-width:100%; }
.product-brand .product-brand-dark { display:none; }
:root[data-theme="dark"] .product-brand .product-brand-light { display:none; }
:root[data-theme="dark"] .product-brand .product-brand-dark,
.product-brand.product-brand-on-dark .product-brand-dark { display:block; }
.access-shell .card>.product-brand { margin-bottom:16px; }
.access-painel header .product-brand { display:flex; width:120px; height:28.8px; margin-bottom:0; }
@media (max-width:600px) {
  .iam-topbar>.iam-identity:first-child { display:flex; align-items:center; gap:12px; flex-basis:100%; }
  .iam-identity .product-brand { flex:0 0 125px; width:125px; height:30px; }
  .iam-identity small { min-width:0; }
}
