/* Kalameh 4.17. Quiet Persian workspaces: ink, paper, and one blue action. */
:root{--paper:#ffffff;--canvas:#f5f5f7;--ink:#202124;--secondary-ink:#5c626c;--separator:#dedfe3;--signal:#8a5100;--space:8px;--radius-panel:16px;--radius-control:9px;--ease-out:cubic-bezier(.22,1,.36,1)}
html:not([data-theme=dark]){--bg:var(--canvas);--surface:var(--paper);--text:var(--ink);--muted:var(--secondary-ink);--line:var(--separator)}
html[data-theme=dark]{--paper:#202226;--canvas:#17181b;--ink:#f3f4f6;--secondary-ink:#b5bac4;--separator:#41454d;--signal:#f4c47b;--bg:var(--canvas);--surface:var(--paper);--text:var(--ink);--muted:var(--secondary-ink);--line:var(--separator)}
.app-page{background:var(--canvas);color:var(--ink);-webkit-font-smoothing:antialiased}
.app-page .content{max-width:1600px;padding:32px clamp(20px,3vw,48px) 56px}
.app-page .page-head{margin-bottom:28px;align-items:center;gap:20px}
.app-page .page-head h1{font-size:clamp(24px,2.3vw,30px);font-weight:700;line-height:1.5}
.app-page .page-head p{font-size:13px;line-height:1.9;color:var(--muted);max-width:65ch}
.app-page .workspace-breadcrumb{font-size:12px;gap:8px;margin-bottom:8px}
.app-page :is(.panel,.project-card,.access-site){border:1px solid var(--line);border-radius:var(--radius-panel);background:var(--surface);box-shadow:0 2px 4px #00000003;overflow-wrap:anywhere}
.app-page :is(.panel-head,.table-toolbar,.finance-docs-head){padding:20px 24px;gap:16px;background:transparent}
.app-page :is(.panel-head,.finance-docs-head) h2{font-size:16px;font-weight:600}
.app-page :is(.panel-head,.finance-docs-head) p{color:var(--muted);font-size:12px;margin:4px 0 0}
.app-page .topbar{min-height:72px;box-shadow:none;background:color-mix(in srgb,var(--surface) 94%,transparent)!important;backdrop-filter:blur(16px)}
.app-page .sidebar{background:var(--surface)!important;border-color:var(--line)}
.app-page .sidebar-head{height:84px;min-height:84px}
.app-page .sidebar-logo-v65{max-width:130px!important}
.app-page .nav{padding-inline:12px}
.app-page .nav-title{font-size:11px!important;opacity:1;padding:8px 12px}
.app-page .nav-item{border-radius:8px;min-height:42px;padding:9px 12px;gap:11px;color:var(--muted)}
.app-page .nav-item.active{box-shadow:none;background:color-mix(in srgb,var(--primary) 9%,var(--surface));font-weight:600}
.app-page .sidebar .sidebar-icon{width:20px;height:20px;flex-basis:20px}
.app-page .sidebar-search{border-radius:8px;min-height:38px;background:var(--canvas)}
.app-page :is(.global-search,.list-search){border-radius:9px;background:var(--canvas);border:1px solid transparent;box-shadow:none}
.app-page :is(.global-search,.list-search):focus-within{border-color:var(--primary);outline:2px solid color-mix(in srgb,var(--primary) 18%,transparent);outline-offset:1px}
.app-page :is(.btn,.quick-btn){border-radius:var(--radius-control);min-height:40px;padding:9px 16px;box-shadow:none;font-weight:500}
.app-page :is(.btn.primary,.quick-btn){box-shadow:inset 0 1px 0 #ffffff20;background:var(--primary);color:#fff}
.app-page :is(.btn.secondary,.btn.outline,.btn.accent){background:var(--surface);border:1px solid var(--line);color:var(--text);box-shadow:none}
.app-page :is(.btn,.row-action,.icon-btn):hover{transform:none}
.app-page .row-action{min-height:34px;min-width:34px;border-radius:7px;padding:5px 10px;background:transparent;border-color:var(--line)}
.app-page .row-action:hover{background:var(--ui-hover)}
.app-page .row-action.danger{color:#a12536;background:transparent}
html[data-theme=dark] .app-page .row-action.danger{color:#ffb1b8}
.app-page .icon-btn{border-radius:9px}
.app-page :is(.segmented,.business-switcher-v626){border-radius:10px;box-shadow:none;background:var(--canvas);border-color:var(--line);padding:4px;gap:4px}
.app-page :is(.segmented button,.business-switcher-v626 a){border-radius:7px;box-shadow:none;min-height:36px}
.app-page :is(.settings-tabs-v64,.project-tabs-v4){gap:6px;border-color:var(--line);padding:8px;scrollbar-width:thin}
.app-page :is(.settings-tabs-v64 a,.project-tabs-v4 button){border-radius:8px;min-height:40px;box-shadow:none;white-space:nowrap}
.app-page .responsive-table th{padding:13px 18px;color:var(--muted);font-size:12px!important;background:var(--canvas);font-weight:500}
.app-page .responsive-table td{padding:16px 18px;border-color:var(--line);font-variant-numeric:tabular-nums}
.app-page .responsive-table td strong{font-weight:500}
.app-page .responsive-table tbody tr:hover>td{background:color-mix(in srgb,var(--primary) 3%,var(--surface))}
.app-page .status-badge{border-radius:6px;font-size:12px!important;line-height:1.6;padding:3px 8px;white-space:normal}
.app-page .form-grid{padding:24px;gap:20px 24px;align-items:start}
.app-page .form-grid>label{min-width:0}
.app-page .ui-field :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]),textarea,select){border-radius:10px;background:var(--surface);border-color:var(--line);box-shadow:none}
.app-page .ui-field>.ui-field-label{color:var(--muted);font-size:12px;font-weight:500}
.app-page .ui-field:focus-within>.ui-field-label{color:var(--primary)}
.app-page :is(input,textarea,select):disabled{opacity:.65;cursor:not-allowed}
.app-page :is(input[type=checkbox],input[type=radio]){accent-color:var(--primary)}
.app-page .select2-selection{border-radius:10px!important;box-shadow:none}
.app-page .select2-dropdown{border-radius:10px!important;box-shadow:0 12px 32px #00000018}
.app-page dialog.modal{width:min(720px,calc(100vw - 40px));max-width:calc(100vw - 40px);max-height:calc(100dvh - 48px);border-radius:20px;border:1px solid var(--line);overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;background:var(--surface);box-shadow:0 24px 80px #00000030;padding:0}
.app-page dialog.small-modal{width:min(480px,calc(100vw - 40px))}
.app-page dialog:is(.project-settings-v4,.member-report-modal-v12){width:min(960px,calc(100vw - 40px))}
.app-page dialog.modal>form{max-height:none!important;overflow:visible!important;display:block}
.app-page dialog.modal .form-grid{max-height:none!important;overflow:visible!important}
.app-page dialog.modal .modal-head{position:sticky;top:0;z-index:4;padding:20px 24px;background:var(--surface);border-bottom:1px solid var(--line);align-items:flex-start;gap:16px}
.app-page dialog.modal .modal-head h2{font-size:18px;font-weight:600;margin:0}
.app-page dialog.modal .modal-head p{font-size:12px;max-width:60ch}
.app-page dialog.modal .modal-footer{position:sticky;bottom:0;z-index:4;padding:16px 24px;background:var(--surface);border-top:1px solid var(--line);gap:10px}
.app-page dialog.modal .modal-footer .btn{min-height:42px}
.app-page dialog.modal::backdrop{background:#161c2c66;backdrop-filter:blur(4px)}
.app-page .detail-grid-v635{padding:24px;gap:24px}
.app-page .detail-grid-v635>div{background:var(--canvas);border-radius:10px;padding:14px 16px}
.app-page .detail-grid-v635 strong{font-weight:500;line-height:1.9}
.app-page .empty{padding:44px 24px;gap:10px;line-height:1.9}
.app-page .empty strong{font-size:15px;font-weight:600}
.app-page .empty-icon{background:var(--canvas);color:var(--muted);box-shadow:none;border-radius:14px}
.app-page .alert{border-radius:12px;box-shadow:none;border:1px solid var(--line)}
/* Finance: explicit scope, settled amounts, and a dedicated follow-up queue. */
.finance-view-tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin:20px 0 24px}
.finance-view-tabs a{padding:12px 0;color:var(--muted);border-bottom:2px solid transparent;font-size:14px;text-decoration:none}
.finance-view-tabs a[aria-current]{color:var(--text);border-bottom-color:var(--primary);font-weight:600}
.finance-view-tabs a span{margin-inline-start:8px;padding:1px 7px;border-radius:6px;background:var(--surface);font-size:12px}
.pending-overview{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:28px;background:var(--surface);border:1px solid var(--line);border-radius:16px;margin-bottom:24px}
.pending-overview>div>span{color:var(--signal);font-size:12px;font-weight:500}.pending-overview h2{font-size:23px;margin:8px 0}.pending-overview p{font-size:12px;color:var(--muted);margin:0;line-height:1.9}
.pending-overview dl{display:flex;gap:32px;margin:0}.pending-overview dt{font-size:12px;color:var(--muted);margin-bottom:8px}.pending-overview dd{font-size:23px;font-weight:600;margin:0;font-variant-numeric:tabular-nums}.pending-overview dd small{font-weight:400;color:var(--muted)}
.route-finance .finance-source-switcher-v625{display:none}
.route-finance .finance-actions-v4{gap:8px;flex-wrap:wrap;margin-bottom:20px}
.route-finance .finance-month-v4{padding:16px 20px;background:var(--surface);border:1px solid var(--line);border-radius:12px}
.route-finance .finance-cards-v64{gap:16px;margin:20px 0 24px}
.route-finance .finance-cards-v64 article{border:1px solid var(--line);border-radius:14px;background:var(--surface)!important;color:var(--text)!important;box-shadow:none;padding:20px}
.route-finance .finance-cards-v64 article:before{display:none}.route-finance .finance-cards-v64 article span,.route-finance .finance-cards-v64 article small{color:var(--muted)!important}.route-finance .finance-cards-v64 article strong{color:var(--text)!important;font-size:26px}
.route-finance .finance-filter-tabs-v635{gap:4px;flex-wrap:wrap;padding:14px 20px;overflow:visible}
.route-finance .finance-filter-tabs-v635 button{border:0;background:transparent;color:var(--muted);border-radius:7px;padding:6px 10px;min-height:36px}
.route-finance .finance-filter-tabs-v635 button.active{background:var(--canvas);color:var(--text);font-weight:600}
.finance-local-search{margin-inline-start:auto;max-width:240px;min-width:140px;flex:1;min-height:36px;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:8px;padding:6px 12px}
.finance-filter-status{font-size:12px;color:var(--muted);padding:12px 20px;margin:0}
/* Page-specific rhythm, all using the same surface and type roles. */
.route-dashboard .dash-kpis{gap:16px}.route-dashboard .dash-kpi{border-radius:14px;padding:22px;box-shadow:none}.route-dashboard .dash-welcome{margin-bottom:28px}.route-dashboard .dash-welcome h1{font-size:28px}.route-dashboard .dash-kpi>strong{font-size:30px}
.route-projects .project-grid{gap:20px}.route-projects .project-card{padding:24px}.route-projects .project-card:hover{transform:none;border-color:color-mix(in srgb,var(--primary) 40%,var(--line));box-shadow:none}
.route-projects .kanban-task{border:1px solid var(--line);border-radius:11px;box-shadow:0 2px 3px #00000004;padding:16px;background:var(--surface)}
.route-projects .kanban-task:hover{box-shadow:0 4px 12px #00000008}.route-projects .project-tabs-v4{background:var(--surface);border-radius:12px}
.route-tasks .team-task-board{background:var(--surface);border-radius:10px;border:1px solid var(--line);overflow:hidden}.route-tasks .task-item-heading{gap:10px}.route-tasks .task-personal-disclosure{margin-top:24px}
.route-calendar .calendar-cell{min-height:110px;padding:10px}.route-calendar :is(.calendar-event,.calendar-item){border-radius:6px;line-height:1.8}
:is(.route-clients,.route-leads,.route-contracts,.route-team,.route-leaves,.route-letters,.route-logs,.route-reports,.route-telephony) .module-panel{margin-bottom:24px}
.route-client-access .access-grid{gap:20px}.route-client-access .access-site{padding:24px}.route-client-access .access-overview{padding:24px;border-radius:16px;box-shadow:none}
.route-messages .messenger{border-radius:16px;overflow:hidden}.route-messages .conversation{padding:16px;border-bottom:1px solid var(--line)}.route-messages .message-bubble{border-radius:14px;box-shadow:none;line-height:1.9}.route-messages .message-compose{padding:16px;gap:12px;background:var(--surface)}
.route-settings .settings-tabs-v64{background:var(--surface);border-radius:12px;margin-bottom:24px}.route-settings .form-grid{gap:24px}.route-search .search-group-v67{margin-bottom:20px}.route-search .search-group-v67>a{padding:18px 24px}
.route-assistant :is(.assistant-shell,.assistant-panel){border-radius:16px;border-color:var(--line)}
.login-page .login-card{border-radius:20px;box-shadow:0 12px 48px #0000000a}.login-page .login-card input{border-radius:10px}.login-page .login-heading h1{font-size:26px}
/* Touch, keyboard, and user preferences are part of the component contract. */
.app-page :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--primary);outline-offset:3px}
@media(max-width:1100px){.pending-overview{align-items:flex-start;flex-direction:column;gap:24px}.app-page .content{padding-inline:24px}}
@media(max-width:700px){.app-page .content{padding:24px 16px 40px}.app-page .page-head{align-items:flex-start;flex-wrap:wrap;margin-bottom:20px}.app-page .page-head h1{font-size:24px}.app-page :is(.btn,.quick-btn,.row-action,.icon-btn,.nav-item){min-height:44px}.app-page .row-action{min-width:44px}.app-page .form-grid{padding:20px;grid-template-columns:minmax(0,1fr);gap:18px}.app-page .form-grid>.full{grid-column:1}.app-page :is(.panel-head,.table-toolbar,.finance-docs-head){padding:18px;flex-wrap:wrap}.app-page dialog.modal{width:calc(100vw - 16px);max-width:calc(100vw - 16px);max-height:calc(100dvh - 24px);border-radius:16px}.app-page dialog.modal :is(.modal-head,.modal-footer){padding:16px 20px}.app-page dialog.modal .modal-footer .btn{min-height:44px}.app-page .detail-grid-v635{grid-template-columns:1fr;padding:20px;gap:12px}.pending-overview{padding:20px;gap:24px}.pending-overview dl{width:100%;flex-wrap:wrap;gap:24px}.pending-overview dd{font-size:21px}.finance-view-tabs{gap:20px}.finance-local-search{flex-basis:100%;max-width:none}.route-finance .finance-cards-v64{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.route-finance .finance-cards-v64 article{padding:16px}.route-finance .finance-cards-v64 article strong{font-size:22px}.app-page .responsive-table td{padding:13px 12px}.route-messages .message-compose{padding:12px}.app-page .global-search kbd{display:none}}
@media(prefers-reduced-motion:reduce){.app-page *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(prefers-reduced-transparency:reduce){.app-page .topbar,.app-page dialog.modal::backdrop{backdrop-filter:none!important}.app-page .topbar{background:var(--surface)!important}.app-page dialog.modal::backdrop{background:#17181bba}}
@media(prefers-contrast:more){.app-page{--line:var(--muted)}.app-page :is(.btn,.row-action,input,select,textarea){border-color:var(--muted)}.app-page :focus-visible{outline-width:3px}}
@media print{.sidebar,.topbar,.page-head>.btn,.finance-actions-v4,.finance-view-tabs,dialog{display:none!important}.main{margin:0!important}.app-page .content{padding:0;max-width:none}.panel{box-shadow:none!important}}
.route-finance .page-head{display:flex}.route-finance .page-head>button[data-modal-open="modal-new-finance"]{display:inline-flex}
.route-calendar .calendar-v5{border-radius:16px;overflow:hidden;border:1px solid var(--line);background:var(--surface)}
.route-calendar .calendar-v5>header{padding:20px 24px;background:var(--surface);border-bottom:1px solid var(--line)}
.route-calendar .calendar-day-v5{padding:12px;border-color:var(--line)}.route-calendar .calendar-day-v5.today{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--primary) 55%,var(--line))}
.route-leads .pipeline{gap:12px}.route-leads .pipeline>div{border-radius:12px;box-shadow:none;padding:16px;border-color:var(--line)}
.route-team .attendance-report-grid-v65{gap:20px}.route-team .attendance-filters-v65{padding:20px;gap:12px;border-radius:12px}
.route-telephony .telephony-settings-v622{padding:24px}.route-telephony .telephony-metrics-v622{gap:16px}.route-telephony .telephony-metrics-v622 article{border:1px solid var(--line);border-radius:14px;box-shadow:none;background:var(--surface)}
.route-assistant .ai-workspace{border:1px solid var(--line);border-radius:16px;box-shadow:none;overflow:hidden;background:var(--surface)}.route-assistant .ai-sidebar{background:var(--canvas);border-color:var(--line)}.route-assistant .ai-chat-head{background:var(--surface);border-color:var(--line)}.route-assistant .ai-orb{background:var(--canvas);color:var(--primary);box-shadow:none}.route-assistant .ai-welcome h2{font-size:24px}.route-assistant .ai-composer{border:1px solid var(--line);border-radius:12px;box-shadow:none;background:var(--surface)}
@media(max-width:700px){.route-calendar .calendar-v5>header{padding:16px}.route-calendar .calendar-day-v5{padding:5px;min-height:80px}.route-telephony .telephony-settings-v622{padding:18px}.route-assistant .ai-welcome h2{font-size:20px}}
.app-page .ui-field.has-search-select .select2-selection--multiple{min-height:64px;padding:26px 12px 8px}
.app-page .ui-field.has-search-select>.ui-field-label{top:19px}
.app-page .ui-field>select[multiple]{min-height:96px!important;padding-top:28px!important}
.app-page .finance-tools{margin-inline-start:auto}.app-page .finance-tools>summary{cursor:pointer;list-style:none;border:1px solid var(--line);border-radius:8px;padding:8px 14px;background:var(--surface);font-size:12px;min-height:38px;display:flex;align-items:center;gap:8px}.app-page .finance-tools>summary::after{content:'⌄';font-size:16px}.app-page .finance-tools[open]>summary::after{content:'⌃'}.app-page .finance-tools>div{display:flex;flex-wrap:wrap;gap:8px;padding:12px 0}
.app-page .settings-tabs-v64{max-width:100%;overflow-x:auto;flex-wrap:nowrap}.app-page .settings-tabs-v64>a{flex-shrink:0}

/* 4.18 — Reading-first agency workspace. Neutral surfaces, meaningful status, restrained accent. */
:root{--paper:#fff;--canvas:#f4f6f8;--ink:#202936;--secondary-ink:#596579;--separator:#dce2e9;--signal:#8a500f;--radius-panel:12px;--radius-control:8px}
html[data-theme=dark]{--paper:#202731;--canvas:#161c24;--ink:#edf1f7;--secondary-ink:#b0bccd;--separator:#3c4859;--signal:#eac17c;color-scheme:dark}
html:not([data-theme=dark]){color-scheme:light}
.app-page .content{max-width:1640px;margin-inline:auto;padding:28px clamp(16px,2.5vw,40px) 48px;width:100%;min-width:0}
.app-page .main{min-width:0}.app-page .page-head{margin-bottom:24px}.app-page .page-head h1{font-size:26px;margin:0 0 6px}.app-page .page-head p{font-size:14px}
.app-page .sidebar-head{height:76px;min-height:76px}.app-page .nav section+section{margin-top:12px}.app-page .nav-item{font-size:13px;min-height:40px}.app-page .sidebar-icon{filter:grayscale(1);opacity:.85}.app-page .nav-item.active .sidebar-icon{filter:grayscale(1);opacity:1}.app-page .sidebar .nav-item.active{background:color-mix(in srgb,var(--primary) 10%,var(--surface));color:var(--text)}
.app-page .topbar{padding:12px 24px;gap:16px;min-height:68px;backdrop-filter:none;background:var(--surface)!important}.app-page .top-actions{gap:8px;flex-shrink:0}.app-page .global-search{min-width:160px;max-width:440px}.app-page .top-actions .icon-btn{box-shadow:none}
.app-page .btn.primary:hover{background:var(--primary-hover)}.app-page :is(.btn,.row-action,.segmented button){transition:background-color 150ms ease,border-color 150ms ease,color 150ms ease}
.app-page :is(.panel-head,.table-toolbar,.finance-docs-head){padding:18px 20px}.app-page :is(.panel-head,.finance-docs-head) h2{font-size:16px}.app-page :is(.panel-head,.finance-docs-head) p{font-size:13px}
.app-page :is(.metric-card,.dash-kpi,.access-overview){background:var(--surface);border:1px solid var(--line);box-shadow:none;border-radius:12px}.app-page :is(.metric-icon,.dash-kpi-head i){background:var(--canvas);color:var(--muted)}
.app-page .badge{border-radius:6px;font-size:12px;padding:4px 8px;font-weight:500;white-space:normal}.app-page .badge.green{background:#e7f3ec;color:#236044}.app-page .badge.orange{background:#fbefda;color:#80500e}.app-page .badge.red{background:#f9e8ec;color:#9a2b42}.app-page .badge.blue,.app-page .badge.violet{background:#eaf0fc;color:#34569d}.app-page .badge.gray{background:var(--canvas);color:var(--muted)}
html[data-theme=dark] .app-page .badge.green{background:#223d32;color:#9cdbb8}html[data-theme=dark] .app-page .badge.orange{background:#423522;color:#ebc37d}html[data-theme=dark] .app-page .badge.red{background:#432a33;color:#f2a8b5}html[data-theme=dark] .app-page :is(.badge.blue,.badge.violet){background:#293953;color:#b1c9ff}
.app-page .responsive-table th{font-size:13px!important}.app-page .responsive-table td{font-size:14px;padding:15px 18px;line-height:1.8}.app-page .responsive-table td small{font-size:12px;color:var(--muted)}
.ux-list-tools{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--line)}.ux-search{display:flex;min-width:0;width:min(360px,100%)}.ux-search input{width:100%;min-height:42px;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text);font-size:14px}.ux-list-tools>span,.ux-result{font-size:13px;color:var(--muted)}
.app-page .form-grid{padding:24px;gap:18px 20px}.app-page .ui-field :is(input:not([type=hidden]):not([type=checkbox]):not([type=radio]),select,textarea){font-size:14px!important;line-height:1.8}.app-page .ui-field>.ui-field-label{font-size:12px;line-height:1.5}.app-page .ui-field input::placeholder{color:var(--muted)}
.app-page .form-disclosure{border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:0;margin:0}.app-page .form-disclosure>summary{padding:16px 18px;cursor:pointer;font-size:14px;list-style:disclosure-closed;list-style-position:inside}.app-page .form-disclosure[open]>summary{list-style-type:disclosure-open;border-bottom:1px solid var(--line)}.app-page .form-disclosure>summary span{display:block;color:var(--muted);font-size:12px;margin:4px 20px 0}.app-page .form-disclosure .client-access-form-grid{padding:20px}.app-page .client-access-form-card{box-shadow:none;background:var(--canvas);border-radius:10px;padding:16px}.app-page .form-disclosure .tab-builder{padding:18px}
.app-page dialog.modal{border-radius:14px}.app-page dialog.modal .modal-head{padding:18px 24px}.app-page dialog.modal .modal-footer{padding:14px 24px}.app-page dialog.modal .modal-head p{font-size:13px}.app-page .upload-drop{padding:16px;min-height:100px;background:var(--canvas);border-radius:10px}
/* Dashboard: priorities are above secondary operational details. */
.route-dashboard .dash-welcome{margin-bottom:24px;padding:0;background:none;border:0;min-height:0}.route-dashboard .dash-welcome h1{font-size:26px}.route-dashboard .dash-welcome p{font-size:14px}.route-dashboard .dash-kpis{gap:12px;margin-bottom:24px}.route-dashboard .dash-kpi{padding:18px;min-height:130px}.route-dashboard .dash-kpi>strong{font-size:28px}.route-dashboard .dash-kpi small{font-size:12px}.route-dashboard .dash-layout{gap:20px;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr)}.route-dashboard .dash-priority-row{padding:16px 20px}.route-dashboard .dash-priority-row strong{font-size:14px}.route-dashboard .dash-priority-meta{font-size:12px}.route-dashboard .dash-balance{background:var(--canvas);border:1px solid var(--line);border-radius:10px}.route-dashboard .dash-side-stack{gap:20px}
/* Tasks: one project navigator, one status bar, and readable rows. */
.route-tasks .task-project-tabs{gap:24px}.route-tasks .task-project-tabs a{font-size:14px}.route-tasks .tasks-toolbar{gap:12px}.route-tasks .tasks-toolbar .segmented button{font-size:13px;min-height:40px}.route-tasks .tasks-toolbar .segmented button.selected{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line)}.route-tasks .team-task-board .task-row.task-item{padding:18px 20px;gap:10px 14px}.route-tasks .task-item .task-item-heading strong{font-size:15px}.route-tasks .task-item-meta{font-size:12px;line-height:1.9}.route-tasks .task-item .row-action{font-size:12px}.route-tasks .task-check{border-radius:6px}.route-tasks .task-personal-disclosure{border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:0}.route-tasks .task-personal-disclosure>summary{padding:16px 20px;font-size:14px}
/* Projects: compact identities and real list/card navigation. */
.route-projects .project-grid{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));gap:20px}.route-projects .project-card.modern{padding:0;overflow:hidden}.route-projects .project-cover{min-height:76px;height:76px;background:var(--surface)!important;padding:18px 20px;border-bottom:0}.route-projects .project-cover>span{width:42px;height:42px;font-size:20px;border-radius:10px;background:var(--canvas);color:var(--text);box-shadow:none}.route-projects .project-cover>img{width:42px;height:42px;border-radius:10px;object-fit:cover}.route-projects .project-body{padding:0 20px 20px}.route-projects .project-body h2{font-size:17px}.route-projects .project-owner{margin:18px 0}.route-projects .project-body footer{padding-top:16px}.route-projects .project-page-tools{gap:16px;margin-bottom:20px}.route-projects .view-switch{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:4px}.route-projects .view-switch button{border-radius:5px;min-height:36px}.route-projects .ux-project-list{grid-template-columns:1fr}.route-projects .ux-project-list .project-card{display:grid;grid-template-columns:100px minmax(0,1fr)}.route-projects .ux-project-list .project-cover{height:100%;display:flex;flex-direction:column;gap:8px}.route-projects .ux-project-list .project-body{padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:8px 24px}.route-projects .ux-project-list .project-owner{margin:0}.route-projects .ux-project-list .project-body footer{grid-column:1/-1}.route-projects .project-shell-v4{border-radius:12px}.route-projects .project-top-v4{padding:20px;background:var(--surface)}.route-projects .project-board-v4{gap:16px}
/* Finance: actionable pending amount; a dense document register. */
.route-finance .finance-cards-v64 article{padding:18px}.route-finance .finance-cards-v64 article strong{font-size:25px}.route-finance .pending-card a{display:flex;flex-direction:column;gap:8px;color:inherit;text-decoration:none}.route-finance .pending-card{border-color:color-mix(in srgb,var(--primary) 40%,var(--line))}.route-finance .pending-card:hover{background:var(--canvas)!important}.route-finance .finance-actions-v4{margin:0 0 16px}.route-finance .finance-month-v4{margin:0}.route-finance .pending-overview{padding:24px;margin:0 0 20px}.route-finance .finance-filter-tabs-v635{padding:12px 16px;gap:4px}.route-finance .finance-local-search{font-size:13px}.route-finance .finance-docs-v4{overflow:hidden}
/* Clients, access and leads: contact first, technical data on demand. */
.route-clients .business-switcher-v626,.route-leads .business-switcher-v626,.route-client-access .business-switcher-v626{margin-bottom:20px}.route-client-access .access-overview{padding:22px;gap:24px}.route-client-access .access-overview h2{font-size:22px}.route-client-access .access-grid{grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr))}.route-client-access .access-site{padding:20px}.route-client-access .access-site h2{font-size:16px}.route-client-access .access-site footer .btn.primary{background:var(--canvas);color:var(--text);border:1px solid var(--line)}.route-client-access .access-site-url{background:var(--canvas);border-radius:8px}.route-leads .pipeline{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:20px}.route-leads .pipeline>div{background:var(--surface);padding:16px;border-radius:10px;cursor:pointer}.route-leads .pipeline>div[aria-pressed=true]{outline:2px solid var(--primary);outline-offset:1px}.route-leads .pipeline>div span{font-size:13px}.route-leads .pipeline>div strong{font-size:24px;color:var(--text)}
/* Calendar: switch between spatial month and chronological reading. */
.ux-calendar-tools{padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.ux-calendar-agenda{display:none;padding:0 20px}.ux-agenda-mode .calendar-week-v5,.ux-agenda-mode .calendar-grid-v5{display:none}.ux-agenda-mode .ux-calendar-agenda{display:block}.ux-calendar-agenda article{display:grid;grid-template-columns:130px 1fr;gap:12px;padding:20px 0;border-bottom:1px solid var(--line)}.ux-agenda-event{grid-column:2;font-size:14px;line-height:1.9}.ux-calendar-agenda article>strong{grid-row:1/20;font-size:14px}.route-calendar .calendar-day-v5{min-height:110px;background:var(--surface)}.route-calendar .calendar-day-v5>span{background:var(--canvas);color:var(--text);border-inline-start:2px solid var(--primary);font-size:12px}.route-calendar .calendar-day-v5.today{background:color-mix(in srgb,var(--primary) 5%,var(--surface))}.route-calendar .calendar-week-v5{background:var(--canvas);color:var(--muted)}
/* Contracts/reports: readable navigation, numbers aligned for comparison. */
.route-contracts .contract-status-tabs-v30{gap:8px;padding:0 0 16px;display:flex;overflow-x:auto;flex-wrap:nowrap}.route-contracts .contract-status-tabs-v30 button{flex-shrink:0;min-height:42px;border-radius:8px;box-shadow:none;background:var(--surface);border:1px solid var(--line);color:var(--muted)}.route-contracts .contract-status-tabs-v30 button.active{background:var(--canvas);border-color:var(--primary);color:var(--text)}.route-reports .report-metrics{gap:16px}.route-reports .metric-card{padding:20px}.route-reports .report-grid{gap:20px}.route-reports .report-grid td:not(:first-child){font-variant-numeric:tabular-nums}.route-reports .metric-card strong{font-size:28px}
/* Team, leave, letters and logs use the shared searchable register. */
.route-team .attendance-card{padding:20px;gap:20px;background:var(--surface);box-shadow:none}.route-team .attendance-card strong{font-size:16px}.route-team .attendance-card span{font-size:13px}.route-team .attendance-filters-v65{background:var(--canvas);padding:16px}.route-team .attendance-report-grid-v65{gap:20px}.route-leaves .decision-actions{gap:8px}.route-letters .letter-body-v65{line-height:2;font-size:15px}.route-logs .responsive-table td{overflow-wrap:anywhere}
/* Communications: preserve context on phones instead of stacking two tall panes. */
.route-messages .messenger{border-radius:12px;background:var(--surface);height:calc(100dvh - 220px);min-height:420px}.route-messages .conversation-list{background:var(--surface);border-color:var(--line)}.route-messages .conversation{padding:16px}.route-messages .conversation.selected{background:var(--canvas);box-shadow:inset -3px 0 var(--primary)}.route-messages .chat-pane,.route-messages .message-stream{background:var(--canvas)}.route-messages .chat-head-v614{background:var(--surface);border-color:var(--line);min-height:68px}.route-messages .message-bubble{font-size:14px;background:var(--surface);color:var(--text);border:1px solid var(--line);box-shadow:none}.route-messages .message-line-v64.mine .message-bubble{background:color-mix(in srgb,var(--primary) 9%,var(--surface));color:var(--text)}.ux-chat-back{display:none}.route-assistant .ai-welcome{max-width:640px;margin-inline:auto}.route-assistant .ai-sidebar{background:var(--surface)}.route-assistant .ai-welcome p{font-size:14px;line-height:2}.route-assistant .ai-suggestions button{border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:none}
/* Settings and appearance: legible named choices, no luminous swatches. */
.app-page .theme-picker-panel-v637{width:320px;max-width:calc(100vw - 24px);padding:18px;background:var(--surface)!important;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 36px #16213226;color:var(--text)}.app-page .theme-picker-panel-v637 header{padding:0 0 14px}.app-page .theme-swatches-v637{gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.app-page .theme-swatch-v637{border-radius:8px;min-height:70px;background:var(--surface);border:1px solid var(--line);box-shadow:none;color:var(--text)}.app-page .theme-swatch-v637.selected{border-color:var(--primary);background:var(--canvas)}.app-page .theme-swatch-v637 i{box-shadow:none;width:24px;height:24px;border-radius:50%}.app-page .theme-picker-toggle-v637 span{box-shadow:none;border-radius:50%;width:16px;height:16px}.route-settings .settings-grid{gap:20px;align-items:start}.route-settings .settings-card{overflow:hidden}.route-settings .permission-grid-v64{gap:12px}.route-settings .permission-grid-v64>label{padding:14px;background:var(--surface);border-color:var(--line);border-radius:8px}.route-telephony .telephony-settings-v622{background:var(--surface);box-shadow:none}.route-search .search-group-v67{border:1px solid var(--line);border-radius:12px;overflow:hidden}.login-page{background:var(--canvas);color:var(--ink)}.login-page .login-card{border:1px solid var(--line);border-radius:16px;box-shadow:0 16px 48px #1621320d}
html[data-theme=dark] .app-page :is(.panel,.metric-card,.project-card,.access-site,.finance-docs-v4,.calendar-v5,.settings-card){background:var(--surface)!important;color:var(--text)}
html[data-theme=dark] .app-page :is(.nav-item.active,.finance-view-tabs a[aria-current],.page-head a,.panel-head>a,.access-site-url a){color:#bdceff}
@media(max-width:1100px){.app-page .topbar{padding:12px 16px}.route-dashboard .dash-layout{grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr)}.route-dashboard .dash-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.route-reports .report-grid{grid-template-columns:1fr}}
@media(max-width:900px){.app-page .topbar{flex-wrap:wrap}.app-page .top-actions{flex:1;justify-content:flex-end}.app-page .global-search{order:3;width:100%;max-width:none;flex-basis:100%}.app-page .content{padding:24px 20px 40px}.route-dashboard .dash-layout{grid-template-columns:1fr}.route-dashboard .dash-side-stack{display:grid;grid-template-columns:1fr 1fr}.route-messages .messenger{height:calc(100dvh - 240px)}.route-leads .pipeline{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){
 .app-page .content{padding:20px 12px 32px}.app-page .page-head{gap:16px;margin-bottom:20px}.app-page .page-head h1,.route-dashboard .dash-welcome h1{font-size:23px}.app-page .page-head p{font-size:13px}.app-page .topbar{padding:10px 12px;gap:10px}.app-page .top-actions{gap:6px}.app-page .top-actions :is(.icon-btn,.profile-trigger){min-width:40px;width:40px;min-height:42px}.app-page .top-actions .quick-task-menu{display:none}.app-page .global-search{min-height:42px}.app-page .global-search kbd{display:none}
 .app-page .responsive-table{overflow:visible;max-width:100%}.app-page table.ux-record-table{min-width:0!important;width:100%!important;display:block}.ux-record-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.ux-record-table tbody{display:block}.app-page .ux-record-table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;padding:18px 16px;border-bottom:1px solid var(--line)}.app-page .ux-record-table tbody tr[hidden]{display:none!important}.app-page .ux-record-table tbody td{display:flex;flex-direction:column;gap:4px;align-items:flex-start;border:0!important;padding:0!important;min-width:0;white-space:normal!important;overflow-wrap:anywhere;font-size:14px;direction:rtl;text-align:right;background:transparent!important}.app-page .ux-record-table td::before{content:attr(data-label);display:block;font-size:11px;color:var(--muted);font-weight:400}.app-page .ux-record-table td:first-child,.app-page .ux-record-table td:last-child,.app-page .ux-record-table td[colspan]{grid-column:1/-1}.app-page .ux-record-table td:first-child>strong{font-size:16px;font-weight:600}.app-page .ux-record-table td:first-child::before,.app-page .ux-record-table td[colspan]::before{display:none}.app-page .ux-record-table td:last-child .row-actions{width:100%;flex-wrap:wrap;gap:8px}.app-page .ux-record-table a.ltr,.app-page .ux-record-table td.ltr>*{direction:ltr}
 .ux-list-tools{padding:16px;align-items:stretch;flex-direction:column;gap:8px}.ux-search{width:100%}.app-page :is(.btn,.row-action,.segmented button){min-height:44px}.app-page .table-toolbar{flex-wrap:wrap}.app-page .table-toolbar .list-search{width:100%;max-width:none}.app-page .list-search input{font-size:14px}
 .route-dashboard .dash-side-stack{grid-template-columns:1fr}.route-dashboard .dash-kpi{padding:16px;min-height:132px}.route-dashboard .dash-kpi-head{align-items:flex-start}.route-dashboard .dash-kpi-head i{display:none}.route-dashboard .dash-kpi-head span{font-size:13px}.route-dashboard .dash-welcome-actions{width:100%}.route-dashboard .dash-welcome-actions .btn{flex:1}.route-dashboard .dash-coverage{grid-template-columns:1fr 1fr}.route-dashboard .dash-priority-row{flex-wrap:wrap}
 .route-tasks .tasks-toolbar .segmented{flex-wrap:nowrap;overflow-x:auto;width:100%;padding-bottom:6px}.route-tasks .tasks-toolbar .segmented button{flex-shrink:0}.route-tasks .tasks-toolbar .task-search{flex-basis:100%;width:100%}.route-tasks .team-task-board .task-row.task-item{grid-template-columns:24px minmax(0,1fr);padding:16px}.route-tasks .task-item .task-item-actions{grid-column:2;grid-row:auto;justify-self:start}.route-tasks .task-item-heading{flex-wrap:wrap}
 .route-projects .project-page-tools{flex-wrap:wrap}.route-projects .project-page-tools .list-search{width:100%}.route-projects .ux-project-list .project-body{grid-template-columns:1fr}.route-projects .ux-project-list .project-card{grid-template-columns:70px minmax(0,1fr)}.route-projects .ux-project-list .project-cover{padding:16px 8px}.route-projects .project-top-v4{flex-wrap:wrap;padding:16px}.route-projects .project-actions-v4{width:100%;display:flex;flex-wrap:wrap}
 .route-finance .finance-cards-v64{gap:10px}.route-finance .finance-cards-v64 article{padding:14px}.route-finance .finance-cards-v64 article strong{font-size:22px}.route-finance .finance-cards-v64 article small{font-size:11px}.route-finance .finance-month-v4{padding:14px;gap:12px}.route-finance .pending-overview{padding:20px;gap:20px}.route-finance .pending-overview h2{font-size:22px}.route-finance .pending-overview dl{width:100%;gap:20px}.route-finance .pending-overview dd{font-size:22px}.route-finance .finance-local-search{flex-basis:100%;max-width:none;order:-1;min-height:44px}.route-finance .finance-docs-head{flex-wrap:wrap}.finance-view-tabs{gap:20px;margin:16px 0}
 .route-leads .pipeline{display:flex;overflow-x:auto;padding:3px 2px 12px}.route-leads .pipeline>div{min-width:130px;flex-shrink:0}.route-client-access .access-overview{padding:20px;flex-direction:column;align-items:stretch}.route-client-access .access-stats{gap:12px}.route-client-access .access-toolbar{flex-wrap:wrap}.route-client-access .access-toolbar .list-search{width:100%}.route-client-access .access-site footer{flex-wrap:wrap}
 .route-calendar .calendar-day-v5{padding:6px;min-height:74px}.route-calendar .calendar-day-v5>span{font-size:10px;max-width:100%;overflow:hidden}.route-calendar .calendar-week-v5 span{font-size:10px}.ux-calendar-agenda article{grid-template-columns:80px 1fr;gap:10px}.ux-calendar-tools{padding:12px;flex-wrap:wrap}
 .route-messages .messenger{display:block;height:auto;min-height:420px}.route-messages .conversation-list{width:100%;max-height:none}.route-messages .messenger:not(.ux-conversation-open) .chat-pane{display:none}.route-messages .ux-conversation-open .conversation-list{display:none}.route-messages .ux-conversation-open .chat-pane{display:flex;min-height:440px;height:calc(100dvh - 250px)}.ux-chat-back{display:inline-flex;align-items:center;min-height:44px;font-size:13px}.route-messages .chat-head-v614{flex-wrap:wrap;gap:12px}.route-messages .message-compose{gap:8px;padding:12px}.route-messages .message-bubble{max-width:90%}
 .route-team .attendance-card{flex-wrap:wrap}.route-settings .settings-grid{grid-template-columns:1fr}.app-page .theme-picker-panel-v637{position:fixed;top:70px;left:12px;right:auto;width:320px}.app-page dialog.modal{width:calc(100vw - 16px);max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);border-radius:12px}.app-page dialog.modal .form-grid{padding:18px;gap:18px}.app-page dialog.modal .modal-head,.app-page dialog.modal .modal-footer{padding:16px 18px}.app-page .form-disclosure .client-access-form-grid{padding:14px;grid-template-columns:1fr}.app-page .ui-field :is(input,select,textarea){font-size:16px!important}
}
@media(prefers-reduced-motion:reduce){.app-page *,.app-page *::before,.app-page *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(prefers-contrast:more){:root{--separator:#737e8e;--secondary-ink:#384252}html[data-theme=dark]{--separator:#8794a8;--secondary-ink:#d4ddeb}}
@media print{.ux-list-tools,.ux-calendar-tools,.ux-chat-back{display:none!important}}
.route-calendar .calendar-day-v5>span:nth-of-type(n+4){display:none}
.ux-contract-search{width:min(360px,100%);padding:10px 14px;min-height:44px;border-radius:8px;background:var(--surface);color:var(--text);border:1px solid var(--line);margin-bottom:20px;font-size:14px}
.app-page .status-badge{font-size:12px;line-height:1.6}.app-page :is(.status-active,.status-paid,.status-done,.status-approved,.status-completed){color:#236044;background:#e7f3ec}.app-page :is(.status-pending,.status-waiting_contract,.status-review){color:#80500e;background:#fbefda}.app-page :is(.status-overdue,.status-rejected,.status-lost){color:#9a2b42;background:#f9e8ec}.app-page :is(.status-doing,.status-new,.status-contacted,.status-negotiating,.status-proposal){color:#34569d;background:#eaf0fc}.app-page :is(.status-cancelled,.status-draft,.status-inactive,.status-archived){color:var(--muted);background:var(--canvas)}
html[data-theme=dark] .app-page :is(.status-active,.status-paid,.status-done,.status-approved,.status-completed){background:#223d32;color:#9cdbb8}html[data-theme=dark] .app-page :is(.status-pending,.status-waiting_contract,.status-review){background:#423522;color:#ebc37d}html[data-theme=dark] .app-page :is(.status-overdue,.status-rejected,.status-lost){background:#432a33;color:#f2a8b5}html[data-theme=dark] .app-page :is(.status-doing,.status-new,.status-contacted,.status-negotiating,.status-proposal){background:#293953;color:#b1c9ff}
.app-page .finance-month-v4,.app-page .finance-month-v4 strong{color:var(--text)!important}.app-page .finance-month-v4 span{color:var(--muted)!important}.app-page .finance-month-v4 select{background:var(--surface)!important;border:1px solid var(--line)!important;color:var(--text)!important;border-radius:8px;min-height:42px;font-size:14px}.ux-finance-toolbar{display:flex;gap:16px;align-items:center;justify-content:space-between;margin-bottom:20px}.ux-finance-toolbar .finance-month-v4{flex:1;background:transparent!important;border:0!important;padding:0}.ux-finance-toolbar .finance-actions-v4{margin:0;flex-shrink:0}.ux-finance-toolbar .finance-tools{position:relative}.ux-finance-toolbar .finance-tools>div{position:absolute;z-index:5;inset-inline-end:0;top:100%;width:300px;padding:16px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 12px 32px #16213220}
.app-page .business-switcher-v626.ux-single-source{display:flex;background:transparent;border:0;box-shadow:none;padding:0;margin-bottom:16px}.app-page .business-switcher-v626.ux-single-source a{flex:0 1 auto;min-width:0;padding:8px 14px;background:var(--surface);border:1px solid var(--line);color:var(--muted);min-height:36px}
.app-page .ux-register-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}.app-page .ux-register-head .ux-list-tools{border:0;padding:0;flex:0 1 420px}.route-client-access .access-overview{padding:18px 20px;margin-bottom:20px}.route-client-access .access-overview h2{font-size:19px;margin:4px 0}.route-client-access .access-overview p{margin:0;font-size:13px}.route-client-access .access-overview .eyebrow{display:none}.route-client-access .access-toolbar{margin:16px 0}.route-client-access .access-stats strong{font-size:26px}
.route-tasks .task-item-heading strong{font-size:15px!important}.route-tasks .task-item-meta span,.route-tasks .task-item-meta time{font-size:12px!important}.route-tasks .task-item-heading .status-badge,.route-tasks .task-item .task-signal{font-size:12px!important}.route-tasks .task-item-actions .row-action{font-size:12px!important}
@media(max-width:600px){.ux-finance-toolbar{align-items:stretch;flex-direction:column}.ux-finance-toolbar .finance-month-v4{flex-wrap:wrap}.ux-finance-toolbar .finance-actions-v4{align-self:flex-end}.ux-finance-toolbar .finance-tools>div{max-width:calc(100vw - 36px)}.app-page .ux-register-head .ux-list-tools{flex-basis:100%}.app-page .business-switcher-v626.ux-single-source a{min-height:44px}}
.app-page .module-panel{min-height:0}.app-page .module-panel>.empty{min-height:190px}.route-settings .font-settings-v5{display:grid;grid-template-columns:1fr 1fr;align-items:center;margin-bottom:20px}.route-settings .font-settings-v5>.panel-head{border:0}.route-settings .font-settings-v5>form{display:flex;align-items:center;gap:12px;padding:16px 20px}.route-settings .font-settings-v5 .form-grid{padding:0;flex:1}.route-settings .font-settings-v5 .modal-footer{padding:0;border:0;background:transparent}.route-settings .font-settings-v5 .modal-footer .btn.secondary{display:none}.ux-assistant-off{padding:14px 16px;border:1px solid var(--line);border-radius:10px;background:var(--canvas);font-size:13px!important;line-height:1.9!important;color:var(--text)!important}
.app-page .business-import-tools-v627 .btn.excel{background:var(--surface);color:var(--text);border:1px solid var(--line);box-shadow:none}
@media(max-width:900px){.route-settings .font-settings-v5{grid-template-columns:1fr}.route-settings .font-settings-v5>form{flex-wrap:wrap}.route-settings .font-settings-v5 .form-grid{min-width:160px}}
.ux-calendar-agenda article>strong{grid-row:1}.ux-agenda-event>span{display:block}.ux-agenda-event>small{display:block;color:var(--muted);font-size:12px;margin-top:4px}.route-tasks .tasks-toolbar .task-search{background:var(--surface);border:1px solid var(--line);padding:0 10px}.route-tasks .task-search input{font-size:13px}
@media(max-width:600px){.route-messages .ux-conversation-open .chat-pane{height:calc(100dvh - 340px)!important;min-height:360px!important}.route-messages .messenger.ux-conversation-open{min-height:0!important;height:auto!important}.route-messages .message-stream{min-height:0!important;flex:1;overflow-y:auto}.route-messages .message-compose{flex-shrink:0}.route-tasks .task-item .task-item-heading{display:block}.route-tasks .task-item-heading .status-badge{display:inline-flex;margin-top:8px}}
.app-page{min-height:100dvh}.route-calendar .calendar-v5>header>a{background:var(--canvas);color:var(--text);border:1px solid var(--line);border-radius:8px;min-height:40px;display:flex;align-items:center;padding:8px 12px}.route-calendar .calendar-v5>header{background:var(--surface)!important}
html[data-theme=dark] .app-page :is(.dash-eyebrow,.dash-panel-foot a,.dash-panel-foot a:visited,.dash-agenda .panel-head a,.access-overview .eyebrow,.project-body footer span,.calendar-v5>header>a,.settings-tabs-v64 a:not(.active),.client-access-card a,.file-link-v5){color:#bdceff}html[data-theme=dark] .app-page .project-cover>span{color:var(--text)}
@media(max-width:600px){.route-calendar .calendar-v5>header>a{min-height:44px;padding:8px}.app-page .appearance-switch{min-height:42px}}
.route-projects .ux-project-list .project-body{grid-template-columns:minmax(0,1.6fr) minmax(120px,1fr) minmax(120px,1fr);align-items:center;gap:6px 20px}.route-projects .ux-project-list .project-body h2{grid-column:1;grid-row:1;margin:0}.route-projects .ux-project-list .project-body>p{grid-column:1;grid-row:2;margin:0}.route-projects .ux-project-list .project-owner{grid-column:2;grid-row:1/3;display:flex;flex-direction:column;align-items:flex-start;gap:4px;background:transparent;border:0;padding:0}.route-projects .ux-project-list .project-progress-head{grid-column:3;grid-row:1;margin:0}.route-projects .ux-project-list .progress-line{grid-column:3;grid-row:2}.route-projects .ux-project-list .project-body footer{margin-top:10px;padding-top:12px}.route-projects .ux-project-list .project-cover{justify-content:center}.app-page :is(.status-paused,.status-sent,.status-open,.status-follow_up){background:var(--canvas);color:var(--muted)}
@media(max-width:600px){.route-projects .ux-project-list .project-body{display:flex;flex-direction:column;align-items:stretch;gap:10px}.route-projects .ux-project-list .project-owner{flex-direction:row;justify-content:space-between}}
.app-page .ux-modal-sections{display:flex;gap:8px;padding:12px 24px;border-bottom:1px solid var(--line);background:var(--surface)}.ux-modal-sections button{border:1px solid transparent;border-radius:8px;min-height:42px;padding:8px 16px;color:var(--muted);background:transparent;font-size:14px}.ux-modal-sections button[aria-pressed=true]{border-color:var(--line);background:var(--canvas);color:var(--text)}.app-page #modal-project-settings>form[hidden]{display:none!important}
.route-projects .kanban-v4{gap:16px;padding:20px;align-items:start;overflow-x:auto;scrollbar-width:thin;scroll-snap-type:x proximity}.route-projects .kanban-column-v4{background:var(--canvas);border:1px solid var(--line);border-radius:10px;min-width:260px;scroll-snap-align:start;box-shadow:none}.route-projects .kanban-column-v4>header{padding:14px 16px;border-bottom:1px solid var(--line)}.route-projects .kanban-column-v4 .kanban-dropzone{padding:10px;min-height:180px}.route-projects .kanban-task-v4{padding:16px;border-radius:9px;background:var(--surface);box-shadow:none;border:1px solid var(--line)}.route-projects .kanban-task-v4 h3{font-size:14px;line-height:1.9;padding-inline-end:26px}.route-projects .kanban-task-v4 p{font-size:12px;line-height:1.9;color:var(--muted)}.route-projects .kanban-task-v4 footer{font-size:12px;gap:8px;flex-wrap:wrap}.route-projects .kanban-task-v4 .priority-line{height:2px}.route-projects .close-project{border:1px solid var(--line);border-radius:8px;display:grid;place-items:center;width:40px;height:40px;background:var(--surface);color:var(--text)}
@media(max-width:600px){.route-projects .kanban-v4{padding:12px;gap:12px;display:flex;max-width:100%}.route-projects .kanban-column-v4{flex:0 0 86%;min-width:240px}.app-page .ux-modal-sections{padding:12px 18px;overflow-x:auto}.ux-modal-sections button{min-height:44px;flex-shrink:0}.route-projects .project-identity-v4 h2{font-size:18px}.route-projects .project-identity-v4{min-width:0}}
.app-page .project-settings-nav-v33{position:static}.route-projects .project-top-v4{min-height:0;padding:16px 20px}.route-projects .kanban-column-v4{flex:1 0 280px}.route-projects .project-shell-v4 .kanban-column-v4{height:clamp(360px,calc(100dvh - 280px),640px)}.route-projects .kanban-column-v4>header>span,.column-settings-head>span{background:var(--canvas)!important;color:var(--text)!important;border:1px solid var(--line)}.route-projects .project-tabs-v4 button.active{background:var(--surface);color:var(--text)!important;border-color:var(--primary)}
@media(max-width:600px){.route-projects .kanban-column-v4{flex:0 0 86%}.route-projects .project-shell-v4 .kanban-column-v4{height:440px}}
.app-page .project-settings-nav-v33 button.active{background:var(--canvas)!important;color:var(--text)!important;border-color:var(--line)!important}html[data-theme=dark] .app-page .remove-column{color:#f2a8b5}
html[data-theme=dark],html[data-theme=dark] body.app-page{background:var(--canvas)!important}
.login-page{--primary:#3156c8;--primary-hover:#2645a5;--primary-soft:#eef2ff;min-height:100dvh;padding:32px 16px}.login-page .login-shell{display:flex;flex-direction:column;gap:24px;width:min(440px,100%);margin:auto;min-height:0;align-items:stretch}.login-page .login-brand{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;background:none;padding:0;color:var(--muted);min-height:0}.login-page .login-brand img{width:130px;height:auto}.login-page .login-brand span{font-size:13px}.login-page .login-card{width:100%;padding:32px;border-radius:14px}.login-page .login-heading .eyebrow{display:none}.login-page .login-heading h1{font-size:24px;margin:0 0 12px}.login-page .login-heading p{font-size:14px;color:var(--muted);line-height:1.9}.login-page .login-form .btn.primary{background:var(--primary);border-color:var(--primary);box-shadow:none;min-height:46px;border-radius:8px;font-size:14px}.login-page .login-note{font-size:12px;color:var(--muted);line-height:1.9}.login-page .login-form input{font-size:16px}.login-page .ui-field-label{color:var(--muted)}
@media(max-width:600px){.login-page{padding:24px 12px}.login-page .login-card{padding:24px}.login-page .login-shell{gap:20px}}
.route-finance .finance-page-v64{display:grid;gap:20px}.route-finance .ux-finance-toolbar,.route-finance .finance-cards-v64,.route-finance .pending-overview,.route-finance .finance-actions-v4{margin:0!important}.route-finance .finance-cards-v64 article{min-height:120px}.route-finance .finance-view-tabs{margin:16px 0 20px}.route-finance .finance-month-v4{min-height:48px}
