@import "https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap";:root{--sidebar:#0d2c47;--sidebar-2:#0a233a;--navy-rgb:13, 44, 71;--primary:#2563eb;--primary-hover:#1d5fbf;--primary-tint:#eef2fb;--primary-tint-2:#e7f0fd;--primary-fg:#fff;--primary-rgb:37, 99, 235;--secondary:#ffbf12;--secondary-tint:#fff7da;--secondary-rgb:255, 191, 18;--secondary-hover:#e6a800;--secondary-ink:#8a6100;--warning:#b88600;--warning-tint:#fff2cc;--bg:#f2f4f8;--card:#fff;--surface-2:#fafbfd;--surface-3:#f1f5f9;--on-dark:#fff;--text:#1d2733;--muted:#7a8699;--muted-2:#51607a;--border:#e6eaf0;--border-2:#cfd5dd;--success:#1f7a47;--success-tint:#e6f4ec;--danger:#dc2626;--danger-hover:#b3261e;--danger-tint:#fdeaea;--danger-rgb:220, 38, 38;--black-rgb:0, 0, 0;--white-rgb:255, 255, 255;--blue-badge-bg:var(--primary-tint);--blue-badge-fg:var(--primary);--orange-badge-bg:var(--warning-tint);--orange-badge-fg:var(--warning);--accent:var(--secondary);--radius-lg:8px;--radius:6px;--radius-sm:5px;--radius-xs:4px;--radius-pill:999px;--font-sans:"Montserrat", system-ui, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--fs-2xs:10px;--fs-xs:11px;--fs-sm:12px;--fs-base:14px;--fs-md:15px;--fs-lg:16px;--fs-xl:18px;--fs-2xl:21px;--fs-3xl:26px;--shadow:0 1px 2px rgba(var(--navy-rgb), .05);--shadow-hover:0 2px 8px rgba(var(--navy-rgb), .08);--shadow-modal:0 10px 30px rgba(var(--navy-rgb), .18);--shadow-lg:0 6px 20px rgba(var(--navy-rgb), .12);--shadow-pop:0 8px 24px rgba(var(--black-rgb), .12);--shadow-xs:0 1px 3px rgba(var(--black-rgb), .05);--accent-rail:inset 3px 0 0 var(--secondary);--z-base:0;--z-raised:1;--z-raised-2:2;--z-raised-3:3;--z-elevated:10;--z-nav:20;--z-popover:40;--z-popover-top:41;--z-topbar:45;--z-dropdown:50;--z-burger:55;--z-burger-top:56;--z-overlay:60;--z-modal:70;--z-modal-top:71;--z-modal-stacked:80;--z-lightbox:90;--z-toast:200}*{box-sizing:border-box}html,body,#root{width:100%;min-height:100vh;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{cursor:pointer;font-family:inherit}.app{min-height:100vh;display:flex}.sidebar{background:var(--sidebar);width:210px;height:100vh;color:var(--on-dark);z-index:var(--z-nav);flex-direction:column;padding:18px 0;display:flex;position:fixed;top:0;left:0}.logo{border-bottom:1px solid rgba(var(--white-rgb), .08);margin-bottom:14px;padding:0 18px 18px}.logo-main{font-weight:800;font-size:var(--fs-xl);letter-spacing:1px;line-height:1.15}.logo-main span{color:var(--secondary)}.logo-sub{font-size:var(--fs-2xs);letter-spacing:2.5px;color:rgba(var(--white-rgb), .5);margin-top:8px;font-weight:600}.nav{flex-direction:column;gap:4px;padding:0 14px;display:flex}.nav-item{color:rgba(var(--white-rgb), .72);font-size:var(--fs-base);text-align:left;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;gap:10px;padding:8px 12px;font-weight:600;transition:background .15s,color .15s;display:flex}.nav-item:hover{background:rgba(var(--white-rgb), .06);color:var(--on-dark)}.nav-item.active{background:var(--secondary);color:var(--sidebar)}.main{flex:0 auto;width:100%;min-width:0;max-width:2100px;margin:0 auto;padding:22px 28px 44px 238px}.page-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.page-head-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.page-title{font-size:var(--fs-2xl);margin:0;font-weight:700}.page-sub{color:var(--muted);font-size:var(--fs-base);margin-top:4px}.btn{border-radius:var(--radius-sm);font-size:var(--fs-base);border:none;padding:7px 13px;font-weight:600;transition:box-shadow .15s,background .15s,border-color .15s}.btn-primary{background:var(--secondary);color:var(--sidebar)}.btn-primary:hover{background:var(--secondary-hover)}.btn-ghost{background:var(--card);color:var(--sidebar);border:1px solid var(--border)}.btn-ghost:hover{border-color:var(--primary)}.btn-dark{background:var(--sidebar);color:var(--on-dark)}.btn-dark:hover{background:var(--sidebar-2)}.back-link{color:var(--muted);font-size:var(--fs-base);background:0 0;border:none;align-items:center;gap:6px;margin-bottom:18px;padding:0;font-weight:600;display:inline-flex}.back-link:hover{color:var(--sidebar)}.grid{grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px;display:grid}.proj-grid{grid-template-columns:1fr}.proj-card{flex-direction:column;gap:8px;padding:12px 14px;display:flex}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border);padding:14px;transition:border-color .15s,box-shadow .15s;position:relative}.card.clickable{cursor:pointer;color:inherit;text-decoration:none}.card.clickable:hover{box-shadow:var(--shadow-hover);border-color:var(--border-2)}.proj-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.proj-name{font-size:var(--fs-lg);margin:0;font-weight:700}.proj-badges{flex-wrap:wrap;gap:6px;margin:2px 0 0;display:flex}.badge{font-size:var(--fs-xs);border-radius:var(--radius-xs);white-space:nowrap;border:1px solid #0000;align-items:center;padding:2px 8px;font-weight:600;line-height:1.4;display:inline-flex}.badge--message{color:var(--primary);background:var(--primary-tint);border-color:var(--primary-tint-2);cursor:pointer}.badge--client{color:var(--success);background:var(--success-tint);border-color:var(--success-tint)}.badge--approval{color:var(--warning);background:var(--warning-tint);border-color:var(--secondary-tint)}.proj-desc{color:var(--muted);font-size:var(--fs-base);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;line-height:1.45;display:-webkit-box;overflow:hidden}.proj-bottom{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 16px;padding-top:13px;display:flex}.proj-customer{font-size:var(--fs-sm);color:var(--muted);font-weight:600}.proj-meta{flex-wrap:wrap;justify-content:flex-start;gap:10px 28px;display:flex}.meta-block{flex-direction:column;gap:2px;display:flex}.meta-val{font-weight:700;font-size:var(--fs-md)}.meta-label{font-size:var(--fs-xs);letter-spacing:.5px;text-transform:uppercase;color:var(--muted);font-weight:600}.avatar{background:var(--sidebar);width:56px;height:56px;color:var(--secondary);font-size:var(--fs-2xl);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-bottom:12px;font-weight:700;display:flex}.avatar.lg{width:76px;height:76px;font-size:var(--fs-3xl)}.worker-name{font-weight:700;font-size:var(--fs-lg);margin:0 0 2px}.worker-stats{border-top:1px solid var(--border);justify-content:space-around;width:100%;padding-top:13px;display:flex}.detail-head{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:24px;padding:26px;position:relative}.card-edit-btn{border-radius:var(--radius-sm);background:var(--sidebar);width:34px;height:34px;color:var(--on-dark);border:none;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s;display:flex}.card-edit-btn:hover{background:var(--sidebar-2)}.inhome-addr-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:6px;display:flex}.inhome-legacy{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.maps-wrap{display:inline-block;position:relative}.maps-dropdown{z-index:var(--z-dropdown);background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-pop);flex-direction:column;min-width:140px;padding:6px;display:flex;position:absolute;top:calc(100% + 4px);left:0}.maps-dropdown-item{border-radius:var(--radius);font-size:var(--fs-base);color:var(--sidebar);padding:8px 10px;font-weight:600;text-decoration:none}.maps-dropdown-item:hover{background:var(--surface-3)}.maps-modal-list{flex-direction:column;gap:10px;display:flex}.inhome-paid-hint{font-size:var(--fs-base)}.stage-payment{flex-direction:column;gap:4px;margin-top:4px;margin-bottom:20px;display:flex}.inhome-line{font-size:var(--fs-base);margin:0 0 8px}.inhome-amount{font-size:var(--fs-lg);color:var(--sidebar);margin:4px 0 12px;font-weight:700}.pm-manager{flex-direction:column;gap:12px;display:flex}.pm-list{flex-direction:column;gap:8px;display:flex}.pm-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.pm-row.is-inactive{opacity:.6}.pm-row-main{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.pm-row-label{color:var(--text);font-weight:600}.pm-row-summary{font-size:var(--fs-sm);color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:320px;overflow:hidden}.pm-row-warn{font-size:var(--fs-sm);color:var(--danger);background:var(--danger-tint);border-radius:var(--radius-xs);padding:2px 8px}.pm-row-badge{font-size:var(--fs-sm);color:var(--muted);background:var(--surface-3);border-radius:var(--radius-xs);padding:2px 8px}.pm-row-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.pm-form{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);flex-direction:column;gap:12px;padding:14px;display:flex}.pm-form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.pm-active-toggle{font-size:var(--fs-sm);color:var(--text);align-items:center;gap:8px;display:flex}.pm-add-btn{align-self:flex-start}.pm-picker-wrap{flex-direction:column;gap:8px;display:flex}.pm-picker{align-self:flex-start;position:relative}.pm-picker-backdrop{z-index:var(--z-popover);position:fixed;inset:0}.pm-picker-menu{z-index:var(--z-popover-top);background:var(--card);border:1px solid var(--border-2);border-radius:var(--radius-sm);min-width:260px;max-height:320px;box-shadow:0 8px 24px rgba(var(--navy-rgb), .16);flex-direction:column;gap:2px;padding:6px;display:flex;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto}.pm-picker-item{border-radius:var(--radius-xs);cursor:pointer;align-items:center;gap:8px;padding:7px 8px;display:flex}.pm-picker-item:hover{background:var(--surface-2)}.pm-picker-all{border-bottom:1px solid var(--border);border-radius:0;margin-bottom:2px;font-weight:600}.pm-picker-item-label{color:var(--text);flex:1}.pm-picker-edit{border-top:1px solid var(--border);border-radius:0;justify-content:flex-start;margin-top:4px}.pm-picker-empty{margin:0;padding:8px}.pm-attached{flex-wrap:wrap;gap:6px;display:flex}.pm-chip{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface-2);font-size:var(--fs-sm);align-items:center;gap:6px;padding:4px 6px 4px 10px;display:inline-flex}.pm-chip.is-inactive{opacity:.6}.pm-chip.is-legacy{border-style:dashed}.pm-chip-label{color:var(--text);font-weight:600;text-decoration:none}a.pm-chip-label:hover{text-decoration:underline}.pm-chip-kind{color:var(--muted)}.pm-chip-x{color:var(--muted);cursor:pointer;font-size:var(--fs-sm);border-radius:var(--radius-xs);background:0 0;border:none;padding:2px 4px;line-height:1}.pm-chip-x:hover{color:var(--danger);background:var(--danger-tint)}.pay-methods-pub{flex-direction:column;gap:12px;margin-bottom:14px;display:flex}.pay-method-tabs{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.pay-method-tabs .step.substep{border-radius:var(--radius-sm);width:auto;padding:7px 12px}.pay-method-tabs .step.substep.selected{background:var(--secondary-tint)}.pay-method{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);padding:12px 14px}.pay-method-fields{flex-direction:column;gap:6px;display:flex}.pay-method-field{flex-wrap:wrap;align-items:baseline;gap:3px 8px;display:flex}.pay-method-field-label{font-size:var(--fs-sm);color:var(--muted);flex:0 0 110px}.pay-method-field-val{flex:200px;align-items:baseline;gap:6px;min-width:0;display:flex}.pay-method-field-value{min-width:0;color:var(--text);overflow-wrap:anywhere;font-weight:600}.pay-method-instructions{color:var(--muted-2);white-space:pre-wrap;font-size:var(--fs-sm);margin:12px 0}.paid-notice{font-size:var(--fs-base);color:var(--success);margin:6px 0 0;font-weight:600}.est-section{flex-direction:column;gap:20px;margin-bottom:8px;display:flex}.est-option{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);flex-direction:column;gap:16px;padding:16px;display:flex}.est-option-head{align-items:center;gap:8px;display:flex}.est-option-title{font-size:var(--fs-lg);flex:auto;min-width:0;margin:0;font-weight:700}.est-doc-title{margin:0}.est-add-option{align-self:flex-start}.activity-log{border-top:1px solid var(--border);flex-direction:column;align-items:flex-start;gap:8px;padding-top:12px;display:flex}.activity-list{flex-direction:column;gap:6px;width:100%;margin:0;padding:0;list-style:none;display:flex}.activity-row{font-size:var(--fs-sm);flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.activity-label{color:var(--text);font-weight:600}.activity-meta{color:var(--muted)}.est-final-block{flex-direction:column;gap:10px;display:flex}.est-final-subtitle{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:0;font-weight:700}.contract-status-row{align-items:center;gap:10px;display:flex}.contract-actions{flex-wrap:wrap;gap:8px;display:flex}.contract-pill{border-radius:var(--radius);font-size:var(--fs-sm);align-items:center;padding:2px 10px;font-weight:600;display:inline-flex}.contract-pill--none,.contract-pill--void{background:var(--surface-3);color:var(--muted)}.contract-pill--sent{background:var(--secondary-tint);color:var(--secondary-ink)}.contract-pill--signed{background:var(--success);color:var(--on-dark)}@media (width<=767px){.contract-frame{height:320px}}.sig-toggle{gap:8px;margin-bottom:10px;display:flex}.sig-draw{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.sig-canvas{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);touch-action:none;cursor:crosshair;width:100%;max-width:600px;height:160px;display:block}@font-face{font-family:Contract Signature;src:url(/fonts/contract-signature.ttf)format("truetype");font-display:swap}.sig-type-input{font-kerning:none;font-family:Contract Signature,cursive;font-size:28px}.est-doc{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);padding:12px}.est-doc-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.est-current-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;display:flex}.est-ver{font-weight:700;font-size:var(--fs-base);color:var(--text)}.est-status{font-size:var(--fs-sm);border-radius:var(--radius-xs);padding:2px 8px;font-weight:600}.est-status-pending{background:var(--warning-tint);color:var(--warning)}.est-status-approved{background:var(--success-tint);color:var(--success)}.est-status-changes_requested{background:var(--danger-tint);color:var(--danger-hover)}.est-comment{color:var(--text);font-style:italic;font-size:var(--fs-base);margin:4px 0 8px}.est-comment-inline{font-style:italic;font-size:var(--fs-sm)}.est-history{border-top:1px solid var(--border);margin-top:12px;padding-top:8px}.est-history-title{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.est-history-row{font-size:var(--fs-base);flex-wrap:wrap;align-items:center;gap:8px;padding:4px 0;display:flex}.est-file-actions{align-items:center;gap:6px;display:inline-flex}.est-row-actions,.est-rename{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.est-pub-options{flex-direction:column;gap:16px;display:flex}.est-pub-option{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);flex-direction:column;gap:14px;padding:16px;display:flex}.est-pub-option-title{margin:0}.est-pub-head{align-items:center;gap:8px;margin-bottom:10px;display:flex}.est-pub-file{margin-bottom:14px}.est-pub-file-label{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:6px;font-weight:600}.est-pub-file-actions{gap:6px;margin-top:6px;display:flex}.est-pub-actions{flex-direction:column;gap:8px;display:flex}.est-pub-comment{width:100%;min-height:70px}.est-pub-btns{justify-content:flex-end;gap:8px;display:flex}.est-pub-history{border-top:1px solid var(--border);margin-top:16px;padding-top:10px}.est-pub-old-head{cursor:pointer;text-align:left;background:0 0;border:none;flex-wrap:wrap;align-items:center;gap:8px;width:100%;padding:8px 0;display:flex}.est-pub-caret{color:var(--muted)}.est-pub-old-body{padding:6px 0 10px}.contacts-section+.contacts-section{border-top:1px solid var(--border);margin-top:18px;padding-top:18px}.client-name-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=767px){.client-name-row{grid-template-columns:1fr}}.copy-btn{color:var(--muted);cursor:pointer;border-radius:var(--radius);background:0 0;border:none;flex-shrink:0;align-items:center;padding:2px 4px;display:inline-flex}.copy-btn:hover{color:var(--sidebar);background:var(--surface-3)}.copy-ok{font-size:var(--fs-xs);color:var(--success);align-items:center;font-weight:600;display:inline-flex}.input-copy-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.input-copy-row>input{flex:1;min-width:180px}.view-field{margin-bottom:12px}.view-label{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:7px;font-weight:700}.view-value{font-size:var(--fs-base);color:var(--text);white-space:pre-wrap;word-break:break-word}.view-value.is-empty{color:var(--muted)}.view-list{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.view-line{align-items:center;gap:4px;display:inline-flex}.view-chips{flex-wrap:wrap;gap:6px;display:flex}.view-chip{background:var(--secondary-tint);color:var(--text);border-radius:var(--radius);font-size:var(--fs-sm);padding:3px 10px;font-weight:600}.multi-input{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.multi-input-row{align-items:center;gap:6px;width:100%;display:flex}.multi-input-row input{flex:1}input.is-invalid,textarea.is-invalid,select.is-invalid{border-color:var(--danger)}.multi-input-row{align-items:flex-start}.multi-input-field{flex-direction:column;flex:1;min-width:0;display:flex}.multi-input-field input{flex:initial;width:100%}.designers:not(:empty){margin-top:12px}.designers-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.designers-head .section-title{font-size:var(--fs-base);margin:0}.modal-actions.start{justify-content:flex-start}.designer-list{flex-direction:column;gap:8px;margin-bottom:8px;display:flex}.designer-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);justify-content:space-between;align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.designer-info{flex-direction:column;gap:3px;min-width:0;display:flex}.designer-name{font-weight:700;font-size:var(--fs-base)}.designer-contact{font-size:var(--fs-base);align-items:center;gap:4px;display:flex}.designer-contact a{color:var(--sidebar);word-break:break-all;text-decoration:none}.designer-contact a:hover{text-decoration:underline}.designer-actions{flex-shrink:0;gap:4px;display:flex}.designer-edit{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);padding:10px}.designer-pick-list{flex-direction:column;gap:6px;max-height:220px;margin:8px 0;display:flex;overflow-y:auto}.designer-pick-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;display:flex}.designer-tab-list{flex-direction:column;gap:8px;display:flex}.company-people-card{padding:4px 16px}.company-members{flex-direction:column;display:flex}.company-member-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:10px 0;display:flex}.company-member-row:last-child{border-bottom:none}.company-member-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.company-empty{padding:12px 0}.company-add-row{margin-top:12px}.designer-tab-row{justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.designer-tab-main{flex-direction:column;gap:3px;min-width:0;display:flex}.designer-tab-meta{font-size:var(--fs-sm);color:var(--muted)}.tier-badge{font-size:var(--fs-sm);border-radius:var(--radius-xs);background:var(--orange-badge-bg);color:var(--orange-badge-fg);white-space:nowrap;flex-shrink:0;padding:3px 9px;font-weight:700}.tier-badge.tier-high{background:var(--success-tint);color:var(--success)}.designer-detail{flex-direction:column;gap:12px;margin-bottom:14px;display:flex}.vendor-pw{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.vendor-pw input{flex:1;min-width:0}.vendor-pw-err{font-size:var(--fs-sm);color:var(--danger);flex-basis:100%}.vendor-docs{border-radius:var(--radius-sm);flex-direction:column;gap:12px;display:flex}.vendor-docs.attach-drag{outline:2px dashed var(--sidebar);outline-offset:4px}.vendor-doc-form{flex-direction:column;gap:10px;display:flex}.vendor-doc-form .field{margin-bottom:0}.vendor-doc-form-title{color:var(--text);font-weight:600}.vendor-doc-form-row{flex-wrap:wrap;gap:12px;display:flex}.vendor-doc-form-row .field{flex:1;min-width:120px}.doclist{flex-direction:column;gap:14px;display:flex}.doclist-group{flex-direction:column;gap:6px;display:flex}.doclist-year{border-bottom:1px solid var(--border);font-size:var(--fs-base);color:var(--text);margin:0;padding-bottom:4px;font-weight:700}.doclist-rows{flex-direction:column;display:flex}.doclist-row{align-items:center;gap:12px;padding:6px 0;display:flex}.doclist-row+.doclist-row{border-top:1px solid var(--border)}.doclist-month{color:var(--muted);font-size:var(--fs-sm);flex:0 0 96px}.doclist-file{flex:1;justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.doclist-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.doclist-actions{flex-shrink:0;align-items:center;gap:2px;display:flex}.designer-website-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.designer-website-row input{flex:1;min-width:180px}.tier-year-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.tier-year-label{color:var(--sidebar);font-weight:700}.tier-year-vol{font-size:var(--fs-base);color:var(--text)}.tier-bar{border-radius:var(--radius-xs);background:var(--border);height:10px;overflow:hidden}.tier-bar-fill{height:100%;width:var(--pct,0%);border-radius:var(--radius-xs);background:var(--primary);transition:width .2s}.tier-bar-fill.tier-high{background:var(--success)}.tier-hint{font-size:var(--fs-sm);margin-top:6px}.tier-past{border-top:1px solid var(--border);flex-direction:column;gap:6px;margin-top:14px;padding-top:12px;display:flex}.tier-past-row{align-items:center;gap:10px;display:flex}.tier-past-row .tier-year-vol{margin-left:auto}.designer-projects{flex-direction:column;gap:6px;display:flex}.designer-proj-link{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);font:inherit;text-align:left;cursor:pointer;color:inherit;justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;text-decoration:none;display:flex}.designer-proj-link:hover{border-color:var(--primary)}.designer-proj-name{color:var(--sidebar);font-weight:600}.designer-proj-meta{font-size:var(--fs-sm);color:var(--muted)}.est-upload{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.est-label-input{width:220px;max-width:100%}.est-label{font-size:var(--fs-sm);color:var(--sidebar);font-weight:600}.stage-pay-buttons{flex-wrap:wrap;gap:8px;display:flex}.stage-pay{flex-direction:column;gap:8px;display:flex}.stage-ext{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);flex-direction:column;gap:8px;padding:10px;display:flex}.stage-ext-input{width:100%}.stage-ext-actions{flex-wrap:wrap;gap:8px;display:flex}.stage-paid-block{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.stage-paid-block .paid-notice{margin:0}.fab-consume{flex-direction:column;gap:10px;display:flex}.fab-consume-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.fab-consume-form{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);flex-direction:column;gap:8px;padding:10px;display:flex}.fab-consume-row{gap:8px;display:flex}.fab-consume-row input{flex:1}.fab-consume-actions{gap:8px;display:flex}.fab-consume-list{flex-direction:column;gap:6px;display:flex}.fab-consume-line{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);justify-content:space-between;align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.fab-consume-info{flex-direction:column;gap:2px;min-width:0;display:flex}.fab-consume-name{font-size:var(--fs-base);color:var(--sidebar);font-weight:600}.fab-consume-meta{font-size:var(--fs-base);color:var(--muted-2)}.fab-consume-line-actions{flex-shrink:0;gap:4px;display:flex}.mat-stage{flex-direction:column;gap:18px;display:flex}.mat-block{flex-direction:column;gap:8px;display:flex}.mat-block-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.mat-h{font-size:var(--fs-base);color:var(--sidebar);margin:0;font-weight:700}.mat-head-actions{flex-wrap:wrap;gap:8px;display:flex}.mat-checklist,.mat-list{flex-direction:column;gap:6px;display:flex}.mat-check-row,.mat-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);justify-content:space-between;align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.mat-check-main,.mat-row-main{flex-direction:column;gap:3px;min-width:0;display:flex}.mat-row-name{font-size:var(--fs-base);color:var(--sidebar);font-weight:600}.defect-check{vertical-align:-2px;width:15px;height:15px;margin-right:7px}.mat-row-meta{font-size:var(--fs-base);color:var(--muted-2)}.mat-from{font-size:var(--fs-sm)}.mat-link{font-size:var(--fs-base);color:var(--sidebar);word-break:break-word;font-weight:600;text-decoration:none}.mat-check-actions,.mat-row-actions{flex-shrink:0;align-items:center;gap:6px;display:flex}.mat-allset{font-size:var(--fs-base);color:var(--success);margin:2px 0 0;font-weight:600}.mat-badge{font-size:var(--fs-xs);border-radius:var(--radius-xs);width:fit-content;padding:2px 8px;font-weight:700;display:inline-block}.mat-received{background:var(--success-tint);color:var(--success)}.mat-short{background:var(--warning-tint);color:var(--warning)}.mat-awaiting,.mat-todo{background:var(--surface-3);color:var(--muted-2)}.mat-free{background:var(--primary-tint);color:var(--primary)}.modal-wide{max-width:640px}.modal.modal-xwide,.modal.token-help-modal{max-width:720px}.modal.conversation-thread-modal{max-width:860px}@media (width>=768px){.modal.modal-email-wide{max-width:min(1040px,90vw)}.modal.modal-email-wide .tpl-body{min-height:360px}}.mat-lines-label{font-size:var(--fs-sm);letter-spacing:.04em;text-transform:uppercase;color:var(--muted-2);margin:12px 0 6px;font-weight:700;display:block}.mat-lines{flex-direction:column;gap:10px;display:flex}.mat-line{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);padding:10px}.mat-line-off{opacity:.55}.mat-line-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.mat-line-inc{font-size:var(--fs-base);color:var(--sidebar);align-items:center;gap:8px;font-weight:600;display:flex}.mat-line-name{flex:1}.li-cols-order-v2{grid-template-columns:130px 1fr 100px 80px 110px 110px 40px}.li-cols-checkline-v2{grid-template-columns:130px 1fr 100px 80px 110px 110px auto}.order-item-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);margin-bottom:12px;padding:14px}.order-item-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.order-item-num{font-size:var(--fs-base);color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:700}.order-item-r1{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.order-item-r2{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:12px;margin-top:12px;display:grid}.order-item-card .field{min-width:0;margin-bottom:0}.order-item-com{align-items:center}.order-item-com input{width:18px;height:18px}.order-add-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (width<=767px){.order-item-r1,.order-item-r2,.order-add-row{grid-template-columns:1fr}}.inv-picker{flex-direction:column;gap:4px;display:flex}.inv-picker-resolved{font-size:var(--fs-base);align-items:center;gap:6px;display:flex}.inv-picker-resolved .inv-picker-name{word-break:break-word;font-weight:600}.inv-picker-new{color:var(--success)}.inv-picker-actions{gap:6px;display:flex}.recv-progress{font-size:var(--fs-sm);color:var(--muted);white-space:nowrap;font-weight:600}.recv-progress.done{color:var(--success)}.checkline-actions{gap:8px;display:flex}.combo{flex-wrap:wrap;align-items:center;gap:6px;display:flex;position:relative}.combo-field{flex:auto;min-width:0;position:relative}.combo-input{width:100%;padding-right:36px}.combo-chevron{cursor:pointer;color:var(--sidebar);font-size:var(--fs-xl);background:0 0;border:none;padding:4px 6px;line-height:0;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.combo-list{z-index:var(--z-overlay);background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-pop);max-height:220px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 2px);left:0;right:0;overflow-y:auto}.combo-li{align-items:center;display:flex}.combo-option{text-align:left;border-radius:var(--radius);font-size:var(--fs-base);cursor:pointer;color:var(--sidebar);background:0 0;border:none;flex:1;min-width:0;padding:8px 10px;display:block}.combo-option:hover{background:var(--surface-3)}.combo-item-btn{cursor:pointer;color:var(--muted);border-radius:var(--radius);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:6px;display:flex}.combo-item-btn:hover{color:var(--sidebar);background:var(--surface-3)}.combo-add-row{flex:1 0 100%}.field-error{color:var(--danger);font-size:var(--fs-sm);margin-top:4px}.checkline-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.checkline-modal-actions{gap:10px;margin-top:18px;display:flex}@media (width<=767px){.checkline-fields{grid-template-columns:1fr}}.modal-scroll{flex-direction:column;max-height:90vh;display:flex;overflow:hidden}.modal-scroll-body{flex:auto;min-height:0;overflow-y:auto}.delivery-item-fields{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.delivery-item-fields .field,.delivery-item-inv{margin-bottom:0}.delivery-item-inv{margin-top:12px}@media (width<=767px){.delivery-item-fields{grid-template-columns:1fr}}.order-expand{margin:2px 0 6px;padding-bottom:4px;overflow-x:auto}.mat-order-totals{font-size:var(--fs-base);justify-content:space-between;gap:16px;margin-top:10px;display:flex}.mat-order-invoice{font-size:var(--fs-base);margin-top:8px}.lineitem-head,.lineitem-grid{align-items:center;gap:10px;display:grid}.lineitem-head{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:0 12px 4px;font-weight:700}.lineitem-row{border-bottom:1px solid var(--border);padding:10px 12px}.lineitem-row:last-child{border-bottom:none}.lineitem-grid input,.lineitem-grid select{width:100%}.li-cell{min-width:0}@media (width<=767px){.lineitem-head{display:none}.lineitem-grid{grid-template-columns:1fr;gap:10px}.li-cell:before{content:attr(data-label);font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:6px;font-weight:700;display:block}.li-name-cell:before,.li-trash:before{content:none}.lineitem-row{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);padding:14px 12px;position:relative}.lineitem-row .li-name-cell{padding-right:40px}.lineitem-row .li-trash{position:absolute;top:12px;right:8px}}.section-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.btn-danger{background:var(--danger);color:var(--on-dark);justify-content:center;align-items:center;gap:8px;display:flex}.btn-danger:hover{background:var(--danger-hover)}.detail-title{font-size:var(--fs-2xl);margin:0 0 8px;font-weight:800}.detail-desc{color:var(--muted);font-size:var(--fs-base);max-width:640px;margin:0 0 12px;line-height:1.55}.detail-date{font-size:var(--fs-sm);color:var(--muted);font-weight:600}.worker-detail-head{align-items:center;gap:20px;display:flex}.worker-detail-head .info{flex:1}.section{margin-bottom:18px}.project-body>*+*{border-top:1px solid var(--border);padding-top:18px}.section-title{font-size:var(--fs-base);letter-spacing:.2px;margin:0 0 10px;font-weight:600}.pills{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px;display:grid}.pill{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border);padding:12px}.pill-val{font-size:var(--fs-xl);margin-bottom:4px;font-weight:700}.pill-label{font-size:var(--fs-xs);letter-spacing:.7px;text-transform:uppercase;color:var(--muted);font-weight:600}.table-wrap{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);overflow:hidden}table{border-collapse:collapse;width:100%}thead th{text-align:left;font-size:var(--fs-xs);letter-spacing:.6px;text-transform:uppercase;color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--border);padding:8px 12px;font-weight:600}tbody td{font-size:var(--fs-base);border-bottom:1px solid var(--border);padding:8px 12px}tbody tr:last-child td{border-bottom:none}tbody tr.clickable{cursor:pointer}tbody tr.clickable:hover{background:var(--surface-2)}.td-name{font-weight:600}.td-right,.th-right{text-align:right}.th-sort{cursor:pointer;-webkit-user-select:none;user-select:none}.th-sort:hover{color:var(--sidebar)}.th-sort-caret{margin-left:4px}.week-nav{align-items:center;gap:12px;display:flex}.week-nav button{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);width:32px;height:32px;font-size:var(--fs-md);color:var(--sidebar);justify-content:center;align-items:center;font-weight:700;display:flex}.week-nav button:hover:not(:disabled){border-color:var(--primary);background:var(--secondary-tint)}.week-nav button:disabled{opacity:.35;cursor:not-allowed}.week-nav .week-name{font-size:var(--fs-base);text-align:center;min-width:96px;font-weight:700}.week-header{background:var(--sidebar);color:var(--on-dark);border-radius:var(--radius-lg) var(--radius-lg) 0 0;justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.week-header .wh-block{flex-direction:column;gap:3px;display:flex}.week-header .wh-val{font-size:var(--fs-xl);font-weight:800}.week-header .wh-val.accent{color:var(--secondary)}.week-header .wh-label{font-size:var(--fs-2xs);letter-spacing:.8px;text-transform:uppercase;color:rgba(var(--white-rgb), .55);font-weight:600}.week-pay{background:var(--card);border-left:1px solid var(--border);border-right:1px solid var(--border);flex-direction:column;gap:10px;padding:12px 22px;display:flex}.week-pay-figures{font-size:var(--fs-base);color:var(--muted);flex-wrap:wrap;gap:18px;display:flex}.week-pay-figures strong{color:var(--text);font-size:var(--fs-md)}.week-pay-figures strong.pos{color:var(--success)}.week-pay-figures strong.neg{color:var(--danger)}.week-pay-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.week-pay-advance{align-items:center;gap:6px;display:flex}.week-pay-advance input{width:150px}.week-pay-badge{color:var(--success);background:var(--success-tint);border-radius:var(--radius-xs);font-weight:700;font-size:var(--fs-base);align-self:flex-start;padding:4px 10px}.week-pay-list{border-top:1px solid var(--border);flex-direction:column;gap:4px;padding-top:8px;display:flex}.week-pay-row{font-size:var(--fs-base);justify-content:space-between;align-items:center;gap:12px;display:flex}.payroll-breakdown{flex-direction:column;gap:6px;margin:10px 0;padding:4px 2px;display:flex}.pay-row{font-size:var(--fs-base);justify-content:space-between;gap:16px;display:flex}.pay-row-total{border-top:1px solid var(--border);padding-top:6px;font-weight:700}.week-body{background:var(--card);border-radius:0 0 var(--radius-lg) var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.badge.in{background:var(--blue-badge-bg);color:var(--blue-badge-fg)}.badge.out{background:var(--orange-badge-bg);color:var(--orange-badge-fg)}.arrow{color:var(--muted)}.loading{min-height:100vh;font-size:var(--fs-lg);color:var(--muted);justify-content:center;align-items:center;font-weight:600;display:flex}.route-loading{flex-direction:column;justify-content:center;align-items:center;gap:14px;min-height:60vh;display:flex}.route-loading .route-spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:34px;height:34px;animation:.7s linear infinite route-spin}.route-loading .route-loading-label{font-size:var(--fs-sm);letter-spacing:.02em;color:var(--muted);font-weight:600}@keyframes route-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.route-loading .route-spinner{animation-duration:1.6s}}.empty{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);text-align:center;padding:32px 20px}.empty .emoji{font-size:var(--fs-3xl);margin-bottom:14px}.empty .empty-title{font-size:var(--fs-lg);margin:0 0 6px;font-weight:700}.empty .empty-msg{color:var(--muted);font-size:var(--fs-base);max-width:360px;margin:0 auto;line-height:1.5}.modal-backdrop{background:rgba(var(--black-rgb), .42);z-index:var(--z-modal);overscroll-behavior:contain;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0;overflow-y:auto}body:has(.modal-backdrop,.drawer-backdrop){overflow:hidden}.modal-backdrop-top{z-index:var(--z-modal-stacked)}.modal{background:var(--card);border-radius:var(--radius-lg);width:100%;max-width:460px;box-shadow:var(--shadow-modal);overscroll-behavior:contain;max-height:calc(100dvh - 40px);padding:18px;overflow-y:auto}.modal-title{font-size:var(--fs-xl);margin:0 0 14px;font-weight:700}.field{margin-bottom:12px}.field label{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:7px;font-weight:700;display:block}:where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]),textarea,select){border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--fs-base);color:var(--text);background:var(--surface-2);padding:7px 10px;font-family:inherit;transition:border-color .15s,background .15s}:where(input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]),textarea,select):focus{border-color:var(--primary);background:var(--card);outline:none}:where(textarea){resize:vertical;min-height:80px}.field input:not([type=checkbox]):not([type=radio]),.field textarea,.field select{width:100%}.pw-field{position:relative}.pw-field input{padding-right:40px}.pw-toggle{position:absolute;top:50%;right:6px;transform:translateY(-50%)}.pw-toggle:hover{color:var(--sidebar);background:0 0}.pw-rules{flex-direction:column;gap:4px;margin:8px 0 4px;padding:0;list-style:none;display:flex}.pw-rule{font-size:var(--fs-sm);color:var(--danger);align-items:center;gap:8px;display:flex}.pw-rule.ok{color:var(--success)}.pw-rule-mark{text-align:center;width:1em;font-weight:700}.modal-actions{justify-content:flex-end;align-items:center;gap:10px;margin-top:16px;display:flex}.modal-actions.modal-actions-3{flex-wrap:wrap}.modal-actions .btn{font-size:var(--fs-base);padding:7px 14px}.modal-error{background:var(--danger-tint);color:var(--danger);font-size:var(--fs-sm);border-radius:var(--radius-sm);margin-bottom:16px;padding:10px 13px;font-weight:600}.toast{z-index:var(--z-toast);border-radius:var(--radius-sm);font-size:var(--fs-base);color:var(--on-dark);box-shadow:var(--shadow-modal);max-width:calc(100vw - 40px);padding:10px 16px;font-weight:600;animation:.18s ease-out drawer-saved-in;position:fixed;top:20px;right:20px}.toast-success{background:var(--success)}.toast-error{background:var(--danger)}@media (width<=767px){.toast{text-align:center;max-width:none;top:12px;left:12px;right:12px}}.form-success{background:var(--success-tint);color:var(--success);font-size:var(--fs-sm);border-radius:var(--radius-sm);margin-bottom:16px;padding:10px 13px;font-weight:600}.settings-form{max-width:460px}.muted{color:var(--muted)}.field-note{font-size:var(--fs-sm);color:var(--muted);margin-top:6px}.field-note-warn{color:var(--orange-badge-fg)}.login-section{border-top:1px solid var(--border);margin-top:4px;padding-top:14px}.login-status{font-size:var(--fs-base);color:var(--text);font-weight:700}.login-status.connected{color:var(--success)}.login-error{margin-top:10px}.inv-row.low{background:var(--warning-tint);box-shadow:inset 3px 0 0 var(--warning)}.inv-low-badge{font-size:var(--fs-2xs);letter-spacing:.4px;text-transform:uppercase;color:var(--warning);border:1.5px solid var(--warning);border-radius:var(--radius-sm);vertical-align:middle;margin-left:8px;padding:1px 6px;font-weight:800;display:inline-block}.inv-tag{font-size:var(--fs-xs);border-radius:var(--radius);letter-spacing:.3px;white-space:nowrap;border:1.5px solid #0000;align-items:center;padding:3px 9px;font-weight:700;display:inline-flex}.inv-tag.project{border-color:var(--primary);color:var(--warning)}.inv-tag.studio{border-color:var(--border);color:var(--muted)}.inv-actions-cell{white-space:nowrap}.inv-actions-cell .icon-btn+.icon-btn{margin-left:6px}.inv-row.archived td{color:var(--muted);background:var(--surface-2)}.inv-archived-tag{font-size:var(--fs-2xs);letter-spacing:.4px;text-transform:uppercase;color:var(--muted);border:1.5px solid var(--border);border-radius:var(--radius-sm);vertical-align:middle;margin-left:8px;padding:1px 6px;font-weight:800;display:inline-block}.inv-group-head{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.5px;color:var(--muted);background:var(--surface-2);border-top:1px solid var(--border);padding:10px 12px 6px;font-weight:700}.inv-detail-actions{justify-content:space-between}.inv-detail-actions-left{gap:10px;display:flex}.fin-panel{padding:22px}.fin-contract{margin-bottom:18px}.fin-contract-edit{gap:10px;max-width:320px;display:flex}.fin-contract-edit input{flex:1}.fin-figures{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.fin-figure{flex-direction:column;gap:4px;display:flex}.fin-figure-val{font-size:var(--fs-xl);color:var(--text);font-weight:800}.fin-figure-val.pos{color:var(--success)}.fin-figure-val.neg{color:var(--danger)}.fin-figure-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:700}.fin-figure-info{color:var(--muted);cursor:pointer;vertical-align:middle;background:0 0;border:none;margin-left:5px;padding:0;display:inline-flex}.fin-figure-info:hover{color:var(--primary)}.fin-figure-info svg{width:14px;height:14px}.breakdown-total-cell{border-top:2px solid var(--border)}.breakdown-total-bar{justify-content:space-between;align-items:center;padding-top:10px;font-weight:700;display:flex}.breakdown-total-empty{border-top:2px solid var(--border);margin-top:4px}.fin-add{margin-bottom:16px;padding:18px}.fin-form-modal .fin-add{box-shadow:none;background:0 0;border:none;margin-bottom:0;padding:0}.budget-sub{margin-top:18px}.budget-sub:first-of-type{margin-top:0}.budget-sub-title{font-size:var(--fs-base);color:var(--sidebar);margin:0;font-weight:700}.budget-head{margin-bottom:12px}.budget-head .section-title{margin:0}.budget-head-actions{align-items:center;gap:4px;display:flex}.budget-quickadd{display:inline-flex;position:relative}.quickmenu-backdrop{z-index:var(--z-popover);cursor:default;background:0 0;border:none;padding:0;position:fixed;inset:0}.budget-quickmenu{z-index:var(--z-popover-top);background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px rgba(var(--black-rgb), .14);flex-direction:column;min-width:160px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.quickmenu-item{text-align:left;font-family:inherit;font-size:var(--fs-base);color:var(--text);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;padding:9px 11px;font-weight:600}.quickmenu-item:hover{background:var(--surface-2)}.budget-details-modal{max-width:760px;max-height:86vh;overflow-y:auto}.budget-details-modal table{width:100%}.budget-details-modal th,.budget-details-modal td{white-space:nowrap}.budget-details-modal .td-note{white-space:normal;min-width:180px}.fin-add-row{grid-template-columns:1fr 1fr 1fr;gap:14px;display:grid}.fin-hint{font-size:var(--fs-sm);color:var(--muted);margin:0 0 12px}.tpl-hint{font-size:var(--fs-sm);color:var(--muted);margin:-4px 0 16px;line-height:1.5}.tpl-stages-cell{font-size:var(--fs-sm);color:var(--muted)}.check-row{font-size:var(--fs-base);align-items:center;gap:8px;margin:0 0 16px;display:flex}.sig-logo{align-items:center;gap:12px;margin-bottom:8px;display:flex}.sig-logo img{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);max-width:180px;max-height:56px;padding:4px}.mail-log-body{white-space:pre-wrap;word-break:break-word;font-size:var(--fs-base);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-soft,var(--surface-2));max-height:340px;padding:10px 12px;line-height:1.55;overflow-y:auto}.nav-badge{min-width:18px;height:18px;font-size:var(--fs-xs);color:var(--primary-fg);background:var(--danger);border-radius:9px;justify-content:center;align-items:center;margin-left:auto;padding:0 6px;font-weight:700;line-height:1;display:inline-flex}.followup-nudge{z-index:var(--z-dropdown);background:var(--card);border:1px solid var(--border);border-radius:var(--radius);max-width:300px;box-shadow:var(--shadow);align-items:center;gap:12px;padding:10px 12px;display:flex;position:fixed;top:16px;right:16px}.followup-nudge-body{align-items:center;gap:8px;display:flex}.followup-nudge-count{min-width:22px;height:22px;font-size:var(--fs-sm);color:var(--primary-fg);background:var(--warning);border-radius:11px;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.followup-nudge-text{font-size:var(--fs-sm);color:var(--text)}.followup-nudge-link{font-size:var(--fs-sm);color:var(--primary);background:0 0;border:none;padding:0;font-weight:600}.followup-nudge-link:hover{text-decoration:underline}.followup-nudge-close{color:var(--muted);font-size:var(--fs-base);background:0 0;border:none;padding:2px 4px;line-height:1}.followup-nudge-close:hover{color:var(--text)}.convo-status{font-size:var(--fs-xs);letter-spacing:.02em;text-transform:uppercase;border-radius:var(--radius-xs);padding:2px 8px;font-weight:600;display:inline-block}.convo-status-replied{background:var(--success-tint);color:var(--success)}.convo-status-follow-up{background:var(--warning-tint);color:var(--warning)}.convo-status-awaiting{background:var(--surface-3);color:var(--muted-2)}.conversation-actions{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px;margin:4px 0 16px;padding-bottom:14px;display:flex}.convo-followup-field{font-size:var(--fs-sm);color:var(--muted);align-items:center;gap:8px;margin-left:auto;display:flex}.convo-followup-field input[type=date]{width:auto}.convo-replied-note{font-size:var(--fs-sm)}.conversation-thread{flex-direction:column;gap:16px;max-height:60vh;display:flex;overflow-y:auto}.convo-msg{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);padding:14px 16px}.convo-msg-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:4px;display:flex}.convo-msg-subject{color:var(--text);font-weight:700}.convo-msg-date{font-size:var(--fs-sm);color:var(--muted);white-space:nowrap}.convo-msg-meta{font-size:var(--fs-sm);color:var(--muted);margin:0 0 10px}.convo-msg-body{background:var(--card);max-height:none}.convo-msg-signature{border-top:1px solid var(--border);white-space:pre-wrap;word-break:break-word;font-size:var(--fs-sm);color:var(--muted-2);margin-top:14px;padding-top:14px;line-height:1.6}.convo-msg-attach{flex-direction:column;gap:6px;margin-top:10px;display:flex}.convo-msg-in,.convo-msg-out{max-width:88%}.convo-msg-out{border-left:3px solid var(--primary);margin-left:auto}.convo-msg-in{background:var(--primary-tint);border-left:3px solid var(--border-2);margin-right:auto}.inbox-html-frame{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);width:100%;min-height:320px}.inbox-text-body{white-space:pre-wrap;word-break:break-word}.inbox-viewtoggle{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.inbox-list{flex-direction:column;gap:8px;display:flex}.inbox-row{text-align:left;border:1px solid var(--border);border-radius:var(--radius);background:var(--card);cursor:pointer;width:100%;font:inherit;color:var(--text);grid-template-columns:minmax(140px,1fr) minmax(160px,1.4fr) minmax(0,2fr) auto;align-items:baseline;gap:12px;padding:12px 14px;display:grid}.inbox-row:hover{background:var(--surface-2);border-color:var(--border-2)}.inbox-row.is-unread{border-left:3px solid var(--primary);background:var(--primary-tint)}.inbox-row.is-unread .inbox-row-sender,.inbox-row.is-unread .inbox-row-subject{font-weight:700}.inbox-row-sender{color:var(--text);align-items:baseline;gap:6px;min-width:0;font-weight:600;display:flex}.inbox-row-sender-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.inbox-row-project{text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;max-width:45%;overflow:hidden}.inbox-row-subject{color:var(--text);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.inbox-row-preview{color:var(--muted);font-size:var(--fs-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.inbox-row-date{color:var(--muted);font-size:var(--fs-sm);white-space:nowrap}.inbox-contactpick{flex-direction:column;gap:6px;max-height:320px;margin-top:10px;display:flex;overflow-y:auto}.inbox-contactpick-row{text-align:left;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);cursor:pointer;width:100%;font:inherit;color:var(--text);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.inbox-contactpick-row:hover{background:var(--surface-2);border-color:var(--border-2)}.inbox-contactpick-row:disabled{opacity:.6;cursor:default}.inbox-contactpick-row.is-suggested{background:var(--primary-tint);border-color:var(--primary)}.inbox-contactpick-name{font-weight:600}.inbox-contactpick-type{font-size:var(--fs-sm);color:var(--muted)}@media (width<=767px){.inbox-row{grid-template-columns:1fr auto}.inbox-row-subject{grid-column:1/-1;font-weight:600}.inbox-row-preview{white-space:normal;grid-column:1/-1}.convo-msg-in,.convo-msg-out{max-width:100%}}.needs-actions{white-space:nowrap;justify-content:flex-end;gap:8px;display:flex}tr.clickable{cursor:pointer}.mail-compose{max-width:720px}.compose-project-banner{border:1px solid var(--primary);border-radius:var(--radius-sm);background:var(--warning-tint);flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;padding:11px 14px;display:flex}.compose-project-info{flex-wrap:wrap;flex:auto;align-items:center;gap:16px;min-width:0;display:flex}.compose-project-name{font-size:var(--fs-base);color:var(--sidebar,var(--sidebar));font-weight:700}.compose-attach-toggle{font-size:var(--fs-base);color:var(--text);cursor:pointer;align-items:center;gap:7px;font-weight:600;display:inline-flex}.compose-attach-toggle input{width:16px;height:16px}.compose-project-hint{font-size:var(--fs-sm);color:var(--muted);margin:6px 0 0}.compose-project-hint-warn{color:var(--orange-badge-fg)}.compose-ccbcc-toggle{color:var(--primary);font-size:var(--fs-sm);cursor:pointer;background:0 0;border:none;padding:0}.compose-ccbcc-toggle:hover{text-decoration:underline}.compose-ccbcc .compose-bcc-label{margin-top:10px}.compose-mode-opts{flex-direction:column;gap:8px;display:flex}.compose-mode-opt{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);cursor:pointer;font-size:var(--fs-base);align-items:flex-start;gap:10px;padding:9px 11px;display:flex}.compose-mode-opts input[type=radio]{flex-shrink:0;margin:2px 0 0}.compose-mode-text{flex-direction:column;gap:2px;display:flex}.compose-mode-sub{font-size:var(--fs-sm);color:var(--muted)}.compose-mode-warn{font-size:var(--fs-sm);color:var(--orange-badge-fg);margin:8px 0 0}.compose-draft-banner{border:1px solid var(--blue-badge-fg);border-radius:var(--radius-sm);background:var(--blue-badge-bg);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;padding:9px 12px;display:flex}.compose-draft-label{font-size:var(--fs-base);color:var(--blue-badge-fg);flex-shrink:0;font-weight:700}.compose-draft-name{flex:160px;min-width:0}.compose-draft-saved{font-size:var(--fs-sm)}.compose-draft-dropped{border:1px solid var(--orange-badge-fg);border-radius:var(--radius-sm);background:var(--orange-badge-bg);color:var(--orange-badge-fg);font-size:var(--fs-base);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;padding:9px 12px;display:flex}.draft-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.log-attach-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);font-size:var(--fs-base);align-items:center;gap:10px;padding:7px 11px;display:flex}.log-attach-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-weight:600;overflow:hidden}.log-attach-size{color:var(--muted);font-size:var(--fs-sm);flex-shrink:0}.followup-send-email{margin-bottom:16px}@media (width<=767px){.compose-project-banner{align-items:stretch}.followup-send-email .btn{width:100%}}.recipient-list{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);max-height:400px;overflow-y:auto}.recipient-group+.recipient-group{margin-top:6px}.recipient-list input[type=checkbox]{flex-shrink:0;margin:0}.recipient-group-head{z-index:var(--z-raised);background:var(--surface-3);border-bottom:1px solid var(--border);cursor:pointer;align-items:center;gap:14px;padding:10px 12px;display:flex;position:sticky;top:0}.recipient-group-head input[type=checkbox]{margin-right:4px}.recipient-group-title{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.5px;color:var(--sidebar,var(--sidebar));font-weight:700}.recipient-group-count{font-size:var(--fs-sm);color:var(--muted);margin-left:auto;padding-left:12px}.recipient-group-chevron{font-size:var(--fs-xs);color:var(--muted);flex-shrink:0;line-height:1}.recipient-row{font-size:var(--fs-base);border-bottom:1px solid var(--surface-3);cursor:pointer;align-items:center;gap:12px;padding:11px 12px;display:flex}.recipient-row:hover{background:var(--surface-2)}.recipient-row.is-empty{opacity:.5;cursor:default}.recipient-row-name{color:var(--text)}.recipient-row-company{color:var(--muted)}.recipient-row-addr{color:var(--muted);font-size:var(--fs-sm);margin-left:auto}.recipient-noemail{font-style:italic}.recipient-row.is-unsubscribed{opacity:.55;cursor:default}.recipient-row.is-unsubscribed:hover{background:0 0}.recipient-unsub-badge{font-size:var(--fs-xs);letter-spacing:.02em;text-transform:uppercase;color:var(--warning);background:var(--warning-tint);border-radius:var(--radius-xs);padding:2px 7px;font-weight:600}.recipient-list .recipient-addr-select{width:auto;max-width:230px;font-size:var(--fs-sm);border-radius:var(--radius-sm);margin-left:auto;padding:4px 8px}.recipient-row-cb{flex-shrink:0;margin-left:8px}.recipient-empty{font-size:var(--fs-base);padding:12px}.compose-result{margin-top:16px}.compose-fail-list{font-size:var(--fs-base);color:var(--muted);margin:8px 0 12px;padding-left:18px}.compose-preview{border:1px solid var(--border);border-radius:var(--radius-sm);max-height:420px;overflow-y:auto}.send-review-warn{margin-bottom:12px}.send-review-meta{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);font-size:var(--fs-base);flex-direction:column;gap:6px;margin-bottom:14px;padding:12px 14px;display:flex}.send-review-row{align-items:baseline;gap:10px;display:flex}.send-review-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--muted);flex:0 0 72px;font-weight:700}.send-review-nav{align-items:stretch;gap:8px;display:flex}.send-review-arrow{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);width:40px;color:var(--sidebar,var(--sidebar));font-size:var(--fs-2xl);cursor:pointer;flex-shrink:0;line-height:1}.send-review-arrow:hover:not(:disabled){background:var(--surface-3)}.send-review-arrow:disabled{opacity:.4;cursor:default}.send-review-body{border:1px solid var(--border);border-radius:var(--radius-sm);flex:auto;min-width:0;max-height:52vh;overflow-y:auto}.send-review-pos{text-align:center;font-size:var(--fs-sm);color:var(--muted);margin-top:10px}.send-review-note{font-size:var(--fs-sm);color:var(--muted);margin-bottom:12px}.send-review-to-all{word-break:break-word;max-height:96px;overflow-y:auto}@media (width<=767px){.send-review-arrow{width:34px;font-size:var(--fs-xl)}.send-review-label{flex-basis:60px}}.compose-attach-list{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.compose-attach-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);font-size:var(--fs-base);align-items:center;gap:10px;padding:7px 11px;display:flex}.compose-attach-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-weight:600;overflow:hidden}.compose-attach-size{color:var(--muted);font-size:var(--fs-sm);flex-shrink:0}.compose-attach-total{font-size:var(--fs-sm);color:var(--muted);padding:2px 2px 0}.compose-attach-warn{border:1px solid var(--orange-badge-fg);border-radius:var(--radius-sm);background:var(--orange-badge-bg);color:var(--orange-badge-fg);font-size:var(--fs-base);margin-top:10px;padding:9px 12px}.form-warn{border:1px solid var(--orange-badge-fg);border-radius:var(--radius-sm);background:var(--orange-badge-bg);color:var(--orange-badge-fg);font-size:var(--fs-sm);margin:6px 0 0;padding:8px 11px}.compose-preview-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.compose-preview-who{font-size:var(--fs-sm);color:var(--muted)}.compose-preview-nav{align-items:center;gap:4px;display:inline-flex}.compose-preview-count{font-size:var(--fs-sm);color:var(--muted)}.compose-preview-line{border:1px solid var(--border);border-radius:var(--radius-sm) var(--radius-sm) 0 0;background:var(--surface-2);font-size:var(--fs-base);border-bottom:none;gap:8px;padding:8px 12px;display:flex}.compose-preview-key{font-size:var(--fs-sm);color:var(--muted);flex:none;font-weight:600}.compose-preview-body{border:1px solid var(--border);border-radius:0 0 var(--radius-sm) var(--radius-sm);background:var(--card);font-size:var(--fs-base);white-space:pre-wrap;overflow-wrap:anywhere;padding:10px 12px;line-height:1.6}.compose-status{border-radius:var(--radius-sm);font-size:var(--fs-base);margin-bottom:12px;padding:10px 12px}.compose-status-blocked{border:1px solid var(--orange-badge-fg);background:var(--orange-badge-bg);color:var(--orange-badge-fg)}.compose-status-ready{border:1px solid var(--border);background:var(--surface-2);color:var(--muted)}.compose-type .filter-group{box-shadow:none;align-self:flex-start}.email-type-badge{font-size:var(--fs-xs);letter-spacing:.02em;text-transform:uppercase;border-radius:var(--radius-xs);padding:2px 8px;font-weight:600;display:inline-block}.email-type-regular{background:var(--surface-3);color:var(--muted-2)}.email-type-campaign{background:var(--secondary-tint);color:var(--secondary-ink)}.modal-title .email-type-badge{vertical-align:middle;margin-left:10px}.compose-skip-note{font-size:var(--fs-sm);color:var(--muted);margin:8px 0 4px}.compose-skip-list{margin:4px 0 0;padding-left:18px}.compose-skip-list li{margin:2px 0}.compose-status-title{font-weight:700}.compose-status-list{margin:6px 0 0;padding-left:20px}.compose-status-list li{margin:2px 0}.save-hint{font-size:var(--fs-sm);color:var(--orange-badge-fg);margin:0 0 4px}.send-review-attach{border-top:1px solid var(--border);flex-direction:column;gap:6px;margin-top:14px;padding-top:12px;display:flex}.send-review-attach-head{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:700}.add-contact-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.add-contact-dup{color:var(--orange-badge-fg)}@media (width<=767px){.add-contact-grid{grid-template-columns:1fr}}.label-info{vertical-align:middle;color:var(--muted);background:0 0;border:none;align-items:center;margin-left:6px;padding:0;display:inline-flex}.label-info:hover{color:var(--sidebar,var(--sidebar))}.token-help-group{color:var(--sidebar,var(--sidebar));background:var(--surface-3);font-weight:700}.token-cell{font-family:var(--font-mono);white-space:nowrap;font-size:var(--fs-base);color:var(--sidebar,var(--sidebar))}.token-example{grid-template-columns:1fr 1fr;gap:12px;display:grid}.token-example-label{font-size:var(--fs-sm);color:var(--muted);margin-bottom:4px;font-weight:700}@media (width<=767px){.token-example{grid-template-columns:1fr}}.fin-check{font-size:var(--fs-base);color:var(--text);align-items:center;gap:8px;font-weight:500;display:flex}.fin-check input{width:16px;height:16px}.fin-pos{color:var(--success)}.fin-neg{color:var(--danger)}.attach-list{flex-wrap:wrap;gap:10px;margin-bottom:10px;display:flex}.attach-item{position:relative}.attach-remove{border:1px solid var(--border);background:var(--card);width:20px;height:20px;color:var(--text);line-height:18px;font-size:var(--fs-base);cursor:pointer;box-shadow:0 1px 3px rgba(var(--navy-rgb), .18);border-radius:50%;padding:0;position:absolute;top:-7px;right:-7px}.attach-remove:hover{background:var(--danger-tint);border-color:var(--danger)}.attach-remove:disabled{opacity:.5;pointer-events:none}.attach-name{font-size:var(--fs-base);color:var(--text);word-break:break-all}.attach-thumb{object-fit:cover;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);cursor:pointer;width:90px;height:90px}.attach-tile{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);width:90px;height:90px;color:var(--muted);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:6px;display:flex}.attach-tile-name{font-size:var(--fs-2xs);text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.attach-pick{cursor:pointer;align-items:center;gap:7px;display:inline-flex}.attach-pick.is-disabled{opacity:.5;pointer-events:none}.attach-pick.attach-drag{border:1px dashed var(--sidebar);background:var(--primary-tint);color:var(--sidebar)}.io-menu-wrap{display:inline-flex;position:relative}.io-menu-backdrop{z-index:var(--z-popover);position:fixed;inset:0}.io-menu{z-index:var(--z-popover-top);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);flex-direction:column;min-width:140px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);right:0}.io-menu-item{text-align:left;border-radius:var(--radius);cursor:pointer;font-size:var(--fs-base);color:var(--text);background:0 0;border:none;padding:8px 10px}.io-menu-item:hover{background:var(--surface-3)}.io-help,.io-template,.io-counts{margin:0 0 12px}.io-template{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.io-counts{font-size:var(--fs-base);flex-wrap:wrap;gap:6px;display:flex}.io-preview{max-height:40vh;margin-bottom:12px;overflow:auto}.io-result-line{margin:0 0 8px}.io-status-ok{color:var(--success);font-weight:600}.io-status-skip{color:var(--muted)}.lead-type-badge{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface-3);color:var(--muted-2);font-size:var(--fs-xs);white-space:nowrap;align-self:center;padding:2px 8px;font-weight:600}.lead-detail-actions{flex-wrap:wrap}.lead-dup-bulk{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;display:flex}.lead-dup{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);margin-bottom:10px;padding:12px}.lead-dup-match{font-size:var(--fs-sm);color:var(--warning);margin-bottom:8px}.lead-dup-cols{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:10px;display:grid}.lead-dup-col{min-width:0}.lead-dup-h{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:2px}.lead-dup-name{font-weight:600}.lead-dup-choice{align-items:center;gap:8px;display:flex}.lead-dup-choice>span{font-size:var(--fs-sm);color:var(--muted-2)}@media (width<=767px){.lead-dup-cols{grid-template-columns:1fr}}.attach-modal{max-width:720px;max-height:88vh;overflow-y:auto}.attach-modal-head{word-break:break-all}.attach-preview-img{border-radius:var(--radius-sm);max-width:100%;display:block}.attach-preview-frame{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;height:70vh}.attach-viewer-list{flex-direction:column;gap:16px;display:flex}.attach-viewer-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);padding:10px}.attach-viewer-media{justify-content:center;display:flex}.attach-viewer-item .attach-preview-img{object-fit:contain;max-height:48vh}.attach-viewer-item .attach-preview-frame{height:48vh}.attach-viewer-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:8px;display:flex}.attach-viewer-links{gap:6px;display:flex}@media (width<=767px){.fin-figures{grid-template-columns:1fr 1fr}.fin-add-row{grid-template-columns:1fr;gap:0}}.filter-select{border:1px solid var(--border);border-radius:var(--radius);font-size:var(--fs-base);color:var(--text);background:var(--card);box-shadow:var(--shadow);padding:11px 14px;font-family:inherit}.filter-select:focus{border-color:var(--primary);outline:none}.ref-select{align-items:stretch;gap:8px;display:flex}.ref-select select{flex:1}.ref-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);width:38px;color:var(--sidebar);font-size:var(--fs-lg);cursor:pointer;flex:none;font-weight:700;line-height:1}.ref-btn:hover:not(:disabled){border-color:var(--primary);background:var(--secondary-tint)}.ref-btn:disabled{opacity:.45;cursor:default}.ref-btn.ok{color:var(--success)}.ref-add{gap:8px;margin-top:8px;display:flex}.ref-add input{flex:1}.ref-msg{font-size:var(--fs-sm);color:var(--danger);background:var(--danger-tint);border-radius:var(--radius-sm);margin-top:8px;padding:8px 10px;line-height:1.4}.managed-list{flex-direction:column;gap:10px;display:flex}.managed-row-actions{flex:none;gap:8px;display:flex}.managed-edit{flex-direction:column;gap:10px;padding:4px 0;display:flex}.managed-add{border-bottom:2px solid var(--border);flex-direction:column;margin-bottom:6px;padding-bottom:14px;display:flex}.inv-form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.inv-detail{max-width:560px;max-height:86vh;overflow-y:auto}.inv-summary{flex-direction:column;gap:14px;padding:6px 0 2px;display:flex}.inv-summary-row{gap:26px;display:flex}.inv-summary-item{flex-direction:column;align-items:flex-start;gap:5px;display:flex}.inv-summary-val{font-size:var(--fs-xl);color:var(--text);font-weight:800}.inv-summary-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:700}.inv-detail-toolbar{justify-content:flex-end;margin-bottom:8px;display:flex}.inv-detail-title{margin:0 0 18px}.inv-hero{align-items:flex-start;gap:20px;margin-bottom:6px;display:flex}.inv-hero-info{flex:auto;min-width:0}.inv-hero-info h2{margin:0 0 12px}.inv-hero-photo{flex:0 0 160px;width:160px}.inv-hero-photo .photo-tile{width:100%}.inv-hero-ph{text-align:center;font-size:var(--fs-sm);color:var(--muted);justify-content:center;align-items:center;padding:8px;font-weight:700;display:flex}.inv-meta{font-size:var(--fs-base);color:var(--text);flex-direction:column;gap:5px;margin-top:14px;display:flex}.inv-meta b{color:var(--muted);font-weight:700}.inv-mv-groups{flex-wrap:wrap;gap:18px;display:flex}.inv-mv-group{flex-direction:column;gap:8px;min-width:150px;display:flex}.inv-mv-group-label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:700}.inv-mv-group-btns{flex-direction:column;align-items:stretch;gap:8px;display:flex}.inv-mv-list{flex-direction:column;display:flex}.inv-mv-row{border-bottom:1px solid var(--border);padding:11px 0}.inv-mv-row:last-child{border-bottom:none}.inv-mv-main{justify-content:space-between;align-items:center;gap:12px;display:flex}.inv-mv-type{font-weight:600;font-size:var(--fs-base)}.inv-mv-right{align-items:center;gap:8px;display:flex}.inv-mv-qty{font-weight:800;font-size:var(--fs-base)}.inv-mv-qty.pos{color:var(--success)}.inv-mv-qty.neg{color:var(--danger)}.inv-mv-sub{font-size:var(--fs-sm);color:var(--muted);flex-wrap:wrap;gap:6px;margin-top:3px;display:flex}@media (width<=767px){.inv-form-row{grid-template-columns:1fr;gap:0}.inv-summary-row{gap:18px}.inv-hero{flex-direction:column}.inv-hero-photo{flex-basis:auto;width:100%;max-width:240px}}.toolbar{flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:22px;display:flex}.search-input{border:1px solid var(--border);border-radius:var(--radius);min-width:220px;font-size:var(--fs-base);color:var(--text);background:var(--card);box-shadow:var(--shadow);flex:1;padding:11px 14px;font-family:inherit}.search-input:focus{border-color:var(--primary);outline:none}.search-suggest-wrap{flex:1;min-width:220px;position:relative}.search-suggest-wrap .search-input{box-sizing:border-box;width:100%;min-width:0;padding-right:34px}.search-clear{cursor:pointer;color:var(--muted);font-size:var(--fs-xl);border-radius:var(--radius);z-index:var(--z-elevated);background:0 0;border:none;padding:2px 4px;line-height:1;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.search-clear:hover{color:var(--sidebar)}.search-suggest{z-index:var(--z-nav);background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overscroll-behavior:contain;-webkit-overflow-scrolling:touch;max-height:320px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.search-suggest-item{border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-base);padding:8px 12px}.search-suggest-item:hover,.search-suggest-item.active{background:var(--secondary-tint);color:var(--text)}.search-suggest-hint{border-top:1px solid var(--border);font-size:var(--fs-sm);color:var(--muted);margin-top:4px;padding:8px 12px}.filter-group{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:3px;display:flex}.filter-btn{font-size:var(--fs-base);color:var(--muted);border-radius:var(--radius-sm);background:0 0;border:none;padding:6px 12px;font-weight:600;transition:background .15s,color .15s}.filter-btn:hover{color:var(--sidebar)}.filter-btn.active{background:var(--secondary-tint);color:var(--secondary-ink)}.status-badge{font-size:var(--fs-xs);border-radius:var(--radius);letter-spacing:.3px;white-space:nowrap;border:1.5px solid #0000;flex-shrink:0;align-items:center;padding:3px 10px;font-weight:700;display:inline-flex}.status-badge.progress{border-color:var(--primary);color:var(--warning);background:0 0}.status-badge.completed{background:var(--success);border-color:var(--success);color:var(--on-dark)}.detail-actions{align-items:center;gap:12px;display:flex;position:absolute;top:18px;right:18px}.detail-head:not(.worker-detail-head) .detail-title-row{padding-right:160px}.td-icon{white-space:nowrap;text-align:right;width:1%}.icon-btn{border:1px solid var(--border);background:var(--card);color:var(--muted);border-radius:var(--radius-sm);justify-content:center;align-items:center;width:32px;height:32px;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.icon-btn:hover{color:var(--sidebar);border-color:var(--primary);background:var(--secondary-tint)}.delete-row{justify-content:flex-start;margin-top:8px;display:flex}.btn-danger.btn-sm,.btn-sm{width:auto;font-size:var(--fs-base);gap:7px;padding:9px 16px}.modal-confirm{text-align:center;max-width:400px}.modal-confirm .modal-title{text-align:center}.confirm-text{font-size:var(--fs-base);color:var(--text);margin:0 0 4px;line-height:1.5}.modal-confirm .modal-actions{justify-content:center}.row-highlight td{background:var(--secondary-tint);animation:1.6s ease-out flash-row}@keyframes flash-row{0%{background:var(--primary)}to{background:var(--secondary-tint)}}.worker-row{text-align:left;align-items:center;gap:18px;display:flex}.worker-row-info{min-width:150px}.worker-row-info .worker-name{margin:0 0 2px}.worker-row-stats{flex-wrap:wrap;gap:30px;margin-left:auto;display:flex}.worker-row-action{border-left:1px solid var(--border,var(--border));flex-direction:column;flex-shrink:0;gap:8px;padding-left:18px;display:flex}.worker-row-action .btn{white-space:nowrap}.deactivated-banner{background:var(--warning-tint);border:1px solid var(--secondary-tint);color:var(--warning);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;padding:12px 16px;font-weight:600;display:flex}.stepper-card,.donut-card{padding:24px}.stepper{flex-direction:column;gap:0;display:flex}.stepper-card .stepper{padding-top:30px}.step{text-align:left;background:0 0;border:none;border-radius:0;flex-direction:row;align-items:flex-start;gap:16px;width:100%;padding:12px;display:flex;position:relative}.step:hover{background:var(--surface-2)}.step:before,.step:after{content:"";background:var(--border);width:2px;z-index:var(--z-base);position:absolute;left:30px}.step:before{height:31px;top:0}.step:after{top:31px;bottom:0}.step:first-child:before,.step:last-child:after{display:none}.step.done:before,.step.filled:before,.step.current:before,.step.active:before,.step.done:after,.step.filled:after{background:var(--secondary)}.step-dot{z-index:var(--z-raised);width:38px;height:38px;font-weight:700;font-size:var(--fs-base);border:2px solid var(--border);background:var(--card);color:var(--muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex;position:relative}.step-text{flex-direction:column;gap:2px;padding-top:3px;display:flex}.step-label{font-size:var(--fs-base);color:var(--muted);font-weight:600;line-height:1.3}.step-duration{font-size:var(--fs-xs);color:var(--muted);font-weight:500}.step-status{font-size:var(--fs-xs);color:var(--muted);font-weight:600;line-height:1.2}.step.done .step-status,.step.filled .step-status{color:var(--warning)}.step.current .step-status,.step.active .step-status{color:var(--secondary-ink)}.step.done .step-dot{background:var(--secondary);border-color:var(--secondary);color:var(--sidebar)}.step.done .step-label{color:var(--text)}.step.current .step-dot{background:var(--secondary);border-color:var(--secondary);color:var(--sidebar);box-shadow:0 0 0 4px rgba(var(--navy-rgb), .12)}.step.current .step-label{color:var(--sidebar);font-weight:700}.stepper-compact{flex-flow:wrap;align-items:center;gap:6px}.stepper-compact .step{gap:0;width:auto;padding:0}.stepper-compact .step:hover{background:0 0}.stepper-compact .step:before,.stepper-compact .step:after,.stepper-compact .step-text{display:none}.stepper-compact .step-dot{width:26px;height:26px;font-size:var(--fs-xs)}.donut-wrap{flex-wrap:wrap;align-items:center;gap:64px;display:flex}.donut-center{font-size:var(--fs-xs);fill:var(--muted);font-weight:600}.donut-center-big{font-size:var(--fs-xl);fill:var(--text);font-weight:800}.donut-legend{flex-direction:column;gap:10px;display:flex}.donut-legend.two-col{grid-template-columns:1fr 1fr;gap:10px 32px;display:grid}.donut-wrap-stack{flex-direction:column;align-items:center;gap:14px}.donut-caption{text-align:center;max-width:240px;margin:0}.cat-donuts{flex-wrap:wrap;gap:32px;margin-top:20px;display:flex}.cat-donut{flex:320px;min-width:0}.cat-donut-title{font-weight:700;font-size:var(--fs-base);margin-bottom:12px}.legend-item{font-size:var(--fs-base);align-items:center;gap:10px;display:flex}.legend-dot{border-radius:var(--radius-xs);background:var(--legend-color);flex-shrink:0;width:12px;height:12px}.legend-name{min-width:130px;font-weight:600}.legend-meta{color:var(--muted);font-weight:600}.head-btns{flex-shrink:0;gap:10px;display:flex}.td-caret{color:var(--muted);text-align:center;width:28px;font-size:var(--fs-xs)}.expand-row>td{background:var(--surface-2);padding:0}.inner-table{border-collapse:collapse;width:100%}.inner-table thead th{background:var(--surface-3)}.inner-table td{font-size:var(--fs-sm)}.subtotal-row td{background:var(--surface-2);color:var(--text);font-weight:700}.month-list{flex-direction:column;gap:10px;display:flex}.month-row{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.month-head{background:0 0;border:none;align-items:center;gap:12px;width:100%;padding:15px 20px;font-family:inherit;display:flex}.month-head:hover{background:var(--surface-2)}.month-caret{color:var(--muted);font-size:var(--fs-sm)}.month-label{font-weight:700;font-size:var(--fs-base)}.month-meta{font-weight:700;font-size:var(--fs-base);color:var(--muted);margin-left:auto}.month-row .week-body{box-shadow:none;border-top:1px solid var(--border);border-radius:0}.sidebar-footer{border-top:1px solid rgba(var(--white-rgb), .08);margin-top:auto;padding:16px 14px 0}.sidebar-user{font-size:var(--fs-xs);color:rgba(var(--white-rgb), .55);white-space:nowrap;text-overflow:ellipsis;padding:0 14px 8px;font-weight:600;overflow:hidden}.logout-link{width:100%;color:rgba(var(--white-rgb), .55);font-size:var(--fs-base);text-align:left;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;gap:10px;padding:10px 14px;font-weight:600;transition:background .15s,color .15s;display:flex}.logout-link:hover{background:rgba(var(--white-rgb), .06);color:var(--on-dark)}.step.readonly{cursor:default}.step.readonly:hover{background:0 0}.step-unread-dot{background:var(--danger);width:9px;height:9px;transition:opacity var(--unread-fade,.2s) ease;border-radius:50%;flex:none;align-self:center;margin-left:auto}.step-unread-dot.is-fading{opacity:0}.step.substep{padding:7px 12px 7px 44px}.step.substep:before,.step.substep:after{display:none}.step.substep .step-label{font-size:var(--fs-sm)}.step.substep .step-status{font-size:var(--fs-xs)}.copy-row{gap:8px;display:flex}.copy-row input{font-size:var(--fs-sm);color:var(--muted);flex:1}.copy-row .btn{flex-shrink:0}.login-screen{background:var(--sidebar);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--card);border-radius:var(--radius-lg);width:100%;max-width:380px;box-shadow:0 24px 70px rgba(var(--black-rgb), .35);padding:34px 30px}.login-logo{font-weight:800;font-size:var(--fs-xl);letter-spacing:1px;color:var(--sidebar);text-align:center}.login-logo span{color:var(--secondary-ink)}.login-sub{text-align:center;font-size:var(--fs-xs);letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin:8px 0 26px;font-weight:600}.login-btn{justify-content:center;width:100%;margin-top:6px}.login-link{color:var(--primary);font-size:var(--fs-sm);cursor:pointer;background:0 0;border:none;margin:12px auto 0;padding:0;display:block}.login-link:hover{text-decoration:underline}.noaccess-card{text-align:center}.noaccess-title{font-size:var(--fs-xl);color:var(--sidebar);margin-top:14px;font-weight:700}.noaccess-msg{font-size:var(--fs-base);color:var(--muted);margin:8px 0 20px;line-height:1.5}.public-screen{background:var(--bg);max-width:1500px;min-height:100vh;margin:0 auto;padding:40px 20px 60px}.public-logo{font-weight:800;font-size:var(--fs-xl);letter-spacing:1px;color:var(--sidebar);text-align:center;margin-bottom:26px}.public-logo span{color:var(--secondary-ink)}.public-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:20px;padding:26px}@media (width>=900px){.public-card .side-menu-layout{grid-template-columns:250px 1fr}}.public-head{justify-content:space-between;align-items:center;gap:14px;margin-bottom:10px;display:flex}.pub-gate{text-align:center;max-width:420px;margin:0 auto}.pub-gate-title{font-size:var(--fs-lg);color:var(--text);margin:0 0 8px;font-weight:700}.pub-gate-sub{color:var(--muted);margin:0 0 18px}.pub-gate-form{flex-direction:column;gap:12px;display:flex}.pub-gate-input{text-align:center}.pub-pw-label{margin-top:12px;display:block}.pub-pw-hint{font-size:var(--fs-sm)}.pub-access-list{flex-direction:column;gap:4px;margin:8px 0 0;padding:0;list-style:none;display:flex}.pub-access-email{font-size:var(--fs-sm);color:var(--text);word-break:break-all}.pub-access-warn{margin-top:8px}.unsub-page-title{font-size:var(--fs-xl);color:var(--text);margin:0 0 10px;font-weight:700}.unsub-page-text{font-size:var(--fs-base);color:var(--muted-2);margin:0 0 6px;line-height:1.6}.unsub-form{margin-top:16px}.unsub-actions{text-align:right;white-space:nowrap}.unsub-empty{font-size:var(--fs-base);padding:12px}.drawer-backdrop{background:rgba(var(--black-rgb), .42);z-index:var(--z-overlay);justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:var(--card);width:33vw;min-width:320px;height:100vh;box-shadow:-12px 0 40px rgba(var(--black-rgb), .18);padding:26px;animation:.22s ease-out drawer-in;overflow-y:auto}@keyframes drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:22px;display:flex}.drawer-eyebrow{font-size:var(--fs-xs);letter-spacing:1px;text-transform:uppercase;color:var(--primary);margin-bottom:4px;font-weight:700}.drawer-title{font-size:var(--fs-xl);margin:0;font-weight:800}.drawer-close{font-size:var(--fs-xl);color:var(--muted);background:0 0;border:none;padding:4px;line-height:1}.drawer-close:hover{color:var(--text)}.drawer-head-title{min-width:0}.drawer-title-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.notify-wrap{position:relative}.notify-bell{color:var(--muted)}.notify-bell:hover{color:var(--primary)}.notify-backdrop{z-index:var(--z-modal);position:fixed;inset:0}.notify-menu{z-index:var(--z-modal-top);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:200px;max-width:calc(100vw - 48px);max-height:320px;box-shadow:var(--shadow-lg);flex-direction:column;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto}.notify-group-label{font-size:var(--fs-xs);letter-spacing:.6px;text-transform:uppercase;color:var(--muted);padding:8px 10px 4px;font-weight:700}.notify-item{text-align:left;border-radius:var(--radius);cursor:pointer;font-size:var(--fs-base);color:var(--text);background:0 0;border:none;padding:8px 10px}.notify-item:hover{background:var(--surface-3)}.notify-empty{font-size:var(--fs-sm);color:var(--muted);padding:10px}.notify-more{border:none;border-top:1px solid var(--border);text-align:left;cursor:pointer;font-size:var(--fs-sm);color:var(--primary);background:0 0;margin-top:4px;padding:8px 10px;font-weight:600}.notify-more:hover{background:var(--surface-3)}.detail-title-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.field:has(.stage-multi){margin-top:20px}.stage-multi{margin-top:4px;position:relative}.stage-multi+.tpl-hint{margin-top:12px}.stage-multi-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;font-size:var(--fs-base);color:var(--text);background:var(--surface-2);cursor:pointer;text-align:left;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;display:flex}.stage-multi-toggle:hover{border-color:var(--primary)}.stage-multi-summary{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.stage-multi-caret{color:var(--muted);flex:none}.stage-multi-backdrop{z-index:var(--z-modal);position:fixed;inset:0}.stage-multi-menu{z-index:var(--z-modal-top);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);max-height:260px;box-shadow:var(--shadow-lg);padding:4px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.stage-multi-empty{font-size:var(--fs-sm);color:var(--muted);padding:8px 10px}.stage-multi-menu .stage-multi-item{box-sizing:border-box;border-radius:var(--radius);cursor:pointer;width:100%;min-height:44px;font-size:var(--fs-base);text-transform:none;letter-spacing:normal;color:var(--text);flex-direction:row;align-items:center;gap:10px;margin:0;padding:8px 10px;font-weight:400;display:flex}.stage-multi-menu .stage-multi-item:hover{background:var(--surface-3)}.stage-multi-menu .stage-multi-item span{flex:auto;order:0;min-width:0}.stage-multi-menu .stage-multi-item input[type=checkbox]{flex:none;order:1;margin:0}.drawer-body{flex-direction:column;gap:20px;display:flex}.drawer-body>*{margin-top:0;margin-bottom:0}.task-notes{color:var(--muted);font-size:var(--fs-base);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 14px;line-height:1.45;display:-webkit-box;overflow:hidden}.task-avatars{display:flex}.task-avatar{background:var(--sidebar);width:30px;height:30px;color:var(--secondary);font-size:var(--fs-base);border:2px solid var(--card);border-radius:50%;justify-content:center;align-items:center;margin-left:-8px;font-weight:700;display:flex}.task-avatar:first-child{margin-left:0}.task-unassigned{font-size:var(--fs-sm);font-weight:600}.task-stage-chip{font-size:var(--fs-xs);color:var(--sidebar);background:var(--surface-3);border-radius:var(--radius-xs);align-self:flex-start;margin-bottom:8px;padding:2px 8px;font-weight:700}.task-claim{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--secondary-tint);flex-direction:column;gap:8px;margin:0 0 12px;padding:10px;display:flex}.task-claim-label{align-self:flex-start}.task-claim-actions{gap:8px;display:flex}.task-detail-modal{max-width:540px;max-height:88vh;overflow:hidden auto}.task-detail-head{margin-bottom:18px}.task-detail-stage{font-size:var(--fs-xs);color:var(--sidebar);background:var(--surface-3);border-radius:var(--radius-xs);margin-bottom:8px;padding:2px 8px;font-weight:700;display:inline-block}.task-detail-titlerow{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.task-detail-title{margin:0 0 6px}.task-detail-headbtns{flex-shrink:0;gap:8px;display:flex}.task-detail-edit{flex-shrink:0}.task-detail-completed{font-size:var(--fs-sm);margin:0 0 6px}.task-detail-claim{margin-bottom:16px}.task-detail-assigned,.task-detail-empty{font-size:var(--fs-base);margin:0}.subtask-list{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.subtask-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);flex-wrap:wrap;align-items:center;gap:8px 10px;max-width:100%;padding:9px 11px;display:flex}.subtask-main{flex-direction:column;flex:140px;gap:1px;min-width:0;display:flex}.subtask-title{font-size:var(--fs-base);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.subtask-assignee{font-size:var(--fs-xs)}.subtask-status{font-size:var(--fs-xs);border-radius:var(--radius-sm);white-space:nowrap;flex-shrink:0;padding:2px 8px;font-weight:700}.subtask-status--todo{color:var(--muted-2);background:var(--surface-3)}.subtask-status--in_progress{color:var(--primary-hover);background:var(--primary-tint-2)}.subtask-status--review{color:var(--warning);background:var(--secondary-tint)}.subtask-status--completed{color:var(--success);background:var(--success-tint)}.subtask-row-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.subtask-edit{flex-wrap:wrap}.subtask-edit input{flex:100%;width:auto;min-width:0}.subtask-edit-controls{flex-wrap:wrap;flex:100%;gap:8px;display:flex}.subtask-edit-controls select{flex:130px;width:auto;min-width:0}.subtask-edit .subtask-row-actions{flex:100%;justify-content:flex-end}.subtask-add{flex-wrap:wrap;align-items:center;gap:8px;max-width:100%;display:flex}.subtask-add input{flex:200px;width:auto;min-width:0}.subtask-add select{flex:130px;width:auto;min-width:0}.subtask-add .btn{flex:none}.board-head-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.board-filter{min-width:150px}.task-board{grid-template-columns:repeat(4,minmax(0,1fr));align-items:start;gap:14px;display:grid}.board-col{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);min-width:0;padding:10px;transition:background .15s,border-color .15s}.board-col--dragover{background:var(--primary-tint);border-color:var(--primary)}.board-col-head{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.5px;color:var(--muted);justify-content:space-between;align-items:center;padding:4px 6px 10px;font-weight:800;display:flex}.board-col-count{background:var(--border);color:var(--sidebar);border-radius:var(--radius-xs);font-size:var(--fs-xs);padding:1px 8px}.board-col-body{flex-direction:column;gap:10px;min-height:24px;display:flex}.board-col-empty{font-size:var(--fs-sm);text-align:center;margin:0;padding:10px 0}.board-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs);cursor:grab;padding:11px 12px}.board-card:active{cursor:grabbing}.board-card-dragging{opacity:.5}.board-card .task-stage-chip{margin-bottom:7px;display:inline-block}.board-card-title{text-align:left;cursor:pointer;width:100%;color:inherit;font-family:inherit;font-size:var(--fs-base);background:0 0;border:none;margin-bottom:8px;padding:0;font-weight:700;line-height:1.35;display:block}.board-card-title:hover{color:var(--primary)}.board-card-meta{font-size:var(--fs-xs);color:var(--muted);flex-wrap:wrap;gap:4px 8px;margin-bottom:10px;display:flex}.board-card-foot{justify-content:space-between;align-items:center;gap:8px;display:flex}.board-task-card{border-left:3px solid var(--sidebar)}.board-done-count{font-size:var(--fs-xs);color:var(--sidebar);background:var(--surface-3);border-radius:var(--radius-sm);white-space:nowrap;padding:2px 7px;font-weight:700}.board-completed-date{font-size:var(--fs-xs);margin:8px 0 0}.board-card-highlight{animation:2.2s ease-out board-card-pulse}@keyframes board-card-pulse{0%,60%{border-color:var(--sidebar);box-shadow:0 0 0 3px rgba(var(--navy-rgb), .28), var(--shadow-xs)}to{box-shadow:var(--shadow-xs)}}.board-subtask-card{background:var(--surface-2);border-left:3px solid var(--muted);cursor:pointer}.board-subtask-parent{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.4px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-bottom:4px;font-weight:700;display:block;overflow:hidden}.board-subtask-title{font-size:var(--fs-base);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:9px;font-weight:700;line-height:1.3;display:-webkit-box;overflow:hidden}.board-subtask-foot{justify-content:space-between;align-items:center;gap:8px;display:flex}.board-subtask-avatar{width:24px;height:24px;font-size:var(--fs-xs);margin-left:0}.board-subtask-foot .subtask-status{flex-shrink:0}@media (width<=900px){.task-board{scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;padding-bottom:6px;display:flex;overflow-x:auto}.board-col{scroll-snap-align:start;flex:0 0 78%;max-width:320px}}.te-pending-tag{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.4px;color:var(--warning);background:var(--warning-tint);border-radius:var(--radius-xs);margin-left:8px;padding:1px 6px;font-weight:700;display:inline-block}.wb-pending .te-amount{color:var(--muted);opacity:.6}.te-paid-tag{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.4px;color:var(--success);background:var(--success-tint);border-radius:var(--radius-xs);margin-left:8px;padding:1px 6px;font-weight:700;display:inline-block}.wb-paid{background:var(--success-tint)}.te-self-tag{font-size:var(--fs-xs);cursor:help;color:var(--muted);margin-left:6px;display:inline-block}.wb-check-cell{text-align:center;width:28px}.wb-day-mark{margin-left:auto}.wb-approve{margin-right:4px}.filter-count{min-width:16px;font-size:var(--fs-xs);color:var(--on-dark);background:var(--danger);border-radius:var(--radius-sm);margin-left:6px;padding:0 5px;font-weight:800;display:inline-block}.worker-pending-dot{background:var(--danger);vertical-align:middle;border-radius:50%;width:9px;height:9px;margin-left:8px;display:inline-block}.filelist-list{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}.filelist-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);flex-wrap:wrap;align-items:center;gap:8px 10px;padding:8px 11px;display:flex}.filelist-name{min-width:0;font-size:var(--fs-base);text-overflow:ellipsis;white-space:nowrap;flex:140px;font-weight:600;overflow:hidden}.fab-instr-badge{cursor:pointer;border:none;flex-shrink:0;font-family:inherit}.filelist-name-input{flex:1;min-width:0}.filelist-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.filelist-add{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filelist-add .filelist-name-input{flex:200px}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-bottom:10px;display:grid}.photo-tile{aspect-ratio:1;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);cursor:pointer;position:relative;overflow:hidden}.photo-tile.is-dragging{opacity:.4}.photo-tile.is-dragover{outline:2px solid var(--primary);outline-offset:-2px}.photo-tile-img,.photo-tile-ph{object-fit:cover;width:100%;height:100%;display:block}.photo-tile-ph{background:var(--surface-3)}.photo-tile-badge{width:100%;height:100%;font-size:var(--fs-sm);letter-spacing:.06em;color:var(--muted);justify-content:center;align-items:center;font-weight:700;display:inline-flex}.photo-tile-grip{font-size:var(--fs-base);color:var(--on-dark);text-shadow:0 1px 3px rgba(var(--navy-rgb), .75);cursor:grab;pointer-events:none;line-height:1;position:absolute;top:5px;left:6px}.photo-tile-del{border-radius:var(--radius-sm);background:rgba(var(--navy-rgb), .62);width:26px;height:26px;color:var(--on-dark);cursor:pointer;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:5px;right:5px}.photo-tile-del-tl{left:5px;right:auto}.photo-tile-del:hover:not(:disabled){background:var(--danger)}.photo-tile-del:disabled{opacity:.5;cursor:default}.lightbox{z-index:var(--z-lightbox);background:rgba(var(--navy-rgb), .92);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox-img{object-fit:contain;border-radius:var(--radius);max-width:90vw;max-height:88vh;box-shadow:var(--shadow-hover)}.lightbox-loading{color:var(--on-dark);font-size:var(--fs-base)}.lightbox-close,.lightbox-prev,.lightbox-next{background:rgba(var(--white-rgb), .12);color:var(--on-dark);cursor:pointer;border:none;justify-content:center;align-items:center;line-height:1;display:inline-flex;position:absolute}.lightbox-close{border-radius:var(--radius-sm);width:40px;height:40px;font-size:var(--fs-xl);top:16px;right:18px}.lightbox-prev,.lightbox-next{border-radius:var(--radius);width:48px;height:64px;font-size:var(--fs-3xl);top:50%;transform:translateY(-50%)}.lightbox-prev{left:16px}.lightbox-next{right:16px}.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover{background:rgba(var(--white-rgb), .24)}.lightbox-count{color:var(--on-dark);font-size:var(--fs-base);opacity:.85;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.pub-lightbox{gap:10px}.pub-lightbox .lightbox-prev,.pub-lightbox .lightbox-next{flex:none;position:static;top:auto;left:auto;right:auto;transform:none}.pub-lightbox .lightbox-img{min-width:0}@media (width<=700px){.pub-lightbox{gap:6px}.pub-lightbox .lightbox-prev,.pub-lightbox .lightbox-next{width:34px;height:34px;font-size:var(--fs-xl);border-radius:var(--radius-sm)}.pub-lightbox .lightbox-img{max-height:74vh}.pub-lightbox .lightbox-close{width:44px;height:44px}}.side-menu-layout{grid-template-columns:184px 1fr;align-items:start;gap:20px;display:grid}.side-menu-slot,.side-menu-content{min-width:0}.side-menu{border-right:1px solid var(--border);flex-direction:column;gap:0;padding-right:14px;display:flex}.side-menu-item{border-radius:var(--radius-sm);width:100%;color:var(--text);font-size:var(--fs-base);text-align:left;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:10px 12px;font-weight:500;display:flex}.side-menu-item+.side-menu-item{border-top:1px solid var(--border)}.side-menu-item:hover{background:var(--surface-3)}.side-menu-item.active{background:var(--secondary-tint);color:var(--secondary-ink);box-shadow:var(--accent-rail)}.side-menu-label{flex:auto;min-width:0}.side-menu-count{font-size:var(--fs-xs);border-radius:var(--radius-xs);background:rgba(var(--navy-rgb), .08);color:var(--muted);flex:none;padding:1px 8px;font-weight:600}.side-menu-item.active .side-menu-count{background:rgba(var(--secondary-rgb), .22);color:var(--secondary-ink)}.side-menu-badge{background:var(--danger);color:var(--on-dark);font-size:var(--fs-xs);border-radius:var(--radius-sm);flex:none;justify-content:center;align-items:center;min-width:17px;height:17px;padding:0 5px;font-weight:800;display:inline-flex}.side-menu-slot--card{padding:16px 0 16px 16px}.side-menu--card{max-height:420px;overflow-y:auto}.side-menu-select{display:none}.side-menu-select-cap{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}.side-menu-select-input{width:100%;font-weight:600}@media (width<=899px){.side-menu-layout{grid-template-columns:1fr;gap:12px}.side-menu{display:none}.side-menu-select{flex-direction:column;gap:4px;display:flex}.side-menu-slot--card{padding:16px}}.photo-explorer{grid-template-columns:210px 1fr;gap:16px;display:grid}@media (width<=700px){.photo-explorer{grid-template-columns:1fr}.photo-sidebar{min-height:0}}.photo-sidebar{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);min-width:0;min-height:320px;padding:10px}.photo-add-room{align-items:center;gap:8px;margin-bottom:10px;display:flex}.photo-add-room select{flex:auto;min-width:0}.photo-add-room-form{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.photo-add-room-form input{flex:120px;min-width:0}.photo-rooms{flex-direction:column;gap:4px;display:flex}.photo-room{border-radius:var(--radius-sm);width:100%;font-size:var(--fs-base);color:var(--text);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:8px 10px;display:flex}.photo-room:hover{background:var(--surface-3)}.photo-room.active{background:var(--secondary-tint);color:var(--secondary-ink);box-shadow:var(--accent-rail)}.photo-room.photo-room-drop{outline:2px dashed var(--primary);outline-offset:-2px;background:var(--primary-tint)}.photo-room-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.photo-room-count{font-size:var(--fs-xs);opacity:.7}.photo-room-actions{gap:2px;display:inline-flex}.photo-room-act{border-radius:var(--radius);width:22px;height:22px;color:inherit;opacity:.6;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.photo-room-act:hover{opacity:1}.photo-main{flex-direction:column;min-width:0;min-height:320px;display:flex}.photo-main.attach-drag{outline:2px dashed var(--primary);outline-offset:4px;border-radius:var(--radius)}.photo-crumbs{font-size:var(--fs-base);align-items:center;gap:6px;margin-bottom:10px;display:flex}.photo-crumb{color:var(--muted);font-size:var(--fs-base);cursor:pointer;background:0 0;border:none;padding:0}.photo-crumb:hover:not(.is-current){color:var(--text);text-decoration:underline}.photo-crumb.is-current{color:var(--text);cursor:default;font-weight:600}.photo-crumb-sep{color:var(--muted)}.photo-empty{color:var(--muted);text-align:center;flex:auto;justify-content:center;align-items:center;padding:26px 0;display:flex}.panel-upload-footer{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;margin-top:40px;padding-top:14px;display:flex}@media (width<=767px){.panel-upload-footer{flex-direction:column;justify-content:flex-start;align-items:stretch}.panel-upload-footer>*{justify-content:center;width:100%}}.photo-compress-toggle{font-size:var(--fs-base);color:var(--text);align-items:center;gap:6px;display:inline-flex}.photo-viewer-body{gap:16px;width:92vw;max-width:1200px;max-height:88vh;display:flex}.photo-viewer-stage{flex:60%;justify-content:center;align-items:center;gap:10px;min-width:0;display:flex;position:relative}.photo-viewer .lightbox-prev,.photo-viewer .lightbox-next{width:34px;height:34px;font-size:var(--fs-xl);border-radius:var(--radius-sm);flex:none;position:static;top:auto;left:auto;right:auto;transform:none}.photo-viewer-img{object-fit:contain;border-radius:var(--radius);min-width:0;max-width:100%;max-height:88vh;box-shadow:var(--shadow-hover)}.photo-viewer-panel{background:var(--card);border-radius:var(--radius);flex:0 0 340px;max-width:360px;max-height:88vh;padding:16px;overflow-y:auto}@media (width<=900px){.photo-viewer{-webkit-overflow-scrolling:touch;align-items:flex-start;padding:56px 0 28px;overflow-y:auto}.photo-viewer-body{flex-direction:column;width:94vw;max-height:none}.photo-viewer-stage{flex-wrap:nowrap;flex:none;gap:6px;max-height:none}.photo-viewer-img{max-height:52vh}.photo-viewer .lightbox-prev,.photo-viewer .lightbox-next{width:30px;height:30px;font-size:var(--fs-xl)}.photo-viewer-panel{flex:none;max-width:none;max-height:none;overflow:visible}.photo-viewer .lightbox-close{width:44px;height:44px;z-index:var(--z-raised-2);position:fixed;top:8px;right:8px}.photo-viewer .lightbox-count{display:none}}.photo-windows{margin-top:14px}.photo-windows-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.photo-windows-title{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700}.photo-window{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:10px;padding:12px}.photo-window-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.photo-window-title{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700}.photo-window-label{max-width:180px}.photo-window-rows{flex-direction:column;gap:10px;display:flex}.photo-window-row{grid-template-columns:84px 1fr;align-items:start;gap:10px;display:grid}.photo-window-row>label{font-size:var(--fs-sm);color:var(--muted);padding-top:11px;font-weight:600}.photo-grow{width:100%;display:grid}.photo-grow:after{content:attr(data-replicated-value) " ";visibility:hidden}.photo-grow>textarea{resize:none;overflow:hidden}.photo-grow>textarea,.photo-grow:after{box-sizing:border-box;border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;min-height:0;font-family:inherit;font-size:var(--fs-base);white-space:pre-wrap;word-break:break-word;grid-area:1/1/2/2;padding:11px 13px;line-height:1.4}.photo-viewer-meta{font-size:var(--fs-sm);color:var(--muted);margin:6px 0 0}.photo-viewer-panel .fin-check{margin:10px 0 18px}.photo-viewer-actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.photo-card{padding-bottom:28px}.photo-inline-btn{border-radius:var(--radius);color:var(--muted);font-size:var(--fs-md);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:4px 7px;line-height:1}.photo-inline-btn:hover{color:var(--text);background:var(--surface-3)}.photo-inline-btn.is-confirm:hover{color:var(--success);background:var(--success-tint)}.photo-topbar{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.photo-topbar .photo-crumbs{margin-bottom:0}.photo-topbar-actions{align-items:center;gap:8px;display:flex}.btn.is-active{background:var(--text);color:var(--on-dark);border-color:var(--text)}.photo-actionbar{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-3);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;padding:8px 10px;display:flex}.photo-actionbar-count{font-size:var(--fs-base);color:var(--text);font-weight:600}.photo-actionbar-move{max-width:160px}.photo-gridwrap{min-height:120px;position:relative}.photo-gridwrap.is-marqueeing{-webkit-user-select:none;user-select:none}.photo-marquee{left:var(--mx,0);top:var(--my,0);width:var(--mw,0);height:var(--mh,0);border:1px solid var(--secondary);background:rgba(var(--secondary-rgb), .15);border-radius:var(--radius-xs);pointer-events:none;z-index:var(--z-raised-2);position:absolute}.photo-tile.is-selected{outline:2px solid var(--secondary);outline-offset:-2px}.photo-tile-check{background:var(--secondary);width:22px;height:22px;color:var(--sidebar);font-size:var(--fs-base);pointer-events:none;border-radius:50%;justify-content:center;align-items:center;line-height:1;display:inline-flex;position:absolute;top:5px;left:6px}.photo-tile-actions{opacity:0;gap:4px;transition:opacity .12s;display:flex;position:absolute;top:5px;right:5px}.photo-tile:hover .photo-tile-actions,.photo-tile-actions:focus-within{opacity:1}.photo-tile-btn{border-radius:var(--radius-sm);background:rgba(var(--navy-rgb), .62);width:26px;height:26px;color:var(--on-dark);cursor:pointer;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.photo-tile-btn:hover:not(:disabled){background:rgba(var(--navy-rgb), .85)}.photo-tile-btn:disabled{opacity:.5;cursor:default}.photo-tile-btn-del:hover:not(:disabled){background:var(--danger)}.photo-notice{border-radius:var(--radius-sm);background:var(--primary-tint);color:var(--primary);font-size:var(--fs-base);margin:8px 0 0;padding:8px 12px}.link-list{flex-direction:column;gap:8px;margin-bottom:10px;display:flex}.link-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);flex-wrap:wrap;align-items:center;gap:8px 10px;padding:8px 11px;display:flex}.link-row--edit{flex-direction:column;align-items:stretch}.link-reorder{flex-direction:column;flex-shrink:0;gap:1px;display:flex}.link-reorder .icon-btn{width:22px;height:18px;font-size:var(--fs-sm);line-height:1}.link-label{min-width:0;font-size:var(--fs-base);color:var(--blue-badge-fg);text-overflow:ellipsis;white-space:nowrap;flex:140px;font-weight:600;text-decoration:none;overflow:hidden}.link-label:hover{text-decoration:underline}.link-actions{flex-shrink:0;align-items:center;gap:4px;margin-left:auto;display:flex}.link-add{flex-direction:column;gap:8px;display:flex}.link-add-fields{flex-wrap:wrap;gap:8px;display:flex}.link-add-fields .filelist-name-input{flex:160px}.link-add .btn{align-self:flex-start}.checkbox-list{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);flex-direction:column;gap:2px;max-height:200px;padding:6px;display:flex;overflow-y:auto}.checkbox-item{border-radius:var(--radius-sm);font-size:var(--fs-base);cursor:pointer;align-items:center;gap:10px;padding:8px 10px;font-weight:600;display:flex}.checkbox-item:hover{background:var(--card)}.checkbox-item input{width:16px;height:16px;accent-color:var(--primary);cursor:pointer}.wb-table{border-collapse:collapse;width:100%}.wb-table td{font-size:var(--fs-sm);padding:11px 16px}.wb-table thead th{padding:12px 16px}.wb-day-row>td{padding:0}.wb-day-bar{background:var(--surface-3);font-weight:700;font-size:var(--fs-sm);color:var(--text);justify-content:space-between;align-items:center;padding:9px 16px;display:flex}.wb-total-row td{background:var(--surface-2);color:var(--text);font-weight:700}.wb-week-total-row td{background:var(--surface-3);border-top:2px solid var(--border);font-weight:800}.wb-highlight td{background:rgba(var(--danger-rgb), .12)}.wb-del{color:var(--muted);cursor:pointer;opacity:.6;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;transition:color .15s,opacity .15s;display:inline-flex}.wb-del:hover{color:var(--danger);opacity:1}.wb-edit:hover{color:var(--sidebar);opacity:1}.weeks-table td{font-size:var(--fs-base)}.weeks-table .td-icon{color:var(--muted);font-weight:700}.weeks-table tr.clickable:hover .td-icon{color:var(--sidebar)}.weeks-table tr.week-unpaid td{color:var(--danger)}.step.selected .step-dot{border-color:var(--secondary);box-shadow:0 0 0 4px rgba(var(--secondary-rgb), .32)}.step.selected .step-label{color:var(--sidebar);font-weight:700}.step.readonly.selected{cursor:pointer}.client-notes-card{background:var(--secondary-tint);border:1px solid var(--secondary-tint);border-radius:var(--radius);margin-top:18px;padding:18px 20px}.client-notes-title{font-size:var(--fs-base);color:var(--sidebar);margin:0 0 8px;font-weight:800}.client-notes-body{font-size:var(--fs-base);color:var(--text);white-space:pre-wrap;margin:0;line-height:1.55}.drawer-current{margin-top:12px;padding-bottom:8px}.drawer-save-row{flex-wrap:wrap;gap:10px;margin-top:24px;display:flex}.drawer-saved{z-index:var(--z-modal);background:var(--success-tint);color:var(--success);border:1px solid var(--success);border-radius:var(--radius-sm);font-weight:600;font-size:var(--fs-sm);box-shadow:0 4px 14px rgba(var(--black-rgb), .12);padding:6px 14px;animation:.18s ease-out drawer-saved-in;position:fixed;top:20px;right:64px}@keyframes drawer-saved-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media (width<=767px){.drawer-saved{text-align:center;box-shadow:none;margin-top:14px;animation:none;position:static}.drawer-save-row{flex-direction:column}.drawer-save-row .btn,.drawer-current .btn{width:100%}}.step.gray .step-dot{background:var(--card);border-color:var(--border);color:var(--muted)}.step.outline .step-dot{background:var(--card);border-color:var(--secondary);color:var(--secondary-ink)}.step.filled .step-dot{background:var(--secondary);border-color:var(--secondary);color:var(--sidebar)}.step.active .step-dot{box-shadow:0 0 0 2px var(--card), 0 0 0 4px var(--sidebar)}.step.active .step-label{color:var(--sidebar);font-weight:700}.btn-outline{background:var(--card);color:var(--muted-2);border:1.5px solid var(--border)}.btn-outline:hover{background:var(--bg);border-color:var(--border-2)}.btn-danger-outline{background:var(--card);color:var(--danger);border:1.5px solid var(--danger)}.btn-danger-outline:hover{background:var(--danger-tint)}.drawer-future-msg{text-align:center;color:var(--muted);font-size:var(--fs-base);margin:0;padding:12px;font-weight:600}.icon-btn-sm{color:var(--muted);border-radius:var(--radius);background:0 0;border:none;flex-shrink:0;align-items:center;padding:4px;display:inline-flex}.icon-btn-sm:hover{color:var(--danger);background:var(--danger-tint)}.doc-card{padding:16px}.doc-controls{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.doc-group-title{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:14px 0 6px;font-weight:600}.doc-row{border:1px solid var(--border);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;padding:8px 10px;display:flex}.doc-row-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--fs-base);overflow:hidden}.doc-row-actions{flex-shrink:0;gap:4px;display:inline-flex}.doc-row-actions .icon-btn-sm:hover{color:var(--sidebar);background:var(--bg)}.doc-empty{padding:8px 2px}.access-new-role{align-items:center;gap:10px;margin-bottom:12px;padding:12px 16px;display:flex}.access-new-role input{flex:1;min-width:0}.access-role,.access-worker{margin-bottom:10px;padding:14px 16px}.access-role-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:10px;display:flex}.access-role-name{flex:1;min-width:120px;font-weight:600}.access-admin-flag{font-size:var(--fs-base);white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.access-badge{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border:1px solid var(--border);border-radius:var(--radius-xs);padding:1px 8px}.access-role-del{margin-left:auto}.access-grid{flex-wrap:wrap;gap:8px;display:flex}.access-chip{border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--fs-base);cursor:pointer;align-items:center;gap:6px;padding:6px 10px;display:inline-flex}.access-chip.on{background:var(--blue-badge-bg);border-color:var(--blue-badge-fg);color:var(--blue-badge-fg)}.access-chip.locked{opacity:.6;cursor:not-allowed}.access-worker-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.access-worker-name{flex:1;min-width:120px;font-weight:600}.access-worker-head select{width:auto;min-width:140px}.access-overrides{border-top:1px solid var(--border);flex-direction:column;gap:6px;margin-top:12px;padding-top:10px;display:flex}.access-ov-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.access-ov-label{font-size:var(--fs-base)}.access-ov-base{color:var(--muted);font-size:var(--fs-sm)}.access-ov-seg{flex-shrink:0}.access-ov-title{font-weight:600;font-size:var(--fs-base);margin-bottom:8px}.access-ov-note{font-size:var(--fs-sm);color:var(--muted);margin-top:10px}.access-uionly-hint{border-left:3px solid var(--primary);padding-left:10px}.access-panel-role{max-width:320px;margin-bottom:14px}.panel-tree,.panel-node{flex-direction:column;gap:8px;display:flex}.panel-children{border-left:2px solid var(--border);flex-wrap:wrap;gap:8px;margin-left:22px;padding-left:12px;display:flex}.stage-config-list{flex-direction:column;gap:4px;margin:8px 0 4px;display:flex}.stage-config-row{border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--fs-base);cursor:pointer;align-items:center;gap:10px;padding:8px 10px;display:flex}.stage-config-row.off{opacity:.55}.stage-config-name{flex:1}.item-photo-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.dispose-row{border:1px solid var(--border);border-radius:var(--radius-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;padding:10px;display:flex}.dispose-info{flex-direction:column;gap:2px;min-width:0;display:flex}.dispose-name{font-weight:600;font-size:var(--fs-base)}.dispose-actions,.dispose-sell{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.dispose-sell input{width:110px}.dispose-done{color:var(--muted);font-size:var(--fs-base);font-weight:600}.mat-list{flex-direction:column;gap:2px;margin-top:10px;display:flex}.mat-row{border-radius:var(--radius-sm);font-size:var(--fs-base);justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.mat-row:hover{background:var(--surface-2)}.mat-link{color:var(--blue-badge-fg);font-weight:600;text-decoration:none}.mat-link:hover{text-decoration:underline}.cn-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:8px;padding:9px 10px;display:flex}.cn-content{font-size:var(--fs-base);white-space:pre-wrap;line-height:1.45}.cn-actions{flex-shrink:0;gap:4px;display:flex}.cn-edit{gap:8px;margin-bottom:8px;display:flex}.cn-edit input,.cn-edit textarea{flex:1;min-width:0}.unread-dot{background:var(--danger);vertical-align:middle;border-radius:50%;width:9px;height:9px;margin-left:8px;display:inline-block}.msg-card{padding:0;overflow:hidden}.msg-thread{flex-direction:column;gap:12px;max-height:420px;padding:20px;display:flex;overflow-y:auto}.msg{display:flex}.msg.admin{justify-content:flex-start}.msg.client{justify-content:flex-end}.msg-bubble{border-radius:var(--radius);max-width:90%;padding:10px 14px}.msg.admin .msg-bubble{background:var(--sidebar);color:var(--on-dark);border-bottom-left-radius:4px}.msg.client .msg-bubble{background:var(--primary-tint);color:var(--text);border-bottom-right-radius:var(--radius-xs)}.msg-author{font-size:var(--fs-xs);letter-spacing:.3px;text-transform:uppercase;opacity:.75;margin-bottom:3px;font-weight:800}.msg-via-email{font-size:var(--fs-xs);opacity:.8;overflow-wrap:anywhere;margin-bottom:5px}.msg-email-tag{border-radius:var(--radius-xs);letter-spacing:.2px;border:1px solid;margin-right:5px;padding:0 5px;font-weight:700;display:inline-block}.msg-content{font-size:var(--fs-base);white-space:pre-wrap;line-height:1.45}.msg-time{font-size:var(--fs-xs);opacity:.65;margin-top:5px}.msg-empty{text-align:center;color:var(--muted);font-size:var(--fs-base);margin:0;padding:28px 20px}.msg-composer{border-top:1px solid var(--border);align-items:flex-end;gap:10px;padding:14px;display:flex}.msg-composer textarea{resize:vertical;flex:1;min-height:44px}.msg-composer .btn{flex-shrink:0}.public-discussion{border-top:1px solid var(--border);margin-top:18px;padding-top:16px}.public-discussion .msg-thread,.public-card>.msg-thread{padding:4px 0 12px}.public-discussion .msg-composer,.public-card>.msg-composer{border-top:none;padding:0}.slot-card{border-top:1px solid var(--border);margin-top:18px;padding-top:16px}.slot-booked{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);margin:8px 0 4px;padding:12px 14px}.slot-booked-when{color:var(--text);font-weight:600}.slot-options{flex-direction:column;gap:8px;margin:8px 0 4px;display:flex}.slot-option{text-align:left;border:1px solid var(--border-2);border-radius:var(--radius-sm);background:var(--card);width:100%;color:var(--text);cursor:pointer;font:inherit;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;transition:border-color .12s,background .12s;display:flex}.slot-option:hover:not(:disabled){border-color:var(--primary);background:var(--primary-tint)}.slot-option:disabled{opacity:.6;cursor:default}.slot-option-when{font-weight:600}.slot-option-type{color:var(--muted);font-size:.9em}.slot-error{color:var(--danger);margin:8px 0 0;font-size:.92em}.pub-files-tools{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;display:flex}.pub-select-all{font-size:var(--fs-base);color:var(--text);cursor:pointer;align-items:center;gap:8px;font-weight:600;display:inline-flex}.pub-select-all input{width:17px;height:17px}.pub-files-dl{margin-left:auto}.pub-files-skipped{border:1px solid var(--orange-badge-fg);border-radius:var(--radius-sm);background:var(--orange-badge-bg);color:var(--orange-badge-fg);font-size:var(--fs-base);margin-bottom:12px;padding:8px 11px}.pub-photo-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-bottom:16px;display:grid}.pub-photo-tile{aspect-ratio:1;position:relative}.pub-photo-img-btn{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);cursor:pointer;width:100%;height:100%;padding:0;display:block;overflow:hidden}.pub-photo-img,.pub-photo-ph{object-fit:cover;width:100%;height:100%;display:block}.pub-photo-ph{background:var(--surface-3)}.pub-photo-check{border-radius:var(--radius-sm);background:rgba(var(--white-rgb), .9);box-shadow:0 1px 3px rgba(var(--navy-rgb), .25);cursor:pointer;padding:4px;display:inline-flex;position:absolute;top:6px;left:6px}.pub-photo-check input{cursor:pointer;width:18px;height:18px;display:block}.pub-photo-groups{margin-bottom:16px}.pub-photo-group+.pub-photo-group{margin-top:14px}.pub-photo-group-title{font-size:var(--fs-base);letter-spacing:.02em;color:var(--muted);margin:0 0 8px;font-weight:700}.pub-photo-group .pub-photo-grid{margin-bottom:0}.pub-doc-list{flex-direction:column;gap:8px;margin-bottom:16px;display:flex}.pub-doc-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);flex-wrap:wrap;align-items:center;gap:8px 10px;padding:9px 11px;display:flex}.pub-doc-check{cursor:pointer;flex-shrink:0;display:inline-flex}.pub-doc-check input{cursor:pointer;width:18px;height:18px}.pub-doc-name{min-width:0;font-size:var(--fs-base);text-overflow:ellipsis;white-space:nowrap;flex:140px;font-weight:600;overflow:hidden}.pub-doc-actions{flex-shrink:0;align-items:center;gap:6px;margin-left:auto;display:flex}.pub-link-list{flex-direction:column;gap:8px;display:flex}.pub-link-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-2);padding:9px 11px}.pub-link{font-size:var(--fs-base);color:var(--blue-badge-fg);word-break:break-word;font-weight:600;text-decoration:none}.pub-link:hover{text-decoration:underline}@media (width<=767px){.pub-photo-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr))}.pub-files-dl{width:100%;margin-left:0}}.mobile-topbar,.logo-mono{display:none}@keyframes page-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes modal-pop{0%{opacity:0;transform:translateY(20px)scale(.97)}to{opacity:1;transform:none}}@keyframes backdrop-fade{0%{opacity:0}to{opacity:1}}@keyframes badge-fade{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}@media (width<=1023px){.app{display:block}.sidebar{display:none}.mobile-topbar{background:var(--sidebar);height:52px;color:var(--on-dark);z-index:var(--z-topbar);justify-content:space-between;align-items:center;padding:0 12px;display:flex;position:fixed;top:0;left:0;right:0}.mtb-logo{font-weight:800;font-size:var(--fs-base);letter-spacing:1.2px;color:var(--secondary)}.mtb-logo span{opacity:.85}.mtb-btn{color:var(--on-dark);font-size:var(--fs-base);background:0 0;border:none;align-items:center;gap:3px;min-height:44px;padding:0 6px;font-weight:700;display:inline-flex}.mtb-chevron{font-size:var(--fs-2xl);color:var(--primary);line-height:1}.mtb-burger{font-size:var(--fs-xl);line-height:1}.burger-backdrop{background:rgba(var(--black-rgb), .42);z-index:var(--z-burger);position:fixed;inset:0}.burger-panel{background:var(--sidebar);width:78%;max-width:320px;color:var(--on-dark);box-shadow:-4px 0 24px rgba(var(--black-rgb), .3);z-index:var(--z-burger-top);flex-direction:column;animation:.2s ease-out burger-in;display:flex;position:fixed;top:0;bottom:0;right:0}.burger-panel-head{border-bottom:1px solid rgba(var(--white-rgb), .12);justify-content:space-between;align-items:center;height:52px;padding:0 12px;display:flex}.burger-nav{flex:1;padding:10px 0;overflow-y:auto}.burger-item{width:100%;font-size:var(--fs-md);color:rgba(var(--white-rgb), .72);text-align:left;background:0 0;border:none;align-items:center;gap:12px;padding:13px 18px;font-weight:600;display:flex}.burger-item.active{color:var(--sidebar);background:var(--secondary)}.burger-footer{border-top:1px solid rgba(var(--white-rgb), .12);padding:8px 0 calc(8px + env(safe-area-inset-bottom))}.burger-logout{color:rgba(var(--white-rgb), .72)}@keyframes burger-in{0%{transform:translate(100%)}to{transform:none}}.main{max-width:none;margin-left:0;padding:68px 16px 40px}.page-anim{animation:.22s ease-out page-in}.page-head{flex-wrap:wrap;gap:12px}}@media (width<=767px){.grid,.proj-grid{grid-template-columns:1fr}.card{padding:16px;transition:transform .1s,box-shadow .15s}.card.clickable:active{transform:scale(.98)}.status-badge{animation:.3s badge-fade}.pills{grid-template-columns:repeat(2,1fr)}.donut-wrap{justify-content:center;gap:22px}.donut-wrap>svg{width:100%;max-width:220px;height:auto}.donut-legend.two-col{grid-template-columns:1fr}.week-body{overflow-x:visible}.wb-table,.wb-table tbody{width:100%;min-width:0;display:block}.wb-table thead{display:none}.wb-day-row,.wb-day-row>td{border:none;padding:0;display:block}.wb-day-row{margin:14px 0 8px}.wb-table tbody tr:not(.wb-day-row):not(.wb-total-row){border:1px solid var(--border);background:var(--card);margin-bottom:10px;padding:6px 12px;display:block;position:relative}.wb-table tbody tr:not(.wb-day-row):not(.wb-total-row)>td{text-align:right;border:none;justify-content:space-between;align-items:baseline;gap:14px;padding:5px 0;display:flex}.wb-table tbody tr:not(.wb-day-row):not(.wb-total-row)>td:before{content:attr(data-label);color:var(--muted);text-align:left;flex-shrink:0;font-weight:600}.wb-highlight td{background:0 0}.wb-table tbody tr.wb-highlight:not(.wb-day-row):not(.wb-total-row){border-color:var(--primary);background:var(--secondary-tint)}.wb-del-cell{position:absolute;top:6px;right:8px;padding:0!important}.wb-del-cell:before{content:none!important}.wb-total-row{background:var(--surface-2);border:1px solid var(--border);justify-content:space-between;gap:12px;margin-bottom:16px;padding:8px 12px;display:flex}.wb-total-row td{border:none;padding:0}.wb-total-row td:nth-child(2),.wb-total-row td:nth-child(3),.wb-total-row td:nth-child(4),.wb-total-row td:nth-child(5),.wb-total-row td:nth-child(8){display:none}.wb-total-row td:first-child{flex:1}.wb-total-row td:nth-child(6):before,.wb-total-row td:nth-child(7):before{content:attr(data-label) " ";color:var(--muted);font-weight:600}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.worker-row{flex-wrap:wrap;gap:12px}.worker-row-info{flex:1;min-width:0}.worker-row-stats{justify-content:space-between;gap:16px;width:100%;margin-left:0}.worker-row-action{border-left:none;border-top:1px solid var(--border);flex-direction:row;width:100%;padding-top:12px;padding-left:0}.worker-row-action .btn{flex:1}.worker-detail-head{flex-wrap:wrap}.head-btns{width:100%}.head-btns .btn{flex:1}.modal-backdrop{background:rgba(var(--black-rgb), .5);align-items:flex-end;padding:0;animation:.2s backdrop-fade}.modal{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:100%;max-height:90vh;padding:26px 18px calc(22px + env(safe-area-inset-bottom));animation:.3s cubic-bezier(.32,.72,0,1) sheet-up;position:relative;overflow-y:auto}.modal:before,.drawer:before{content:"";border-radius:var(--radius-xs);background:var(--border-2);width:32px;height:4px;position:absolute;top:9px;left:50%;transform:translate(-50%)}.modal-confirm{max-width:100%}.drawer-backdrop{background:rgba(var(--black-rgb), .5);justify-content:center;align-items:flex-end;animation:.2s backdrop-fade}.drawer{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;min-width:0;height:auto;max-height:90vh;padding:28px 18px calc(22px + env(safe-area-inset-bottom));animation:.3s cubic-bezier(.32,.72,0,1) sheet-up;position:relative}input,textarea,select{font-size:var(--fs-lg)!important}.btn,.nav-item,.burger-item,.mtb-btn,.filter-btn{min-height:44px}.msg-bubble{max-width:84%}.toolbar{flex-direction:column;align-items:stretch}.filter-group{justify-content:space-between}.search-suggest-wrap{min-width:0}}@media (width>=768px) and (width<=1024px) and (orientation:portrait){.drawer-backdrop{background:rgba(var(--black-rgb), .5);justify-content:center;align-items:flex-end;animation:.2s backdrop-fade}.drawer{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;min-width:0;height:auto;max-height:90vh;padding:28px 18px calc(22px + env(safe-area-inset-bottom));animation:.3s cubic-bezier(.32,.72,0,1) sheet-up;position:relative}.drawer:before{content:"";border-radius:var(--radius-xs);background:var(--border-2);width:32px;height:4px;position:absolute;top:9px;left:50%;transform:translate(-50%)}.drawer-save-row{flex-direction:column}.drawer-save-row .btn,.drawer-current .btn{width:100%}.drawer-saved{text-align:center;box-shadow:none;margin-top:14px;animation:none;position:static}}@media (width>=1024px) and (width<=1366px) and (orientation:landscape){.drawer{width:60vw}}@media (width<=767px){.fin-figures{grid-template-columns:repeat(2,1fr);gap:14px}.fin-add-row{grid-template-columns:1fr}.budget-details-modal table,.budget-details-modal tbody{width:100%;display:block}.budget-details-modal thead{display:none}.budget-details-modal tbody tr{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);margin-bottom:10px;padding:6px 12px;display:block}.budget-details-modal tbody td{text-align:right;white-space:normal;border:none;justify-content:space-between;align-items:baseline;gap:14px;padding:6px 0;display:flex}.budget-details-modal tbody td:before{content:attr(data-label);color:var(--muted);text-align:left;flex-shrink:0;font-weight:600}.budget-details-modal tbody td.inv-actions-cell{justify-content:flex-end;padding-top:4px}.budget-details-modal tbody td.inv-actions-cell:before{content:none}}.cal-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.cal-toolbar-left,.cal-toolbar-right{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cal-seg{gap:4px;display:flex}.cal-weekdays{grid-template-columns:repeat(7,1fr);display:grid}.cal-weekday{text-align:left;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:6px 4px;font-weight:700}.cal-grid{background:var(--border);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:repeat(7,1fr);gap:1px;display:grid;overflow:hidden}.cal-cell{background:var(--card);cursor:pointer;flex-direction:column;gap:3px;min-height:112px;padding:4px 5px 6px;display:flex;overflow:hidden}.cal-cell.cal-other{background:var(--surface-2);color:var(--muted)}.cal-cell-date{width:24px;height:24px;color:inherit;font-size:var(--fs-sm);border-radius:var(--radius-pill);cursor:pointer;background:0 0;border:none;justify-content:center;align-self:flex-start;align-items:center;font-weight:700;display:inline-flex}.cal-cell.cal-today .cal-cell-date{background:var(--primary);color:var(--on-dark)}.cal-cell-items{flex-direction:column;gap:2px;display:flex;overflow:hidden}.cal-chip{text-align:left;border:none;border-left:3px solid var(--primary);background:var(--surface-3);color:var(--text);border-radius:var(--radius-sm);font-size:var(--fs-xs);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;padding:1px 6px;overflow:hidden}.cal-chip-time{color:var(--muted);font-weight:700}.cal-cell-todo{font-size:var(--fs-xs);align-items:center;gap:5px;display:flex;overflow:hidden}.cal-cell-todo-text{min-width:0;color:inherit;text-align:left;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;flex:1;overflow:hidden}.cal-cell-todo.done .cal-cell-todo-text{color:var(--muted);text-decoration:line-through}.cal-week-head{display:flex}.cal-gutter-spacer{flex-shrink:0;width:56px}.cal-dayhead{border-left:1px solid var(--border);flex:1;min-width:0;padding:4px}.cal-dayhead-btn{cursor:pointer;width:100%;color:inherit;background:0 0;border:none;flex-direction:column;align-items:center;gap:1px;display:flex}.cal-dayhead-wd{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:700}.cal-dayhead-num{font-size:var(--fs-lg);border-radius:var(--radius-pill);justify-content:center;align-items:center;width:30px;height:30px;font-weight:800;display:inline-flex}.cal-dayhead.cal-today .cal-dayhead-num{background:var(--primary);color:var(--on-dark)}.cal-daytasks{flex-direction:column;gap:2px;margin-top:5px;display:flex}.cal-timegrid{--cal-hour-h:44px;border:1px solid var(--border);border-radius:var(--radius);height:62vh;display:flex;overflow-y:auto}.cal-hours{width:56px;height:calc(24 * var(--cal-hour-h));flex-shrink:0}.cal-hour{height:var(--cal-hour-h);border-top:1px solid var(--border);position:relative}.cal-hour:first-child{border-top:none}.cal-hour-label{font-size:var(--fs-xs);color:var(--muted);background:var(--card);padding:0 2px;position:absolute;top:-7px;right:6px}.cal-col{min-width:0;height:calc(24 * var(--cal-hour-h));border-left:1px solid var(--border);cursor:pointer;background-image:repeating-linear-gradient(to bottom, var(--border) 0, var(--border) 1px, transparent 1px, transparent var(--cal-hour-h));flex:1;position:relative}.cal-col.cal-today{background-color:rgba(var(--primary-rgb), .04)}.cal-meeting{left:3px;right:3px;top:var(--cal-top);height:var(--cal-height);min-height:22px;z-index:var(--z-raised-2);text-align:left;cursor:pointer;background:var(--surface-3);border:none;border-left:3px solid var(--primary);border-radius:var(--radius-sm);flex-direction:column;gap:1px;padding:2px 6px;display:flex;position:absolute;overflow:hidden}.cal-meeting-time{font-size:var(--fs-xs);color:var(--muted);font-weight:700}.cal-meeting-title{font-size:var(--fs-sm);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.cal-meeting-sub{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.cal-now{left:0;right:0;top:var(--cal-top);border-top:2px solid var(--danger);z-index:var(--z-raised-3);position:absolute}.cal-day{align-items:flex-start;display:flex}.cal-day-left{flex:1;min-width:0}.cal-day-divider{background:var(--border);align-self:stretch;width:1px;margin:0 16px}.cal-day-right{flex-shrink:0;width:320px}.cal-todos{flex-direction:column;display:flex}.cal-todo-row{border-bottom:1px solid var(--border);align-items:flex-end;gap:8px;padding:3px 0;display:flex}.cal-todo-circle{border:1.5px solid var(--muted);cursor:pointer;background:0 0;border-radius:50%;flex-shrink:0;align-self:flex-start;width:18px;height:18px;margin-top:3px;padding:0}.cal-todo-circle.done{background:var(--primary);border-color:var(--primary)}.cal-todo-grow{flex:1;min-width:0;display:grid}.cal-todo-grow:after{content:attr(data-value) " ";visibility:hidden;white-space:pre-wrap;word-break:break-word;font:inherit;grid-area:1/1;padding:2px 0;line-height:1.5}.cal-todo-input{resize:none;width:100%;font:inherit;color:var(--text);background:0 0;border:none;grid-area:1/1;padding:2px 0;line-height:1.5;overflow:hidden}.cal-todo-input:focus{outline:none}.cal-todo-row.done .cal-todo-input{color:var(--muted);text-decoration:line-through}.cal-todo-x{color:var(--muted);font-size:var(--fs-lg);cursor:pointer;background:0 0;border:none;align-self:flex-end;padding:0 2px;line-height:1}.cal-todo-x:hover{color:var(--danger)}.cal-todo-err{color:var(--danger);font-size:var(--fs-lg);align-self:center;line-height:1}.cal-offer-banner{border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--radius);background:var(--surface-2);font-size:var(--fs-sm);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:10px 14px;display:flex}.cal-slot-tag{border-radius:var(--radius-sm);background:var(--primary);color:var(--on-dark);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.4px;vertical-align:middle;margin-right:5px;padding:0 5px;font-weight:700;display:inline-block}.cal-meeting-slot,.cal-chip-slot{border-left-color:var(--success)}.cal-chooser{gap:10px;margin:10px 0 4px;display:flex}.cal-chooser .btn{flex:1}@media (width<=767px){.cal-day{flex-direction:column}.cal-day-divider{align-self:stretch;width:auto;height:1px;margin:16px 0}.cal-day-right{width:100%}.cal-cell{min-height:78px}}.time-err{margin:0}.time-loading{text-align:center;color:var(--muted);padding:40px 0}.time-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:20px 16px;display:flex}.time-card-proj{font-weight:700;font-size:var(--fs-xl);color:var(--text)}.time-card-task{font-size:var(--fs-base);color:var(--muted-2)}.time-elapsed{font-variant-numeric:tabular-nums;font-size:var(--fs-3xl);color:var(--primary);margin-top:6px;font-weight:700}.time-elapsed.on-break{color:var(--warning)}.time-since{font-size:var(--fs-sm);color:var(--muted)}.time-actions{flex-direction:column;gap:10px;width:100%;margin-top:12px;display:flex}.time-actions .btn{width:100%;font-size:var(--fs-md);padding:13px}.time-card-idle{padding:32px 16px}.time-idle-msg{color:var(--muted-2);font-size:var(--fs-md)}.time-clockin{width:100%;font-size:var(--fs-lg);margin-top:6px;padding:15px}.picker-list{flex-direction:column;gap:8px;max-height:55vh;margin:8px 0 0;padding:0;list-style:none;display:flex;overflow-y:auto}.picker-item{text-align:left;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;font-size:var(--fs-md);color:var(--text);padding:13px 14px}.picker-item:hover{background:var(--surface-3)}.picker-item:disabled{opacity:.5}.picker-item.picker-alt{color:var(--muted-2);font-style:italic}.file-row{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.file-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--fs-base);overflow:hidden}.worker-time{flex-direction:column;gap:18px;display:flex}.section-title-flush{margin:0}.worker-week-head{margin-bottom:14px}.wh-block-end{align-items:flex-end}.th-caret-col{width:28px}.muted-hint{font-size:13px}.muted-note{font-size:var(--fs-sm);margin:6px 0 0}.section-title-top{margin-top:24px}.section-head-top{margin-top:20px}.field-narrow{max-width:420px}.fab-consume-head label{margin:0}.u-mt-0{margin-top:0}.u-mt-14{margin-top:14px}.u-mb-14{margin-bottom:14px}.u-mb-16{margin-bottom:16px}.wb-check-col{width:28px}.wb-act-col{width:64px}.sidebar-user-link{text-align:left;background:0 0;border:none;width:100%;display:block}.sidebar-user-link:hover{color:var(--on-dark);text-decoration:underline}.burger-user{color:var(--text);border-bottom:1px solid var(--border);margin-bottom:6px;padding:10px 14px;font-weight:700}.worker-top{align-items:stretch;gap:16px;margin-bottom:18px;display:flex}.worker-top .pills{margin-bottom:0}.worker-stats{grid-template-columns:1fr 1fr}.worker-top .worker-stats{border-top:0;grid-template-rows:1fr 1fr;padding-top:0}.worker-top .worker-stats .pill{flex-direction:column;justify-content:center;display:flex}.worker-top .live-card-col{display:flex}.worker-top .live-card-col .time-card{justify-content:center;width:100%;margin:0}.time-card-sub{font-size:var(--fs-sm);color:var(--muted)}@media (width>=1024px){.worker-top{gap:10%}.worker-top .pills,.worker-top .live-card-col{flex:0 0 45%;max-width:45%}.worker-top .live-card-col .time-card{gap:8px;padding:14px}.worker-top .live-card-col .time-card-head{justify-content:center;align-items:baseline;gap:6px;max-width:100%;display:flex}.worker-top .live-card-col .time-card-head>*{min-width:0;font-size:var(--fs-base);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.worker-top .live-card-col .time-card-meta{justify-content:center;align-items:baseline;gap:10px;display:flex}.worker-top .live-card-col .time-elapsed{font-size:var(--fs-xl);margin-top:0}.worker-top .live-card-col .time-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;display:grid}.worker-top .live-card-col .time-actions .btn{font-size:var(--fs-sm);padding:8px 10px}.worker-top .live-card-col .time-card-idle{padding:14px}.worker-top .live-card-col .time-clockin{width:auto;font-size:var(--fs-sm);margin-top:0;padding:8px 10px}}@media (width<=1023px){.worker-top{flex-direction:column}.worker-top .live-card-col{order:-1}}.tsub-bar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:14px;display:flex}.tsub-bar .spacer{flex:auto}.stats-custom{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.stats-custom input[type=date]{width:auto}.stats-actions{white-space:nowrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.break-row{border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:8px;padding:10px 12px}
