/* SuperApp SK — Liquid Glass Design System */

:root {
  --font-ui: "Nunito Sans", "Avenir Next", "Segoe UI", sans-serif;
  --glass-bg: rgba(255,255,255,.68);
  --glass-strong: rgba(255,255,255,.86);
  --glass-soft: rgba(255,255,255,.48);
  --glass-line: rgba(255,255,255,.72);
  --glass-edge: rgba(116,135,160,.18);
  --glass-shadow: 0 18px 52px rgba(37,55,78,.12), inset 0 1px 0 rgba(255,255,255,.82);
  --glass-shadow-soft: 0 9px 28px rgba(37,55,78,.09), inset 0 1px 0 rgba(255,255,255,.72);
  --glass-blur: blur(24px) saturate(1.35);
  --liquid-blue: #5279a5;
  --liquid-blue-soft: rgba(101,148,197,.16);
  --liquid-radius: 24px;
  --sidebar: 270px;
  --sidebar-compact: 88px;
  --topbar: 82px;
  --layout-card-radius: var(--liquid-radius);
  --layout-control-height: 48px;
  --layout-readable: 14px;
  --layout-shadow: var(--glass-shadow-soft);
}

html[data-theme="dark"] {
  --glass-bg: rgba(25,31,40,.70);
  --glass-strong: rgba(29,36,46,.88);
  --glass-soft: rgba(33,42,54,.52);
  --glass-line: rgba(255,255,255,.13);
  --glass-edge: rgba(173,198,230,.13);
  --glass-shadow: 0 20px 58px rgba(0,0,0,.32), inset 0 1px 0 rgba(255,255,255,.10);
  --glass-shadow-soft: 0 10px 32px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.08);
  --liquid-blue: #91b8e4;
  --liquid-blue-soft: rgba(104,157,216,.19);
}

html { font-size: 16px; }
body, button, input, select, textarea, kbd { font-family: var(--font-ui) !important; }
body {
  min-width: 320px;
  background:
    radial-gradient(circle at 8% 5%, rgba(143,188,227,.26), transparent 34rem),
    radial-gradient(circle at 92% 8%, rgba(230,195,137,.20), transparent 30rem),
    radial-gradient(circle at 75% 84%, rgba(158,193,221,.18), transparent 36rem),
    linear-gradient(145deg, #edf3f8 0%, #f8f6f2 48%, #eaf1f6 100%);
  background-attachment: fixed;
  font-size: 16px;
  font-weight: 450;
  line-height: 1.56;
  letter-spacing: -.006em;
}
html[data-theme="dark"] body {
  background:
    radial-gradient(circle at 10% 5%, rgba(70,112,156,.20), transparent 34rem),
    radial-gradient(circle at 92% 12%, rgba(151,112,55,.13), transparent 30rem),
    linear-gradient(145deg, #121821 0%, #181d24 52%, #111820 100%);
}
h1,h2,h3,h4,h5,h6,.brand-copy strong,.auth-brand strong,.auth-mobile-brand strong,.todoist-task-toolbar h2 {
  font-family: var(--font-ui) !important;
  font-weight: 750;
  letter-spacing: -.035em;
}
p { font-size: 15px; line-height: 1.65; }
button,input,select,textarea { font-size: 15px; }
svg { width: 20px; height: 20px; stroke-width: 1.85; }
.app-shell,.app-main,.page { background: transparent; }

:is(.panel,.stat-card,.hero-card,.contact-card,.document-card,.metric-panel,.process-detail-hero,.process-sync-panel,.publication-identity-card,.publication-card,.assistant-chat,.prompt-card,.kanban-column,.kanban-card,.todoist-card,.todoist-workspace,.calendar-workspace,.mail-workspace,.mail-management-card,.task-focus-bar,.process-history-menu-list,.contact-dossier,.auth-card) {
  border: 1px solid var(--glass-line);
  background: linear-gradient(145deg,var(--glass-strong),var(--glass-soft));
  box-shadow: var(--glass-shadow-soft);
  -webkit-backdrop-filter: var(--glass-blur);
  backdrop-filter: var(--glass-blur);
}
:is(.panel,.stat-card,.contact-card,.document-card,.metric-panel,.kanban-card,.prompt-card,.publication-card,.todoist-card,.mail-management-card) {
  transition: transform .24s ease,border-color .24s ease,box-shadow .24s ease,background .24s ease;
}
:is(.stat-card,.contact-card,.document-card,.kanban-card,.prompt-card,.todoist-card,.mail-management-card):hover {
  border-color: color-mix(in srgb,var(--liquid-blue) 26%,var(--glass-line));
  background: linear-gradient(145deg,color-mix(in srgb,var(--glass-strong) 94%,white),var(--glass-bg));
  box-shadow: var(--glass-shadow);
  transform: translateY(-3px);
}
:is(.panel,.stat-card,.contact-card,.document-card,.metric-panel,.process-detail-hero,.process-sync-panel,.publication-identity-card,.publication-card,.assistant-chat,.todoist-workspace,.calendar-workspace,.mail-workspace) { border-radius: var(--liquid-radius); }
:is(.panel-head,.modal-header,.modal-footer,.todoist-task-toolbar,.calendar-toolbar,.mail-workspace-toolbar) {
  border-color: var(--glass-edge);
  background: color-mix(in srgb,var(--glass-strong) 72%,transparent);
}
.hero-card {
  border-color: rgba(255,255,255,.14);
  background: radial-gradient(circle at 82% 20%,rgba(112,158,199,.28),transparent 25rem),linear-gradient(135deg,rgba(31,42,55,.94),rgba(31,37,47,.86));
  color: #f7f9fb;
  box-shadow: 0 24px 56px rgba(28,42,58,.24),inset 0 1px 0 rgba(255,255,255,.15);
}
.hero-copy h2 { font-size: clamp(30px,3.3vw,43px); }
.hero-copy p { color: #d2d9e1; }
.hero-stat { border-color: rgba(255,255,255,.14); border-radius: 17px; background: rgba(255,255,255,.09); box-shadow: inset 0 1px 0 rgba(255,255,255,.09); }
.hero-stat strong { font-family: var(--font-ui); color: #f1d79f; }
.hero-stat span { color: #c7d0da; }

/* Navegação */
.sidebar {
  margin: 12px 0 12px 12px;
  height: calc(100vh - 24px);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 27px;
  background: radial-gradient(circle at 30% 0%,rgba(115,153,190,.24),transparent 18rem),linear-gradient(180deg,rgba(25,32,42,.91),rgba(24,29,37,.83));
  box-shadow: 0 24px 58px rgba(15,23,34,.29),inset 0 1px 0 rgba(255,255,255,.14);
  -webkit-backdrop-filter: blur(30px) saturate(1.35);
  backdrop-filter: blur(30px) saturate(1.35);
}
.brand { min-height: 76px; border-bottom-color: rgba(255,255,255,.10); }
.brand-copy strong { font-size: 20px; }
.brand-copy small { color: #b8c1cc; font-size: 11px; font-weight: 700; }
.main-nav { padding: 18px 13px 24px; }
.nav-label { margin-top: 24px; color: #929eab; font-size: 11px; letter-spacing: .13em; }
.main-nav a {
  min-height: 48px; margin: 4px 0; padding: 11px 13px;
  border: 1px solid transparent; border-radius: 15px;
  color: #c3ccd6; font-size: 14px; font-weight: 650;
}
.main-nav a:hover { border-color: rgba(255,255,255,.10); background: rgba(255,255,255,.09); box-shadow: inset 0 1px 0 rgba(255,255,255,.08); }
.main-nav a.active { border-color: rgba(255,255,255,.16); background: linear-gradient(110deg,rgba(255,255,255,.17),rgba(255,255,255,.08)); box-shadow: 0 8px 22px rgba(0,0,0,.15),inset 0 1px 0 rgba(255,255,255,.15); }
.nav-icon { width: 23px; flex-basis: 23px; }
.nav-icon svg { width: 20px; height: 20px; }
.nav-badge,.ai-pill { padding: 3px 8px; font-size: 11px; }
.sidebar-footer { border-top-color: rgba(255,255,255,.10); }
.storage-line,.profile-mini strong { font-size: 12px; }
.profile-mini small { font-size: 11px; }
.avatar { width: 40px; height: 40px; font-size: 12px; }
.app-main { margin-left: calc(var(--sidebar) + 12px); }
.topbar {
  top: 12px; width: calc(100% - 24px); height: var(--topbar); margin: 12px; padding: 0 24px;
  border: 1px solid var(--glass-line); border-radius: 24px;
  background: linear-gradient(120deg,var(--glass-strong),var(--glass-soft));
  box-shadow: var(--glass-shadow-soft); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur);
}
.global-search { width: min(680px,58vw); }
.global-search input { height: 48px; border: 1px solid var(--glass-line); border-radius: 16px; background: color-mix(in srgb,var(--glass-strong) 76%,transparent); box-shadow: inset 0 1px 0 rgba(255,255,255,.62); font-size: 15px; }
.global-search input:focus { border-color: color-mix(in srgb,var(--liquid-blue) 50%,var(--glass-line)); background: var(--glass-strong); box-shadow: 0 0 0 4px var(--liquid-blue-soft),inset 0 1px 0 rgba(255,255,255,.7); }
.search-results { top: 57px; padding: 9px; border: 1px solid var(--glass-line); border-radius: 19px; background: var(--glass-strong); box-shadow: var(--glass-shadow); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); }
.search-result { padding: 11px; border-radius: 13px; }
.search-result strong { font-size: 14px; }
.search-result small { font-size: 12px; }
body.sidebar-collapsed .app-main { margin-left: calc(var(--sidebar-compact) + 12px); }
body.sidebar-collapsed .sidebar { width: var(--sidebar-compact); }
body.sidebar-collapsed .loading-line { left: calc(var(--sidebar-compact) + 12px); }
body.sidebar-collapsed .main-nav a { width: 60px; min-height: 52px; border-radius: 17px; }

/* Tipografia e controles */
.page { max-width: 1760px; padding: 42px clamp(22px,3vw,50px) 84px; }
.page-head { margin-bottom: 30px; padding: 0 2px 25px; border-bottom-color: var(--glass-edge); }
.page-head h1 { font-size: clamp(34px,3.25vw,50px); line-height: 1.06; }
.page-head > div:first-child > p:last-child { max-width: 880px; font-size: 16px; }
.eyebrow { font-size: 12px; font-weight: 800; letter-spacing: .14em; }
.panel-head h2,.section-title { font-size: 19px; }
.panel-head p { font-size: 14px; }
.stat-card strong.value { font-size: clamp(34px,3vw,44px); }
.stat-card > span,.hero-stat span { font-size: 14px; }
.hero-copy p { font-size: 16px; }
:is(.primary-button,.secondary-button,.ghost-button,.icon-button,.select-control,.filter-search input,.field input,.field select,.field textarea) { border-color: var(--glass-line); border-radius: 15px; background: color-mix(in srgb,var(--glass-strong) 80%,transparent); box-shadow: inset 0 1px 0 rgba(255,255,255,.65); }
:is(.primary-button,.secondary-button,.ghost-button) { min-height: 48px; padding: 0 18px; font-size: 14px; font-weight: 750; }
body .primary-button { border-color: color-mix(in srgb,var(--liquid-blue) 72%,#263a51); background: linear-gradient(145deg,#6f95bd,#456c96); color: #fff; box-shadow: 0 11px 24px rgba(56,91,129,.24),inset 0 1px 0 rgba(255,255,255,.34); }
html[data-theme="dark"] body .primary-button { color: #fff; }
.page-head .primary-button,.modal-footer .primary-button,.top-actions .primary-button { border-color: color-mix(in srgb,var(--liquid-blue) 72%,#263a51); background: linear-gradient(145deg,#6f95bd,#456c96); color: #fff; }
body .primary-button:hover { box-shadow: 0 15px 30px rgba(56,91,129,.30),inset 0 1px 0 rgba(255,255,255,.40); }
:is(.secondary-button,.ghost-button,.icon-button):hover { background: var(--glass-strong); }
.icon-button { width: 46px; height: 46px; }
.field label { font-size: 13px; font-weight: 750; }
.field input,.field select { min-height: 48px; font-size: 15px; }
.field textarea { font-size: 15px; line-height: 1.65; }
.chip { padding: 6px 11px; border-radius: 999px; font-size: 12px; font-weight: 750; }
.segmented,.agenda-version-switch { border-color: var(--glass-line); border-radius: 16px; background: var(--glass-soft); }
.segmented button,.agenda-version-switch button { min-height: 40px; border-radius: 12px; font-size: 13px; }

/* Componentes densos recebem um piso tipográfico legível. */
.app-shell :is(.table-secondary,.process-table-summary,.process-sync-team-summary,.process-sync-team-title small,.process-sync-team-count,.process-sync-lawyer-copy small,.process-sync-oabs span,.process-sync-progress small,.process-sync-progress strong,.process-sync-meta,.process-detail-meta > span:not(.chip),.process-section-head p,.process-data-grid dt,.process-activity p,.process-history-item p,.calendar-sidebar-toggle,.calendar-upcoming-toggle,.mini-calendar-grid > span,.mini-calendar-day,.calendar-side-section h3,.weekday,.calendar-event,.calendar-more,.time-axis span,.time-day-head span,.time-event > *,.task-copy small,.todoist-card small,.todoist-sidebar h3,.todoist-sidebar-note p,.todoist-task-toolbar p,.agenda-task-meta,.agenda-task-process,.publication-identity-copy > p:not(.eyebrow),.publication-visible-count,.publication-treatment-actions label,.publication-process-link,.publication-process-missing,.publication-treatment-note,.publication-content > summary,.djen-result-main small,.djen-result-open,.djen-result-facts span,.djen-result-facts b,.contact-card p,.document-card p,.doc-meta,.metric-head p,.donut-legend span,.chat-head p,.message small,.prompt-card span,.empty-state p,.mail-management-card small,.mail-management-add small) { font-size: 13px; line-height: 1.5; }
.app-shell :is(.data-table td,.table-primary,.process-sync-head p:not(.eyebrow),.process-sync-team-title strong,.process-sync-lawyer-copy strong,.process-detail-tabs button,.process-data-grid dd,.process-activity strong,.process-history-item strong,.calendar-side-section label,.calendar-create,.kanban-card h3,.kanban-card p,.card-meta span,.agenda-task-title,.publication-card-title > strong,.djen-result-main strong,.djen-result-body > p,.contact-card h3,.document-card h3,.contact-details span,.message,.prompt-card strong,.mail-management-card strong,.mail-management-add strong) { font-size: 14px; line-height: 1.55; }
.data-table th { padding: 14px 16px; background: var(--glass-soft); font-size: 12px; }
.data-table td { padding: 16px; border-color: var(--glass-edge); }
.data-table tbody tr:hover { background: color-mix(in srgb,var(--liquid-blue-soft) 54%,transparent); }
.table-wrap { border-radius: 0 0 var(--liquid-radius) var(--liquid-radius); }
.process-table { min-width: 1120px; }
.process-sync-head h2,.publication-identity-copy h2 { font-size: 28px; }
.djen-result-body > p { line-height: 1.75; }
:is(.stat-grid,.document-grid,.indicator-grid) { grid-template-columns: repeat(auto-fit,minmax(min(265px,100%),1fr)); gap: 20px; }
.contact-grid { grid-template-columns: 1fr; gap: 15px; }
.content-grid,.assistant-hero { gap: 22px; }
.board { gap: 18px; }
.kanban-column { background: color-mix(in srgb,var(--glass-soft) 76%,transparent); }
.kanban-card { padding: 18px; }
details > summary { cursor: pointer; }
details[open] > summary { color: var(--liquid-blue); }
.contact-dossier,.process-history-menu-list { border-radius: 18px; }
.contact-summary { grid-template-columns: 50px minmax(0,1fr) auto 24px; gap: 10px 16px; padding: 19px 21px; }
.contact-card .avatar { width: 46px; height: 46px; font-size: 13px; }
.contact-title-line strong { font-size: 16px; }
.contact-title-line em { padding: 4px 8px; font-size: 11px; }
.contact-summary-copy > small { margin-top: 5px; font-size: 13px; }
.contact-summary-count strong { font-family: var(--font-ui); font-size: 27px; }
.contact-summary-count small { font-size: 12px; }
.contact-role-row { gap: 7px; }
.contact-lawyer-preview { gap: 7px; font-size: 13px; }
.contact-client-suggestion { border-radius: 14px; padding: 12px 14px; }
.contact-client-suggestion label,.contact-client-suggestion > small { font-size: 12px; }
.contact-client-score { font-size: 11px; }
.contact-search-panel { padding: 18px; border-color: var(--glass-line); border-radius: 20px; background: var(--glass-bg); box-shadow: var(--glass-shadow-soft); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); }
.contact-search-status,.contact-lawyer-filter-loading,.contact-review-bar p { font-size: 13px; }
.contact-review-bar strong { font-size: 15px; }
.contact-dossier { padding: 22px; border-top-color: var(--glass-edge); background: var(--glass-soft); }
.contact-dossier-head h3 { font-family: var(--font-ui); font-size: 24px; }
.contact-dossier-loading,.contact-role-editor > label,.contact-role-editor > small,.contact-identity-grid dt,.contact-process-row small,.contact-process-meta > span,.contact-process-relations > summary,.contact-party-group strong,.contact-party-group small,.contact-party-group h6,.contact-process-lawyers h6,.contact-lawyer-history-row strong,.contact-relation-empty,.contact-lawyer-history-note { font-size: 12px; }
.contact-identity-grid dd,.contact-process-row strong,.contact-process-against,.contact-dossier-section h4,.contact-lawyer-chip,.contact-lawyer-list p,.contact-process-list > p { font-size: 13px; }
.contact-role-editor,.contact-identity-grid div,.contact-process-row,.contact-party-group,.contact-process-lawyers > section { border-color: var(--glass-line); border-radius: 14px; background: var(--glass-bg); }
.contact-lawyer-relation { font-size: 10px; }

/* Modais e autenticação */
.modal-backdrop { background: rgba(20,29,40,.34); -webkit-backdrop-filter: blur(12px) saturate(1.2); backdrop-filter: blur(12px) saturate(1.2); }
.modal { width: min(680px,calc(100vw - 32px)); max-height: min(88vh,900px); border: 1px solid var(--glass-line); border-radius: 28px; background: var(--glass-strong); box-shadow: 0 28px 80px rgba(21,34,50,.28),inset 0 1px 0 rgba(255,255,255,.82); -webkit-backdrop-filter: blur(30px) saturate(1.4); backdrop-filter: blur(30px) saturate(1.4); }
.modal-header h2 { font-size: 24px; }
.modal-body { gap: 18px; padding: 24px; }
.toast { border: 1px solid var(--glass-line); border-radius: 18px; background: var(--glass-strong); box-shadow: var(--glass-shadow); -webkit-backdrop-filter: var(--glass-blur); backdrop-filter: var(--glass-blur); }
.auth-shell,.auth-panel { background: transparent; }
.auth-visual { margin: 14px; min-height: calc(100vh - 28px); border: 1px solid rgba(255,255,255,.14); border-radius: 30px; background: radial-gradient(circle at 78% 75%,rgba(108,156,198,.28),transparent 26rem),linear-gradient(145deg,rgba(29,38,50,.94),rgba(26,31,40,.86)); box-shadow: 0 25px 70px rgba(20,31,45,.28),inset 0 1px 0 rgba(255,255,255,.14); }
.auth-visual-copy h1 { font-size: clamp(45px,5vw,72px); }
.auth-visual-copy > p:last-child { font-size: 17px; }
.auth-view h2 { font-size: 36px; }
.auth-subtitle { font-size: 14px; }
.auth-options,.auth-links button,.back-link,.auth-message,.password-rules { font-size: 13px; }
.auth-card { padding: 40px; border-radius: 28px; box-shadow: var(--glass-shadow); }

/* Responsividade */
@media (max-width:1180px) and (min-width:901px) {
  .sidebar-toggle { display: none; }
  .global-search { width: min(620px,64vw); }
}
@media (max-width:1120px) {
  :is(.content-grid,.content-grid.equal,.assistant-hero,.publication-layout) { grid-template-columns: 1fr; }
  .head-actions { flex-wrap: wrap; }
  .board { overflow-x: auto; padding-bottom: 10px; scroll-snap-type: x proximity; }
  .kanban-column { min-width: min(330px,84vw); scroll-snap-align: start; }
}
@media (max-width:900px) {
  :root { --topbar: 76px; }
  .sidebar { width: min(310px,calc(100vw - 28px)); height: calc(100dvh - 24px); margin: 12px; transform: translateX(calc(-100% - 28px)); }
  body.menu-open .sidebar { transform: translateX(0); }
  .app-main,body.sidebar-collapsed .app-main { margin-left: 0; }
  .topbar { top: 8px; width: calc(100% - 16px); margin: 8px; padding: 0 16px; border-radius: 21px; }
  .mobile-overlay { background: rgba(19,28,40,.34); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
  .page { padding-top: 34px; }
  .page-head { align-items: flex-start; }
  .calendar-workspace { display: block; min-height: 0; overflow-x: auto; }
  .calendar-sidebar,.calendar-workspace > .upcoming { display: none; }
}
@media (max-width:650px) {
  :root { --topbar: 68px; }
  body { font-size: 15px; }
  .topbar { gap: 8px; padding: 0 10px; border-radius: 19px; }
  .global-search input { height: 44px; padding-left: 39px; font-size: 14px; }
  .top-actions { gap: 5px; }
  .top-actions .primary-button.compact { width: 44px; min-width: 44px; padding: 0; }
  .icon-button { width: 44px; height: 44px; }
  .page { padding: 30px 14px 62px; }
  .page-head { gap: 18px; margin-bottom: 24px; padding-bottom: 20px; }
  .page-head h1 { font-size: clamp(31px,10vw,39px); }
  .page-head > div:first-child > p:last-child { font-size: 15px; }
  .head-actions { width: 100%; }
  .head-actions > * { flex: 1 1 150px; }
  :is(.panel,.stat-card,.contact-card,.document-card,.metric-panel,.process-sync-panel,.publication-card,.publication-identity-card,.todoist-workspace,.mail-workspace) { border-radius: 20px; }
  :is(.panel-head,.panel-body,.panel.pad,.metric-panel,.contact-card,.document-card,.process-sync-panel,.publication-card-head) { padding: 18px; }
  .stat-card { min-height: 132px; padding: 19px; }
  :is(.primary-button,.secondary-button,.ghost-button) { min-height: 46px; font-size: 14px; }
  .modal { width: calc(100vw - 20px); max-height: calc(100dvh - 20px); border-radius: 23px; }
  .modal-body { grid-template-columns: 1fr; padding: 19px; }
  .modal-footer { padding: 15px 19px; }
  .auth-panel { padding: 12px; }
  .auth-card { padding: 29px 22px; border-radius: 23px; }
  .publication-side { grid-template-columns: 1fr; }
  :is(.stat-grid,.contact-grid,.document-grid,.indicator-grid) { grid-template-columns: 1fr; }
  .contact-summary { grid-template-columns: 46px minmax(0,1fr) 22px; padding: 17px; }
  .contact-summary-count { grid-column: 2; justify-items: start; }
  .contact-chevron { grid-column: 3; grid-row: 1; }
  .contact-role-row,.contact-lawyer-preview,.contact-client-suggestion { grid-column: 2 / 4; justify-content: flex-start; text-align: left; }
  .contact-client-suggestion { grid-template-columns: 1fr; }
  .contact-client-suggestion .secondary-button { justify-self: start; }
  .contact-identity-grid,.contact-party-groups,.contact-process-lawyers,.contact-process-row { grid-template-columns: 1fr; }
  .contact-process-meta { justify-items: start; text-align: left; }
  .table-wrap { margin-inline: 0; border-radius: 16px; }
  :is(.todoist-task-toolbar,.task-focus-bar,.process-sync-head,.publication-card-head) { align-items: stretch; flex-direction: column; }
}
@media (prefers-reduced-transparency:reduce) {
  :is(.sidebar,.topbar,.panel,.modal,.auth-card,.stat-card,.contact-card,.document-card) { -webkit-backdrop-filter: none; backdrop-filter: none; background: var(--surface); }
}
@media (prefers-reduced-motion:reduce) {
  :is(.stat-card,.contact-card,.document-card,.kanban-card,.prompt-card,.todoist-card,.mail-management-card):hover { transform: none; }
}
