/* Cicerum UI contract. Loaded last on every page; layout remains in feature styles. */
:root{--ui-bg:#f4f6f5;--ui-panel:#fff;--ui-subtle:#edf3ef;--ui-ink:#111514;--ui-muted:#56645d;--ui-line:#d8e2dc;--ui-control-line:#9baea2;--ui-accent:#256d58;--ui-on-accent:#fff;--ui-hover:#1c5947;--ui-danger:#9d3030;--ui-danger-bg:#fff0ef;--ui-success-bg:#e3f3eb;--ui-radius:16px;--ui-control-radius:9px;--ui-font:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--accent:var(--ui-accent);--ink:var(--ui-ink);--muted:var(--ui-muted);--surface:var(--ui-bg);color-scheme:light}
html[data-theme=dark]{--ui-bg:#111514;--ui-panel:#202523;--ui-subtle:#29362f;--ui-ink:#def5f0;--ui-muted:#afc1b8;--ui-line:#3c4b43;--ui-control-line:#6a8275;--ui-accent:#86d2b9;--ui-on-accent:#102c23;--ui-hover:#a4e2cd;--ui-danger:#ffc0bb;--ui-danger-bg:#422a29;--ui-success-bg:#263e34;--accent:var(--ui-accent);--ink:var(--ui-ink);--muted:var(--ui-muted);--surface:var(--ui-bg);color-scheme:dark}
html{background:var(--ui-bg)!important;scrollbar-color:var(--ui-control-line) transparent;accent-color:var(--ui-accent)}
html:is([data-theme=juris],[data-theme=dark]) body:is([data-page],.auth-page){background:var(--ui-bg)!important;color:var(--ui-ink)!important;font-family:var(--ui-font)!important;font-size:15px;line-height:1.6}
*,*::before,*::after{box-sizing:border-box}
button,input,select,textarea{font-family:inherit}
button,a,input,textarea,select,summary{ -webkit-tap-highlight-color:transparent }
a{text-underline-offset:3px}
::selection{background:var(--ui-accent);color:var(--ui-on-accent)}
html:is([data-theme=juris],[data-theme=dark]) body :is(button,a,input,textarea,select,summary):focus-visible{outline:3px solid var(--ui-accent)!important;outline-offset:3px!important}
html:is([data-theme=juris],[data-theme=dark]) body :is(button,input,textarea,select){caret-color:var(--ui-accent)}
html:is([data-theme=juris],[data-theme=dark]) body :is(button:disabled,[aria-disabled=true]){opacity:.5!important;cursor:not-allowed!important;transform:none!important;box-shadow:none!important}
html:is([data-theme=juris],[data-theme=dark]) body :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=color]):not([type=file]),select,textarea){background:var(--ui-panel)!important;color:var(--ui-ink)!important;border:1px solid var(--ui-control-line)!important;border-radius:var(--ui-control-radius)!important;font-size:15px!important;line-height:1.5;min-height:46px;padding:11px 13px}
html:is([data-theme=juris],[data-theme=dark]) body :is(input,textarea)::placeholder{color:var(--ui-muted)!important;opacity:1}
html:is([data-theme=juris],[data-theme=dark]) body :is(h1,h2,h3,h4){color:var(--ui-ink);text-wrap:balance}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(.codes-page-heading h1,.task-heading h1,.account-settings>h1,main>div>div>h1.text-3xl){font-size:34px!important;font-weight:600!important;letter-spacing:-.03em!important;line-height:1.25!important;color:var(--ui-ink)!important;margin:0 0 12px!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(.codes-page-heading>p,.task-heading>p,main>div>div>h1+p){font-size:15px!important;line-height:1.65;color:var(--ui-muted)!important;max-width:72ch}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(.fedlex-discovery h2,.codes-saved-heading,.account-panel h2,.juris-quick-heading h2){font-size:22px!important;font-weight:600!important;line-height:1.4;letter-spacing:-.02em;color:var(--ui-ink)!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(.account-panel,.task-card,.fedlex-discovery,.dashboard-library,.dashboard-reader,.codes-navigation,.codes-article-card,.atf-book,.juris-code-card,.workspace-action){background:var(--ui-panel)!important;border:1px solid var(--ui-line)!important;border-radius:var(--ui-radius)!important;box-shadow:none!important;color:var(--ui-ink)!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(.account-panel,.task-card,.fedlex-discovery){padding:24px}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(.fedlex-result,.confirmation-dialog){background:var(--ui-panel)!important;color:var(--ui-ink)!important;border:1px solid var(--ui-line)!important;border-radius:var(--ui-radius)!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(.fedlex-discovery>p,.fedlex-result-meta,.codes-muted,.codes-article-empty,.codes-page-heading>p,.codes-article-path,#law-version,#article-count,#count,.workspace-action small,.juris-quick-heading p){color:var(--ui-muted)!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(.fedlex-result h3,.task-card h2,#law-title,.codes-article-card h3,.juris-code-card>span:nth-child(3)){color:var(--ui-ink)!important}
/* A single treatment for actions: primary, secondary, and destructive. */
html:is([data-theme=juris],[data-theme=dark]) body :is(.account-link-button,.auth-card button,.account-settings button,.fedlex-discovery button,.law-file-actions a,.law-file-actions button,.task-actions button,.task-actions a,.task-links a,.library-pagination button,.confirmation-dialog button,.codes-reading-toolbar button,#btn-submit,#import-button,#chat-send,.reader-chat-launcher){min-height:44px;border-radius:var(--ui-control-radius)!important;padding:10px 16px;font:600 14px/1.5 var(--ui-font)!important;text-decoration:none;cursor:pointer;box-shadow:none!important}
html:is([data-theme=juris],[data-theme=dark]) body :is(.auth-card button,.account-link-button,.account-settings button,.fedlex-discovery button,#btn-submit,#import-button,#chat-send,.reader-chat-launcher,.confirmation-dialog button[value=confirm]){background:var(--ui-accent)!important;color:var(--ui-on-accent)!important;border:1px solid var(--ui-accent)!important}
html:is([data-theme=juris],[data-theme=dark]) body :is(.auth-card button,.account-link-button,.account-settings button,.fedlex-discovery button,#btn-submit,#import-button,.reader-chat-launcher):hover:not(:disabled){background:var(--ui-hover)!important;border-color:var(--ui-hover)!important}
html:is([data-theme=juris],[data-theme=dark]) body :is(.fedlex-discovery .fedlex-secondary,.law-file-actions a,.law-file-actions button,.task-actions button,.task-actions a,.task-links a,.library-pagination button,.confirmation-dialog button[value=cancel],.codes-reading-toolbar button){background:var(--ui-panel)!important;color:var(--ui-accent)!important;border:1px solid var(--ui-control-line)!important}
html:is([data-theme=juris],[data-theme=dark]) body :is(.fedlex-discovery .fedlex-secondary,.task-actions button,.task-actions a,.task-links a,.library-pagination button,.law-file-actions a,.law-file-actions button):hover:not(:disabled){background:var(--ui-subtle)!important;color:var(--ui-accent)!important;border-color:var(--ui-accent)!important}
html:is([data-theme=juris],[data-theme=dark]) body :is(.law-file-actions #delete,.account-settings button[name=delete],.account-settings .account-danger button){background:transparent!important;color:var(--ui-danger)!important;border:1px solid var(--ui-danger)!important}
html:is([data-theme=juris],[data-theme=dark]) body :is(.account-error,.task-card .task-error,#fedlex-feedback[role=alert]){color:var(--ui-danger)!important}
html:is([data-theme=juris],[data-theme=dark]) body :is(.account-error,.task-card .task-error){background:var(--ui-danger-bg)!important;border-radius:9px}
html:is([data-theme=juris],[data-theme=dark]) body .account-success{background:var(--ui-success-bg)!important;color:var(--ui-accent)!important}
html:is([data-theme=juris],[data-theme=dark]) body :is(.task-state,.sidebar-tools a,.fedlex-result-actions a,.juris-codes-back){color:var(--ui-accent)!important}
html:is([data-theme=juris],[data-theme=dark]) body .usage-list>div{border-color:var(--ui-line)}
.usage-list dd,.task-state,.library-pagination,#library-count{font-variant-numeric:tabular-nums}
/* Navigation shares the same materials and selection state on every route. */
html:is([data-theme=juris],[data-theme=dark]) body[data-page]>header{background:var(--ui-panel)!important;border:1px solid var(--ui-line)!important;border-radius:var(--ui-radius)!important;box-shadow:none!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page]>header nav a{color:var(--ui-muted)!important;border:1px solid transparent!important;border-radius:var(--ui-control-radius)!important;min-height:46px;font-size:14px!important;padding:12px 14px!important;box-shadow:none!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page]>header nav a:is([aria-current=page],:hover){background:var(--ui-subtle)!important;color:var(--ui-accent)!important;box-shadow:none!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] .theme-switch{background:var(--ui-subtle)!important;border:0;border-radius:var(--ui-control-radius);padding:4px}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] .theme-switch button{min-height:44px;color:var(--ui-muted)!important;font-size:12px!important;border-radius:7px!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] .theme-switch button[aria-pressed=true]{background:var(--ui-panel)!important;color:var(--ui-accent)!important;box-shadow:none!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] .theme-switch button[aria-pressed=false]{background:transparent!important;color:var(--ui-muted)!important;box-shadow:none!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] .mobile-navigation summary{color:var(--ui-accent);border-color:var(--ui-control-line)}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] .juris-collections button{font-size:14px;min-height:44px;color:var(--ui-muted)}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] .juris-collections button[aria-pressed=true]{background:var(--ui-subtle);color:var(--ui-accent)}
/* Preserve the dashboard's branded import area; standardize its controls. */
html:is([data-theme=juris],[data-theme=dark]) body[data-page=dashboard] main .dashboard-import{background:#234b3e!important;border:0!important;border-radius:var(--ui-radius)!important;box-shadow:none!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] .dashboard-import::after{display:none}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] #import-title{color:#fff!important;font-size:26px!important;letter-spacing:-.02em!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] #process-form{background:var(--ui-panel)!important;border-radius:12px}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] #process-form :is(input,select){background:var(--ui-panel)!important;color:var(--ui-ink)!important;border:1px solid var(--ui-control-line)!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(.workspace-action>svg:first-child,.codes-law-badge,.juris-code-card>span:first-child){background:var(--ui-subtle)!important;color:var(--ui-accent)!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(.workspace-action small,.atf-book .text-slate-500,.atf-book .text-slate-600){color:var(--ui-muted)!important}
/* Reading keeps serif body text; all reader chrome follows the app palette. */
html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(.codes-library,.codes-import,.codes-search,.codes-reading-toolbar,.codes-article-path){border-color:var(--ui-line);color:var(--ui-muted)}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(.codes-label h2,.codes-article-group summary,.codes-article-link>span:last-child,#list>button>span:nth-child(2),#list>button>span:last-child){color:var(--ui-muted)!important;font-size:13px}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(.codes-article-number>span:first-child,.codes-article-link>span:first-child,#list>button>span:first-child,#law-rs){color:var(--ui-accent)!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(.codes-article-link[aria-current=true],#list>button[aria-pressed=true],.codes-article-link:hover){background:var(--ui-subtle)!important;border-color:var(--ui-line)!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(.codes-article-body,.legal-serif){font-family:Georgia,"Times New Roman",serif;color:var(--ui-ink)!important;line-height:1.85}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] .codes-article-body p{background:var(--ui-bg)!important;border:0!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(.reader-heading,.reader-controls,.reader-annotation-bar,.reader-content,#reader-header,#reader-toolbar,#library-reader-panels>section){background:var(--ui-panel)!important;color:var(--ui-ink)!important;border-color:var(--ui-line)!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(#btn-summary,#btn-summary-audio,#highlight,#underline,#annotate){background:var(--ui-subtle)!important;color:var(--ui-accent)!important;border-color:var(--ui-control-line)!important;border-radius:var(--ui-control-radius)!important;min-height:44px}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(.summary-audio-disclosure,#summary-audio-status,#modal-meta,#annotation-status){color:var(--ui-muted)!important}
/* Assistant, account pages and confirmation dialogs use the same type and surfaces. */
html:is([data-theme=juris],[data-theme=dark]) body[data-page]>#reader-chat{background:var(--ui-panel)!important;color:var(--ui-ink)!important;border:1px solid var(--ui-line)!important;border-radius:var(--ui-radius)!important;box-shadow:0 16px 48px #0003!important;backdrop-filter:none;-webkit-backdrop-filter:none;font-family:var(--ui-font)}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] #reader-chat :is(.chat-heading,.chat-toolbar,.chat-settings,.chat-document-picker,#chat-form){background:var(--ui-panel)!important;color:var(--ui-muted)!important;border-color:var(--ui-line)!important;box-shadow:none!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] #reader-chat :is(.chat-welcome h4,.chat-assistant p){color:var(--ui-ink)!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] #reader-chat :is(.chat-heading p,.chat-welcome p,footer,.chat-message>span,.chat-document-picker label,#chat-feedback){color:var(--ui-muted)!important;font-size:12px}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] #reader-chat :is(.chat-welcome button,.chat-user p,.chat-heading>button){background:var(--ui-subtle)!important;color:var(--ui-accent)!important;border-color:var(--ui-line)!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] #reader-chat :is(.chat-heading>button,#chat-send){min-width:44px;min-height:44px}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] #chat-form:focus-within{outline:2px solid var(--ui-accent);outline-offset:2px}
html:is([data-theme=juris],[data-theme=dark]) body.auth-page{padding:clamp(20px,5vw,56px)}
html:is([data-theme=juris],[data-theme=dark]) body.auth-page .auth-card{background:var(--ui-panel);border:1px solid var(--ui-line);border-radius:var(--ui-radius);box-shadow:none;color:var(--ui-ink)}
html:is([data-theme=juris],[data-theme=dark]) body.auth-page .auth-card h1{font-size:28px;line-height:1.3;font-weight:600;letter-spacing:-.025em}
html:is([data-theme=juris],[data-theme=dark]) body.auth-page :is(.auth-links a,.auth-card a:not(.account-link-button)){color:var(--ui-accent)}
html[data-theme=dark] .auth-logo{content:url('/static/brand/logo_cicerum.svg?v=vector-1')}
@media(max-width:760px){html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(.codes-page-heading h1,.task-heading h1,.account-settings>h1,main>div>div>h1.text-3xl){font-size:28px!important}html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(.account-panel,.task-card,.fedlex-discovery){padding:20px}html:is([data-theme=juris],[data-theme=dark]) body[data-page] .theme-switch button{font-size:12px!important}html:is([data-theme=juris],[data-theme=dark]) body[data-page] #process-form{padding:10px}html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=color]):not([type=file]),select,textarea){font-size:16px!important}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;animation-iteration-count:1!important}}

/* Legacy reader utilities use IDs and !important; keep these bridges explicit. */
html:is([data-theme=juris],[data-theme=dark]) body[data-page] #atf-query{padding-left:44px!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] #process-form{grid-template-columns:minmax(0,1fr) 200px 150px}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] .account-settings{max-width:none!important;margin:0!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(#panel-trad-container,#panel-orig-container,#panel-trad,#panel-orig,#panel-trad-container>div:first-child,#panel-orig-container>div:first-child,#doc-regeste-box){background:var(--ui-panel)!important;border-color:var(--ui-line)!important;color:var(--ui-ink)!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(.dashboard-reader-modes,.reader-modes){background:var(--ui-subtle)!important;border-color:var(--ui-line)!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(.dashboard-reader-modes button,.reader-modes label){color:var(--ui-muted)!important;min-height:44px}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(.dashboard-reader-modes button[aria-pressed=true],.reader-modes input:checked+span){background:var(--ui-panel)!important;color:var(--ui-accent)!important;box-shadow:none!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(.pdf-export-button,#btn-download-md,#btn-export-md){background:var(--ui-subtle)!important;color:var(--ui-accent)!important;border:1px solid var(--ui-control-line)!important;border-radius:var(--ui-control-radius);font:600 13px/1.5 var(--ui-font)!important;min-height:44px}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] :is(.annotation-comment-popover,.annotation-comment-popover>div,.reader-note-rail){background:var(--ui-panel)!important;color:var(--ui-ink)!important;border-color:var(--ui-line)!important}
@media(max-width:1100px){html:is([data-theme=juris],[data-theme=dark]) body[data-page] #process-form{grid-template-columns:minmax(0,1fr) 180px}html:is([data-theme=juris],[data-theme=dark]) body[data-page] #process-form>div:first-child{grid-column:1/-1!important}}
@media(max-width:760px){html:is([data-theme=juris],[data-theme=dark]) body[data-page] #process-form{grid-template-columns:minmax(0,1fr)}}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] #reader-toolbar .dashboard-reader-modes{background:var(--ui-subtle)!important;border-color:var(--ui-line)!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] #reader-toolbar .dashboard-reader-modes button{color:var(--ui-muted)!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] #reader-toolbar .dashboard-reader-modes button[aria-pressed=true]{background:var(--ui-panel)!important;color:var(--ui-accent)!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] #process-form input::placeholder{color:var(--ui-muted)!important}
html:is([data-theme=juris],[data-theme=dark]) body[data-page] button[onclick="downloadMarkdown()"]{background:var(--ui-subtle)!important;color:var(--ui-accent)!important;border:1px solid var(--ui-control-line)!important;min-height:44px;font:600 13px/1.5 var(--ui-font)!important}

/* Motion explains navigation, disclosure and direct manipulation. */
:root{--ui-motion-fast:130ms;--ui-motion-panel:240ms;--ui-ease:cubic-bezier(.16,1,.3,1)}
@media(prefers-reduced-motion:no-preference){
  body>main{animation:ui-page-in 160ms var(--ui-ease)}
  html body :is(button,a,input,select,textarea,summary){transition:background-color var(--ui-motion-fast) ease-out,border-color var(--ui-motion-fast) ease-out,color var(--ui-motion-fast) ease-out,box-shadow var(--ui-motion-fast) ease-out}
  html body :is(.account-link-button,.fedlex-discovery button,.task-actions button,.law-file-actions button,#btn-submit,#import-button,.auth-card button,.account-settings button){transition:background-color var(--ui-motion-fast) ease-out,border-color var(--ui-motion-fast) ease-out,color var(--ui-motion-fast) ease-out,scale var(--ui-motion-fast) var(--ui-ease)}
  html body :is(.account-link-button,.fedlex-discovery button,.task-actions button,.law-file-actions button,#btn-submit,#import-button,.auth-card button,.account-settings button):active:not(:disabled){scale:.98}
  /* The legal document is revealed as a reading surface, without moving its text. */
  #modal:not(.hidden):not([hidden]) .reader-dialog{animation:ui-reader-open var(--ui-motion-panel) var(--ui-ease) both}
  .confirmation-dialog[open]{animation:ui-dialog-open 180ms var(--ui-ease) both}
  .confirmation-dialog[open]::backdrop{animation:ui-backdrop-in 150ms ease-out both}
  :is(.mobile-navigation,.codes-import,.account-panel,.chat-settings)[open]>:not(summary){animation:ui-disclose 180ms var(--ui-ease) both}
  @keyframes ui-page-in{from{opacity:.8}to{opacity:1}}
  @keyframes ui-reader-open{from{clip-path:inset(0 0 5% 0 round 16px);opacity:.7}to{clip-path:inset(0 round 16px);opacity:1}}
  @keyframes ui-dialog-open{from{opacity:.5;transform:scale(.98)}to{opacity:1;transform:scale(1)}}
  @keyframes ui-backdrop-in{from{background-color:transparent}}
  @keyframes ui-disclose{from{opacity:.5}to{opacity:1}}
}
/* Immediate, stable content is the fallback and the reduced-motion alternative. */
@media(prefers-reduced-motion:reduce){
  html body :is(button,a,input,select,textarea,summary){transition:none!important}
}
