/* Phtudánka: lightweight fullscreen workbench with a floating bottom dock. */
:root{
  --ui-scale:1;
  --ui-font-family:"DM Sans",Arial,sans-serif;
  --paper:#f7f7fb;
  --surface:#ffffff;
  --surface-soft:#f2f1f7;
  --ink:#252439;
  --muted:#7d7a91;
  --line:#e7e5ee;
  --forest:#7057e7;
  --mint:#eeebff;
  --sidebar:#ffffff;
  --violet:#7057e7;
  --violet-soft:#eeebff;
  --blue:#4b89f5;
  --blue-soft:#eaf2ff;
  --coral:#f9796b;
  --coral-soft:#fff0ed;
  --amber:#eba941;
  --amber-soft:#fff4df;
  --cyan:#4bbacd;
  --shadow:0 12px 34px rgba(49,44,82,.07);
}
html{scrollbar-gutter:stable}

html,body{width:100%;min-height:100%;margin:0;background:var(--paper)}
body{color:var(--ink);font-size:20px;overflow-x:hidden;zoom:var(--ui-scale)}
body,body *{font-family:var(--ui-font-family)!important}
html[data-ui-font="system"]{--ui-font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif}
html[data-ui-font="serif"]{--ui-font-family:Georgia,"Times New Roman",serif}
main{max-width:none;margin:0;padding:30px 34px 126px}
#app,.topbar{width:min(1740px,100%);margin-left:auto;margin-right:auto}
.topbar{min-height:72px;margin-bottom:24px;border-bottom:1px solid var(--line)}
.topbar h1{font-size:26px;letter-spacing:-.55px}
.topbar-copy{display:grid;gap:2px}
.topbar-copy p{margin:0;color:var(--muted);font-size:13px;text-transform:capitalize}
.topbar .eyebrow{margin-bottom:3px}
body[data-page="dashboard"] .topbar{min-height:72px;margin-bottom:28px}
.avatar{display:none}
.top-actions .notification-button{display:grid;place-items:center;position:relative;padding:0;line-height:1}
.top-actions .settings-button{display:grid;place-items:center;padding:0;line-height:1;color:var(--muted);font-size:18px}
.top-actions .settings-button:hover,.top-actions .settings-button.is-active{color:var(--violet);border-color:rgba(112,87,231,.32);background:var(--violet-soft)}
.top-actions .theme-button{display:grid;place-items:center;padding:0;line-height:1;color:var(--muted);font-size:18px}
.top-actions .theme-button:hover{color:var(--violet);border-color:rgba(112,87,231,.32);background:var(--violet-soft)}
.top-actions{gap:7px}
.header-icon-button{width:44px;height:44px;border:1px solid transparent;border-radius:12px;background:transparent;color:#657187;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease}
.header-icon-button:hover{border-color:var(--line);background:var(--surface);color:#2f67eb;transform:translateY(-1px);box-shadow:0 5px 16px rgba(43,55,84,.08)}
.header-icon-button svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.85;stroke-linecap:round;stroke-linejoin:round}
.settings-button svg,.theme-button svg{width:25px;height:25px}
.top-action-divider{width:1px;height:28px;margin:0 10px;background:var(--line)}
.notification-glyph{position:relative;display:block;width:18px;height:18px;border:2px solid currentColor;border-radius:50%}
.notification-glyph::after{content:"";position:absolute;inset:4px;border-radius:50%;background:currentColor}
.notification-button.has-unread{color:var(--violet);background:var(--violet-soft)}
.notification-button .notification-dot{position:absolute;top:3px;right:4px;width:7px;min-width:7px;height:7px;padding:0;border:2px solid var(--surface);border-radius:50%;background:#ef5350;color:transparent;font-size:0}
.notification-button .notification-dot[hidden]{display:none}
.notification-dialog{width:min(520px,calc(100vw - 24px));max-width:none;height:100dvh;max-height:none;margin:0 0 0 auto;padding:0;border:0;border-radius:24px 0 0 24px;background:var(--surface);color:var(--ink);box-shadow:-18px 0 55px rgba(40,35,68,.16)}
.notification-dialog::backdrop{background:rgba(35,32,52,.28);backdrop-filter:blur(3px)}
.notification-sheet{height:100%;display:flex;flex-direction:column}
.notification-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:25px 24px 18px;border-bottom:1px solid var(--line)}
.notification-head h2{font-size:27px}
.notification-head-actions{display:flex;align-items:center;gap:8px}
.notification-list{min-height:0;overflow:auto;padding:10px 14px 24px}
.notification-item{width:100%;display:grid;grid-template-columns:43px 1fr auto;gap:12px;align-items:start;padding:15px 10px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);text-align:left;cursor:pointer;font:inherit}
.notification-item:hover{background:var(--surface-soft);border-radius:14px}
.notification-item.is-unread{background:var(--violet-soft);border-radius:14px;margin:4px 0;border-bottom-color:transparent}
.notification-kind{width:43px;height:43px;display:grid;place-items:center;border-radius:13px;background:var(--blue-soft);color:#356dc4;font:800 15px Manrope}
.severity-warning .notification-kind{background:var(--amber-soft);color:#9a6413}
.severity-success .notification-kind{background:#e8f7ef;color:#25885a}
.severity-action .notification-kind{background:var(--coral-soft);color:#c8564c}
.notification-copy{min-width:0;display:grid;gap:4px}
.notification-copy strong{font-size:15px;line-height:1.3}
.notification-copy>span{color:var(--muted);font-size:13px;line-height:1.45}
.notification-copy .notification-job-label{color:var(--ink);font-weight:800;font-size:13px}
.notification-arrow{color:var(--muted);font-size:24px;line-height:1}
.notification-item-actions{display:flex;align-items:center;gap:6px;align-self:center}
.notification-dismiss-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--muted);cursor:pointer;padding:0;transition:background-color .15s ease,color .15s ease,transform .15s ease}
.notification-dismiss-btn:hover{background:var(--coral-soft);color:#c8564c;border-color:rgba(200,86,76,.2);transform:scale(1.1)}
.notification-dismiss-btn:active{transform:scale(0.92)}
.notification-empty{min-height:260px;display:grid;place-content:center;gap:5px;text-align:center;color:var(--muted)}
.notification-empty strong{color:var(--ink)}
@media(max-width:640px){.notification-dialog{width:100vw;border-radius:0}.notification-head{padding:20px 16px 15px}.notification-head-actions .text-button{font-size:12px}.top-actions .notification-button{display:grid!important}}
.notification-action-dialog{width:min(460px,calc(100vw - 28px));max-width:none;padding:0;border:0;border-radius:22px;background:var(--surface);color:var(--ink);box-shadow:0 24px 80px rgba(40,35,68,.22)}
.notification-action-dialog::backdrop{background:rgba(35,32,52,.34);backdrop-filter:blur(3px)}
.notification-action-card{display:grid;gap:18px;padding:22px}
.notification-action-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.notification-action-head h2{font-size:23px;line-height:1.2}
.notification-action-message{margin:0;color:var(--muted);line-height:1.55}
.notification-action-error{margin:0;padding:11px 13px;border:1px solid #f1bbb5;border-radius:12px;background:#fff0ee;color:#a43730;font-size:13px;font-weight:700;line-height:1.45}
.notification-action-body{display:grid;gap:8px}
.notification-job-context{display:grid;gap:5px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}
.notification-job-context>span{font-size:10px;font-weight:800;letter-spacing:.7px;text-transform:uppercase;color:var(--muted)}
.notification-job-context>strong{font-size:17px}.notification-job-context p{margin:0;color:var(--ink);line-height:1.4}.notification-job-context small{color:var(--muted);line-height:1.45}
.notification-profile-link{justify-self:start;margin-top:4px;padding:0}
.notification-retry{justify-self:start;margin-top:2px}
.notification-action-body label{display:grid;gap:7px;font-weight:700;font-size:13px}
.notification-action-body select,.notification-action-body input,.notification-action-body .editable-field{width:100%;min-height:46px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft);color:var(--ink);padding:0 13px;font:inherit}
.notification-action-body .editable-field{display:flex;align-items:center;padding-block:10px;white-space:pre-wrap;overflow-wrap:anywhere;cursor:text}
.notification-action-body .editable-field:focus{outline:2px solid var(--violet);outline-offset:1px}
.notification-action-body .editable-field:empty::before{content:attr(data-placeholder);color:var(--muted);pointer-events:none}
.notification-action-buttons{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.notification-action-buttons .danger{margin-right:auto}
@media(max-width:520px){.notification-action-card{padding:18px}.notification-action-buttons{display:grid;grid-template-columns:1fr 1fr}.notification-action-buttons .danger{margin-right:0}.notification-action-buttons .primary{grid-column:1/-1}.notification-action-buttons .button{width:100%}}

/* User-facing settings and safe manual checks. */
.settings-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.settings-panel{margin:0;display:grid;align-content:start;gap:20px}
.settings-wide{grid-column:1/-1}
.settings-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}
.settings-heading h2{font-size:23px;margin:2px 0 0}
.settings-heading p,.settings-note{margin:6px 0 0;color:var(--muted);font-size:13px;line-height:1.5}
.settings-saving{color:var(--violet);font-size:12px;font-weight:800}
.settings-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.settings-fields label{margin:0;gap:8px;font-size:13px}
.settings-fields select{min-height:48px;background:var(--surface-soft);border-color:var(--line)}
.settings-note{padding:12px 14px;border-radius:12px;background:var(--violet-soft);color:var(--ink)}
.settings-actions{display:grid;gap:10px}
.settings-actions article{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:15px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}
.settings-actions strong{font-size:15px}.settings-actions p{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.5}.settings-actions .button{min-width:160px}
.integration-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.integration-grid article{display:grid;gap:8px;padding:15px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}
.integration-grid article>strong{font-size:14px}.integration-grid small{color:var(--muted);font-size:11px;line-height:1.4}
.settings-state{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;font-weight:700}.settings-state i{width:8px;height:8px;border-radius:50%;background:var(--amber)}.settings-state.is-ok{color:#25885a}.settings-state.is-ok i{background:#36ad72}
.settings-runs{display:grid;gap:0;border-top:1px solid var(--line);padding-top:17px}.settings-runs h3{margin-bottom:7px}.settings-runs>div{display:grid;grid-template-columns:minmax(0,1fr) auto 155px;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line);font-size:12px}.settings-runs time{color:var(--muted);text-align:right}.settings-runs strong{font-size:11px}.run-succeeded{color:#25885a}.run-failed{color:var(--coral)}.run-running{color:var(--violet)}
@media(max-width:900px){.settings-layout{grid-template-columns:1fr}.settings-wide{grid-column:auto}.integration-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.settings-fields,.integration-grid{grid-template-columns:1fr}.settings-actions article{grid-template-columns:1fr}.settings-actions .button{width:100%}.settings-runs>div{grid-template-columns:1fr auto}.settings-runs time{grid-column:1/-1;text-align:left}.settings-heading{flex-direction:column}.settings-heading .button{align-self:stretch}}

/* Stitch Invoicing System & Redesign */
.invoice-workbench{display:flex;flex-direction:column;gap:18px;width:100%}
.invoice-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.invoice-head-title-wrap h2{margin:0;font-size:26px;font-weight:700;letter-spacing:-0.5px;color:var(--ink)}
.invoice-head-desc{display:block;margin-top:4px;color:var(--muted);font-size:14px}
.invoice-head-status{display:flex;align-items:center}
.invoice-connected-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--line);box-shadow:0 1px 3px rgba(0,0,0,0.03);font-size:12px;color:var(--muted)}
.invoice-connected-pill strong{color:var(--ink);font-weight:600}
.pulse-indicator{position:relative;display:flex;width:8px;height:8px}
.pulse-ring{position:absolute;width:100%;height:100%;border-radius:50%;background:#10b981;opacity:0.75;animation:pulsePing 1.5s cubic-bezier(0,0,0.2,1) infinite}
.pulse-core{position:relative;width:8px;height:8px;border-radius:50%;background:#10b981}
@keyframes pulsePing{75%,100%{transform:scale(2.2);opacity:0}}
.status-sync-icon{display:inline-flex;color:#10b981}

/* 3-Column Top Metrics Strip */
.invoice-metrics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.invoice-metric-card{position:relative;overflow:hidden;padding:16px 20px;border-radius:14px;background:var(--surface);border:1px solid var(--line);box-shadow:0 1px 4px rgba(0,0,0,0.03);display:flex;flex-direction:column;justify-content:space-between;min-height:114px;transition:box-shadow .2s ease,border-color .2s ease}
.invoice-metric-card:hover{box-shadow:0 4px 12px rgba(0,0,0,0.05);border-color:#d5d1e8}
.metric-corner-glow{position:absolute;top:0;right:0;width:96px;height:96px;border-radius:50%;margin-top:-24px;margin-right:-24px;pointer-events:none}
.glow-amber{background:radial-gradient(circle,rgba(245,158,11,0.18) 0%,transparent 70%)}
.glow-blue{background:radial-gradient(circle,rgba(37,99,235,0.16) 0%,transparent 70%)}
.glow-green{background:radial-gradient(circle,rgba(16,185,129,0.16) 0%,transparent 70%)}

.metric-top-row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.metric-title-group{display:flex;align-items:center;gap:8px}
.metric-icon-box{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center}
.box-amber{background:#ffeedd;color:#996100}
.box-blue{background:#dbe1ff;color:#004ac6}
.box-green{background:#d1fae5;color:#00714d}
.metric-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.5px;color:var(--muted)}

.metric-badges-cluster{display:flex;align-items:center;gap:6px}
.metric-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700}
.badge-amber{background:#ffeedd;color:#784b00}
.badge-blue{background:#dbe1ff;color:#004ac6}
.badge-neutral{background:var(--surface-soft);color:var(--muted)}
.badge-error{background:#fee2e2;color:#991b1b}
.dot-error{width:6px;height:6px;border-radius:50%;background:#ef4444}
.badge-green{background:#d1fae5;color:#065f46}
.badge-month{background:var(--surface-soft);color:var(--ink);font-weight:600}

.metric-bottom-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-top:14px}
.metric-figure{display:flex;align-items:baseline;gap:4px}
.metric-num{font-size:26px;font-weight:800;letter-spacing:-0.5px;color:var(--ink);font-feature-settings:"tnum"}
.metric-cur{font-size:15px;font-weight:600;color:var(--muted)}
.metric-status-hint{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:4px}
.hint-amber{color:#b45309;font-weight:600}

/* Stage Navigation & Controls Card */
.invoice-controls-card{display:flex;flex-direction:column;gap:10px;padding:10px 12px;background:var(--surface);border-radius:14px;border:1px solid var(--line);box-shadow:0 1px 4px rgba(0,0,0,0.03)}
.invoice-stage-nav-row{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-bottom:2px}
.invoice-stage-tabs{display:inline-flex;align-items:center;gap:4px;padding:4px;background:var(--surface-soft);border-radius:10px}
.stage-tab{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:8px;font-size:13px;font-weight:600;border:0;background:transparent;color:var(--muted);cursor:pointer;transition:all .15s ease}
.stage-tab:hover{color:var(--ink);background:rgba(0,0,0,0.03)}
.stage-tab.active{background:#2563eb;color:#ffffff;box-shadow:0 2px 6px rgba(37,99,235,0.25)}
.stage-count{display:inline-flex;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:700;background:rgba(0,0,0,0.06);color:inherit}
.stage-count.count-active{background:rgba(255,255,255,0.25);color:#ffffff}
.stage-tab-jump{color:var(--muted);gap:6px}
.stage-tab-jump:hover{color:#2563eb}

.invoice-sync-meta{display:none;align-items:center;gap:6px;font-size:12px;color:var(--muted);padding-right:8px}
.sync-dot{width:6px;height:6px;border-radius:50%;background:#10b981}

/* Filters & Search Toolbar */
.invoice-filter-bar-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:6px 10px;background:rgba(241,245,249,0.5);border-radius:10px}
.invoice-account-pills{display:flex;align-items:center;gap:6px;overflow-x:auto;padding-bottom:2px}
.account-filter-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.5px;color:var(--muted);margin-right:2px}
.account-pill{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;font-size:12px;font-weight:600;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;transition:all .15s ease;white-space:nowrap}
.account-pill:hover{border-color:#b4b0d0}
.account-pill.active{background:#1e293b;color:#ffffff;border-color:#1e293b}
.account-pill.pill-jan.active{background:#2563eb;color:#ffffff;border-color:#2563eb}
.account-pill.pill-well.active{background:#0d9488;color:#ffffff;border-color:#0d9488}
.account-pill.pill-without-invoice.active{background:#475569;color:#ffffff;border-color:#475569}
.account-dot{width:7px;height:7px;border-radius:50%}
.dot-jan{background:#2563eb}
.dot-well{background:#10b981}
.dot-without-invoice{background:#64748b}
.account-pill.active .account-dot{background:#ffffff}
.pill-badge{font-size:11px;font-weight:700;opacity:0.85}

.invoice-search-and-sort{display:flex;align-items:center;gap:8px;flex:1;justify-content:flex-end;min-width:280px}
.invoice-search-wrap{position:relative;display:flex;align-items:center;flex:1;max-width:320px}
.search-icon-wrap{position:absolute;left:10px;color:var(--muted);display:flex;pointer-events:none}
.invoice-search-input{width:100%;height:36px;padding:0 36px 0 34px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-size:13px;transition:border-color .15s,box-shadow .15s}
.invoice-search-input:focus{outline:0;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,0.12)}
.search-badge{position:absolute;right:8px;padding:2px 5px;border-radius:4px;background:var(--surface-soft);font-size:10px;color:var(--muted);font-weight:600;pointer-events:none}
.invoice-sort-wrap{position:relative;display:flex;align-items:center}
.sort-icon-wrap{position:absolute;left:10px;color:var(--muted);display:flex;pointer-events:none}
.invoice-sort-select{height:36px;padding:0 12px 0 32px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font-size:12px;font-weight:600;cursor:pointer}

/* Job Billing Cards Stream */
.invoice-cards-stream{display:flex;flex-direction:column;gap:12px;margin-top:4px}
.invoice-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 3px rgba(0,0,0,0.03);overflow:hidden;transition:box-shadow .15s ease,border-color .15s ease}
.invoice-card:hover{box-shadow:0 3px 10px rgba(0,0,0,0.05);border-color:#cfcae4}
.invoice-card.is-warning{border-color:#f59e0b}
.invoice-card[data-sortable="true"]{transition:transform .16s ease,opacity .16s ease,box-shadow .16s ease,border-color .16s ease;position:relative}
.invoice-card.dragging,.compact-job.dragging{opacity:.42;transform:scale(.993);border-style:dashed!important;border-color:#3b82f6!important;box-shadow:none!important}
.invoice-card-client-col{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0}
.invoice-card .drag-handle{width:28px;height:24px;display:grid;place-items:center;border-radius:6px;font-size:16px;line-height:1;color:#94a3b8;letter-spacing:-3px;cursor:grab;touch-action:none;user-select:none;transition:background .15s,color .15s,transform .12s}
.invoice-card .drag-handle:hover{background:#eff6ff;color:#2563eb;transform:scale(1.06)}
.invoice-card .drag-handle:active{cursor:grabbing}
html[data-theme="dark"] .invoice-card .drag-handle{color:#64748b}
html[data-theme="dark"] .invoice-card .drag-handle:hover{background:rgba(59,130,246,0.16);color:#60a5fa}
body.is-reordering-jobs,body.is-reordering-jobs *{cursor:grabbing!important;user-select:none!important}
.job-drop-indicator{position:fixed;height:3px;background:linear-gradient(90deg,#2563eb 0%,#3b82f6 50%,#2563eb 100%);border-radius:999px;box-shadow:0 0 0 3px rgba(37,99,235,.16),0 2px 10px rgba(37,99,235,.42);pointer-events:none;z-index:9998;transition:top 55ms cubic-bezier(.2,.9,.3,1)}
.job-drop-indicator.is-scrolling{transition:none}
.job-drop-indicator::before,.job-drop-indicator::after{content:"";position:absolute;top:50%;width:10px;height:10px;border-radius:50%;background:#2563eb;border:2px solid #ffffff;box-shadow:0 1px 5px rgba(37,99,235,.45);transform:translateY(-50%)}
.job-drop-indicator::before{left:-5px}
.job-drop-indicator::after{right:-5px}
.job-drop-indicator.is-noop{background:rgba(148,163,184,.45);box-shadow:none}
.job-drop-indicator.is-noop::before,.job-drop-indicator.is-noop::after{background:#94a3b8;box-shadow:none}
html[data-theme="dark"] .job-drop-indicator{background:linear-gradient(90deg,#3b82f6 0%,#60a5fa 50%,#3b82f6 100%);box-shadow:0 0 0 3px rgba(59,130,246,.22),0 2px 12px rgba(59,130,246,.5)}
html[data-theme="dark"] .job-drop-indicator::before,html[data-theme="dark"] .job-drop-indicator::after{background:#60a5fa;border-color:#0f172a}
html[data-theme="dark"] .job-drop-indicator.is-noop{background:rgba(100,116,139,.38)}
html[data-theme="dark"] .job-drop-indicator.is-noop::before,html[data-theme="dark"] .job-drop-indicator.is-noop::after{background:#64748b}
.job-drag-ghost{position:fixed;top:0;left:0;display:inline-flex;align-items:center;gap:10px;max-width:360px;padding:8px 13px 8px 10px;border-radius:12px;background:rgba(255,255,255,.96);border:1.5px solid #3b82f6;box-shadow:0 14px 32px rgba(15,23,42,.18),0 2px 6px rgba(37,99,235,.15);backdrop-filter:blur(10px);color:#0f172a;font-family:"DM Sans",sans-serif;pointer-events:none;z-index:10000;will-change:transform}
.job-drag-ghost-grip{color:#2563eb;font-size:15px;letter-spacing:-3px;line-height:1;flex-shrink:0}
.job-drag-ghost-copy{display:grid;min-width:0;gap:1px}
.job-drag-ghost-copy strong{font-size:13px;font-weight:800;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.job-drag-ghost-copy small{font-size:11px;color:#64748b;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.job-drag-ghost-price{flex-shrink:0;padding:3px 7px;border-radius:7px;background:#eff6ff;color:#1d4ed8;font:800 12px/1.2 Manrope,sans-serif}
html[data-theme="dark"] .job-drag-ghost{background:rgba(30,41,59,.95);border-color:#60a5fa;color:#f8fafc;box-shadow:0 16px 36px rgba(0,0,0,.45)}
html[data-theme="dark"] .job-drag-ghost-grip{color:#60a5fa}
html[data-theme="dark"] .job-drag-ghost-copy small{color:#94a3b8}
html[data-theme="dark"] .job-drag-ghost-price{background:rgba(59,130,246,.2);color:#93c5fd}

.invoice-compact-list{overflow:hidden;margin-top:4px;border:none;border-radius:13px;background:transparent}
.invoice-compact-main,.invoice-card-body{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;min-height:72px}
.invoice-card-left{display:flex;align-items:flex-start;gap:14px;min-width:0;flex:1}
.invoice-card-avatar{position:relative;overflow:hidden;width:46px;height:46px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:800;flex-shrink:0;box-shadow:0 1px 3px rgba(0,0,0,0.06);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}
.invoice-card-avatar:hover{transform:scale(1.04);box-shadow:0 2px 8px rgba(0,0,0,0.12)}
.invoice-card-avatar:focus-visible{outline:2px solid #004ac6;outline-offset:2px}
.invoice-card-avatar.has-photo{background:var(--surface-soft);box-shadow:inset 0 0 0 1px var(--line)}
.invoice-card-avatar.has-photo.account-jan{box-shadow:0 0 0 2px rgba(88,63,207,0.4),0 1px 3px rgba(0,0,0,0.06)}
.invoice-card-avatar.has-photo.account-well{box-shadow:0 0 0 2px rgba(23,138,117,0.7),0 1px 3px rgba(0,0,0,0.06)}
.invoice-card-avatar.has-photo img{position:absolute;display:block;max-width:none;max-height:none;will-change:left,top,transform}
.invoice-card-avatar.account-jan{background:#dbe1ff;color:#004ac6}
.invoice-card-avatar.account-well{background:#ffeedd;color:#996100}

.invoice-card-meta{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.invoice-card-head-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.invoice-card-client-name{font-size:16px;font-weight:700;color:var(--ink);cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .15s ease}
.invoice-card-client-name:hover{color:#004ac6;text-decoration:underline}
.invoice-card-client-name:focus-visible{outline:2px solid #004ac6;outline-offset:2px;border-radius:4px}
.invoice-agency-pill{display:inline-flex;padding:2px 8px;border-radius:999px;background:var(--surface-soft);font-size:11px;font-weight:700;color:var(--muted)}

.invoice-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:700}
.badge-success{background:#d1fae5;color:#047857}
.badge-amber{background:#fef3c7;color:#b45309}
.badge-primary{background:#dbe1ff;color:#1d4ed8}
.badge-neutral{background:var(--surface-soft);color:var(--muted)}

.invoice-card-address-line{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);flex-wrap:wrap}
.invoice-address-link{display:inline-flex;align-items:center;gap:6px;background:transparent;border:none;padding:0;margin:0;font:inherit;font-size:13px;color:var(--muted);cursor:pointer;text-align:left;border-radius:4px;transition:color .15s ease}
.invoice-address-link .invoice-address-text{font-weight:500;color:var(--ink);transition:color .15s ease,text-decoration .15s ease}
.invoice-address-link .invoice-loc-icon{display:inline-flex;color:var(--muted);transition:color .15s ease}
.invoice-address-link:hover .invoice-address-text{color:#004ac6;text-decoration:underline}
.invoice-address-link:hover .invoice-loc-icon{color:#004ac6}
.invoice-address-link:focus-visible{outline:2px solid #004ac6;outline-offset:2px}
.invoice-loc-icon{display:inline-flex;color:var(--muted)}
.invoice-address-text{font-weight:500;color:var(--ink)}
.meta-dot{color:var(--line);margin:0 2px}
.invoice-services-badges{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}
.invoice-service-chip{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:6px;border:1px solid transparent;background:var(--surface-soft);font-family:inherit;font-size:11px;font-weight:600;color:var(--muted);line-height:1.4;cursor:default;transition:all .15s ease}
.invoice-service-chip.is-done{background:rgba(16,185,129,.1);color:#047857;border-color:rgba(16,185,129,.2)}
.invoice-service-chip .chip-check{font-weight:800;color:#10b981;transition:all .15s ease}
.invoice-service-chip.is-clickable{cursor:pointer}
.invoice-service-chip.is-clickable:hover{background:#fee2e2;color:#b91c1c;border-color:#fca5a5}
.invoice-service-chip.is-clickable:hover .chip-check{color:#dc2626;opacity:.8}

.invoice-card-target-line{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin-top:2px;flex-wrap:wrap}
.target-label{color:var(--muted)}
.target-name{color:var(--ink);font-weight:600}
.meta-pipe{color:var(--line);margin:0 2px}

.invoice-target-action{border:none;background:transparent;padding:0;cursor:pointer;font:inherit;display:inline-flex;align-items:center;gap:4px;transition:all .15s ease}
.missing-recipient-btn{background:#fef3c7;color:#b45309;border:1px dashed #f59e0b;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:800}
.missing-recipient-btn:hover{background:#fde68a;border-color:#d97706;color:#92400e}
.assigned-recipient-btn{color:var(--ink);font-weight:700;font-size:13px;border-radius:4px;padding:1px 4px}
.assigned-recipient-btn:hover{color:#2563eb;background:var(--surface-soft)}
.assigned-recipient-btn .btn-edit-cue{font-size:11px;color:var(--muted);opacity:.7}
.assigned-recipient-btn:hover .btn-edit-cue{color:#2563eb;opacity:1}

.invoice-target-neutral{display:inline-flex;align-items:center;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:700;background:var(--surface-soft);color:var(--muted)}
.client-badge-cash{display:inline-flex;align-items:center;padding:2px 7px;border-radius:999px;font-size:11px;font-weight:600;background:var(--surface-soft,#f1f5f9);color:var(--muted,#64748b);margin-left:6px;vertical-align:middle}
.studio-client-billing.is-cash strong{color:var(--muted,#64748b)}

.target-account-pill{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;border:1px solid transparent;cursor:pointer;transition:all .15s ease}
.target-account-pill.account-jan{background:#dbe1ff;color:#1d4ed8;border-color:#bfdbfe}
.target-account-pill.account-well{background:#d1fae5;color:#065f46;border-color:#a7f3d0}
.target-account-pill.is-unassigned{background:#fee2e2;color:#dc2626;border:1px dashed #ef4444}
.target-account-pill.is-unassigned:hover{background:#fecaca;color:#b91c1c}
.target-account-pill:hover{box-shadow:0 1px 4px rgba(0,0,0,0.08);transform:translateY(-0.5px)}
.target-account-pill .pill-caret{font-size:9px;opacity:.7;margin-left:2px}

/* Invoicing Dialogs */
.job-recipient-dialog,.job-account-dialog{padding:0;border:none;border-radius:16px;background:var(--surface);color:var(--ink);box-shadow:0 24px 54px rgba(15,23,42,0.22);overflow:hidden}
.job-recipient-dialog{width:min(680px,calc(100vw - 28px))}
.job-account-dialog{width:min(460px,calc(100vw - 28px))}
.job-recipient-dialog-shell,.job-account-dialog-shell{padding:22px 24px;display:grid;gap:14px}
.job-recipient-dialog-head,.job-account-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.job-recipient-dialog-head h2,.job-account-dialog-head h2{margin:2px 0 0;font-size:18px;font-weight:800;color:var(--ink)}
.job-recipient-subtitle,.job-account-subtitle{margin:4px 0 0;font-size:13px;color:var(--muted);font-weight:600}
.job-recipient-search-bar{position:relative}
.job-recipient-search-input{width:100%;height:40px;padding:0 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);color:var(--ink);font:600 13px "DM Sans"}
.job-recipient-search-input:focus{outline:none;border-color:#2563eb;background:var(--surface);box-shadow:0 0 0 3px rgba(37,99,235,0.12)}
.job-recipient-account-tabs{display:flex;gap:6px;align-items:center}
.job-recipient-results{max-height:280px;overflow-y:auto;display:grid;gap:6px;padding-right:2px;scrollbar-width:thin}
.job-recipient-recommendations{display:grid;gap:6px;padding:10px 12px;background:var(--surface-soft);border:1px solid var(--line);border-radius:10px}
.job-recipient-rec-title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
.job-recipient-dialog-footer,.job-account-dialog-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px;padding-top:12px;border-top:1px solid var(--line)}

.job-account-options{display:grid;gap:10px;margin:4px 0}
.job-account-option-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);cursor:pointer;text-align:left;transition:all .15s ease}
.job-account-option-card:hover{background:var(--surface);border-color:#2563eb;box-shadow:0 2px 8px rgba(37,99,235,0.08)}
.job-account-option-card.is-active{background:var(--surface);border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,0.2)}
.job-account-option-card .account-card-left{display:flex;align-items:center;gap:12px}
.job-account-option-card .account-card-text strong{display:block;font-size:15px;font-weight:700;color:var(--ink)}
.job-account-option-card .account-card-text small{display:block;font-size:12px;color:var(--muted);font-weight:500;margin-top:2px}
.account-select-badge{padding:4px 12px;border-radius:999px;font-size:12px;font-weight:800;background:var(--surface);border:1px solid var(--line);color:var(--muted)}
.job-account-option-card.is-active .account-select-badge{background:#2563eb;color:#ffffff;border-color:#2563eb}
.job-account-option-card:hover .account-select-badge{color:#2563eb;border-color:#2563eb}

.invoice-card-right{display:flex;align-items:center;gap:18px;flex-shrink:0}
.invoice-card-pricing{display:flex;flex-direction:column;text-align:right}
.pricing-label{font-size:11px;font-weight:600;color:var(--muted)}
.pricing-value{display:flex;align-items:baseline;justify-content:flex-end}
.invoice-price-amount{font-size:20px;font-weight:800;letter-spacing:-0.5px;color:var(--ink);font-feature-settings:"tnum"}
.missing-price-link{border:0;background:transparent;color:#d97706;font-size:14px;font-weight:700;display:inline-flex;align-items:center;gap:4px;cursor:pointer;padding:0}
.missing-price-link:hover{text-decoration:underline}

.invoice-compact-actions,.invoice-card-actions{display:flex;align-items:center;gap:8px}
.invoice-card-actions .button.primary{background:#2563eb;color:#ffffff;border-color:#2563eb}
.invoice-card-actions .button.primary:hover{background:#1d4ed8;border-color:#1d4ed8}
.invoice-card-actions .icon-only{width:36px;height:36px;padding:0;display:grid;place-items:center}

.invoice-row-toggle{display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:8px;background:var(--surface-soft);color:var(--ink);font:800 16px "DM Sans";cursor:pointer;transition:background .15s}
.invoice-row-toggle:hover{background:var(--violet-soft);color:var(--violet)}

/* Banners inside card */
.invoice-card-banner{display:flex;align-items:center;gap:10px;padding:10px 16px;border-top:1px solid var(--line);font-size:13px}
.banner-amber{background:#fffbeb;color:#92400e}
.banner-warning{background:#fef2f2;color:#991b1b}
.banner-preview{background:rgba(241,245,249,0.5);justify-content:space-between;color:var(--muted);font-size:12px}
.banner-action-btn{margin-left:auto;border:0;background:transparent;color:#b45309;font-weight:700;cursor:pointer;padding:0;text-decoration:underline}
.banner-actions-group{margin-left:auto;display:flex;align-items:center;gap:12px;flex-shrink:0}
.banner-actions-group .banner-action-btn{margin-left:0}
.banner-action-secondary{color:#92400e;opacity:0.8;font-weight:600;font-size:12px}
.banner-action-secondary:hover{opacity:1;text-decoration:underline}
.banner-neutral{background:var(--surface-soft);color:var(--muted);justify-content:space-between}
.banner-neutral-text{color:var(--ink);font-weight:500}
.banner-action-revert{margin-left:auto;border:0;background:transparent;color:var(--violet);font-weight:700;cursor:pointer;padding:0;text-decoration:underline}
.banner-action-revert:hover{color:var(--violet-dark)}
.invoice-badge-action{cursor:pointer;border:0;font-family:inherit;text-decoration:none;color:inherit}
.invoice-badge-action:hover{filter:brightness(0.92)}
.banner-preview-info{display:flex;align-items:center;gap:6px}
.banner-preview-info strong{color:var(--ink)}
.banner-preview-tags{display:flex;align-items:center;gap:6px}
.dot-green{width:6px;height:6px;border-radius:50%;background:#10b981}

.banner-candidate{background:#eff6ff;color:#1e40af;justify-content:space-between;flex-wrap:wrap;gap:10px}
.candidate-banner-content{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.candidate-icon{font-size:16px}
.candidate-text{font-size:13px;font-weight:600;color:var(--ink)}
.candidate-code-pill{display:inline-block;padding:2px 8px;border-radius:6px;background:#dbeafe;color:#1d4ed8;font-weight:800;font-size:12px;letter-spacing:0.3px}
.candidate-link{color:#2563eb;font-weight:700;font-size:12px;text-decoration:none;margin-left:4px}
.candidate-link:hover{text-decoration:underline}
.candidate-banner-actions{display:flex;align-items:center;gap:8px;margin-left:auto}
.candidate-confirm-btn{background:#2563eb!important;color:#fff!important;border:none!important;font-weight:700}
.candidate-confirm-btn:hover{background:#1d4ed8!important}
.notification-candidate-box{background:var(--surface-soft);border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin-bottom:12px}
.notification-candidate-box strong{display:block;font-size:13px;color:var(--ink);margin-bottom:4px}
.notification-candidate-box p{margin:2px 0;font-size:13px;color:var(--muted)}

.invoice-compact-detail{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px 18px 14px;border-top:1px solid var(--line);background:var(--surface-soft);font-size:14px}
.invoice-compact-detail[hidden]{display:none}
.invoice-detail-left{min-width:0;display:flex;flex-direction:column;gap:4px;color:var(--muted)}
.invoice-detail-email{margin:0;color:var(--ink);font-weight:500}
.invoice-detail-notes{margin:4px 0 0;font-size:13px;color:var(--muted)}
.invoice-detail-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}

.invoice-recipient-picker{display:grid;gap:5px;margin-top:8px}
.invoice-recipient-picker>span{font-size:12px;font-weight:700;color:var(--ink)}
.invoice-recipient-picker select{min-width:min(360px,75vw);height:36px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:600 13px "DM Sans"}

.invoice-ready-panel{margin-bottom:18px;padding:16px 20px}
.invoice-ready-empty{padding:28px 0 16px;color:var(--muted);text-align:center}
.invoice-operation-warning{color:#a86513!important;font-weight:700}
.client-db-dialog{width:min(720px,calc(100vw - 28px))}.client-billing-editor{display:grid;gap:11px;margin:4px 0 12px;padding:14px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft)}.client-billing-editor-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.client-billing-editor-head>div{display:grid;gap:3px}.client-billing-editor-head small,.client-billing-empty{color:var(--muted);font-size:13px}.client-billing-assigned-list{display:grid;gap:7px}.client-billing-card{display:grid;grid-template-columns:auto minmax(0,1fr) 36px;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);transition:border-color .15s ease,box-shadow .15s ease}.client-billing-card.is-default{border-color:rgba(88,63,207,.35);box-shadow:0 1px 4px rgba(88,63,207,.07)}.client-billing-card-info{min-width:0;display:grid;gap:2px}.client-billing-card-title{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}.client-billing-card-title strong{font-size:14px;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-billing-card-meta{font-size:12px;color:var(--muted);font-weight:600}.client-billing-default{display:flex!important;align-items:center;gap:6px;margin:0!important;font-size:13px;font-weight:800;cursor:pointer}.client-billing-default input{width:17px;height:17px;cursor:pointer}.client-billing-remove{width:36px;height:36px;cursor:pointer}.client-billing-empty{margin:4px 0;line-height:1.45}.billing-account-tag{display:inline-flex;align-items:center;padding:2px 7px;border-radius:6px;font-size:11px;font-weight:800;white-space:nowrap;line-height:1.25}.billing-account-janstudenovsky{background:#eeebff;color:#583fcf;border:1px solid rgba(88,63,207,.2)}.billing-account-wellphoto{background:#e3f6f1;color:#167a68;border:1px solid rgba(22,122,104,.2)}html[data-theme="dark"] .billing-account-janstudenovsky{background:#282142;color:#bcaefd;border-color:rgba(188,174,253,.25)}html[data-theme="dark"] .billing-account-wellphoto{background:#162f29;color:#7fe0cc;border-color:rgba(127,224,204,.25)}.client-billing-picker{display:grid;gap:10px;margin-top:4px;padding-top:12px;border-top:1px dashed var(--line)}.client-billing-picker-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.client-billing-picker-title{font-size:13px;font-weight:800;color:var(--ink);letter-spacing:-.1px}.client-billing-account-tabs{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.billing-tab{padding:5px 10px;border-radius:7px;border:1px solid var(--line);background:var(--surface);color:var(--muted);font:700 12px "DM Sans";cursor:pointer;transition:all .15s ease}.billing-tab:hover{border-color:#b7b0e4;color:var(--ink)}.billing-tab.active{background:#4f39b8;color:#fff;border-color:#4f39b8}.billing-tab span{font-size:11px;opacity:.88;margin-left:2px;font-weight:600}html[data-theme="dark"] .billing-tab.active{background:#6951de;border-color:#6951de}.client-billing-search-bar{position:relative;display:flex;align-items:center}.client-billing-search-bar input{width:100%;height:38px;padding:0 76px 0 34px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);font:600 13px "DM Sans";transition:border-color .15s ease,box-shadow .15s ease}.client-billing-search-bar input:focus{border-color:#583fcf;outline:none;box-shadow:0 0 0 3px rgba(88,63,207,.12)}.client-billing-search-icon{position:absolute;left:11px;color:var(--muted);font-size:15px;pointer-events:none}.client-billing-search-clear{position:absolute;right:5px;height:28px;padding:0 9px;font-size:11px}.client-billing-results{max-height:230px;overflow-y:auto;display:grid;gap:5px;padding-right:2px;scrollbar-width:thin}.client-billing-result-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 11px;border-radius:9px;background:var(--surface);border:1px solid var(--line);transition:background .12s,border-color .12s}.client-billing-result-row:hover{background:var(--surface-soft);border-color:#d1cff0}.client-billing-result-info{min-width:0;display:grid;gap:2px}.client-billing-result-name strong{font-size:13px;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.client-billing-result-meta{font-size:11px;color:var(--muted);font-weight:600}.client-billing-result-actions{display:flex;gap:5px;align-items:center;flex-shrink:0}.billing-btn-jan{min-height:28px;padding:0 10px;font-size:11px;font-weight:800;border-radius:6px;background:#583fcf;color:#fff;border:1px solid #4832b0;cursor:pointer;transition:background .12s}.billing-btn-jan:hover{background:#4832b0}.billing-btn-well{min-height:28px;padding:0 10px;font-size:11px;font-weight:800;border-radius:6px;background:#178a75;color:#fff;border:1px solid #116a5a;cursor:pointer;transition:background .12s}.billing-btn-well:hover{background:#116a5a}.billing-btn-assigned{min-height:28px;padding:0 9px;font-size:11px;font-weight:700;border-radius:6px;background:var(--surface-soft);color:var(--muted);border:1px solid var(--line);cursor:default;opacity:.8}html[data-theme="dark"] .billing-btn-jan{background:#6248de;border-color:#523ac4}html[data-theme="dark"] .billing-btn-jan:hover{background:#523ac4}html[data-theme="dark"] .billing-btn-well{background:#19947e;border-color:#147967}html[data-theme="dark"] .billing-btn-well:hover{background:#147967}.client-billing-section-title{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.45px;color:var(--muted);margin:6px 0 2px 2px;display:flex;align-items:center;gap:4px}.client-billing-section-title.all-title{margin-top:8px}.client-billing-group-section{display:grid;gap:5px;margin-bottom:4px}.section-sparkle{color:#583fcf;font-size:12px}.client-billing-no-results{padding:14px;text-align:center;color:var(--muted);font-size:13px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px}.client-billing-no-results p{margin:0}.client-billing-more-hint{padding:10px;text-align:center;color:var(--muted);font-size:12px}.client-billing-sync-btn,.job-recipient-sync-btn{margin-left:auto;font-size:11px;height:28px;padding:0 10px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;border-radius:7px}.job-recipient-sync-footer-btn{margin-right:auto}.client-billing-empty-sync-btn{font-size:12px;height:32px;padding:0 12px;display:inline-flex;align-items:center;gap:6px;border-color:#583fcf;color:#583fcf;border-radius:7px;cursor:pointer}html[data-theme="dark"] .client-billing-empty-sync-btn{border-color:#93c5fd;color:#93c5fd}.btn-spinner{display:inline-block;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}
.dialog-toast{position:fixed;z-index:10000;right:24px;bottom:24px;max-width:min(420px,calc(100vw - 48px));margin:0;padding:12px 18px;border-radius:12px;background:#1e1b2e;color:#fff;font-size:13.5px;font-weight:600;box-shadow:0 16px 36px -4px rgba(20,18,38,.35),0 0 1px 1px rgba(255,255,255,.1);opacity:0;transform:translateY(16px) scale(0.96);pointer-events:none;transition:opacity .22s cubic-bezier(0.16,1,0.3,1),transform .22s cubic-bezier(0.16,1,0.3,1)}.dialog-toast.show{opacity:1;transform:translateY(0) scale(1)}
html[data-theme="dark"] .invoice-compact-row.is-warning{background:#40331f}
html[data-theme="dark"] .invoice-metric-card,
html[data-theme="dark"] .invoice-controls-card,
html[data-theme="dark"] .invoice-card{background:var(--surface);border-color:var(--line)}
html[data-theme="dark"] .invoice-connected-pill{background:#1e1e2d;border-color:var(--line);color:#94a3b8}
html[data-theme="dark"] .invoice-connected-pill strong{color:#f1f5f9}
html[data-theme="dark"] .invoice-stage-tabs{background:#1a1926}
html[data-theme="dark"] .invoice-filter-bar-row{background:rgba(26,25,38,0.6)}
html[data-theme="dark"] .account-pill{background:#1e1e2d;color:#cbd5e1;border-color:var(--line)}
html[data-theme="dark"] .account-pill.active{background:#ffffff;color:#0f172a;border-color:#ffffff}
html[data-theme="dark"] .account-pill.active .account-dot{background:#0f172a}
html[data-theme="dark"] .invoice-search-input,
html[data-theme="dark"] .invoice-sort-select{background:#1e1e2d;border-color:var(--line);color:#f1f5f9}
html[data-theme="dark"] .box-amber{background:#3d2f16;color:#fcd34d}
html[data-theme="dark"] .box-blue{background:#1e295d;color:#93c5fd}
html[data-theme="dark"] .box-green{background:#133928;color:#86efac}
html[data-theme="dark"] .badge-amber{background:#3d2f16;color:#fcd34d}
html[data-theme="dark"] .badge-blue{background:#1e295d;color:#93c5fd}
html[data-theme="dark"] .badge-green{background:#133928;color:#86efac}
html[data-theme="dark"] .badge-month{background:#2a2839;color:#e2e8f0}
html[data-theme="dark"] .invoice-card-avatar.account-jan{background:#1e295d;color:#93c5fd}
html[data-theme="dark"] .invoice-card-avatar.account-well{background:#3d2f16;color:#fcd34d}
html[data-theme="dark"] .invoice-card-avatar.has-photo.account-jan{box-shadow:0 0 0 2px rgba(147,197,253,0.5),0 1px 3px rgba(0,0,0,0.2)}
html[data-theme="dark"] .invoice-card-avatar.has-photo.account-well{box-shadow:0 0 0 2px rgba(134,239,172,0.6),0 1px 3px rgba(0,0,0,0.2)}
html[data-theme="dark"] .invoice-card-avatar:focus-visible{outline-color:#93c5fd}
html[data-theme="dark"] .invoice-card-client-name:hover{color:#93c5fd}
html[data-theme="dark"] .invoice-card-client-name:focus-visible{outline-color:#93c5fd}
html[data-theme="dark"] .invoice-address-link:hover .invoice-address-text{color:#93c5fd}
html[data-theme="dark"] .invoice-address-link:hover .invoice-loc-icon{color:#93c5fd}
html[data-theme="dark"] .invoice-address-link:focus-visible{outline-color:#93c5fd}
html[data-theme="dark"] .target-account-pill.account-jan{background:#1e295d;color:#93c5fd}
html[data-theme="dark"] .target-account-pill.account-well{background:#133928;color:#86efac}
html[data-theme="dark"] .banner-amber{background:#3b2d14;color:#fde68a}
html[data-theme="dark"] .banner-action-secondary{color:#fde68a}
html[data-theme="dark"] .banner-action-revert{color:var(--violet)}
html[data-theme="dark"] .banner-warning{background:#451a1a;color:#fecaca}
html[data-theme="dark"] .banner-preview{background:#1a1926;color:#94a3b8}
html[data-theme="dark"] .banner-candidate{background:#172554;color:#bfdbfe;border-color:#1e3a8a}
html[data-theme="dark"] .candidate-code-pill{background:#1e3a8a;color:#93c5fd}
html[data-theme="dark"] .candidate-link{color:#60a5fa}
html[data-theme="dark"] .missing-recipient-btn{background:#3b2d14;color:#fde68a;border-color:#d97706}
html[data-theme="dark"] .target-account-pill.is-unassigned{background:#451a1a;color:#fca5a5;border-color:#ef4444}
html[data-theme="dark"] .job-recipient-dialog,
html[data-theme="dark"] .job-account-dialog{background:#1a1926;border:1px solid var(--line)}
html[data-theme="dark"] .job-recipient-search-input{background:#151421;border-color:var(--line);color:#f1f5f9}
html[data-theme="dark"] .job-account-option-card{background:#151421;border-color:var(--line)}
html[data-theme="dark"] .job-account-option-card:hover{background:#1f1e30;border-color:#3b82f6}
html[data-theme="dark"] .job-account-option-card.is-active{background:#1f1e30;border-color:#3b82f6;box-shadow:0 0 0 2px rgba(59,130,246,0.3)}

@media(min-width:1024px){.invoice-sync-meta{display:inline-flex}}
@media(max-width:960px){
  .invoice-metrics-grid{grid-template-columns:1fr}
  .invoice-card-body{flex-direction:column;align-items:stretch;gap:14px}
  .invoice-card-right{justify-content:space-between}
  .invoice-card-pricing{text-align:left}
  .pricing-value{justify-content:flex-start}
}
@media(max-width:640px){
  .invoice-filter-bar-row{flex-direction:column;align-items:stretch}
  .invoice-search-and-sort{min-width:0;flex-direction:column;align-items:stretch}
  .invoice-search-wrap{max-width:none}
}
.invoice-overview-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 18px}.invoice-overview-metrics article{display:grid;gap:7px;padding:16px 18px;border:1px solid var(--line);border-radius:15px;background:var(--surface)}.invoice-overview-metrics span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.45px}.invoice-overview-metrics strong{font:800 22px Manrope}.invoice-overview-metrics .is-overdue{background:var(--coral-soft)}.invoice-overview-metrics .is-overdue strong{color:#b94a43}
.invoice-history{padding:18px}.invoice-overview-filters{display:grid;grid-template-columns:130px minmax(180px,1fr) minmax(190px,1fr) minmax(220px,1.4fr);gap:10px;margin:16px 0}.invoice-overview-filters label{display:grid;gap:5px;margin:0}.invoice-overview-filters label>span{font-size:10px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:var(--muted)}.invoice-overview-filters select,.invoice-overview-filters input{width:100%;height:41px;padding:0 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);color:var(--ink);font:700 12px "DM Sans"}.invoice-sync-warning{margin:0 0 12px;padding:10px 12px;border-radius:10px;background:var(--amber-soft);color:#8d5b15;font-size:12px}
.invoice-table{overflow-x:auto;border:1px solid var(--line);border-radius:13px}.invoice-table-row{min-width:860px;display:grid;grid-template-columns:110px minmax(190px,1.5fr) 120px 155px 120px 135px;gap:12px;align-items:center;padding:12px 14px;color:var(--ink);text-decoration:none}.invoice-table-row+.invoice-table-row{border-top:1px solid var(--line)}.invoice-table-row:not(.invoice-table-header):hover{background:var(--surface-soft)}.invoice-table-header{background:var(--surface-soft);color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.45px;text-transform:uppercase}.invoice-table-row span{min-width:0}.invoice-table-row strong,.invoice-table-row small{display:block}.invoice-table-row small{margin-top:3px;color:var(--muted);font-size:10px}.invoice-customer{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.invoice-total{font-weight:800}.invoice-status{display:inline-flex;padding:6px 9px;border-radius:999px;background:var(--surface-soft);color:var(--muted);font-size:10px;white-space:nowrap}.invoice-status.status-paid{background:var(--green-soft);color:#26734a}.invoice-status.status-overdue{background:var(--coral-soft);color:#b94a43}.invoice-status.status-open,.invoice-status.status-sent{background:var(--amber-soft);color:#8d5b15}.invoice-overview-loading{margin-top:18px}
.invoice-more{min-width:860px;display:flex;justify-content:center;padding:14px;border-top:1px solid var(--line);background:var(--surface-soft)}
html[data-theme="dark"] .invoice-overview-metrics .is-overdue,html[data-theme="dark"] .invoice-status.status-overdue{background:#3e2528;color:#ffaaa5}html[data-theme="dark"] .invoice-status.status-paid{background:#203a2d;color:#86d7a6}html[data-theme="dark"] .invoice-status.status-open,html[data-theme="dark"] .invoice-status.status-sent{background:#40331f;color:#efc47d}
@media(max-width:980px){.invoice-overview-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.invoice-overview-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.invoice-compact-head{display:none}.invoice-compact-main{grid-template-columns:minmax(0,1fr) auto;gap:8px 12px}.invoice-compact-job{grid-column:1}.invoice-compact-state{grid-column:2;grid-row:1}.invoice-compact-recipient{grid-column:1}.invoice-compact-actions{grid-column:2;grid-row:2;align-self:end}.invoice-compact-detail{align-items:flex-start;flex-direction:column}.invoice-detail-actions{justify-content:flex-start}}
@media(max-width:620px){.invoice-section-heading{align-items:flex-start;flex-direction:column}.invoice-ready-panel{padding:14px}.invoice-ready-panel .invoice-account{width:100%;min-width:0}.invoice-overview-metrics{grid-template-columns:1fr 1fr}.invoice-overview-metrics article{padding:13px}.invoice-overview-metrics strong{font-size:17px}.invoice-overview-filters{grid-template-columns:1fr}.invoice-history{padding:14px}.invoice-compact-main{padding:12px}.invoice-compact-state{font-size:14px}.invoice-compact-actions{grid-column:1/-1;grid-row:auto;justify-content:flex-start}.invoice-compact-actions .button{min-height:40px}.invoice-row-toggle{width:40px;height:40px}.invoice-detail-actions{width:100%}.invoice-detail-actions .button{min-height:40px}.invoice-recipient-picker select{min-width:0;width:100%}.client-billing-editor-head{align-items:flex-start;flex-direction:column}.client-billing-row{grid-template-columns:minmax(0,1fr) 40px}.client-billing-default{grid-column:1/-1}.client-billing-remove{grid-column:2;grid-row:2}.client-billing-row select{grid-column:1;grid-row:2}.client-billing-card{grid-template-columns:minmax(0,1fr) 36px}.client-billing-card-info{grid-column:1;grid-row:2}.client-billing-picker-head{flex-direction:column;align-items:flex-start;gap:6px}.client-billing-result-row{flex-direction:column;align-items:flex-start;gap:6px}.client-billing-result-actions{width:100%;justify-content:flex-start}}
.icon-button{background:rgba(255,255,255,.86);color:var(--ink);border-color:var(--line);box-shadow:none}
.icon-button:hover{border-color:#cbc4fa;background:var(--surface)}
.eyebrow{font-size:14px}
.button{font-size:14px}
.text-button{font-size:14px}
.connection-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:40px;
  padding:8px 11px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--surface);
  color:var(--ink);
  cursor:pointer;
  font:inherit;
}
.connection-pill span{width:9px;height:9px;border-radius:50%;background:var(--coral)}
.connection-pill b{font-size:13px;white-space:nowrap}
.connection-pill.is-live span{background:var(--blue)}
.connection-pill.is-fallback span{background:var(--amber)}
.connection-pill.is-loading span{background:#aaa7b5}
.connection-pill:disabled{cursor:default;opacity:1}
.header-calendar-pill{min-height:34px;padding:7px 14px;border-color:#dbe7ff;border-radius:18px;background:#f2f7ff;color:#2463df;gap:7px}
.header-calendar-pill:hover{border-color:#c6d9ff;background:#eaf2ff}
.header-calendar-pill .calendar-connection-icon{width:15px;height:15px;display:grid;place-items:center;background:transparent!important}
.header-calendar-pill .calendar-connection-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.header-calendar-pill b{font-size:12px;font-weight:650}
.header-calendar-pill.is-live .calendar-connection-icon{color:#2463df}

/* The dock stays out of the working area and keeps every destination available. */
.sidebar{
  inset:auto auto 20px 50%;
  width:min(1040px,calc(100% - 28px));
  height:76px;
  padding:7px 8px;
  transform:translateX(-50%);
  display:block;
  color:var(--muted);
  background:linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(251,252,255,.94) 100%);
  border:1px solid rgba(203,213,225,.72);
  border-radius:23px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.98),inset 0 -1px 0 rgba(148,163,184,.12),0 2px 4px rgba(15,23,42,.04),0 12px 24px rgba(30,58,138,.16),0 26px 46px rgba(30,58,138,.12),0 42px 76px rgba(30,58,138,.08);
  backdrop-filter:blur(18px) saturate(1.15);
  z-index:80;
}
.brand,.sync-card{display:none}
.sidebar nav{position:relative;width:100%;height:100%;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px}
.nav-indicator{
  position:absolute;
  top:0;
  left:0;
  border-radius:14px;
  background:linear-gradient(135deg,#2563eb 0%,#3b82f6 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.34),0 3px 7px rgba(30,64,175,.22),0 9px 17px rgba(37,99,235,.23);
  pointer-events:none;
  z-index:1;
  transition:transform 0.46s cubic-bezier(0.34,1.2,0.64,1),width 0.46s cubic-bezier(0.34,1.2,0.64,1),height 0.46s cubic-bezier(0.34,1.2,0.64,1),opacity 0.25s ease;
  will-change:transform,width,height;
  opacity:0;
}
.nav-item{
  min-height:0;
  height:100%;
  min-width:0;
  justify-content:center;
  gap:10px;
  padding:8px 14px;
  border-radius:14px;
  color:var(--muted);
  font-size:14px;
  white-space:nowrap;
  position:relative;
  z-index:2;
  background:transparent;
  overflow:visible;
  transition:color 0.2s ease;
}
.nav-icon{width:20px;height:20px;flex:0 0 20px;display:grid;place-items:center;position:relative;z-index:0}
.nav-icon svg{width:20px;height:20px;display:block}
.nav-label{min-width:0;overflow:hidden;text-overflow:ellipsis}
.nav-icon::before{content:"";position:absolute;z-index:-1;width:30px;height:30px;border:1px solid rgba(255,255,255,.42);border-radius:50%;background:rgba(255,255,255,.15);box-shadow:inset 0 1px 0 rgba(255,255,255,.24);opacity:0;transform:scale(.7);transition:opacity 140ms ease,transform 140ms ease}
.nav-item:hover:not(.active){background:rgba(226,232,240,.7);color:var(--ink)}
html[data-theme="dark"] .nav-item:hover:not(.active){background:rgba(255,255,255,.08);color:var(--ink)}
.nav-item.active{color:#fff}
.sidebar nav:not(:has(.nav-indicator)):not(.has-indicator) .nav-item.active{background:linear-gradient(135deg,#2563eb 0%,#3b82f6 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.34),0 3px 7px rgba(30,64,175,.22),0 9px 17px rgba(37,99,235,.23)}
.sidebar nav:has(.nav-indicator) .nav-item.active,.sidebar nav.has-indicator .nav-item.active{background:transparent;box-shadow:none}
.nav-item.active .nav-icon{filter:drop-shadow(0 1px 1px rgba(15,23,42,.16))}
.nav-item.active .nav-icon::before{opacity:1;transform:scale(1)}

.button.primary,.button.dark{background:var(--violet);color:#fff}
.button.primary:hover,.button.dark:hover{background:#6249d6}
.button.ghost{background:var(--surface-soft);color:var(--ink)}
.text-button{color:#6550d5}
.text-button:hover{color:#4530b4}
.tabs{background:#eceaf3}
.tab.active{background:var(--surface);color:var(--violet);box-shadow:0 2px 8px rgba(66,55,115,.1)}
input[type=checkbox]{accent-color:var(--violet)}
input:focus,select:focus,textarea:focus{outline:2px solid rgba(112,87,231,.18);border-color:#9b88f0}
.secure-text-control{display:block;width:100%;min-height:42px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);padding:10px 12px;font:inherit;line-height:1.35;cursor:text;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.secure-text-control.is-multiline{min-height:88px;white-space:pre-wrap;overflow-wrap:anywhere;overflow:auto}
.secure-text-control:focus{outline:2px solid rgba(112,87,231,.18);border-color:#9b88f0}
.secure-text-control:empty::before{content:attr(data-placeholder);color:var(--muted);pointer-events:none}
.secure-suggestions{position:fixed;z-index:10000;max-height:280px;overflow:auto;padding:5px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 14px 36px rgba(35,30,60,.18)}
.secure-suggestion{display:grid;width:100%;gap:2px;padding:9px 10px;border:0;border-radius:8px;background:transparent;color:var(--ink);text-align:left;font:inherit;cursor:pointer}
.secure-suggestion:hover{background:var(--violet-soft)}
.secure-suggestion strong{font-size:14px}.secure-suggestion small{color:var(--muted);font-size:12px}
.panel,.metric,.hero,.price-card,.client-card{border-color:var(--line);box-shadow:none}
.hero{background:linear-gradient(120deg,#7660e8,#568bf2)}
.hero:after{background:rgba(255,255,255,.12)}
.metric .trend,.chip.done,.payer-ready,.invoice-warning.invoice-ok,.payer-note{background:var(--blue-soft);color:#356dc4}
.client-card .initials,.directory-initials{background:var(--violet-soft);color:#5943cc}
.age,.chip.waiting{background:var(--amber-soft);color:#9a6413}
.bar{background:linear-gradient(180deg,var(--blue),var(--violet))}
.donut{background:conic-gradient(var(--violet) 0 50%,var(--coral) 50% 72%,var(--blue) 72% 87%,var(--amber) 87%)}
.day-preview b{color:var(--violet)}

/* Price list: no filters or modes. Both area bands stay visible at once. */
.pricing-page{display:grid;gap:18px}
.pricing-titlebar{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:24px 26px;border-radius:22px;background:linear-gradient(118deg,#38649b,#4b89f5);color:#fff}
.pricing-titlebar h2{font-size:32px;letter-spacing:-.7px}
.pricing-kicker{display:block;margin-bottom:5px;color:#dceaff;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.pricing-titlebar .button.primary{background:#fff;color:#315c93}
.pricing-areas{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.pricing-area{overflow:hidden;border:1px solid var(--line);border-radius:20px;background:var(--surface)}
.pricing-area-head{padding:19px 21px;color:#fff}
.pricing-area-blue .pricing-area-head{background:linear-gradient(115deg,#3c6ea8,#5b91d2)}
.pricing-area-coral .pricing-area-head{background:linear-gradient(115deg,#d86c62,#f28b73)}
.pricing-area-head span{display:block;margin-bottom:3px;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;opacity:.8}
.pricing-area-head h3{font-size:27px;letter-spacing:-.45px}
.pricing-area-list{padding:7px 18px 11px}
.pricing-row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:66px;padding:11px 4px;border-bottom:1px solid var(--line)}
.pricing-row:last-child{border-bottom:0}
.pricing-row-copy{min-width:0;display:flex;align-items:baseline;justify-content:space-between;gap:18px;flex:1}
.pricing-row-copy strong{font-size:17px}
.pricing-row-copy span{color:var(--ink);font:800 19px Manrope;white-space:nowrap}
.pricing-edit{flex:none;border:0;background:transparent;color:var(--muted);padding:7px 3px;font:700 11px inherit;cursor:pointer;opacity:.28}
.pricing-row:hover .pricing-edit,.pricing-edit:focus-visible{opacity:1;color:var(--violet)}
.pricing-empty{padding:28px 4px;color:var(--muted);text-align:center;font-size:14px}
.pricing-shared{display:grid;grid-template-columns:minmax(210px,.45fr) minmax(0,1.55fr);overflow:hidden;border:1px solid #dce8bf;border-radius:20px;background:#f2f7e7}
.pricing-shared-head{display:flex;flex-direction:column;justify-content:center;padding:22px 24px;background:#dce9bc;color:#344020}
.pricing-shared-head span{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;opacity:.72}
.pricing-shared-head strong{margin-top:4px;font:800 21px Manrope}
.pricing-shared-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:3px 18px}
.pricing-shared-list .pricing-row:nth-child(odd){border-right:1px solid #dce8bf;padding-right:18px}
.pricing-shared-list .pricing-row:nth-child(even){padding-left:18px}

html[data-theme="dark"] .pricing-area{background:var(--surface);border-color:var(--line)}
html[data-theme="dark"] .pricing-shared{background:#282d24;border-color:#414a34}
html[data-theme="dark"] .pricing-shared-head{background:#39432e;color:#e3eccf}
html[data-theme="dark"] .pricing-shared-list .pricing-row:nth-child(odd){border-right-color:#414a34}

/* First viewport: working queue first, live statistics second. */
.dashboard-shell{display:grid;gap:0}
.dashboard-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 24px}
.summary-stat{position:relative;min-width:0;min-height:132px;display:grid;grid-template-columns:minmax(0,1fr) 34px;align-content:center;gap:6px 12px;padding:18px 20px;text-align:left;border:1px solid var(--line);border-radius:15px;background:var(--surface);color:var(--ink);box-shadow:0 4px 14px rgba(35,39,56,.025);font:inherit;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease}.summary-stat:hover{border-color:#cfd7e6;box-shadow:0 8px 24px rgba(35,39,56,.055)}.summary-stat .summary-label{align-self:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.055em;text-transform:uppercase}.summary-stat i{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--blue-soft);color:var(--blue);font-style:normal;font-size:15px}.summary-stat.summary-alert i{background:var(--amber-soft);color:#c77a0c}.summary-stat:nth-child(3) i{background:var(--green-soft);color:#2a8a55}.summary-stat:nth-child(4) i{background:var(--surface-soft);color:var(--muted)}.summary-stat strong{grid-column:1/-1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:800 24px Manrope;letter-spacing:-.5px}.summary-stat small{grid-column:1/-1;color:var(--muted);font-size:12px;line-height:1.35}
.fullscreen-dashboard{
  display:grid;
  grid-template-columns:minmax(640px,1fr) 362px;
  gap:24px;
  align-items:start;
}
.dashboard-main{min-width:0}
.dashboard-main-panel{overflow:hidden;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:0 5px 18px rgba(35,39,56,.03)}
.attention-card{margin:0 0 20px;padding:16px;border:1px solid var(--line);border-radius:15px;background:var(--surface);box-shadow:0 5px 18px rgba(35,39,56,.03)}
.attention-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}.attention-head h3{margin:2px 0 0;font-size:21px}.attention-count{display:grid;place-items:center;min-width:32px;height:32px;padding:0 9px;border-radius:999px;background:#f0ecff;color:var(--violet);font-size:13px;font-weight:850}
.attention-list{display:grid;gap:7px}.attention-item{display:grid;grid-template-columns:7px minmax(0,1fr) auto;align-items:center;gap:11px;padding:10px 11px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.attention-marker{width:7px;height:100%;min-height:38px;border-radius:999px;background:#d7a52d}.attention-item.severity-critical .attention-marker{background:#e35e5e}.attention-item.severity-action .attention-marker{background:#775eea}.attention-copy{display:grid;gap:2px;min-width:0}.attention-copy strong{font-size:13px}.attention-copy span,.attention-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attention-copy span{font-size:12px;color:var(--ink)}.attention-copy small{font-size:11px;color:var(--muted)}.attention-item .button{white-space:nowrap}.attention-all{display:block;margin:11px 2px 0 auto}.attention-empty{display:grid;gap:3px;padding:14px;border-radius:12px;background:var(--green-soft);color:#237446}.attention-empty span{font-size:12px}.queue-job.attention-target{border-color:#775eea;box-shadow:0 0 0 4px rgba(119,94,234,.16),0 9px 28px rgba(70,56,125,.09)}
.queue-heading,.queue-page-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin:0 0 13px;
}
.dashboard-main-panel .queue-heading{min-height:58px;margin:0;padding:0 18px;border-bottom:1px solid var(--line)}
.dashboard-main-panel .queue-heading h2{font-size:18px;letter-spacing:-.25px}
.queue-heading h2,.queue-page-head h2{font-size:31px;letter-spacing:-.8px}
.queue-count{
  display:grid;
  place-items:center;
  min-width:34px;
  height:34px;
  border-radius:11px;
  background:var(--coral-soft);
  color:#cf5549;
  font:800 17px Manrope;
}
.dashboard-rail{display:grid;gap:12px}
.dashboard-rail .attention-card{margin:0}
.dashboard-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.dashboard-stat{
  min-width:0;
  min-height:76px;
  padding:12px;
  display:grid;
  align-content:space-between;
  text-align:left;
  border:0;
  border-radius:15px;
  color:var(--ink);
  cursor:pointer;
  font:inherit;
}
.dashboard-stat span{color:var(--muted);font-size:13px;font-weight:700}
.dashboard-stat strong{font:800 19px Manrope;letter-spacing:-.5px;overflow:hidden;text-overflow:ellipsis}
.stat-violet{background:var(--violet-soft)}
.stat-blue{background:var(--blue-soft)}
.stat-coral{background:var(--coral-soft)}
.insight-card,.context-card{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:15px;
  padding:15px;
  box-shadow:0 5px 18px rgba(35,39,56,.03);
}
.rail-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:11px}
.rail-heading h3{font-size:18px}
.rail-heading .eyebrow{margin:0 0 2px}
.rail-heading>span{
  display:grid;
  place-items:center;
  min-width:23px;
  height:23px;
  border-radius:8px;
  background:var(--amber-soft);
  color:#996310;
  font-size:13px;
  font-weight:800;
}
.rail-heading .chart-unit{width:auto;min-width:0;height:auto;padding:0;background:transparent;color:var(--muted);font-size:11px;text-transform:uppercase}

/* Real-data charts. */
.revenue-chart{height:154px;display:flex;align-items:stretch;gap:5px;padding-top:18px}
.revenue-column{position:relative;min-width:0;flex:1;display:grid;grid-template-rows:1fr auto;gap:5px;text-align:center}
.revenue-track{height:112px;display:flex;align-items:flex-end;border-radius:7px;background:#f5f4f9;overflow:hidden}
.revenue-track i{display:block;width:100%;min-height:3px;border-radius:7px 7px 3px 3px;background:linear-gradient(180deg,#6d8ff4,#7558e8);transition:height .25s ease}
.revenue-column:nth-child(3n+2) .revenue-track i{background:linear-gradient(180deg,#50bed0,#5c8df3)}
.revenue-column:nth-child(3n) .revenue-track i{background:linear-gradient(180deg,#fa9a7d,#f17275)}
.revenue-column small{color:var(--muted);font-size:10px}
.revenue-value{
  display:none;
  position:absolute;
  z-index:3;
  left:50%;
  top:-8px;
  transform:translate(-50%,-100%);
  padding:5px 7px;
  border-radius:7px;
  background:var(--ink);
  color:var(--surface);
  font-size:12px;
  white-space:nowrap;
  box-shadow:var(--shadow);
}
.revenue-column:hover .revenue-value:not(:empty){display:block}
.service-chart{display:grid;gap:8px}
.service-chart-row{display:grid;grid-template-columns:minmax(130px,.85fr) 1fr 28px;align-items:center;gap:9px;font-size:13px}
.service-chart-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.service-chart-row>div{height:6px;border-radius:999px;background:#f0eef5;overflow:hidden}
.service-chart-row i{display:block;height:100%;border-radius:inherit;background:var(--violet)}
.service-chart-row:nth-child(2) i{background:var(--blue)}
.service-chart-row:nth-child(3) i{background:var(--coral)}
.service-chart-row:nth-child(4) i{background:var(--cyan)}
.service-chart-row:nth-child(5) i{background:var(--amber)}
.service-chart-row strong{text-align:right;font-size:13px}
.dashboard-context{display:grid;grid-template-columns:1.2fr .8fr;gap:10px}
.context-card{min-width:0;padding:13px}
.context-card .rail-heading{margin-bottom:8px}
.calendar-card{padding:20px 20px 18px;border-radius:14px}
.calendar-card .calendar-card-heading{margin-bottom:18px}
.calendar-card .calendar-card-heading h3{font-size:15px;text-transform:capitalize;letter-spacing:-.1px}
.dashboard-calendar-nav{display:flex;align-items:center;gap:10px}
.dashboard-calendar-nav button{width:22px;height:28px;display:grid;place-items:center;padding:0;border:0;background:transparent;color:#98a1af;font:400 24px/1 Arial;cursor:pointer}
.dashboard-calendar-nav button:hover{color:var(--ink)}
.calendar-card .mini-calendar{gap:2px 5px}
.calendar-card .cal-label{padding:4px 1px 8px;color:#9aa3b2;font-size:11px;font-weight:500}
.calendar-card .cal-day{width:32px;height:32px;justify-self:center;padding:0;border-radius:50%;font-size:12px;font-weight:500}
.calendar-card .cal-day.event{background:transparent;color:var(--ink);font-weight:500}
.calendar-card .cal-day i{display:none}
.calendar-card .cal-day.event::after{content:"";position:absolute;left:50%;bottom:1px;width:4px;height:4px;transform:translateX(-50%);border-radius:50%;background:#2f67eb}
.calendar-card .cal-day.today{outline:0;background:#2f67eb;color:#fff;font-weight:750}
.calendar-card .cal-day.today::after{display:none}
.calendar-agenda-divider{height:1px;margin:18px 0 15px;background:var(--line)}
.calendar-agenda{width:100%;display:grid;grid-template-columns:4px minmax(0,1fr);gap:12px;align-items:stretch;padding:0;border:0;background:transparent;color:var(--ink);text-align:left;font:inherit;cursor:pointer}
.calendar-agenda:hover strong{color:#2463df}
.calendar-agenda-marker{min-height:36px;border-radius:999px;background:#2f67eb}
.calendar-agenda>span:last-child{min-width:0;display:grid;align-content:center;gap:2px}
.calendar-agenda strong,.calendar-agenda small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.calendar-agenda strong{font-size:13px}
.calendar-agenda small{color:var(--muted);font-size:11px}
.calendar-agenda-empty{padding:4px 0;color:var(--muted);font-size:12px}
.quick-scratchpad-card{padding:12px;background:linear-gradient(145deg,#fff 0%,#fbfcff 100%)}
.quick-scratchpad-heading{margin-bottom:8px}.quick-scratchpad-heading>div{min-width:0}
.quick-scratchpad-heading h3{display:flex;align-items:center;gap:8px;font-size:16px;letter-spacing:-.24px}.quick-scratchpad-icon{display:grid;place-items:center;width:22px;height:22px;border-radius:8px;background:#e9f0ff;color:#2f67eb;font:800 14px/1 Manrope}
.quick-scratchpad-count{background:#eaf0ff!important;color:#2f67eb!important}
.quick-scratchpad-create{position:relative;display:block;height:35px;margin-bottom:8px;padding:0;border:1px solid #e1e7f1;border-radius:10px;background:#f9fbff}.quick-scratchpad-create input,.quick-scratchpad-create .secure-text-control{box-sizing:border-box;display:block;width:100%;min-height:0;height:100%;margin:0;padding:0 36px 0 11px;border:0;border-radius:inherit;background:transparent;color:var(--ink);font:600 12px/33px Manrope;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;outline:none}.quick-scratchpad-create input::placeholder,.quick-scratchpad-create .secure-text-control:empty::before{color:#9ca5b5}.quick-scratchpad-create:focus-within{border-color:#7297f2;box-shadow:0 0 0 3px rgba(47,103,235,.11)}.quick-scratchpad-submit{position:absolute;right:4px;top:50%;display:grid;place-items:center;width:26px;height:26px;padding:0;border:0;border-radius:7px;background:transparent;color:#7894bd;font:500 24px/22px Arial;cursor:pointer;transform:translateY(-50%);transition:background .15s ease,color .15s ease}.quick-scratchpad-submit:hover:not(:disabled),.quick-scratchpad-submit:focus-visible{background:#e8f0ff;color:#2f67eb;outline:none}.quick-scratchpad-submit:disabled{cursor:wait;opacity:.65}
.quick-scratchpad-list{display:grid;gap:5px}.quick-task-row{display:grid;grid-template-columns:14px 18px minmax(0,1fr) auto auto;align-items:center;gap:6px;min-height:36px;padding:4px 6px 4px 3px;border:1px solid transparent;border-radius:10px;transition:background .18s ease,border-color .18s ease,opacity .18s ease}.quick-task-row:hover{border-color:#e7e9f0;background:#f8faff}.quick-task-check{display:grid;place-items:center;width:18px;height:18px;padding:0;border:1.5px solid #9ba8ba;border-radius:6px;background:#fff;color:#fff;font:800 12px/1 Arial;cursor:pointer;transition:background .16s ease,border-color .16s ease,transform .16s ease}.quick-task-check:hover{border-color:#3971e9;transform:scale(1.06)}.quick-task-copy{display:grid;min-width:0;gap:1px}.quick-task-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:14px}.quick-task-copy small{color:#8c96a7;font-size:9px;line-height:11px}.quick-task-row.is-completed{border-color:#ccebd9;background:#f1fbf5}.quick-task-row.is-completed .quick-task-check{border-color:#37aa6b;background:#37aa6b}.quick-task-row.is-completed .quick-task-copy strong{color:#62806e;text-decoration:line-through}.quick-task-row.is-completed .quick-task-copy small{color:#39825b}.quick-task-undo{padding:4px 5px;border:0;border-radius:6px;background:transparent;color:#3971e9;font:800 10px Manrope;cursor:pointer}.quick-task-undo:hover{background:#e7efff}.quick-task-delete{width:21px;height:21px;padding:0;border:0;border-radius:6px;background:transparent;color:#a4adba;font:400 19px/19px Arial;cursor:pointer;opacity:0;transition:opacity .15s ease,background .15s ease,color .15s ease}.quick-task-row:hover .quick-task-delete,.quick-task-row:focus-within .quick-task-delete{opacity:1}.quick-task-delete:hover{background:#feeceb;color:#d95955}.quick-task-drag{display:flex;align-items:center;justify-content:center;cursor:grab;color:#94a3b8;padding:2px 0;border-radius:4px;user-select:none;transition:all .15s ease}.quick-task-drag:hover{color:#475569;background:#e9f0ff}.quick-task-drag:active{cursor:grabbing}.quick-task-drag-spacer{width:14px;height:14px;display:block}.quick-task-row.is-dragging{opacity:0.35;border:1px dashed #2f67eb!important;background:#eff6ff!important}.quick-task-row.drop-before{border-top:2px solid #2f67eb!important}.quick-task-row.drop-after{border-bottom:2px solid #2f67eb!important}.quick-scratchpad-empty{margin:0;padding:8px 2px;color:var(--muted);font-size:12px}
.cal-day.event{background:var(--blue-soft);color:#326ac8}
.cal-day.today{outline:2px solid var(--violet)}
.calendar-page{display:grid;gap:18px}
.calendar-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}
.calendar-page-head h2{font-size:30px;text-transform:capitalize}
.calendar-page-head p{margin:5px 0 0;color:var(--muted);font-size:13px}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px}
.calendar-month-navigation{display:flex;align-items:center;gap:8px}
.calendar-month-navigation .icon-button{font-size:27px;line-height:1}
.calendar-month-navigation .button:disabled{opacity:.45}
.calendar-view-switch{display:inline-flex;align-items:center;padding:4px;border:1px solid var(--line);border-radius:13px;background:var(--surface-soft)}
.calendar-view-switch button{border:0;border-radius:9px;background:transparent;color:var(--muted);padding:9px 13px;font-size:12px;font-weight:800;cursor:pointer}
.calendar-view-switch button.active{background:var(--surface);color:var(--violet);box-shadow:0 3px 12px rgba(49,44,82,.09)}
.calendar-event-list{margin-top:0}
.full-calendar-scroll{overflow:auto;border:1px solid var(--line);border-radius:18px;background:var(--surface);box-shadow:var(--shadow)}
.full-calendar-grid{min-width:1120px}
.full-calendar-weekdays,.full-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.full-calendar-weekdays{position:sticky;top:0;z-index:2;background:var(--surface-soft);border-bottom:1px solid var(--line)}
.full-calendar-weekdays>div{padding:11px 13px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.45px}
.full-calendar-weekdays>div:nth-child(n+6){color:#b06c2d}
.full-calendar-day{min-width:0;min-height:165px;padding:10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface)}
.full-calendar-day:nth-child(7n){border-right:0}.full-calendar-day.is-outside{background:var(--surface-soft);opacity:.52}
.full-calendar-day.is-weekend:not(.is-outside){background:color-mix(in srgb,var(--amber-soft) 33%,var(--surface))}
.full-calendar-day.is-today{position:relative;background:var(--violet-soft);box-shadow:inset 0 0 0 2px var(--violet)}
.full-calendar-day header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.full-calendar-day header button{width:30px;height:30px;border:0;border-radius:9px;background:transparent;color:var(--ink);font-size:14px;font-weight:850;cursor:pointer}
.full-calendar-day header button:hover{background:var(--surface-soft);color:var(--violet)}
.full-calendar-day.is-today header button{background:var(--violet);color:#fff}
.full-calendar-day header>span{color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase}
.full-calendar-events{display:grid;gap:6px}
.full-calendar-event{width:100%;min-width:0;display:grid;grid-template-columns:39px minmax(0,1fr);gap:7px;padding:8px;border:1px solid #d8e5fb;border-radius:10px;background:var(--blue-soft);color:var(--ink);text-align:left;cursor:pointer}
.full-calendar-event:hover{border-color:var(--blue);transform:translateY(-1px);box-shadow:0 5px 14px rgba(75,137,245,.12)}
.full-calendar-event time{color:#326ac8;font-size:10px;font-weight:850;line-height:1.3}
.full-calendar-event>span{min-width:0;display:grid;gap:2px}.full-calendar-event strong,.full-calendar-event small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.full-calendar-event strong{font-size:11px;line-height:1.3}.full-calendar-event small{color:var(--muted);font-size:9px}
.full-calendar-event.is-needs-review{border-color:#efd49a;background:var(--amber-soft)}.full-calendar-event.is-complete{border-color:#bfe5d1;background:var(--green-soft)}.full-calendar-event.is-calendar-only{border-style:dashed}
body[data-page="calendar"][data-calendar-view="full"] main{padding-left:20px;padding-right:20px}
body[data-page="calendar"][data-calendar-view="full"] #app,body[data-page="calendar"][data-calendar-view="full"] .topbar{width:100%;max-width:none}
html[data-theme="dark"] .full-calendar-day.is-weekend:not(.is-outside){background:#29261f}
@media(max-width:720px){.calendar-page-head{align-items:flex-start;flex-direction:column}.calendar-toolbar{align-items:stretch;flex-direction:column}.calendar-view-switch{display:grid;grid-template-columns:1fr 1fr}.calendar-view-switch button{width:100%}.full-calendar-scroll{margin-inline:-4px}.full-calendar-grid{min-width:980px}.full-calendar-day{min-height:150px;padding:8px}}
.waiting-card{display:grid;align-content:start;gap:6px}
.waiting-card .rail-heading{margin-bottom:2px}
.waiting-job{
  width:100%;
  border:0;
  background:var(--amber-soft);
  color:var(--ink);
  border-radius:8px;
  padding:4px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:6px;
  text-align:left;
  font:inherit;
}
.waiting-job-open{min-width:0;border:0;background:transparent;color:inherit;padding:2px 4px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;text-align:left;cursor:pointer;font:inherit}
.waiting-job-action{display:flex;align-items:center;justify-content:flex-end}
.waiting-job-copy{min-width:0;display:grid;gap:1px}
.waiting-job strong,.waiting-job-copy>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.waiting-job strong{font-size:12px;line-height:1.15}
.waiting-job-copy>span{color:var(--muted);font-size:10px;line-height:1.15}
.waiting-job small{color:#96610f;font-size:10px;font-weight:700;white-space:nowrap}
.waiting-job.is-copying{background:var(--blue-soft)}
.waiting-job.is-copying small{color:#326ac8}
.waiting-job.is-failed{background:var(--coral-soft)}
.waiting-job.is-failed small{color:#b84b3f}
.rail-empty{margin:0;color:var(--muted);font-size:14px}

/* Compact, clickable queue rows. The grip alone communicates reordering. */
.queue-list{gap:7px}
.dashboard-main-panel .queue-list{gap:0}
.queue-job{
  padding:0;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--surface);
  box-shadow:none;
  cursor:pointer;
  overflow:hidden;
  transition:border-color .16s ease,box-shadow .16s ease,transform .16s cubic-bezier(0.16, 1, 0.3, 1);
}
.dashboard-main-panel .queue-job{border:0;border-radius:0;border-bottom:1px solid var(--line)}
.dashboard-main-panel .queue-job:last-child{border-bottom:0}
.dashboard-main-panel .queue-job:hover{position:relative;z-index:1;border-color:var(--line);background:#fbfcff;box-shadow:inset 3px 0 0 var(--blue)}
.queue-job[data-sortable]{cursor:pointer}
.queue-job:hover{border-color:#c9c0f8;box-shadow:0 7px 20px rgba(70,56,125,.055);transform:translateY(-1px)}
.queue-job-layout{display:grid;grid-template-columns:48px minmax(0,1fr);gap:0}
.queue-job-client{display:flex;flex-direction:column;align-items:center;gap:7px;padding:13px 4px 10px 12px}
.queue-client-avatar{position:relative;overflow:hidden;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,#dbeafe,#eef2ff);color:#315b9e;font-size:11px;font-weight:850;letter-spacing:.02em;box-shadow:inset 0 0 0 1px rgba(75,137,245,.18)}.queue-client-avatar.has-photo,.queue-job:nth-child(3n+2) .queue-client-avatar.has-photo,.queue-job:nth-child(3n) .queue-client-avatar.has-photo{background:#f8fafc;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.08)}html[data-theme="dark"] .queue-client-avatar.has-photo,html[data-theme="dark"] .queue-job:nth-child(3n+2) .queue-client-avatar.has-photo,html[data-theme="dark"] .queue-job:nth-child(3n) .queue-client-avatar.has-photo{background:#232230;box-shadow:inset 0 0 0 1px rgba(255,255,255,0.08)}.queue-client-avatar.has-photo img{position:absolute;display:block;max-width:none;max-height:none;will-change:left,top,transform}
.queue-job:nth-child(3n+2) .queue-client-avatar{background:linear-gradient(145deg,#ede9fe,#f5f3ff);color:#6048be}.queue-job:nth-child(3n) .queue-client-avatar{background:linear-gradient(145deg,#dcfce7,#effcf3);color:#28724a}
.queue-job-content{min-width:0}
.queue-job-head{display:block;padding:13px 14px 7px 8px}
.compact-job[data-sortable="true"]{cursor:pointer}
.drag-handle{width:28px;height:28px;display:grid;place-items:center;border-radius:7px;font-size:17px;line-height:1;color:#94a3b8;letter-spacing:-3px;cursor:grab;touch-action:none;user-select:none;transition:background .15s,color .15s,transform .12s}.drag-handle:hover{background:#eff6ff;color:#2563eb;transform:scale(1.06)}
.drag-handle:active{cursor:grabbing}
html[data-theme="dark"] .drag-handle{color:#64748b}
html[data-theme="dark"] .drag-handle:hover{background:rgba(59,130,246,0.16);color:#60a5fa}
.queue-job-title{display:flex;align-items:baseline;gap:8px;min-width:0}
.queue-job-title>strong{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:17px}
.job-title-separator{flex:0 0 auto;color:var(--violet);font-size:9px}
.job-calendar-address{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:15px;font-weight:650}
.queue-job .job-price{margin-left:auto;color:var(--ink);font-size:14px;font-weight:800}
.queue-job .job-services{border:0;background:transparent;margin:0;padding:0 14px 12px 8px;display:flex;flex-wrap:wrap;gap:6px}
.service-module{display:flex;align-items:center;gap:6px;padding:4px 5px 4px 8px;border-radius:9px;background:var(--surface);border:1px solid var(--line);transition:background-color 0.78s cubic-bezier(0.4, 0, 0.2, 1),border-color 0.78s cubic-bezier(0.4, 0, 0.2, 1),box-shadow 0.78s cubic-bezier(0.4, 0, 0.2, 1),color 0.78s cubic-bezier(0.4, 0, 0.2, 1)}
.service-module>strong{font-size:12px;white-space:nowrap}
.service-module.is-done{background:#e4f6ea;border-color:#91cfa7;color:#216a42;box-shadow:inset 3px 0 0 #35a566}
.service-module.is-waiting{background:#fff2d9;border-color:#e7bd68;color:#87590d;box-shadow:inset 3px 0 0 #e2a32f}
.service-module.is-editor{background:#eeeaff;border-color:#afa1ee;color:#5541b3;box-shadow:inset 3px 0 0 #735ce0}
.service-module.anim-from-todo-to-done{animation:moduleTodoToDone 0.78s cubic-bezier(0.4, 0, 0.2, 1)}
.service-module.anim-from-waiting-to-done{animation:moduleWaitingToDone 0.78s cubic-bezier(0.4, 0, 0.2, 1)}
.service-module.anim-from-editor-to-done{animation:moduleEditorToDone 0.78s cubic-bezier(0.4, 0, 0.2, 1)}
.service-module.anim-from-done-to-todo{animation:moduleDoneToTodo 0.78s cubic-bezier(0.4, 0, 0.2, 1)}
.service-module.anim-from-waiting-to-todo{animation:moduleWaitingToTodo 0.78s cubic-bezier(0.4, 0, 0.2, 1)}
.service-module.anim-from-editor-to-todo{animation:moduleEditorToTodo 0.78s cubic-bezier(0.4, 0, 0.2, 1)}
.service-module.anim-from-todo-to-waiting{animation:moduleTodoToWaiting 0.78s cubic-bezier(0.4, 0, 0.2, 1)}
.service-module.anim-from-done-to-waiting{animation:moduleDoneToWaiting 0.78s cubic-bezier(0.4, 0, 0.2, 1)}
.service-module.anim-from-todo-to-editor{animation:moduleTodoToEditor 0.78s cubic-bezier(0.4, 0, 0.2, 1)}
.service-module.anim-from-waiting-to-editor{animation:moduleWaitingToEditor 0.78s cubic-bezier(0.4, 0, 0.2, 1)}
@keyframes moduleTodoToDone{0%{background:var(--surface);border-color:var(--line);color:var(--ink);box-shadow:none}100%{background:#e4f6ea;border-color:#91cfa7;color:#216a42;box-shadow:inset 3px 0 0 #35a566}}
@keyframes moduleWaitingToDone{0%{background:#fff2d9;border-color:#e7bd68;color:#87590d;box-shadow:inset 3px 0 0 #e2a32f}100%{background:#e4f6ea;border-color:#91cfa7;color:#216a42;box-shadow:inset 3px 0 0 #35a566}}
@keyframes moduleEditorToDone{0%{background:#eeeaff;border-color:#afa1ee;color:#5541b3;box-shadow:inset 3px 0 0 #735ce0}100%{background:#e4f6ea;border-color:#91cfa7;color:#216a42;box-shadow:inset 3px 0 0 #35a566}}
@keyframes moduleDoneToTodo{0%{background:#e4f6ea;border-color:#91cfa7;color:#216a42;box-shadow:inset 3px 0 0 #35a566}100%{background:var(--surface);border-color:var(--line);color:var(--ink);box-shadow:none}}
@keyframes moduleWaitingToTodo{0%{background:#fff2d9;border-color:#e7bd68;color:#87590d;box-shadow:inset 3px 0 0 #e2a32f}100%{background:var(--surface);border-color:var(--line);color:var(--ink);box-shadow:none}}
@keyframes moduleEditorToTodo{0%{background:#eeeaff;border-color:#afa1ee;color:#5541b3;box-shadow:inset 3px 0 0 #735ce0}100%{background:var(--surface);border-color:var(--line);color:var(--ink);box-shadow:none}}
@keyframes moduleTodoToWaiting{0%{background:var(--surface);border-color:var(--line);color:var(--ink);box-shadow:none}100%{background:#fff2d9;border-color:#e7bd68;color:#87590d;box-shadow:inset 3px 0 0 #e2a32f}}
@keyframes moduleDoneToWaiting{0%{background:#e4f6ea;border-color:#91cfa7;color:#216a42;box-shadow:inset 3px 0 0 #35a566}100%{background:#fff2d9;border-color:#e7bd68;color:#87590d;box-shadow:inset 3px 0 0 #e2a32f}}
@keyframes moduleTodoToEditor{0%{background:var(--surface);border-color:var(--line);color:var(--ink);box-shadow:none}100%{background:#eeeaff;border-color:#afa1ee;color:#5541b3;box-shadow:inset 3px 0 0 #735ce0}}
@keyframes moduleWaitingToEditor{0%{background:#fff2d9;border-color:#e7bd68;color:#87590d;box-shadow:inset 3px 0 0 #e2a32f}100%{background:#eeeaff;border-color:#afa1ee;color:#5541b3;box-shadow:inset 3px 0 0 #735ce0}}
.service-states{display:flex;align-items:center;gap:2px}
.service-state{
  width:27px;
  height:27px;
  padding:0;
  border:0;
  border-radius:6px;
  background:transparent;
  color:#aaa7b5;
  cursor:pointer;
  font:700 16px/1 "DM Sans";
  transition:transform 0.4s cubic-bezier(0.2, 0.8, 0.2, 1), background-color 0.78s cubic-bezier(0.4, 0, 0.2, 1), color 0.78s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.78s cubic-bezier(0.4, 0, 0.2, 1);
}
.service-state:hover{background:var(--surface-soft);color:var(--ink)}
.service-state:active{transform:scale(0.92)}
.service-state.is-just-toggled{animation:serviceStateGentle 0.78s cubic-bezier(0.4, 0, 0.2, 1)}
@keyframes serviceStateGentle{0%{transform:scale(0.96);filter:brightness(0.95);opacity:0.6}45%{transform:scale(1.18);filter:brightness(1.12);opacity:1}100%{transform:scale(1);filter:brightness(1);opacity:1}}
.service-state[data-service-state="todo"].is-active{background:var(--coral-soft);color:#d45d51}
.service-state[data-service-state="waiting"].is-active{background:var(--amber-soft);color:#a26912}
.service-state[data-service-state="done"].is-active{background:#35a566;color:#fff}
.service-module.is-waiting .service-state[data-service-state="waiting"].is-active{background:#e2a32f;color:#fff}
.service-state.lukas-state{font-size:11px}
.service-state.lukas-state.is-active{background:#735ce0;color:#fff}
.lukas-copy-button{border:0;border-radius:6px;background:#735ce0;color:#fff;padding:6px 8px;cursor:pointer;font:750 11px/1 "DM Sans";transition:transform 0.1s ease, background-color 0.15s ease}
.lukas-copy-button:hover{background:#6048d2}
.lukas-copy-button:active{transform:scale(0.92)}
.lukas-copy-button:hover{background:#6048d2}
.lukas-copy-indicator{display:inline-flex;align-items:center;justify-content:center;min-height:27px;border-radius:6px;padding:0 7px;font-size:10px;font-weight:800;white-space:nowrap}
.lukas-copy-indicator.is-complete{min-width:27px;padding:0;background:#35a566;color:#fff;font-size:15px}
.lukas-copy-indicator.is-checking,.lukas-copy-indicator.is-copying{background:var(--blue-soft);color:#326ac8}
.lukas-copy-indicator.is-warning{background:var(--coral-soft);color:#b84b3f}
.queue-job.with-editor{background:#faf9ff;border-color:#dcd6f3}
.queue-job.with-editor .job-services{background:transparent}
.queue-job.is-complete{opacity:.58;filter:saturate(.65);order:10}
.queue-job.decision-job{opacity:1;filter:none;order:initial}
.queue-job.decision-job .drag-handle{visibility:hidden}
.queue-job.catalog-job .drag-handle{visibility:hidden}
.queue-job .workflow-actions{margin:0;padding:8px 13px;border-top:1px solid var(--line);background:var(--surface)}
.queue-job .workflow-state{font-size:12px}
.queue-job .workflow-state-awaiting_property_code{background:var(--amber-soft);color:#8a5b0b}
.queue-job .workflow-state-resolved_without_invoice{background:var(--blue-soft);color:#315f9f}
.workflow-actions .button.is-selected{background:var(--amber-soft);color:#8a5b0b;opacity:1}
.workflow-actions .resolved-without-invoice{color:var(--muted)}
.workflow-actions .resolved-without-invoice:hover{background:var(--green-soft);color:#26734a}
.workflow-actions .button:disabled{cursor:default}
.queue-job .progress-ring,.queue-job .timebox,.queue-job .job-card-actions{display:none}
.queue-page-head{margin-bottom:14px}
.queue-page-head p:not(.eyebrow){max-width:760px;margin:7px 0 0;color:var(--muted);font-size:14px;line-height:1.45}
.queue-page-head .tabs{margin-left:auto}
.jobs-view-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px}.jobs-view-toolbar .tabs{flex:0 0 auto}.jobs-search{width:min(520px,100%);height:42px;padding:0 14px;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--ink);font:600 14px "DM Sans";box-shadow:0 5px 18px rgba(38,33,65,.035)}.jobs-search:focus{outline:2px solid rgba(109,84,235,.18);border-color:#9d8def}
.jobs-filter-bar{display:grid;grid-template-columns:minmax(150px,.9fr) minmax(190px,1.2fr) minmax(190px,1.1fr) minmax(220px,1.25fr) auto;align-items:end;gap:10px;margin:0 0 15px;padding:13px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 7px 24px rgba(38,33,65,.04)}
.jobs-filter-bar label{display:grid;gap:5px;margin:0;min-width:0}.jobs-filter-bar label>span{font-size:11px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.55px}.jobs-filter-bar select{width:100%;min-width:0;height:40px;padding:0 34px 0 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);color:var(--ink);font:700 13px "DM Sans"}.jobs-filter-reset{height:40px;white-space:nowrap}
.trash-job-list{display:grid;gap:9px}.trash-job-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:15px 17px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 6px 20px rgba(38,33,65,.035)}.trash-job-main{min-width:0}.trash-job-main>div:first-child{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap}.trash-job-main strong{font-size:17px}.trash-job-main>div:first-child span{color:var(--muted);font-size:14px}.trash-job-meta{display:flex;gap:7px 14px;flex-wrap:wrap;margin-top:6px;color:var(--muted);font-size:13px}.trash-job-meta span:not(:last-child):after{content:"·";margin-left:14px;color:var(--line)}.trash-job-actions{display:flex;align-items:center;gap:8px}.trash-job-warning{margin:9px 0 0;padding:8px 10px;border-radius:9px;background:var(--amber-soft);color:#755412;font-size:13px;line-height:1.4}.trash-job-card.is-partial{border-color:#e6c66c}html[data-theme="dark"] .trash-job-warning{color:#f2d995}

/* One compact settings drawer opened by clicking the job row. */
#jobEditDialog{
  width:min(440px,100%);
  height:100dvh;
  max-height:none;
  margin:0 0 0 auto;
  border-radius:20px 0 0 20px;
  background:var(--surface);
  box-shadow:-18px 0 58px rgba(38,33,65,.16);
}
#jobEditDialog::backdrop{background:rgba(31,29,48,.22);backdrop-filter:blur(2px)}
#jobEditForm{height:100%;overflow:auto;padding:21px 22px 28px}
.job-editor-section{padding:13px 0;border-top:1px solid var(--line)}
.job-editor-section:first-of-type{border-top:0;padding-top:0}
.job-editor-section h3{font-size:15px;margin:0 0 8px}
.job-editor-section label{margin:0}
.job-editor-section label>span{font-weight:500;color:var(--muted)}
.job-editor-client select{background:var(--surface-soft);font-weight:700}
.edit-service-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.edit-service-choice{
  position:relative;
  display:flex;
  align-items:center;
  min-height:37px;
  margin:0;
  padding:9px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--surface-soft);
  cursor:pointer;
  color:var(--muted);
}
.edit-service-choice input{position:absolute;opacity:0}
.edit-service-choice.is-selected{background:var(--violet-soft);border-color:#c9bff8;color:#5842c9}
.job-editor-more{margin-top:2px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.job-editor-more summary{cursor:pointer;padding:13px 0;font-size:14px;font-weight:800;color:var(--muted);list-style:none}
.job-editor-more summary::after{content:"⌄";float:right;font-size:15px}
.job-editor-more[open] summary::after{transform:rotate(180deg)}
.job-editor-more-content{padding:2px 0}
.job-editor-more-content .manual-normalization{margin-top:13px}
.job-editor-more-content .form-hint{margin:0 0 9px}
.job-editor-more-content label{margin-bottom:10px}
.job-editor-more-content select{background:var(--surface)}
#jobEditForm .dialog-actions{position:sticky;bottom:-28px;margin:17px -22px -28px;padding:12px 22px;background:var(--surface);border-top:1px solid var(--line)}
#jobEditForm label,#jobEditForm legend{font-size:15px}
#jobEditForm input,#jobEditForm select,#jobEditForm textarea{font-size:16px}

/* The secondary screens still use the original component names. Keep their
   type at the same readable scale as the new dashboard. */
.section-head p,.job-address,.price-card p,.client-card p,.delivery-check,.form-hint{font-size:15px}
.tab,.invoice-item,.wait-item{font-size:15px}
.directory-name,.draft-field>strong{font-size:16px}
.directory-initials,.draft-field>span,.draft-field.invoice-account,.source-badge{font-size:13px}
.invoice-warning,.client-account,.client-facturation span{font-size:14px}
.draft-field select,.draft-field input,.delivery-check strong{font-size:15px}
.payer-note,.client-chip,.workflow-state,.workflow-actions .button{font-size:13px}
.calendar-missing-job{border-color:#e6b07a;background:linear-gradient(90deg,rgba(255,239,220,.62),var(--surface) 18%)}
.calendar-missing-chip{display:inline-block;margin:7px 0 0 7px;padding:3px 7px;border-radius:7px;background:#fff0de;color:#9b5a1d;font-size:11px;font-weight:800}
html[data-theme="dark"] .calendar-missing-job{border-color:#7d5535;background:linear-gradient(90deg,rgba(103,66,38,.42),var(--surface) 18%)}
html[data-theme="dark"] .calendar-missing-chip{background:#533a26;color:#ffd1a3}
.client-profile h3{font-size:22px}
.client-facturation strong{font-size:18px}
.client-profile .initials{font-size:18px}
.day-preview strong{font-size:14px}
.day-preview span{font-size:13px}

html[data-theme="dark"]{
  --paper:#171722;
  --surface:#22212f;
  --surface-soft:#2b2939;
  --ink:#f4f2fb;
  --muted:#aaa6bb;
  --line:#3a374b;
  --sidebar:#22212f;
  --violet:#8e78f3;
  --violet-soft:#342e55;
  --blue:#6b9ef6;
  --blue-soft:#263955;
  --coral:#ff8e80;
  --coral-soft:#4b2e35;
  --amber:#f2b655;
  --amber-soft:#493923;
  --cyan:#65c6d4;
}
html[data-theme="dark"] body{background:var(--paper);color:var(--ink)}
html[data-theme="dark"] .sidebar{background:rgba(34,33,47,.9);border-color:var(--line)}
html[data-theme="dark"] .icon-button,html[data-theme="dark"] .dashboard-main,html[data-theme="dark"] .insight-card,html[data-theme="dark"] .context-card,html[data-theme="dark"] .queue-job,html[data-theme="dark"] #jobEditDialog{background:var(--surface);color:var(--ink);border-color:var(--line)}
html[data-theme="dark"] .attention-card{background:linear-gradient(145deg,#292735 0%,#252330 100%);border-color:#4a4466}html[data-theme="dark"] .attention-item{background:#211f2b}html[data-theme="dark"] .attention-empty{background:#193629;color:#a6e7bf}
html[data-theme="dark"] .dashboard-summary{background:var(--surface)}html[data-theme="dark"] .summary-stat{color:var(--ink)}
html[data-theme="dark"] .queue-job .job-services,html[data-theme="dark"] .revenue-track{background:#292735}
html[data-theme="dark"] .service-module{background:var(--surface);border-color:var(--line)}
html[data-theme="dark"] .service-module.is-done{background:#193629;border-color:#3d805a;color:#a6e7bf;box-shadow:inset 3px 0 0 #4fbd7a}
html[data-theme="dark"] .service-module.is-waiting{background:#3b301e;border-color:#7b602c;color:#f1ce83;box-shadow:inset 3px 0 0 #d99b2b}
html[data-theme="dark"] .service-module.is-editor{background:#302b49;border-color:#62568f;color:#cec4ff;box-shadow:inset 3px 0 0 #8d78ee}
html[data-theme="dark"] .queue-job.with-editor{background:#29263a;border-color:#4a4466}
html[data-theme="dark"] .queue-job.with-editor .job-services{background:#302c43}
html[data-theme="dark"] .jobs-filter-bar{background:var(--surface)}
html[data-theme="dark"] .jobs-search{background:var(--surface);color:var(--ink)}
html[data-theme="dark"] .edit-service-choice{background:var(--surface-soft)}
html[data-theme="dark"] .edit-service-choice.is-selected{background:var(--violet-soft);border-color:#5f528b;color:#c6bbff}
html[data-theme="dark"] #jobEditForm .dialog-actions{background:var(--surface)}
html[data-theme="dark"] input,html[data-theme="dark"] select,html[data-theme="dark"] textarea,html[data-theme="dark"] .secure-text-control{background:#1d1c28;color:var(--ink);border-color:var(--line)}
html[data-theme="dark"] .text-button{color:#b8aaff}
html[data-theme="dark"] .metric .trend,html[data-theme="dark"] .chip.done,html[data-theme="dark"] .payer-ready,html[data-theme="dark"] .invoice-warning.invoice-ok,html[data-theme="dark"] .payer-note{background:var(--blue-soft);color:#9bc0ff}
.job-editor-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.job-editor-section-head h3{margin:0}.dialog-head-actions{display:flex;align-items:center;gap:8px}.job-history-dialog{width:min(680px,calc(100vw - 28px));max-height:min(780px,calc(100dvh - 28px));background:var(--surface);color:var(--ink)}.job-history-shell{display:grid;grid-template-rows:auto minmax(0,1fr);max-height:min(780px,calc(100dvh - 28px));padding:22px}.job-history-shell .dialog-head{margin-bottom:12px}.job-history-list{min-height:180px;overflow:auto;padding:3px 5px 8px 1px}.job-history-item{position:relative;display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;padding:0 0 18px}.job-history-item:not(:last-child):before{content:"";position:absolute;left:10px;top:18px;bottom:0;width:2px;background:var(--line)}.job-history-marker{position:relative;z-index:1;width:12px;height:12px;margin:4px 0 0 5px;border:3px solid var(--surface);border-radius:50%;background:var(--violet);box-shadow:0 0 0 2px var(--violet-soft)}.job-history-content{min-width:0;padding:0 0 2px}.job-history-content>strong{display:block;margin-top:4px;font-size:16px}.job-history-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--muted);font-size:12px}.job-history-source{display:inline-flex;padding:3px 7px;border-radius:999px;background:var(--surface-soft);color:var(--muted);font-size:11px;font-weight:800}.job-history-source.source-user{background:var(--violet-soft);color:var(--violet)}.job-history-source.source-calendar{background:var(--blue-soft);color:#326ac8}.job-history-source.source-fakturoid{background:var(--green-soft);color:#26734a}.job-history-content ul{display:grid;gap:4px;margin:8px 0 0;padding-left:18px;color:var(--muted);font-size:14px}.nas-folder-status{font-size:12px;font-weight:800;color:var(--violet);background:var(--violet-soft);border-radius:999px;padding:5px 9px}.nas-folder-path{margin:9px 0 11px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-soft);font-size:13px;line-height:1.35;overflow-wrap:anywhere}.nas-folder-actions{display:flex;gap:8px}.nas-folder-dialog{width:min(700px,calc(100vw - 24px));max-height:min(760px,calc(100dvh - 30px))}.nas-folder-browser{padding:20px;display:grid;grid-template-rows:auto auto auto minmax(260px,1fr) auto;gap:12px;min-height:min(660px,calc(100dvh - 54px))}.nas-folder-toolbar{display:flex;align-items:center;gap:12px}.nas-folder-toolbar input,.nas-folder-toolbar .secure-text-control{flex:1}.nas-folder-toolbar span{font-size:11px;color:var(--muted);max-width:210px;text-align:right}.nas-folder-breadcrumbs{display:flex;align-items:center;gap:5px;overflow:auto;white-space:nowrap;padding-bottom:2px}.nas-folder-breadcrumbs button{border:0;background:transparent;color:var(--violet);font-weight:750;padding:4px;cursor:pointer}.nas-folder-breadcrumbs span{color:var(--muted)}.nas-folder-list{border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);overflow:auto;padding:5px}.nas-folder-row{width:100%;border:1px solid transparent;background:transparent;border-radius:9px;display:grid;grid-template-columns:26px 1fr auto;align-items:center;text-align:left;gap:7px;padding:9px 10px;color:var(--ink);cursor:pointer}.nas-folder-row:hover{background:var(--surface);border-color:var(--line)}.nas-folder-row.is-selected{background:var(--violet-soft);border-color:#b9a9ff}.nas-folder-row span:nth-child(2){min-width:0;display:grid;gap:2px}.nas-folder-row strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nas-folder-row small{font-size:10px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nas-folder-icon{font-size:20px;color:#e6a72b}.nas-folder-empty{padding:28px 15px;text-align:center;color:var(--muted)}html[data-theme="dark"] .nas-folder-path,html[data-theme="dark"] .nas-folder-list{background:#1d1c28}html[data-theme="dark"] .nas-folder-row:hover{background:#262432}html[data-theme="dark"] .nas-folder-row.is-selected{background:#302b49;border-color:#62568f}
.nas-folder-row{grid-template-columns:minmax(0,1fr) auto;padding:3px;cursor:default}.nas-folder-open{min-width:0;border:0;background:transparent;color:inherit;display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;text-align:left;gap:7px;padding:7px;cursor:pointer}.nas-folder-open span:nth-child(2){min-width:0;display:grid;gap:2px}.nas-folder-pick{border:0;border-radius:7px;background:var(--surface);color:var(--violet);font-size:11px;font-weight:800;padding:7px 9px;cursor:pointer}.nas-folder-row.is-selected .nas-folder-pick{background:var(--violet);color:white}html[data-theme="dark"] .nas-folder-pick{background:#292735;color:#b8aaff}
.nas-folder-refresh{flex:0 0 auto;padding:9px 12px}.nas-folder-refresh:disabled{opacity:.55;cursor:wait}

@media(max-width:1180px){
  .fullscreen-dashboard{grid-template-columns:minmax(500px,1.35fr) minmax(350px,.85fr)}
  .dashboard-context{grid-template-columns:1fr}
}
@media(max-width:920px){
  main{padding:22px 20px 108px}
  .fullscreen-dashboard{grid-template-columns:1fr}
  .dashboard-rail{grid-template-columns:1fr 1fr}
  .dashboard-stats,.dashboard-context{grid-column:1/-1}
  .dashboard-context{grid-template-columns:1.2fr .8fr}
  .pricing-row-copy{align-items:flex-start;flex-direction:column;gap:3px}
  .jobs-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.jobs-filter-reset{width:100%}
}
@media(max-width:720px){
  body{font-size:18px}
  main{padding:20px 12px 110px}
  .topbar{margin-bottom:15px}
  body[data-page="dashboard"] .topbar{min-height:52px;margin-bottom:14px}
  .topbar h1{font-size:29px}
  .connection-pill b{font-size:11px}
  .sidebar{bottom:8px;width:calc(100% - 14px);height:72px;border-radius:18px;padding:6px}
  .sidebar nav{display:flex;overflow-x:auto;scrollbar-width:none}
  .sidebar nav::-webkit-scrollbar{display:none}
  .nav-item{flex:0 0 72px;padding:7px 5px;display:grid;justify-items:center;gap:3px;font-size:10px}
  .nav-icon{width:19px;height:19px;flex-basis:19px}.nav-icon svg{width:19px;height:19px}
  .fullscreen-dashboard{gap:14px}
  .dashboard-summary{display:flex;gap:9px;margin-bottom:14px;overflow-x:auto;scrollbar-width:none}.dashboard-summary::-webkit-scrollbar{display:none}.summary-stat{flex:0 0 174px;min-height:116px;padding:14px}.summary-stat strong{font-size:19px}
  .attention-card{padding:12px;margin-bottom:15px}.attention-item{grid-template-columns:6px minmax(0,1fr);padding:9px}.attention-item .button{grid-column:2;width:100%;margin-top:4px}.attention-copy span,.attention-copy small{white-space:normal}
  .dashboard-rail{grid-template-columns:1fr}
  .dashboard-stats,.dashboard-context{grid-column:auto}
  .dashboard-context{grid-template-columns:1fr}
  .dashboard-stat{min-height:68px;padding:10px}
  .dashboard-stat strong{font-size:17px}
  .insight-card,.context-card{padding:12px}
  .revenue-chart{height:140px;gap:3px}
  .revenue-track{height:99px}
  .dashboard-main-panel{border-radius:13px}
  .queue-job-layout{grid-template-columns:42px minmax(0,1fr)}
  .queue-job-client{padding:11px 2px 8px 8px}
  .queue-client-avatar{width:30px;height:30px}
  .queue-job-head{padding:11px 10px 6px 6px}
  .queue-job-title{gap:6px}
  .queue-job-title>strong{max-width:42%;white-space:nowrap}
  .job-calendar-address{font-size:13px}
  .queue-job .job-price{margin-left:auto;font-size:12px}
  .queue-job .job-services{padding:5px 9px 10px 6px}
  .service-module{width:100%;justify-content:space-between}
  .service-states{margin-left:auto}
  .queue-page-head{align-items:flex-start;flex-direction:column}
  .queue-page-head .tabs{margin-left:0;max-width:100%;overflow:auto}
  .jobs-view-toolbar{align-items:stretch;flex-direction:column}.jobs-view-toolbar .tabs{width:100%}.jobs-view-toolbar .tab{flex:1}.jobs-search{width:100%}
  .jobs-filter-bar{grid-template-columns:1fr;padding:11px}.jobs-filter-reset{width:100%}
  .trash-job-card{grid-template-columns:1fr;gap:12px;padding:14px}.trash-job-actions{justify-content:flex-end}.trash-job-actions .button{min-height:42px}.trash-job-meta span:not(:last-child):after{display:none}
  .queue-job .workflow-actions{grid-template-columns:1fr 1fr}
  .queue-job .workflow-state{grid-column:1/-1}
  .queue-job .workflow-actions .button{width:100%}
  #jobEditDialog{width:100%;height:min(88dvh,840px);margin:auto 0 0;border-radius:18px 18px 0 0}
  #manualInvoiceDialog{width:100%;max-height:92dvh;margin:auto 0 0;border-radius:18px 18px 0 0}
  #jobEditForm{padding:18px 16px 25px}
  #jobEditForm .dialog-actions{bottom:-25px;margin:16px -16px -25px;padding:11px 16px}
  .job-history-dialog{width:100%;height:92dvh;max-height:none;margin:auto 0 0;border-radius:18px 18px 0 0}.job-history-shell{height:100%;max-height:none;padding:17px}.dialog-head-actions .button{min-height:40px}
  .nas-folder-dialog{width:100%;height:92dvh;margin:auto 0 0;border-radius:18px 18px 0 0}.nas-folder-browser{min-height:100%;padding:16px;grid-template-rows:auto auto auto minmax(180px,1fr) auto}.nas-folder-toolbar{align-items:stretch;flex-direction:column}.nas-folder-toolbar span{max-width:none;text-align:left}
  .edit-service-grid{grid-template-columns:1fr}
  .dialog-actions .button{min-width:0}
  .dialog-actions .button.danger{flex:0 1 auto}
  .pricing-page{gap:12px}
  .pricing-titlebar{align-items:flex-start;padding:19px 18px}
  .pricing-titlebar h2{font-size:27px}
  .pricing-titlebar .button{padding:9px 11px;font-size:12px}
  .pricing-areas{grid-template-columns:1fr;gap:12px}
  .pricing-area-head{padding:16px 17px}
  .pricing-area-head h3{font-size:24px}
  .pricing-area-list{padding:5px 13px 8px}
  .pricing-row{min-height:61px;gap:10px}
  .pricing-row-copy{align-items:baseline;flex-direction:row;gap:10px}
  .pricing-row-copy strong{font-size:15px}
  .pricing-row-copy span{font-size:16px}
  .pricing-edit{opacity:.62}
  .pricing-shared{grid-template-columns:1fr}
  .pricing-shared-head{padding:16px 18px}
  .pricing-shared-list{grid-template-columns:1fr;padding:4px 13px 7px}
  .pricing-shared-list .pricing-row:nth-child(odd){border-right:0;padding-right:4px}
  .pricing-shared-list .pricing-row:nth-child(even){padding-left:4px}
}
.telegram-dialog{width:min(520px,calc(100% - 28px));padding:0}.telegram-card{padding:24px}.telegram-status{margin:4px 0 18px}.telegram-state{border:1px solid var(--line);border-radius:14px;background:var(--paper);padding:16px}.telegram-state strong{display:block;font:700 15px Manrope}.telegram-state p,.telegram-state small{display:block;color:var(--muted);line-height:1.5;margin:7px 0 0}.telegram-state ol{margin:12px 0 0;padding-left:21px;color:var(--muted);line-height:1.8}.telegram-state code{background:var(--mint);color:var(--ink);border-radius:5px;padding:2px 5px}.telegram-state a{color:var(--violet,#6c55d9);font-weight:700}.telegram-state.is-on{border-color:#9ed8b6;background:#edf9f2}.telegram-state.is-error{border-color:#edb5ad;background:#fff3f1}.telegram-pair-form{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;padding:0}.telegram-pair-form label{margin:0}.telegram-pair-form input{font-size:20px;font-weight:700;letter-spacing:.25em;text-align:center}.telegram-actions{display:flex;justify-content:flex-start;margin-top:16px}.telegram-pair-form[hidden]{display:none}
.notification-decision-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}
@media(max-width:600px){.telegram-card{padding:20px}.telegram-pair-form{grid-template-columns:1fr}.notification-head-actions{flex-wrap:wrap;justify-content:flex-end}}

/* Stitch-aligned calendar: month grid and compact operational agenda. */
body[data-page="calendar"] main{padding-top:24px}
body[data-page="calendar"] .topbar{margin-bottom:18px}
body[data-page="calendar"] .topbar-copy p{text-transform:none}
.calendar-page{gap:14px}
.calendar-context-line{display:flex;align-items:center;justify-content:space-between;min-height:22px;color:var(--muted);font-size:12px}
.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.calendar-toolbar-main,.calendar-toolbar-actions,.calendar-month-navigation{display:flex;align-items:center;gap:8px}
.calendar-toolbar-main{min-width:0;flex:1;gap:18px}
.calendar-month-navigation{flex:0 0 auto}
.calendar-month-navigation strong{min-width:116px;margin-left:4px;font-size:15px;text-transform:capitalize}
.calendar-month-navigation .icon-button{width:34px;height:34px;border-radius:9px;background:transparent;font-size:23px}
.calendar-month-navigation .button{height:34px;padding:0 12px}
.calendar-filter-switch{display:flex;align-items:center;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none}
.calendar-filter-switch::-webkit-scrollbar{display:none}
.calendar-filter-switch button{display:flex;align-items:center;gap:5px;min-height:34px;padding:0 10px;border:0;border-radius:9px;background:transparent;color:var(--muted);font-size:11px;font-weight:750;white-space:nowrap;cursor:pointer}
.calendar-filter-switch button span{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--surface-soft);font-size:9px}
.calendar-filter-switch button:hover{color:var(--ink);background:var(--surface-soft)}
.calendar-filter-switch button.active{color:#fff;background:var(--ink)}
.calendar-filter-switch button.active span{color:var(--ink);background:#fff}
.calendar-toolbar-actions{flex:0 0 auto}
.calendar-view-switch{padding:3px;border:0;border-radius:10px;background:var(--surface-soft)}
.calendar-view-switch button{min-height:30px;padding:0 10px;border-radius:8px;font-size:10px}
.calendar-view-switch button.active{color:var(--ink);box-shadow:0 2px 8px rgba(49,44,82,.1)}
.calendar-new-event{min-height:36px;padding:0 13px;border-radius:9px;background:#2f67eb;color:#fff;font-size:11px}
.calendar-new-event:hover{background:#245bd8}

.calendar-compact-month{padding:16px 20px 13px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.calendar-compact-month .mini-calendar{gap:4px 8px}
.calendar-compact-month .cal-label{padding:2px 0 7px;color:#9aa3b2;font-size:10px;font-weight:650}
.calendar-compact-month .cal-day{width:100%;height:38px;border-radius:8px;background:var(--surface-soft);font-size:12px}
.calendar-compact-month .cal-day:disabled{color:var(--muted);background:transparent}
.calendar-compact-month .cal-day.event{background:#eef4ff;color:var(--ink);font-weight:700}
.calendar-compact-month .cal-day.event::after{display:none}
.calendar-compact-month .cal-day i{position:absolute;right:5px;top:4px;display:grid;place-items:center;min-width:14px;height:14px;padding:0 3px;border-radius:999px;background:#dce8ff;color:#2f67eb;font:800 8px/1 var(--ui-font-family)}
.calendar-compact-month .cal-day.today{outline:0;background:#2f67eb;color:#fff;box-shadow:0 5px 13px rgba(47,103,235,.2)}
.calendar-compact-month .cal-day.today i{background:#fff;color:#2f67eb}
.calendar-compact-month .cal-day.selected:not(.today){box-shadow:inset 0 0 0 2px #2f67eb}

.calendar-day-summary{display:grid;grid-template-columns:auto minmax(0,1fr);gap:16px;align-items:center;padding:12px 16px;border:1px solid #d9e6ff;border-radius:12px;background:#f5f8ff}
.calendar-day-summary>div{display:grid;gap:2px;padding-right:16px;border-right:1px solid #d9e6ff}
.calendar-day-summary span{color:#2f67eb;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.35px}
.calendar-day-summary strong{font-size:13px}
.calendar-day-summary p{margin:0;color:var(--muted);font-size:11px;line-height:1.45}
.calendar-day-summary b{color:var(--ink)}

.calendar-agenda-panel{padding:18px 20px 20px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.calendar-agenda-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.calendar-agenda-heading h3{font-size:16px}
.calendar-agenda-heading p{margin:4px 0 0;color:var(--muted);font-size:11px}
.calendar-agenda-heading>span,.calendar-agenda-badges span{padding:6px 9px;border-radius:999px;background:var(--surface-soft);color:var(--muted);font-size:10px;font-weight:750;white-space:nowrap}
.calendar-agenda-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.calendar-agenda-badges .calendar-agenda-revenue{background:#eef4ff;color:#2f67eb}
.calendar-agenda-badges .calendar-agenda-revenue strong{color:#1a4ec8;font-weight:850}
.calendar-show-all{margin:-4px 0 12px}
.calendar-agenda-group+.calendar-agenda-group{margin-top:17px}
.calendar-agenda-date{display:flex;align-items:baseline;gap:8px;margin:0 0 7px;padding:0 2px}
.calendar-agenda-date span{color:#2f67eb;font-size:10px;font-weight:850;text-transform:uppercase}
.calendar-agenda-date strong{font-size:13px;text-transform:capitalize}
.calendar-agenda-date em{margin-left:auto;color:var(--muted);font-size:9px;font-style:normal;font-weight:750;text-transform:uppercase}
.calendar-agenda-card{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:14px;align-items:center;min-height:76px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface)}
.calendar-agenda-card+.calendar-agenda-card{margin-top:7px}
.calendar-agenda-card:hover{border-color:#cddbf8;box-shadow:0 6px 18px rgba(45,73,128,.055)}
.calendar-agenda-time{align-self:stretch;display:grid;place-content:center;padding-right:12px;border-right:1px solid var(--line)}
.calendar-agenda-time strong{font-size:15px}
.calendar-agenda-time span{color:var(--muted);font-size:10px}
.calendar-agenda-main{min-width:0;display:grid;gap:4px}
.calendar-agenda-title{display:flex;align-items:center;gap:8px;min-width:0}
.calendar-agenda-title>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
.calendar-event-status{flex:0 0 auto;padding:3px 6px;border-radius:999px;background:#edf8f1;color:#2d8252;font-size:8px;font-weight:850;text-transform:uppercase}
.calendar-agenda-main p{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:11px}
.calendar-service-tags{display:flex;align-items:center;gap:5px;min-width:0;overflow:hidden}
.calendar-service-tags span,.full-calendar-event em{padding:3px 6px;border-radius:5px;background:#eef4ff;color:#2d66c3;font-size:8px;font-style:normal;font-weight:800;white-space:nowrap}
.calendar-service-tags .type-video,.full-calendar-event.type-video em{background:#fff2df;color:#a26112}
.calendar-service-tags .type-tour,.full-calendar-event.type-tour em{background:#eeebff;color:#6650c9}
.calendar-service-tags .type-plan,.full-calendar-event.type-plan em{background:#edf6f7;color:#37818d}
.calendar-service-tags b{margin-left:auto;font-size:11px;white-space:nowrap}
.calendar-agenda-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}
.calendar-agenda-price{font-size:13px;font-weight:700;color:var(--ink);white-space:nowrap;padding:0 4px}
.calendar-agenda-price.is-empty{color:var(--muted);font-size:11px;font-weight:600}
.calendar-agenda-actions .button{min-height:33px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;font-size:10px}
.calendar-agenda-actions .button:hover{border-color:#aac4f6;color:#2f67eb}

.full-calendar-scroll{border-radius:14px;box-shadow:none}
.full-calendar-grid{min-width:1080px}
.full-calendar-weekdays{background:#fbfbfd}
.full-calendar-weekdays>div{padding:9px 11px;color:#7e8797;font-size:9px;letter-spacing:.55px}
.full-calendar-day{min-height:clamp(108px,calc((100dvh - 330px)/6),155px);padding:8px;background:var(--surface)}
.full-calendar-day.is-weekend:not(.is-outside){background:#fbfbfd}
.full-calendar-day.is-outside{opacity:1;background:#fafafd;color:#b7bdc8}
.full-calendar-day.is-today{background:#f4f7ff;box-shadow:inset 0 0 0 2px #2f67eb}
.full-calendar-day header{margin-bottom:6px}
.full-calendar-day header button{width:auto;min-width:26px;height:26px;display:flex;align-items:center;gap:4px;padding:0 6px;border-radius:7px;font-size:11px}
.full-calendar-day header button b{font-size:7px;letter-spacing:.3px}
.full-calendar-day.is-today header button{background:#2f67eb}
.full-calendar-day header>span{font-size:7px}
.full-calendar-events{gap:4px}
.full-calendar-event{display:grid;grid-template-columns:1fr;gap:3px;padding:6px 7px;border:0;border-left:3px solid #2f67eb;border-radius:7px;background:#eef4ff}
.full-calendar-event.type-video{border-left-color:#e7a63e;background:#fff6e8}
.full-calendar-event.type-tour{border-left-color:#8069df;background:#f2efff}
.full-calendar-event.type-plan{border-left-color:#4da7b5;background:#edf8fa}
.full-calendar-event.is-complete{border-left-color:#42a873;background:#eef9f3}
.full-event-top{display:flex;align-items:center;justify-content:space-between;gap:4px}
.full-calendar-event time{color:#2d66c3;font-size:8px}
.full-calendar-event strong{font-size:9px}
.full-calendar-event small{color:var(--muted);font-size:7px}
.full-calendar-event em{max-width:52px;overflow:hidden;text-overflow:ellipsis}

html[data-theme="dark"] .calendar-day-summary{border-color:#334865;background:#25344a}
html[data-theme="dark"] .calendar-day-summary>div{border-color:#334865}
html[data-theme="dark"] .calendar-compact-month .cal-day.event,html[data-theme="dark"] .full-calendar-event{background:var(--blue-soft)}
html[data-theme="dark"] .full-calendar-weekdays,html[data-theme="dark"] .full-calendar-day.is-weekend:not(.is-outside),html[data-theme="dark"] .full-calendar-day.is-outside{background:#211f2b}
html[data-theme="dark"] .calendar-agenda-badges .calendar-agenda-revenue{background:#1e2b48;color:#8bb2f8}
html[data-theme="dark"] .calendar-agenda-badges .calendar-agenda-revenue strong{color:#c3d9ff}

@media(max-width:1100px){
  .calendar-toolbar{align-items:stretch;flex-direction:column}.calendar-toolbar-main,.calendar-toolbar-actions{justify-content:space-between}.calendar-filter-switch{justify-content:flex-end}
  .calendar-agenda-card{grid-template-columns:68px minmax(0,1fr)}.calendar-agenda-actions{grid-column:2;justify-content:flex-start}
}
@media(max-width:720px){
  body[data-page="calendar"] main{padding-top:16px}.calendar-context-line{align-items:flex-start;gap:10px}
  .calendar-toolbar-main,.calendar-toolbar-actions{align-items:stretch;flex-direction:column}.calendar-month-navigation strong{margin-left:auto}.calendar-filter-switch{justify-content:flex-start}
  .calendar-view-switch{display:grid;grid-template-columns:1fr 1fr}.calendar-new-event{width:100%}
  .calendar-compact-month{padding:12px}.calendar-compact-month .mini-calendar{gap:3px}.calendar-compact-month .cal-day{height:34px}.calendar-compact-month .cal-day i{display:none}
  .calendar-day-summary{grid-template-columns:1fr}.calendar-day-summary>div{padding:0 0 9px;border:0;border-bottom:1px solid #d9e6ff}
  .calendar-agenda-panel{padding:14px 12px}.calendar-agenda-heading{align-items:flex-start;flex-direction:column}.calendar-agenda-date{flex-wrap:wrap}.calendar-agenda-date em{margin-left:0}
  .calendar-agenda-card{grid-template-columns:55px minmax(0,1fr);gap:9px;padding:9px}.calendar-agenda-time{padding-right:8px}.calendar-agenda-title{align-items:flex-start;flex-direction:column;gap:3px}.calendar-service-tags{flex-wrap:wrap}.calendar-service-tags b{width:100%;margin-left:0}.calendar-agenda-actions{grid-column:1/-1}.calendar-agenda-actions .button{flex:1;text-align:center}
  body[data-page="calendar"][data-calendar-view="full"] main{padding-left:12px;padding-right:12px}.full-calendar-scroll{margin-inline:0}.full-calendar-grid{min-width:980px}
}

/* Stitch client directory: compact, scannable rows with no redundant metrics. */
body[data-page="clients"] main{padding-top:24px}
body[data-page="clients"] .topbar{margin-bottom:18px}
.studio-clients-page{display:grid;gap:14px}
.studio-clients-heading{margin:0;align-items:center}
.studio-clients-heading h2{margin:0 0 5px;font-size:24px}
.studio-clients-heading p{margin:0;color:var(--muted);font-size:13px}
.studio-clients-heading .button{min-height:40px;padding-inline:15px;border-radius:10px;font-size:13px}.studio-clients-heading .button.primary{background:#2f67eb;color:#fff}.studio-client-heading-actions{display:flex;align-items:center;gap:9px}
.studio-client-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 13px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}
.studio-client-search{width:min(440px,50%);display:flex;align-items:center;gap:9px;margin:0;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:var(--surface-soft);color:var(--muted)}
.studio-client-search>span{font-size:22px;line-height:1;transform:rotate(-15deg)}
.studio-client-search input{width:100%;height:38px;padding:0;border:0;background:transparent;color:var(--ink);font:inherit;font-size:13px;outline:0}
.studio-client-search:focus-within{border-color:#93b4f4;box-shadow:0 0 0 3px rgba(47,103,235,.1)}
.studio-client-status{display:flex;align-items:center;gap:4px;padding:3px;border-radius:10px;background:var(--surface-soft)}
.studio-client-status button{display:flex;align-items:center;gap:6px;min-height:32px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:12px;font-weight:750;cursor:pointer}
.studio-client-status button span{display:grid;place-items:center;min-width:19px;height:19px;padding-inline:4px;border-radius:999px;background:rgba(115,125,145,.12);font-size:9px}
.studio-client-status button.active{background:var(--surface);color:var(--ink);box-shadow:0 2px 8px rgba(39,48,69,.09)}
.studio-client-status button.active span{background:#e8efff;color:#2f67eb}
.studio-client-table{overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.studio-client-table-head,.studio-client-row{display:grid;grid-template-columns:minmax(220px,1.15fr) minmax(190px,.9fr) minmax(250px,1.15fr) minmax(160px,.7fr);gap:18px;align-items:center}
.studio-client-table-head{min-height:43px;padding:0 18px;border-bottom:1px solid var(--line);background:#fbfbfd;color:#858fa0;font-size:10px;font-weight:850;letter-spacing:.55px;text-transform:uppercase}
.studio-client-row{min-height:76px;padding:10px 18px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .15s ease,box-shadow .15s ease}
.studio-client-row:hover,.studio-client-row:focus-visible{outline:0;background:#f7f9fd;box-shadow:inset 3px 0 0 #2f67eb}
.studio-client-row.is-archived{opacity:.62}
.studio-client-identity{min-width:0;display:flex;align-items:center;gap:12px}
.studio-client-avatar{position:relative;overflow:hidden;flex:0 0 auto;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:linear-gradient(145deg,#e9efff,#f2edff);color:#315fae;font-size:12px;font-weight:850}.studio-client-avatar.has-photo{background:#dbe4f8}.studio-client-avatar img{position:absolute;display:block;max-width:none;max-height:none;will-change:left,top,transform}
.studio-client-identity strong,.studio-client-contact strong,.studio-client-billing strong,.studio-client-activity strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.studio-client-contact,.studio-client-billing,.studio-client-activity{min-width:0;display:grid;gap:4px}
.studio-client-contact strong{color:#3d6cc5;font-weight:650}
.studio-client-billing span,.studio-client-activity span{color:var(--muted);font-size:11px}
.studio-client-activity strong{font-size:14px}
.studio-client-table footer{padding:11px 18px;color:var(--muted);font-size:11px}
html[data-theme="dark"] .studio-client-table-head{background:#201f2b}
html[data-theme="dark"] .studio-client-row:hover,html[data-theme="dark"] .studio-client-row:focus-visible{background:#282635}
/* ==========================================================================
   Client Modal Dialog (iOS 17/18 Compact Design System)
   ========================================================================== */
.client-db-dialog {
  width: min(620px, calc(100vw - 24px)) !important;
  max-height: min(90vh, 760px) !important;
  padding: 0 !important;
  border: 1px solid var(--line) !important;
  border-radius: 16px !important;
  background: var(--surface) !important;
  box-shadow: 0 20px 48px -12px rgba(15, 23, 42, 0.2), 0 1px 3px rgba(15, 23, 42, 0.05) !important;
  overflow: hidden !important;
  color: var(--ink);
}

#clientDbForm {
  display: flex;
  flex-direction: column;
  height: 100%;
  max-height: min(90vh, 760px);
  margin: 0;
  padding: 0;
  overflow: hidden;
}

/* Modal Header */
.client-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 20px;
  border-bottom: 1px solid var(--line);
  background: var(--surface-soft, rgba(248, 250, 252, 0.8));
  flex-shrink: 0;
}

.client-header-main {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.client-header-avatar {
  position: relative;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #eff6ff;
  color: #004ac6;
  border: 1px solid rgba(0, 74, 198, 0.22);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 11px;
  flex-shrink: 0;
  overflow: hidden;
  text-transform: uppercase;
}

.client-header-avatar.has-photo {
  background: #dbe4f8;
}

.client-header-avatar img {
  position: absolute;
  display: block;
  max-width: none;
  max-height: none;
  will-change: left, top, transform;
}

.client-header-info {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  flex-wrap: wrap;
}

.client-header-title {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1.25;
  letter-spacing: -0.01em;
}

.client-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 7px;
  border-radius: 5px;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.2;
}

.client-status-badge.is-active {
  background: #ecfdf5;
  color: #047857;
  border: 1px solid #a7f3d0;
}

.client-status-badge.is-archived {
  background: #f1f5f9;
  color: #64748b;
  border: 1px solid #cbd5e1;
}

.client-status-badge.is-new {
  background: #eff6ff;
  color: #004ac6;
  border: 1px solid #bfdbfe;
}

.client-status-badge .badge-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #10b981;
}

.client-status-badge .badge-dot.archived {
  background: #94a3b8;
}

.client-close-btn {
  width: 28px;
  height: 28px;
  border-radius: 7px;
  border: 0;
  background: transparent;
  color: var(--muted);
  display: grid;
  place-items: center;
  cursor: pointer;
  padding: 0;
  transition: background .15s, color .15s;
}

.client-close-btn:hover {
  background: var(--line);
  color: var(--ink);
}

.client-close-btn .close-icon {
  width: 16px;
  height: 16px;
}

/* Segmented Tabs Navigation */
.client-segmented-nav {
  padding: 12px 20px 6px;
  background: var(--surface);
  flex-shrink: 0;
}

.client-nav-pill-group {
  display: flex;
  align-items: center;
  padding: 3px;
  background: rgba(241, 245, 249, 0.95);
  border-radius: 9px;
  gap: 2px;
}

.client-tab-btn {
  flex: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 6px;
  border: 0;
  background: transparent;
  color: #64748b;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: all .15s ease;
  user-select: none;
}

.client-tab-btn:hover {
  color: var(--ink);
}

.client-tab-btn.active {
  background: #ffffff;
  color: #0f172a;
  font-weight: 600;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 2px -1px rgba(0, 0, 0, 0.08);
}

.client-tab-btn .tab-icon {
  width: 14px;
  height: 14px;
  stroke-width: 2;
  transition: color .15s;
}

.client-tab-btn.active .tab-icon {
  color: #004ac6;
}

/* Scrollable Content Body */
.client-modal-body {
  padding: 10px 20px 14px;
  flex: 1 1 auto;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.client-tab-pane {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.client-tab-pane[hidden] {
  display: none !important;
}

/* Form Inputs Grid */
.client-form-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.client-field-group {
  display: grid;
  gap: 4px;
  margin: 0;
}

.client-field-label {
  font-size: 11px;
  font-weight: 600;
  color: #475569;
  letter-spacing: 0.01em;
}

.client-text-input {
  width: 100%;
  padding: 6px 10px;
  font-size: 12px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #ffffff;
  color: #0f172a;
  box-sizing: border-box;
  transition: border-color .15s, box-shadow .15s;
}

.client-text-input:focus {
  outline: none;
  border-color: #004ac6;
  box-shadow: 0 0 0 1px #004ac6;
}

/* Modern Photo Card */
.client-photo-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 12px 14px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
}

.client-photo-card[hidden] {
  display: none !important;
}

.client-photo-avatar-wrapper {
  position: relative;
  width: 72px;
  height: 72px;
  flex-shrink: 0;
  cursor: pointer;
  border-radius: 50%;
}

.client-photo-preview {
  position: relative;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  overflow: hidden;
  background: #e2e8f0;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
  border: 2px solid #ffffff;
  outline: 1px solid #cbd5e1;
  transition: transform 0.15s ease, outline-color 0.15s ease;
}

.client-photo-avatar-wrapper:hover .client-photo-preview {
  outline-color: #3b82f6;
  transform: scale(1.02);
}

.client-photo-preview img {
  position: absolute;
  display: block;
  max-width: none;
  max-height: none;
  will-change: left, top, transform;
}

.client-photo-empty-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  color: #94a3b8;
  background: #f1f5f9;
}

.client-photo-empty-placeholder svg {
  width: 34px;
  height: 34px;
}

.client-photo-preview.has-image .client-photo-empty-placeholder {
  display: none;
}

.client-photo-edit-badge {
  position: absolute;
  bottom: -2px;
  right: -2px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #2563eb;
  color: #ffffff;
  border: 2px solid #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
  cursor: pointer;
  transition: transform 0.15s ease, background-color 0.15s ease;
  padding: 0;
}

.client-photo-edit-badge svg {
  width: 12px;
  height: 12px;
}

.client-photo-avatar-wrapper:hover .client-photo-edit-badge {
  transform: scale(1.12);
  background: #1d4ed8;
}

.client-photo-meta {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
  flex: 1;
}

.client-photo-heading-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.client-photo-title {
  font-size: 13px;
  font-weight: 700;
  color: #0f172a;
}

.client-photo-badge {
  font-size: 10px;
  font-weight: 600;
  padding: 2px 7px;
  border-radius: 6px;
  line-height: 1.2;
}

.client-photo-badge.is-verified {
  background: #ecfdf5;
  color: #059669;
  border: 1px solid #a7f3d0;
}

.client-photo-badge.is-manual {
  background: #eff6ff;
  color: #2563eb;
  border: 1px solid #bfdbfe;
}

.client-photo-badge.is-empty {
  background: #f1f5f9;
  color: #64748b;
  border: 1px solid #e2e8f0;
}

.client-photo-hint {
  font-size: 11px;
  color: #64748b;
  margin: 0;
}

.client-photo-actions-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 2px;
}

.btn-svg-icon {
  width: 13px;
  height: 13px;
  margin-right: 4px;
  vertical-align: -2px;
}

/* Interactive Crop Dialog */
.client-crop-dialog {
  border: none;
  border-radius: 16px;
  padding: 0;
  background: var(--surface, #ffffff);
  color: var(--text, #0f172a);
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25), 0 0 0 1px rgba(0, 0, 0, 0.08);
  max-width: 400px;
  width: 92vw;
}

.client-crop-dialog::backdrop {
  background: rgba(15, 23, 42, 0.65);
  backdrop-filter: blur(4px);
}

.crop-dialog-content {
  display: flex;
  flex-direction: column;
}

.crop-dialog-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px 12px;
  border-bottom: 1px solid var(--line, #e2e8f0);
}

.crop-dialog-title {
  margin: 0;
  font-size: 16px;
  font-weight: 700;
}

.crop-dialog-body {
  padding: 18px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}

.crop-dialog-instructions {
  font-size: 12px;
  color: #64748b;
  text-align: center;
  margin: 0;
  line-height: 1.4;
}

.crop-stage-container {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
  background: #f1f5f9;
  border-radius: 14px;
  width: 100%;
}

.crop-viewport {
  position: relative;
  width: 220px;
  height: 220px;
  border-radius: 50%;
  overflow: hidden;
  background: #000000;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.15), inset 0 0 0 2px rgba(255, 255, 255, 0.4);
  cursor: grab;
  touch-action: none;
  user-select: none;
}

.crop-viewport.is-dragging {
  cursor: grabbing;
}

.crop-viewport img {
  position: absolute;
  display: block;
  max-width: none;
  max-height: none;
  pointer-events: none;
  will-change: left, top, transform;
}

.crop-viewport-overlay {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 2px solid rgba(255, 255, 255, 0.6);
  pointer-events: none;
  box-shadow: inset 0 0 16px rgba(0, 0, 0, 0.25);
}

.crop-toolbar {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  width: 100%;
}

.crop-zoom-control {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  max-width: 300px;
}

.crop-zoom-btn {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  border: 1px solid #cbd5e1;
  background: #ffffff;
  color: #475569;
  cursor: pointer;
  padding: 0;
}

.crop-zoom-btn svg {
  width: 14px;
  height: 14px;
}

.crop-zoom-range {
  flex: 1;
  accent-color: #2563eb;
  height: 6px;
  border-radius: 3px;
  cursor: pointer;
}

.crop-zoom-label {
  font-size: 11px;
  font-weight: 600;
  color: #475569;
  min-width: 32px;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.crop-action-pills {
  display: flex;
  gap: 8px;
}

.crop-dialog-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  padding: 12px 20px 16px;
  border-top: 1px solid var(--line, #e2e8f0);
}

/* Integrated Settings Card */
.client-settings-integrated-card {
  padding: 7px 9px;
  background: rgba(248, 250, 252, 0.7);
  border: 1px solid rgba(226, 232, 240, 0.85);
  border-radius: 12px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 1px;
}

.client-setting-tile {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 7px 9px;
  border-radius: 8px;
  border: 1px solid transparent;
  cursor: pointer;
  user-select: none;
  transition: background .15s, border-color .15s;
}

.client-setting-tile:hover {
  background: #ffffff;
  border-color: #e2e8f0;
}

.client-checkbox-input {
  width: 15px;
  height: 15px;
  margin-top: 2px;
  accent-color: #004ac6;
  cursor: pointer;
  flex-shrink: 0;
}

.client-setting-text {
  display: grid;
  gap: 1px;
  min-width: 0;
}

.client-setting-name {
  font-size: 11px;
  font-weight: 600;
  color: #1e293b;
  line-height: 1.25;
}

.client-setting-hint {
  font-size: 10px;
  color: #64748b;
  line-height: 1.25;
}

/* Tab 2: Billing Header */
.client-billing-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding-bottom: 2px;
}

.client-billing-panel-title-wrap {
  display: grid;
  gap: 2px;
}

.client-billing-panel-title {
  font-size: 12px;
  font-weight: 700;
  color: var(--ink);
}

.client-billing-panel-subtitle {
  font-size: 11px;
  color: var(--muted);
}

.client-add-billing-btn {
  font-size: 11px;
  padding: 4px 10px;
  border-radius: 6px;
}

/* Modal Footer */
.client-modal-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 20px;
  border-top: 1px solid var(--line);
  background: var(--surface-soft, rgba(248, 250, 252, 0.8));
  flex-shrink: 0;
}

.client-footer-meta {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.client-footer-sync-info {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  color: #64748b;
}

.sync-check-icon {
  width: 14px;
  height: 14px;
  color: #10b981;
  flex-shrink: 0;
}

.client-footer-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.client-save-submit-btn {
  background: #004ac6 !important;
  border-color: #004ac6 !important;
  color: #ffffff !important;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px !important;
  font-weight: 600 !important;
  padding: 7px 14px !important;
  border-radius: 8px !important;
  box-shadow: 0 1px 2px rgba(0, 74, 198, 0.2);
  transition: background .15s ease, transform .1s ease;
}

.client-save-submit-btn:hover {
  background: #003ea8 !important;
  border-color: #003ea8 !important;
}

.save-btn-icon {
  width: 14px;
  height: 14px;
}

/* Responsive */
@media (max-width: 620px) {
  .client-db-dialog {
    width: 100% !important;
    margin: auto 0 0 !important;
    border-radius: 18px 18px 0 0 !important;
    max-height: 90dvh !important;
  }
  .client-form-grid-2 {
    grid-template-columns: 1fr;
  }
  .client-photo-editor {
    flex-direction: column;
    align-items: stretch;
  }
  .client-photo-sliders-box {
    width: 100%;
  }
  .client-settings-integrated-card {
    grid-template-columns: 1fr;
  }
}

/* Dark Mode Overrides */
html[data-theme="dark"] .client-db-dialog {
  background: var(--surface) !important;
  border-color: var(--line) !important;
}
html[data-theme="dark"] .client-modal-header {
  background: #1e1e2d;
  border-color: var(--line);
}
html[data-theme="dark"] .client-header-avatar {
  background: #252844;
  color: #7ba3f8;
  border-color: rgba(123, 163, 248, 0.3);
}
html[data-theme="dark"] .client-header-title {
  color: #f8fafc;
}
html[data-theme="dark"] .client-status-badge.is-active {
  background: #142a23;
  color: #4edea3;
  border-color: rgba(78, 222, 163, 0.3);
}
html[data-theme="dark"] .client-status-badge.is-archived {
  background: #252433;
  color: #94a3b8;
  border-color: var(--line);
}
html[data-theme="dark"] .client-status-badge.is-new {
  background: #1c2744;
  color: #93c5fd;
  border-color: rgba(147, 197, 253, 0.3);
}
html[data-theme="dark"] .client-segmented-nav {
  background: var(--surface);
}
html[data-theme="dark"] .client-nav-pill-group {
  background: #171622;
}
html[data-theme="dark"] .client-tab-btn {
  color: #94a3b8;
}
html[data-theme="dark"] .client-tab-btn.active {
  background: #2b283d;
  color: #ffffff;
}
html[data-theme="dark"] .client-tab-btn.active .tab-icon {
  color: #7ba3f8;
}
html[data-theme="dark"] .client-field-label {
  color: #94a3b8;
}
html[data-theme="dark"] .client-text-input {
  background: #1f1e2c;
  border-color: var(--line);
  color: #f1f5f9;
}
html[data-theme="dark"] .client-text-input:focus {
  border-color: #3b82f6;
  box-shadow: 0 0 0 1px #3b82f6;
}
html[data-theme="dark"] .client-photo-editor {
  background: #1c1b27;
  border-color: var(--line);
}
html[data-theme="dark"] .client-photo-preview {
  background: #151420;
  border-color: rgba(59, 130, 246, 0.3);
}
html[data-theme="dark"] .client-photo-title {
  color: #f1f5f9;
}
html[data-theme="dark"] .client-photo-badge.is-verified {
  background: #142a23;
  color: #4edea3;
  border-color: rgba(78, 222, 163, 0.3);
}
html[data-theme="dark"] .client-photo-badge.is-manual {
  background: #1c2744;
  color: #93c5fd;
  border-color: rgba(147, 197, 253, 0.3);
}
html[data-theme="dark"] .client-photo-badge.is-empty {
  background: #252433;
  color: #94a3b8;
  border-color: var(--line);
}
html[data-theme="dark"] .photo-link-btn.primary {
  color: #60a5fa;
}
html[data-theme="dark"] .photo-link-btn.secondary {
  color: #94a3b8;
}
html[data-theme="dark"] .photo-link-btn.secondary:hover {
  color: #f1f5f9;
}
html[data-theme="dark"] .photo-link-btn.danger {
  color: #f87171;
}
html[data-theme="dark"] .client-photo-sliders-box {
  background: #222131;
  border-color: var(--line);
}
html[data-theme="dark"] .client-slider-val {
  color: #f1f5f9;
}
html[data-theme="dark"] .client-slider-range {
  background: #312f45;
}
html[data-theme="dark"] .client-settings-integrated-card {
  background: rgba(28, 27, 39, 0.6);
  border-color: var(--line);
}
html[data-theme="dark"] .client-setting-tile:hover {
  background: #232233;
  border-color: var(--line);
}
html[data-theme="dark"] .client-setting-name {
  color: #f1f5f9;
}
html[data-theme="dark"] .client-setting-hint {
  color: #94a3b8;
}
html[data-theme="dark"] .client-modal-footer {
  background: #1e1e2d;
  border-color: var(--line);
}
html[data-theme="dark"] .client-footer-sync-info {
  color: #94a3b8;
}


/* Calendar cards prioritize the event name and address. */
.full-calendar-weekdays>div{font-size:11px}
.full-calendar-day header button{font-size:13px}
.full-calendar-day header button b{font-size:8px}
.full-calendar-day header>span{font-size:9px}
.full-calendar-event{gap:4px;padding:8px 9px}
.full-calendar-event time{font-size:10px;font-weight:800}
.full-calendar-event strong{font-size:12px;line-height:1.25}
.full-calendar-event small{font-size:10px;line-height:1.25}
.calendar-agenda-title>strong{font-size:16px}
.calendar-agenda-main p{font-size:13px}
.calendar-agenda-time strong{font-size:16px}
.calendar-agenda-time span{font-size:11px}
.calendar-agenda-date span{font-size:11px}
.calendar-agenda-date strong{font-size:14px}
.calendar-agenda-date em{font-size:10px}

@media(max-width:900px){
  .studio-client-toolbar{align-items:stretch;flex-direction:column}.studio-client-search{width:100%}.studio-client-status{align-self:flex-start}.client-photo-workspace{grid-template-columns:1fr}.client-photo-preview{margin-inline:auto}
  .studio-client-table{overflow-x:auto}.studio-client-table-head,.studio-client-row{min-width:850px}
}

/* Studio OS Map styles */
.studio-map-page{
  width:100%;
  height:calc(100dvh - 170px);
  min-height:500px;
}
.studio-map-container{
  width:100%;
  height:100%;
  border-radius:16px;
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  background:var(--surface);
  position:relative;
  z-index:1;
  transform:translateZ(0);
  backface-visibility:hidden;
}
.studio-map-container .leaflet-container{
  background:var(--surface);
}
html[data-theme="dark"] .studio-map-container .leaflet-container{
  background:#1a1a24;
}
.phtudanka-map-tooltip.leaflet-tooltip{
  background:var(--surface);
  color:var(--ink);
  border:1px solid var(--line);
  border-radius:12px;
  box-shadow:0 8px 24px rgba(0,0,0,.15);
  padding:10px 14px;
  font-family:var(--ui-font-family);
  white-space:normal;
}
.phtudanka-map-tooltip.leaflet-tooltip:before{
  border-top-color:var(--surface);
}
.studio-map-tooltip{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:140px;
  max-width:280px;
}
.tooltip-address{
  font-weight:700;
  font-size:14px;
  color:var(--ink);
  line-height:1.3;
}
.tooltip-broker{
  font-size:12px;
  font-weight:600;
  color:var(--violet);
  line-height:1.3;
}
.tooltip-date{
  font-size:11px;
  color:var(--muted);
  line-height:1.2;
}

/* Phtudánka modern marker clusters */
.marker-cluster-small,
.marker-cluster-medium,
.marker-cluster-large {
  background-color: rgba(37, 99, 235, 0.22) !important;
}

.marker-cluster-small div,
.marker-cluster-medium div,
.marker-cluster-large div {
  background: linear-gradient(135deg, #2563eb 0%, #3b82f6 100%) !important;
  color: #ffffff !important;
  font-family: var(--ui-font-family) !important;
  font-weight: 750 !important;
  font-size: 13px !important;
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.35) !important;
}

html[data-theme="dark"] .marker-cluster-small div,
html[data-theme="dark"] .marker-cluster-medium div,
html[data-theme="dark"] .marker-cluster-large div {
  background: linear-gradient(135deg, #3b82f6 0%, #60a5fa 100%) !important;
  color: #0f172a !important;
}

/* Studio OS Universal Micro-Interactions & Animations */

/* Global Toast Notification */
#toast {
  position: fixed;
  right: 24px;
  bottom: 24px;
  background: #1e1b2e;
  color: #ffffff;
  padding: 12px 18px;
  border-radius: 12px;
  opacity: 0;
  transform: translateY(16px) scale(0.96);
  transition: opacity 0.22s cubic-bezier(0.16, 1, 0.3, 1), transform 0.22s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: 9999;
  font-size: 13.5px;
  font-weight: 600;
  box-shadow: 0 16px 36px -4px rgba(20, 18, 38, 0.35), 0 0 1px 1px rgba(255, 255, 255, 0.1);
  pointer-events: none;
}

#toast.show {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

/* Modal Dialog Animations */
dialog[open] {
  animation: modalPopIn 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}

dialog::backdrop {
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  animation: backdropFadeIn 0.2s ease;
}

.notification-dialog[open] {
  animation: drawerSlideIn 0.24s cubic-bezier(0.16, 1, 0.3, 1);
}

@keyframes modalPopIn {
  0% {
    opacity: 0;
    transform: scale(0.95) translateY(6px);
  }
  100% {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

@keyframes drawerSlideIn {
  0% {
    opacity: 0;
    transform: translateX(36px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes backdropFadeIn {
  0% { opacity: 0; }
  100% { opacity: 1; }
}

/* Interactive Elements Feedback */
.button {
  transition: transform 0.1s cubic-bezier(0.16, 1, 0.3, 1), background-color 0.15s ease, box-shadow 0.15s ease;
}

.button:active {
  transform: scale(0.96);
}

.text-button {
  transition: transform 0.1s ease, color 0.15s ease;
}

.text-button:active {
  transform: scale(0.94);
}

.header-icon-button:active {
  transform: scale(0.92);
}

.nav-item:active {
  transform: scale(0.96);
}

.progress-ring {
  transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1);
}

.job-card:hover .progress-ring {
  transform: scale(1.06);
}

.queue-job.is-completing-grace,
.queue-job.is-complete.is-completing-grace {
  opacity: 1;
  filter: none;
  order: initial !important;
  border-color: #6ee7b7 !important;
  background: #fcfdfd !important;
  box-shadow: 0 0 0 1.5px rgba(16, 185, 129, 0.4), 0 4px 14px rgba(16, 185, 129, 0.12) !important;
  transition: border-color 0.35s ease, box-shadow 0.35s ease, background 0.35s ease;
}

html[data-theme="dark"] .queue-job.is-completing-grace,
html[data-theme="dark"] .queue-job.is-complete.is-completing-grace {
  border-color: rgba(52, 211, 153, 0.6) !important;
  background: #252836 !important;
  box-shadow: 0 0 0 1.5px rgba(52, 211, 153, 0.35), 0 4px 14px rgba(52, 211, 153, 0.15) !important;
}

.flying-job-card {
  position: fixed !important;
  margin: 0 !important;
  pointer-events: none !important;
  z-index: 99999 !important;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2), 0 0 0 1.5px rgba(16, 185, 129, 0.5) !important;
  transform-origin: center center;
  border-radius: 14px;
  background: var(--surface, #ffffff);
  will-change: transform, opacity;
}

html[data-theme="dark"] .flying-job-card {
  background: #252836;
}

.nav-item.dock-receive-pulse {
  animation: dockReceivePulse 0.45s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

@keyframes dockReceivePulse {
  0% {
    transform: scale(1);
  }
  40% {
    transform: scale(1.18);
    filter: drop-shadow(0 0 8px rgba(37, 99, 235, 0.6));
  }
  100% {
    transform: scale(1);
    filter: none;
  }
}

#app {
  overflow-x: clip;
}

.page-anim-forward {
  animation: pageSpatialForward 0.52s cubic-bezier(0.16, 1, 0.3, 1) both;
  will-change: transform, opacity, filter;
}

.page-anim-backward {
  animation: pageSpatialBackward 0.52s cubic-bezier(0.16, 1, 0.3, 1) both;
  will-change: transform, opacity, filter;
}

.page-anim-fade {
  animation: pageSpatialBloom 0.52s cubic-bezier(0.16, 1, 0.3, 1) both;
  will-change: transform, opacity, filter;
}

@keyframes pageSpatialForward {
  0% {
    opacity: 0;
    transform: translateX(30px) scale(0.99);
    filter: blur(5px);
  }
  100% {
    opacity: 1;
    transform: translateX(0) scale(1);
    filter: blur(0);
  }
}

@keyframes pageSpatialBackward {
  0% {
    opacity: 0;
    transform: translateX(-30px) scale(0.99);
    filter: blur(5px);
  }
  100% {
    opacity: 1;
    transform: translateX(0) scale(1);
    filter: blur(0);
  }
}

@keyframes pageSpatialBloom {
  0% {
    opacity: 0;
    transform: translateY(-10px) scale(0.985);
    filter: blur(6px);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0);
  }
}

.title-anim-swap {
  animation: titleSwap 0.42s cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes titleSwap {
  0% {
    opacity: 0;
    transform: translateY(-4px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ==========================================================================
   Client Salutation & Invoice Send Modal
   ========================================================================== */

.client-salutation-section {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 4px;
}

/* Compact iOS/macOS-style Segmented Control */
.client-salutation-segmented-control {
  display: flex;
  background: #f1f5f9;
  padding: 3px;
  border-radius: 10px;
  border: 1px solid #e2e8f0;
  gap: 3px;
  user-select: none;
}

.client-salutation-segment {
  flex: 1;
  position: relative;
  cursor: pointer;
  margin: 0;
}

.client-salutation-segment input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
  pointer-events: none;
}

.client-salutation-segment .segment-pill {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 7px 12px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  color: #64748b;
  transition: all 0.16s ease;
  background: transparent;
}

.client-salutation-segment .segment-title {
  font-weight: 600;
  color: #334155;
}

.client-salutation-segment .segment-hint {
  font-size: 11px;
  color: #94a3b8;
}

.client-salutation-segment input[type="radio"]:checked + .segment-pill {
  background: #ffffff;
  color: #2563eb;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08), 0 1px 2px rgba(0, 0, 0, 0.04);
}

.client-salutation-segment input[type="radio"]:checked + .segment-pill .segment-title {
  color: #2563eb;
}

.client-salutation-segment input[type="radio"]:checked + .segment-pill .segment-hint {
  color: #60a5fa;
}

.client-salutation-toggle-group {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.client-salutation-toggle-group.compact {
  gap: 8px;
}

.client-salutation-option {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 12px;
  border: 1px solid var(--line, #e2e8f0);
  background: var(--surface, #ffffff);
  cursor: pointer;
  transition: all 0.18s ease;
  user-select: none;
}

.client-salutation-option input[type="radio"] {
  accent-color: #2563eb;
  width: 16px;
  height: 16px;
  margin: 0;
  cursor: pointer;
}

.client-salutation-option:has(input:checked) {
  border-color: #3b82f6;
  background: rgba(59, 130, 246, 0.08);
}

.salutation-option-content {
  display: flex;
  flex-direction: column;
  line-height: 1.25;
}

.salutation-option-content strong {
  font-size: 13px;
  font-weight: 600;
  color: var(--text, #1e293b);
}

.salutation-option-content small {
  font-size: 11px;
  color: var(--muted, #64748b);
  margin-top: 2px;
}

/* Invoice Send Dialog */
.invoice-send-dialog {
  width: min(580px, calc(100vw - 24px)) !important;
  max-height: min(92vh, 780px) !important;
  padding: 0 !important;
  border: 1px solid var(--line) !important;
  border-radius: 16px !important;
  background: var(--surface) !important;
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.28) !important;
  overflow: hidden !important;
}

.invoice-send-dialog::backdrop {
  background: rgba(15, 14, 23, 0.55);
  backdrop-filter: blur(8px);
}

.invoice-send-card {
  display: flex;
  flex-direction: column;
  max-height: inherit;
  margin: 0;
}

.invoice-send-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 20px 24px 16px;
  border-bottom: 1px solid var(--line);
  background: var(--surface);
}

.invoice-send-head h2 {
  margin: 4px 0 0;
  font-size: 19px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -0.02em;
}

.invoice-send-subtitle {
  margin: 4px 0 0;
  font-size: 12.5px;
  color: var(--muted);
  line-height: 1.4;
}

.invoice-send-body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 20px 24px;
  overflow-y: auto;
}

/* Invoice Send Job Overview Card */
.invoice-send-job-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 16px;
  border-radius: 12px;
  border: 1px solid var(--line, #e2e8f0);
  background: var(--surface-soft, rgba(0, 0, 0, 0.02));
}

.invoice-send-job-main {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  flex: 1;
}

.invoice-send-job-address-line {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}

.invoice-send-job-pin {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #2563eb;
  flex-shrink: 0;
}

.invoice-send-job-address {
  font-size: 14.5px;
  font-weight: 700;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  letter-spacing: -0.01em;
}

.invoice-send-job-details {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.invoice-send-job-dot {
  opacity: 0.45;
}

.invoice-send-job-price-badge {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1px;
  flex-shrink: 0;
  padding: 5px 12px;
  border-radius: 9px;
  background: rgba(34, 197, 94, 0.08);
  border: 1px solid rgba(34, 197, 94, 0.22);
}

.invoice-send-job-price-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #16a34a;
}

.invoice-send-job-price-value {
  font-size: 16px;
  font-weight: 800;
  color: #15803d;
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.01em;
}

.invoice-send-job-price-value.is-missing {
  color: var(--muted);
  font-size: 13px;
  font-weight: 600;
}

@media (max-width: 480px) {
  .invoice-send-job-card {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
  .invoice-send-job-price-badge {
    align-self: flex-start;
    flex-direction: row;
    gap: 8px;
    align-items: center;
  }
}

/* Sibling / Additional Jobs Batch Section in Send Dialog */
.invoice-send-batch-section {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 13px 16px;
  border-radius: 12px;
  border: 1px solid rgba(139, 92, 246, 0.28);
  background: rgba(139, 92, 246, 0.04);
}

.invoice-send-batch-head {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.invoice-send-batch-title-row {
  display: flex;
  align-items: center;
  gap: 7px;
}

.invoice-send-batch-icon {
  color: #8b5cf6;
  display: inline-flex;
  align-items: center;
}

.invoice-send-batch-title {
  font-size: 13.5px;
  font-weight: 700;
  color: var(--text);
  letter-spacing: -0.01em;
}

.invoice-send-batch-hint {
  margin: 0;
  font-size: 11.5px;
  color: var(--muted);
}

.invoice-send-batch-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.invoice-send-batch-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 12px;
  border-radius: 9px;
  border: 1px solid var(--line, #e2e8f0);
  background: var(--surface, #ffffff);
  transition: border-color 0.15s ease, background 0.15s ease;
}

.invoice-send-batch-item.is-selected {
  border-color: rgba(59, 130, 246, 0.5);
  background: rgba(59, 130, 246, 0.05);
}

.invoice-send-batch-item-left {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  flex: 1;
}

.invoice-send-batch-checkbox {
  width: 17px;
  height: 17px;
  accent-color: #2563eb;
  cursor: pointer;
  flex-shrink: 0;
}

.invoice-send-batch-item-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.invoice-send-batch-item-address {
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.invoice-send-batch-item-meta {
  font-size: 11px;
  color: var(--muted);
  display: flex;
  align-items: center;
  gap: 6px;
}

.invoice-send-batch-item-right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.invoice-send-batch-price {
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
  font-variant-numeric: tabular-nums;
}

.batch-invoice-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 700;
  background: rgba(34, 197, 94, 0.12);
  color: #16a34a;
  border: 1px solid rgba(34, 197, 94, 0.25);
}

.batch-create-draft-btn {
  font-size: 11.5px;
  padding: 4px 10px;
  border-radius: 6px;
  background: #2563eb;
  color: #fff;
  border: none;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity 0.15s ease;
}

.batch-create-draft-btn:hover {
  opacity: 0.9;
}

.batch-create-draft-btn:disabled {
  opacity: 0.6;
  cursor: wait;
}

.invoice-send-attachments-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
}

.invoice-attachment-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 8px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 600;
  background: rgba(59, 130, 246, 0.12);
  border: 1px solid rgba(59, 130, 246, 0.28);
  color: #2563eb;
}

.invoice-send-email-suggestions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
}

.invoice-send-email-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  font-size: 12px;
  line-height: 1.3;
  border-radius: 9999px;
  background: var(--surface-2, #f1f5f9);
  color: var(--text-secondary, #475569);
  border: 1px solid var(--border-color, #e2e8f0);
  cursor: pointer;
  transition: all 0.15s ease;
  font-family: inherit;
}

.invoice-send-email-chip:hover {
  background: var(--blue-50, #eff6ff);
  border-color: var(--blue-300, #93c5fd);
  color: var(--blue-700, #1d4ed8);
}

.invoice-send-email-chip.is-active {
  background: var(--blue-100, #dbeafe);
  border-color: var(--blue-500, #3b82f6);
  color: var(--blue-800, #1e40af);
  font-weight: 600;
}

html[data-theme="dark"] .invoice-send-batch-section {
  background: rgba(139, 92, 246, 0.08);
  border-color: rgba(139, 92, 246, 0.32);
}

html[data-theme="dark"] .invoice-send-batch-item {
  background: #171624;
  border-color: var(--line, #2d2c3e);
}

html[data-theme="dark"] .invoice-send-batch-item.is-selected {
  background: rgba(59, 130, 246, 0.12);
  border-color: rgba(96, 165, 250, 0.4);
}

html[data-theme="dark"] .batch-invoice-tag {
  background: rgba(34, 197, 94, 0.16);
  color: #4ade80;
  border-color: rgba(74, 222, 128, 0.28);
}

html[data-theme="dark"] .invoice-attachment-chip {
  background: rgba(59, 130, 246, 0.18);
  border-color: rgba(96, 165, 250, 0.35);
  color: #93c5fd;
}

.invoice-send-file-card {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 16px;
  border-radius: 12px;
  border: 1px solid rgba(59, 130, 246, 0.25);
  background: rgba(59, 130, 246, 0.05);
}

.invoice-file-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: #2563eb;
  color: #fff;
  flex-shrink: 0;
}

.invoice-file-info {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.invoice-file-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--text);
}

.invoice-file-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 2px 7px;
  border-radius: 6px;
  background: #2563eb;
  color: #fff;
}

.invoice-file-info p {
  margin: 0;
  font-size: 12px;
  color: var(--muted);
}

.invoice-send-style-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.invoice-send-textarea {
  width: 100%;
  padding: 12px 14px;
  font-family: inherit;
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--text);
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 10px;
  resize: vertical;
  min-height: 120px;
  box-sizing: border-box;
}

.invoice-send-textarea:focus {
  outline: none;
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.15);
}

.invoice-send-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  padding: 16px 24px;
  border-top: 1px solid var(--line);
  background: var(--surface);
}

.invoice-send-error {
  padding: 10px 14px;
  border-radius: 8px;
  background: rgba(239, 68, 68, 0.12);
  color: #ef4444;
  font-size: 12.5px;
  line-height: 1.4;
  border: 1px solid rgba(239, 68, 68, 0.3);
}

.client-setting-tile.inline-tile {
  padding: 8px 12px;
  margin: 0;
}

/* Dark mode for Invoice Send */
html[data-theme="dark"] .client-salutation-option {
  background: #201f2e;
  border-color: var(--line);
}

html[data-theme="dark"] .client-salutation-option:has(input:checked) {
  border-color: #60a5fa;
  background: rgba(96, 165, 250, 0.12);
}

html[data-theme="dark"] .salutation-option-content strong {
  color: #f1f5f9;
}

html[data-theme="dark"] .salutation-option-content small {
  color: #94a3b8;
}

html[data-theme="dark"] .invoice-send-dialog {
  background: var(--surface) !important;
  border-color: var(--line) !important;
}

html[data-theme="dark"] .invoice-send-head,
html[data-theme="dark"] .invoice-send-footer {
  background: #1e1e2d;
}

html[data-theme="dark"] .invoice-send-job-card {
  background: rgba(255, 255, 255, 0.03);
  border-color: var(--line, #2d2c3e);
}

html[data-theme="dark"] .invoice-send-job-price-badge {
  background: rgba(34, 197, 94, 0.12);
  border-color: rgba(74, 222, 128, 0.22);
}

html[data-theme="dark"] .invoice-send-job-price-label {
  color: #4ade80;
}

html[data-theme="dark"] .invoice-send-job-price-value {
  color: #86efac;
}

html[data-theme="dark"] .invoice-send-job-price-value.is-missing {
  color: var(--muted);
}

html[data-theme="dark"] .invoice-send-file-card {
  background: rgba(59, 130, 246, 0.1);
  border-color: rgba(96, 165, 250, 0.25);
}

html[data-theme="dark"] .invoice-send-textarea {
  background: #1b1a26;
  border-color: var(--line);
  color: #f1f5f9;
}

/* Dark mode for Segmented Salutation, Photo Card & Crop Dialog */
html[data-theme="dark"] .client-salutation-segmented-control {
  background: #191825;
  border-color: var(--line, #2d2c3e);
}

html[data-theme="dark"] .client-salutation-segment .segment-title {
  color: #cbd5e1;
}

html[data-theme="dark"] .client-salutation-segment input[type="radio"]:checked + .segment-pill {
  background: #282638;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3);
}

html[data-theme="dark"] .client-salutation-segment input[type="radio"]:checked + .segment-pill .segment-title {
  color: #60a5fa;
}

html[data-theme="dark"] .client-salutation-segment input[type="radio"]:checked + .segment-pill .segment-hint {
  color: #93c5fd;
}

html[data-theme="dark"] .client-photo-card {
  background: #1c1b27;
  border-color: var(--line, #2d2c3e);
}

html[data-theme="dark"] .client-photo-preview {
  background: #151420;
  outline-color: #3f3d54;
}

html[data-theme="dark"] .client-photo-empty-placeholder {
  background: #151420;
  color: #64748b;
}

html[data-theme="dark"] .client-photo-title {
  color: #f1f5f9;
}

html[data-theme="dark"] .client-photo-hint {
  color: #94a3b8;
}

html[data-theme="dark"] .client-photo-badge.is-verified {
  background: #142a23;
  color: #4edea3;
  border-color: rgba(78, 222, 163, 0.3);
}

html[data-theme="dark"] .client-photo-badge.is-manual {
  background: #1e293b;
  color: #60a5fa;
  border-color: rgba(96, 165, 250, 0.3);
}

html[data-theme="dark"] .client-photo-badge.is-empty {
  background: #1f1e2c;
  color: #64748b;
  border-color: #2e2d40;
}

html[data-theme="dark"] .client-crop-dialog {
  background: var(--surface, #1e1d2c) !important;
  color: var(--text, #f1f5f9) !important;
  border-color: var(--line, #2d2c3e) !important;
}

html[data-theme="dark"] .crop-stage-container {
  background: #14131e;
}

html[data-theme="dark"] .crop-dialog-instructions {
  color: #94a3b8;
}

html[data-theme="dark"] .crop-zoom-btn {
  background: #242234;
  border-color: #3f3d54;
  color: #cbd5e1;
}

html[data-theme="dark"] .crop-zoom-label {
  color: #94a3b8;
}

/* --- INVOICE BUNDLE STYLES (Sloučení zakázek do jedné faktury) --- */
.bundle-create-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 9px;
  font-size: 13px;
  font-weight: 600;
  color: var(--text);
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
}
.bundle-create-btn:hover {
  background: rgba(37, 99, 235, 0.08);
  border-color: #3b82f6;
  color: #2563eb;
}
.bundle-btn-icon {
  font-size: 15px;
}

.invoice-bundle-box {
  background: #ffffff;
  border: 1.5px solid #cbd5e1;
  border-radius: 14px;
  margin-bottom: 20px;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.05);
  overflow: hidden;
  transition: all 0.2s ease;
}
.invoice-bundle-box.is-drafted {
  border-color: #3b82f6;
  box-shadow: 0 4px 20px rgba(37, 99, 235, 0.1);
}

.bundle-box-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 20px;
  background: rgba(248, 250, 252, 0.8);
  border-bottom: 1px solid var(--line);
  gap: 16px;
  flex-wrap: wrap;
}
.bundle-box-header-left {
  display: flex;
  align-items: center;
  gap: 14px;
  min-width: 0;
}
.bundle-box-icon {
  font-size: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: rgba(37, 99, 235, 0.1);
  border-radius: 10px;
}
.bundle-box-titles {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.bundle-box-title-row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.bundle-box-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--text);
}
.bundle-count-pill {
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  background: rgba(37, 99, 235, 0.12);
  color: #2563eb;
  border-radius: 999px;
}
.bundle-draft-tag {
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  background: #dcfce7;
  color: #15803d;
  border-radius: 999px;
}
.bundle-box-meta-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: var(--muted);
}
.bundle-meta-dot {
  opacity: 0.5;
}

.bundle-box-header-right {
  display: flex;
  align-items: center;
  gap: 20px;
}
.bundle-box-pricing {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}
.bundle-pricing-label {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--muted);
  font-weight: 600;
}
.bundle-pricing-value {
  font-size: 19px;
  font-weight: 800;
  color: var(--text);
}
.bundle-box-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.bundle-link-btn {
  text-decoration: none;
}
.bundle-del-draft-btn, .bundle-dissolve-btn {
  color: #ef4444 !important;
}
.bundle-del-draft-btn:hover, .bundle-dissolve-btn:hover {
  background: rgba(239, 68, 68, 0.08) !important;
}

.bundle-dropzone-area {
  padding: 16px 20px;
  background: var(--surface);
  min-height: 80px;
  transition: all 0.2s ease;
}
.bundle-dropzone-area.is-dragover {
  background: rgba(37, 99, 235, 0.06);
  outline: 2px dashed #2563eb;
  outline-offset: -4px;
}

.bundle-empty-prompt {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 20px;
  border: 1.5px dashed var(--line);
  border-radius: 10px;
  background: rgba(248, 250, 252, 0.5);
  pointer-events: none;
}
.bundle-empty-prompt * {
  pointer-events: none;
}
.bundle-empty-arrow {
  font-size: 24px;
  color: #3b82f6;
  font-weight: 800;
  animation: bounceDown 1.5s infinite;
}
@keyframes bounceDown {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(4px); }
}
.bundle-empty-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.bundle-empty-text strong {
  font-size: 14px;
  color: var(--text);
}
.bundle-empty-text span {
  font-size: 12px;
  color: var(--muted);
}

.bundle-jobs-chips-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.bundle-job-chip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 8px 12px;
  background: #f8fafc;
  border: 1px solid var(--line);
  border-radius: 8px;
  font-size: 13px;
  max-width: 380px;
}
.bundle-chip-left {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.bundle-chip-addr {
  font-weight: 600;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bundle-chip-meta {
  font-size: 11px;
  color: var(--muted);
}
.bundle-chip-right {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}
.bundle-chip-price {
  font-size: 13px;
  font-weight: 700;
  color: var(--text);
}
.bundle-chip-remove-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border: none;
  background: rgba(0, 0, 0, 0.05);
  border-radius: 50%;
  cursor: pointer;
  color: var(--muted);
  font-size: 14px;
  line-height: 1;
  transition: all 0.15s ease;
}
.bundle-chip-remove-btn:hover {
  background: #ef4444;
  color: #fff;
}
.bundle-chip-slot {
  display: inline-flex;
  align-items: center;
  padding: 8px 14px;
  border: 1.5px dashed var(--line);
  border-radius: 8px;
  font-size: 12px;
  color: var(--muted);
  font-weight: 600;
  background: transparent;
  cursor: default;
}

.bundle-add-quick-btn {
  font-size: 11px !important;
  font-weight: 600;
  padding: 4px 8px !important;
  white-space: nowrap;
  color: #2563eb !important;
  border-color: rgba(37, 99, 235, 0.3) !important;
  background: rgba(37, 99, 235, 0.04) !important;
}
.bundle-add-quick-btn:hover {
  background: rgba(37, 99, 235, 0.12) !important;
}

.bundle-nested-jobs {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 4px 0 4px 28px;
  position: relative;
}
.bundle-nested-jobs::before {
  content: "";
  position: absolute;
  left: 12px;
  top: 8px;
  bottom: 12px;
  width: 3px;
  background: var(--accent, #3b82f6);
  opacity: 0.35;
  border-radius: 2px;
}
.invoice-card.is-bundle-member {
  position: relative;
  border-left: 3.5px solid var(--accent, #3b82f6) !important;
  background: var(--surface) !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
}
.bundle-nested-jobs .invoice-card.is-bundle-member::before {
  content: "";
  position: absolute;
  left: -18px;
  top: 28px;
  width: 15px;
  height: 2px;
  background: var(--accent, #3b82f6);
  opacity: 0.35;
}
.bundle-remove-member-btn {
  color: var(--danger, #ef4444) !important;
  border-color: rgba(239, 68, 68, 0.3) !important;
  font-size: 12px;
  font-weight: 500;
}
.bundle-remove-member-btn:hover {
  background: rgba(239, 68, 68, 0.08) !important;
  border-color: var(--danger, #ef4444) !important;
}
.bundle-member-tag {
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 600;
  color: var(--accent, #3b82f6);
  background: rgba(59, 130, 246, 0.1);
}
.bundle-dropzone-hint {
  margin-top: 10px;
  margin-left: 28px;
  padding: 10px 16px;
  border: 1.5px dashed var(--line);
  border-radius: 8px;
  text-align: center;
  font-size: 12px;
  color: var(--muted);
  background: rgba(248, 250, 252, 0.5);
  pointer-events: none;
}
html[data-theme="dark"] .bundle-dropzone-hint {
  background: #171622;
  border-color: #2d2c3e;
}

/* Dark mode for Bundle styles */
html[data-theme="dark"] .invoice-bundle-box {
  background: #1e1d2c;
  border-color: #2d2c3e;
}
html[data-theme="dark"] .invoice-bundle-box.is-drafted {
  border-color: #3b82f6;
  box-shadow: 0 4px 20px rgba(59, 130, 246, 0.15);
}
html[data-theme="dark"] .bundle-box-header {
  background: #171622;
  border-color: #2d2c3e;
}
html[data-theme="dark"] .bundle-dropzone-area {
  background: #1e1d2c;
}
html[data-theme="dark"] .bundle-empty-prompt {
  background: #171622;
  border-color: #2d2c3e;
}
html[data-theme="dark"] .bundle-job-chip {
  background: #242234;
  border-color: #343248;
}
html[data-theme="dark"] .bundle-create-btn {
  background: #1e1d2c;
  border-color: #2d2c3e;
}
html[data-theme="dark"] .bundle-draft-tag {
  background: #143522;
  color: #4ade80;
}

/* --- VOICE COMMAND ASSISTANT STYLES --- */
.voice-button {
  position: relative;
  transition: transform 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}
.voice-button:hover {
  color: #2563eb;
  transform: scale(1.05);
}
.voice-button.is-recording {
  background: #fee2e2 !important;
  color: #dc2626 !important;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.25);
  animation: voiceButtonPulse 1.4s infinite;
}

@keyframes voiceButtonPulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.08); box-shadow: 0 0 0 6px rgba(220, 38, 38, 0.35); }
  100% { transform: scale(1); }
}

.voice-hud {
  position: fixed;
  right: 24px;
  bottom: 24px;
  left: auto;
  top: auto;
  margin: 0;
  width: min(460px, calc(100vw - 32px));
  max-width: calc(100vw - 32px);
  max-height: calc(100vh - 48px);
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 20px;
  background: var(--surface);
  color: var(--ink);
  box-shadow: 0 20px 50px -10px rgba(15, 23, 42, 0.35), 0 0 0 1px rgba(0, 0, 0, 0.05);
  overflow-y: auto;
  z-index: 99999;
  animation: voiceHudSlideUp 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes voiceHudSlideUp {
  from {
    opacity: 0;
    transform: translateY(20px) scale(0.97);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
@media (max-width: 600px) {
  .voice-hud {
    right: 12px;
    bottom: 12px;
    width: calc(100vw - 24px);
    max-height: calc(100vh - 24px);
    border-radius: 16px;
  }
}
.voice-dialog-shell {
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.voice-dialog-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.voice-dialog-head-title {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.voice-dialog-head-title h2 {
  margin: 0;
  font-size: 20px;
  font-weight: 800;
  color: var(--ink);
}
.voice-dialog-badge {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  padding: 3px 8px;
  border-radius: 999px;
  background: #eff6ff;
  color: #2563eb;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.voice-dialog-body {
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.voice-mic-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px 16px;
  border-radius: 16px;
  background: var(--surface-soft);
  text-align: center;
  position: relative;
}
.voice-mic-wrapper {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.voice-mic-cancel-button {
  position: absolute;
  top: -4px;
  right: -12px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1.5px solid #f87171;
  background: #fee2e2;
  color: #dc2626;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  box-shadow: 0 4px 12px rgba(220, 38, 38, 0.25);
  transition: transform 0.15s cubic-bezier(0.34, 1.56, 0.64, 1), background-color 0.15s ease, box-shadow 0.15s ease;
  z-index: 5;
  animation: voiceCancelPopIn 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.voice-mic-cancel-button:hover {
  background: #fca5a5;
  color: #991b1b;
  transform: scale(1.15);
  box-shadow: 0 6px 16px rgba(220, 38, 38, 0.35);
}
.voice-mic-cancel-button:active {
  transform: scale(0.92);
}
.voice-mic-cancel-button svg {
  width: 16px;
  height: 16px;
  stroke: currentColor;
  stroke-width: 2.5;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}
@keyframes voiceCancelPopIn {
  0% { transform: scale(0); opacity: 0; }
  100% { transform: scale(1); opacity: 1; }
}
.voice-mic-button {
  position: relative;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  border: none;
  background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(37, 99, 235, 0.35);
  transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.2s ease;
  outline: none;
}
.voice-mic-button:hover {
  transform: scale(1.06);
  box-shadow: 0 10px 30px rgba(37, 99, 235, 0.45);
}
.voice-mic-button:active {
  transform: scale(0.96);
}
.voice-mic-icon {
  width: 30px;
  height: 30px;
  stroke: currentColor;
  stroke-width: 2.2;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  z-index: 2;
  position: relative;
}
.voice-mic-button.is-recording {
  background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%);
  box-shadow: 0 8px 28px rgba(239, 68, 68, 0.45);
  animation: micRecordingGlow 1.6s infinite;
}
@keyframes micRecordingGlow {
  0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.6); }
  70% { transform: scale(1.04); box-shadow: 0 0 0 14px rgba(239, 68, 68, 0); }
  100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}
.voice-mic-waves {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 72px;
  height: 72px;
  pointer-events: none;
  display: none;
}
.voice-mic-button.is-recording .voice-mic-waves {
  display: block;
}
.voice-mic-waves span {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  border: 2px solid rgba(239, 68, 68, 0.6);
  animation: wavePulse 2s cubic-bezier(0.2, 0.8, 0.4, 1) infinite;
}
.voice-mic-waves span:nth-child(2) {
  animation-delay: 0.6s;
}
.voice-mic-waves span:nth-child(3) {
  animation-delay: 1.2s;
}
@keyframes wavePulse {
  0% { transform: scale(1); opacity: 0.9; }
  100% { transform: scale(2.2); opacity: 0; }
}
.voice-mic-status {
  margin: 14px 0 4px;
  font-size: 15px;
  font-weight: 700;
  color: var(--ink);
}
.voice-mic-hint {
  margin: 0;
  font-size: 12px;
  line-height: 1.45;
  color: var(--muted);
  max-width: 440px;
}
.voice-transcript-wrapper {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.voice-transcript-label {
  font-size: 12px;
  font-weight: 700;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 0.4px;
}
.voice-input-row {
  display: flex;
  gap: 8px;
  align-items: stretch;
}
.voice-input-row textarea {
  flex: 1;
  padding: 10px 14px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--surface-soft);
  color: var(--ink);
  font: 500 13px "DM Sans", sans-serif;
  line-height: 1.45;
  resize: vertical;
  min-height: 52px;
}
.voice-input-row textarea:focus {
  outline: none;
  border-color: #2563eb;
  background: var(--surface);
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}
.voice-input-row .button {
  align-self: flex-end;
  white-space: nowrap;
}
.voice-loading[hidden],
.voice-confirm-card[hidden],
.voice-error[hidden],
.voice-diff-row[hidden] {
  display: none !important;
}
.voice-explanation:empty {
  display: none !important;
}
.voice-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 16px;
  border-radius: 12px;
  background: var(--surface-soft);
  color: var(--ink);
  font-size: 14px;
  font-weight: 600;
}
.voice-spinner {
  width: 20px;
  height: 20px;
  border: 2.5px solid var(--line);
  border-top-color: #2563eb;
  border-radius: 50%;
  animation: voiceSpin 0.75s linear infinite;
}
@keyframes voiceSpin {
  to { transform: rotate(360deg); }
}
.voice-error {
  padding: 12px 16px;
  border-radius: 12px;
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #b91c1c;
  font-size: 13px;
  font-weight: 600;
  line-height: 1.45;
}
.voice-confirm-card {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 18px;
  border-radius: 16px;
  background: var(--surface-soft);
  border: 1px solid var(--line);
}
.voice-confirm-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.voice-confirm-target-tag {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--muted);
}
.voice-confirm-confidence {
  font-size: 11px;
  font-weight: 750;
  padding: 3px 8px;
  border-radius: 999px;
  background: #dcfce7;
  color: #15803d;
}
.voice-confirm-confidence.is-medium {
  background: #fef9c3;
  color: #854d0e;
}
.voice-confirm-confidence.is-low {
  background: #fee2e2;
  color: #b91c1c;
}
.voice-job-summary {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 12px;
  border-radius: 12px;
  background: var(--surface);
  border: 1px solid var(--line);
}
.voice-job-avatar {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: #eff6ff;
  color: #1d4ed8;
  font-size: 16px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.voice-job-info h3 {
  margin: 0;
  font-size: 16px;
  font-weight: 800;
  color: var(--ink);
}
.voice-job-info p {
  margin: 2px 0 0;
  font-size: 13px;
  color: var(--muted);
}
.voice-diff-section {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 12px;
  background: var(--surface);
  border: 1px solid var(--line);
}
.voice-diff-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.voice-diff-label {
  font-size: 13px;
  font-weight: 700;
  color: var(--muted);
}
.voice-diff-value {
  font-size: 14px;
  font-weight: 700;
  color: var(--ink);
}
.voice-diff-value .price-old {
  color: var(--muted);
  text-decoration: line-through;
  margin-right: 4px;
}
.voice-diff-value .price-new {
  color: #16a34a;
  font-weight: 850;
  font-size: 15px;
}
.voice-services-badges {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.voice-service-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 9px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}
.voice-service-badge.is-added {
  background: #dcfce7;
  color: #15803d;
  border: 1px solid #bbf7d0;
}
.voice-service-badge.is-removed {
  background: #fee2e2;
  color: #b91c1c;
  border: 1px solid #fecaca;
  text-decoration: line-through;
}
.voice-service-badge.is-existing {
  background: var(--surface-soft);
  color: var(--muted);
  border: 1px solid var(--line);
}
.voice-service-badge.is-completed {
  background: #ede9fe;
  color: #6d28d9;
  border: 1px solid #ddd6fe;
}
.voice-candidates-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 14px;
}
.voice-candidates-title {
  font-weight: 700;
  font-size: 13px;
  color: var(--muted);
  margin: 0;
}
.voice-candidates-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.voice-candidate-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  border-radius: 10px;
  border: 1px solid var(--line);
  background: var(--surface-soft);
  cursor: pointer;
  transition: all 0.15s ease;
  text-align: left;
}
.voice-candidate-item:hover {
  background: #eff6ff;
  border-color: #3b82f6;
  transform: translateY(-1px);
}
.voice-candidate-broker {
  font-weight: 700;
  font-size: 14px;
  color: var(--text);
}
.voice-candidate-details {
  font-size: 12px;
  color: var(--muted);
}
.voice-candidate-arrow {
  color: #3b82f6;
  font-weight: 700;
  font-size: 16px;
}
.voice-explanation {
  margin: 0;
  padding: 10px 14px;
  border-radius: 10px;
  background: #eff6ff;
  border-left: 3px solid #2563eb;
  color: #1e40af;
  font-size: 13px;
  line-height: 1.5;
  font-weight: 600;
}
.voice-confirm-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 6px;
}

.voice-multi-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.voice-multi-list[hidden] {
  display: none !important;
}
.voice-multi-item {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 12px 14px;
  border-radius: 12px;
  background: var(--surface);
  border: 1px solid var(--line);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02);
}
.voice-multi-item-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.voice-multi-item-title {
  font-size: 14px;
  font-weight: 750;
  color: var(--ink);
}
.voice-multi-item-sub {
  font-size: 12px;
  color: var(--muted);
}
.voice-multi-item-diff {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-top: 4px;
  border-top: 1px dashed var(--line);
}
.voice-multi-item .voice-explanation {
  font-size: 12px;
  padding: 6px 10px;
}

.voice-button.is-active {
  background: #eff6ff !important;
  color: #2563eb !important;
}
.voice-button.is-processing {
  background: #eff6ff !important;
  color: #2563eb !important;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.25);
  animation: voiceButtonPulse 1.4s infinite;
}

/* Dark mode overrides for Voice Assistant */
html[data-theme="dark"] .voice-hud {
  background: var(--surface) !important;
  border-color: var(--line) !important;
  box-shadow: 0 20px 50px -10px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255, 255, 255, 0.08);
}
html[data-theme="dark"] .voice-button.is-active,
html[data-theme="dark"] .voice-button.is-processing {
  background: #1e293b !important;
  color: #60a5fa !important;
  box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.25);
}
html[data-theme="dark"] .voice-dialog-badge {
  background: #1e293b;
  color: #60a5fa;
}
html[data-theme="dark"] .voice-mic-container {
  background: #191825;
}
html[data-theme="dark"] .voice-mic-cancel-button {
  background: #450a0a;
  border-color: #991b1b;
  color: #f87171;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}
html[data-theme="dark"] .voice-mic-cancel-button:hover {
  background: #7f1d1d;
  color: #fca5a5;
}
html[data-theme="dark"] .voice-job-avatar {
  background: #1e293b;
  color: #93c5fd;
}
html[data-theme="dark"] .voice-job-summary,
html[data-theme="dark"] .voice-diff-section {
  background: #191825;
  border-color: var(--line);
}
html[data-theme="dark"] .voice-confirm-confidence {
  background: #143522;
  color: #4ade80;
}
html[data-theme="dark"] .voice-confirm-confidence.is-medium {
  background: #3b2c12;
  color: #facc15;
}
html[data-theme="dark"] .voice-confirm-confidence.is-low {
  background: #3c1618;
  color: #f87171;
}
html[data-theme="dark"] .voice-explanation {
  background: #172554;
  color: #93c5fd;
  border-left-color: #3b82f6;
}
html[data-theme="dark"] .voice-error {
  background: #3c1618;
  border-color: #5c1d24;
  color: #fca5a5;
}
html[data-theme="dark"] .voice-service-badge.is-added {
  background: #143522;
  color: #4ade80;
  border-color: #1b4931;
}
html[data-theme="dark"] .voice-service-badge.is-removed {
  background: #3c1618;
  color: #f87171;
  border-color: #5c1d24;
}
html[data-theme="dark"] .voice-service-badge.is-completed {
  background: #2e1065;
  color: #c4b5fd;
  border-color: #4c1d95;
}
html[data-theme="dark"] .voice-candidate-item:hover {
  background: #1e293b;
  border-color: #3b82f6;
}



