@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+Thai:wght@300;400;500;600;700&family=Prompt:wght@400;500;600;700&display=swap";:root{--color-navy-deep:#071527;--color-navy:#0b1f3a;--color-navy-2:#122e55;--color-navy-line:#1f3a66;--color-navy-soft:#e6ecf5;--color-gold:#c9a227;--color-gold-strong:#a8871d;--color-gold-soft:#f6efd3;--color-gold-bg:#fbf6e2;--color-bg-page:#f5f6f8;--color-surface:#fff;--color-surface-soft:#f8fafc;--color-surface-muted:#f1f4f8;--color-overlay:#07152773;--color-border:#e5e7eb;--color-border-strong:#d6dce3;--color-divider:#eef1f5;--color-ink:#0f172a;--color-ink-strong:#0b1220;--color-ink-muted:#3f3f46;--color-ink-subtle:#52525b;--color-ink-faint:#71717a;--color-ink-on-navy:#f8fafc;--color-ink-on-navy-muted:#cbd5e1;--color-success:#15803d;--color-success-bg:#ecfdf3;--color-success-line:#bbe5c7;--color-warning:#854d0e;--color-warning-bg:#fefce8;--color-warning-line:#fde047;--color-danger:#991b1b;--color-danger-bg:#fef2f2;--color-danger-line:#fca5a5;--color-info:#1d4ed8;--color-info-bg:#eff6ff;--color-info-line:#bfdbfe;--color-waiting:#6d28d9;--color-waiting-bg:#f5f3ff;--color-waiting-line:#ddd6fe;--color-neutral:#52525b;--color-neutral-bg:#f4f4f5;--color-neutral-line:#e4e4e7;--color-teal:#0f766e;--color-teal-bg:#f0fdfa;--color-teal-line:#ccfbf1;--font-sans:"IBM Plex Sans Thai", "Prompt", "Noto Sans Thai", "Segoe UI", Tahoma, sans-serif;--font-size-page-title:28px;--font-size-section-title:18px;--font-size-card-number:32px;--font-size-body:14px;--font-size-table:13px;--font-size-label:12px;--font-size-small:11px;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--line-height-tight:1.25;--line-height-normal:1.5;--radius-input:8px;--radius-button:8px;--radius-card:12px;--radius-modal:16px;--radius-badge:999px;--shadow-card:0 1px 2px #0f172a0a, 0 1px 3px #0f172a0d;--shadow-card-hover:0 2px 6px #0f172a0f, 0 4px 10px #0f172a0d;--shadow-dropdown:0 8px 24px #0f172a1a;--shadow-modal:0 24px 48px #0f172a2e;--focus-ring:0 0 0 3px #0b1f3a59;--focus-ring-gold:0 0 0 3px #c9a22780;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-page-x:28px;--space-page-y:24px;--space-card:18px;--space-section:24px;--space-form-row:12px;--space-table-cell:12px;--motion-fast:.12s;--motion-normal:.2s;--motion-slow:.28s;--motion-modal:.24s;--ease-standard:cubic-bezier(.2, 0, 0, 1);--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--sidebar-width:252px;--topbar-height:64px;--container-max:1320px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:var(--font-sans)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes shakeInvalid{0%,to{transform:translate(0)}20%,60%{transform:translate(-4px)}40%,80%{transform:translate(4px)}}@keyframes highlightPulse{0%{background-color:var(--color-gold-bg)}to{background-color:#0000}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%}body{color:var(--color-ink);background:var(--color-bg-page);font-family:var(--font-sans);font-size:var(--font-size-body);line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}:focus-visible{box-shadow:var(--focus-ring);border-radius:6px;outline:none}.app-shell{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);min-height:100vh;display:grid}.sidebar{gap:var(--space-5);height:100vh;padding:var(--space-5) var(--space-4);color:var(--color-ink-on-navy);background:linear-gradient(180deg, var(--color-navy) 0%, var(--color-navy-deep) 100%);flex-direction:column;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar .brand{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-2);grid-template-columns:40px 1fr;display:grid}.sidebar .brand img,.login-copy img,.lead-public-card img{border-radius:var(--radius-input);object-fit:cover;background:var(--color-surface);width:40px;height:40px}.sidebar .brand strong{font-size:15px;font-weight:var(--font-weight-bold);color:var(--color-surface);display:block}.sidebar .brand small{font-size:var(--font-size-small);color:var(--color-ink-on-navy-muted);display:block}.nav-section{gap:var(--space-1);display:grid}.nav-section-title{padding:0 var(--space-3);color:var(--color-ink-on-navy-muted);font-size:10px;font-weight:var(--font-weight-bold);letter-spacing:.12em;text-transform:uppercase}.nav-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.nav-list a,.nav-list .nav-disabled{align-items:center;gap:var(--space-2);border-radius:var(--radius-input);padding:9px var(--space-3);color:var(--color-ink-on-navy-muted);font-size:13px;font-weight:var(--font-weight-semibold);transition:background var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard);display:flex;position:relative}.nav-list a:hover{color:var(--color-surface);background:#ffffff0f}.nav-list a.active{color:var(--color-surface);background:#ffffff14}.nav-list a.active:before{content:"";background:var(--color-gold);border-radius:999px;width:3px;position:absolute;top:8px;bottom:8px;left:-4px}.nav-list .nav-disabled{color:#b7c2d58c;cursor:not-allowed}.nav-list .nav-disabled small{border-radius:var(--radius-badge);color:var(--color-ink-on-navy-muted);font-size:9px;font-weight:var(--font-weight-bold);letter-spacing:.06em;text-transform:uppercase;background:#ffffff14;margin-left:auto;padding:2px 6px}.sidebar-footer{gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-card);background:#ffffff08;border:1px solid #ffffff14;margin-top:auto;display:grid}.sidebar-user{align-items:center;gap:var(--space-3);grid-template-columns:36px 1fr;display:grid}.sidebar-user-avatar{width:36px;height:36px;color:var(--color-navy-deep);background:var(--color-gold);font-weight:var(--font-weight-bold);border-radius:50%;place-items:center;font-size:14px;display:grid}.sidebar-user-meta strong{color:var(--color-surface);font-size:13px;display:block}.sidebar-user-meta small{color:var(--color-ink-on-navy-muted);font-size:var(--font-size-small);display:block}.logout-form{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.logout-form span{color:var(--color-ink-on-navy-muted);font-size:var(--font-size-small)}.logout-form button{border-radius:var(--radius-button);color:var(--color-surface);font-size:12px;font-weight:var(--font-weight-semibold);transition:background var(--motion-fast) var(--ease-standard);background:0 0;border:1px solid #ffffff2e;padding:6px 12px}.logout-form button:hover{background:#ffffff14}.main-panel{background:var(--color-bg-page);flex-direction:column;min-width:0;display:flex}.topbar{z-index:10;align-items:center;gap:var(--space-4);height:var(--topbar-height);padding:0 var(--space-page-x);background:var(--color-surface);border-bottom:1px solid var(--color-border);grid-template-columns:minmax(220px,1fr) minmax(220px,480px) auto;display:grid;position:sticky;top:0}.topbar-heading h1{color:var(--color-ink-strong);font-size:18px;font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);margin:0}.topbar-heading .eyebrow{color:var(--color-gold-strong);font-size:10px;font-weight:var(--font-weight-bold);letter-spacing:.1em;text-transform:uppercase;margin:0 0 2px}.topbar-search{align-items:center;gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-input);background:var(--color-surface-soft);height:38px;color:var(--color-ink-muted);transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard);padding:0 12px;font-size:13px;display:flex;position:relative}.topbar-search:hover{background:var(--color-surface-muted)}.topbar-search:focus-within{border-color:var(--color-navy-2);background:var(--color-surface);box-shadow:var(--focus-ring)}.topbar-search svg{color:var(--color-ink-faint);flex:0 0 16px}.topbar-search input{color:var(--color-ink);background:0 0;border:0;flex:1;padding:0;font-size:13px}.topbar-search input::placeholder{color:var(--color-ink-faint)}.topbar-search kbd{background:var(--color-surface-muted);border:1px solid var(--color-border);color:var(--color-ink-muted);font-family:inherit;font-size:10px;font-weight:var(--font-weight-semibold);border-radius:4px;align-items:center;padding:2px 6px;display:inline-flex}.topbar-actions{align-items:center;gap:var(--space-2);display:flex}.topbar-search-wrapper{position:relative}.topbar-search-results{z-index:30;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);max-height:480px;box-shadow:var(--shadow-dropdown);animation:fadeIn var(--motion-fast) var(--ease-standard);position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.search-group{border-bottom:1px solid var(--color-divider);padding:8px 0}.search-group:last-child{border-bottom:0}.search-group-label{color:var(--color-ink-muted);font-size:10px;font-weight:var(--font-weight-bold);letter-spacing:.1em;text-transform:uppercase;padding:4px 14px}.search-result{color:var(--color-ink);transition:background var(--motion-fast) var(--ease-standard);grid-template-columns:1fr auto;align-items:center;gap:8px;padding:8px 14px;font-size:13px;display:grid}.search-result:hover,.search-result.is-active{background:var(--color-surface-soft)}.search-result strong{font-weight:var(--font-weight-semibold);display:block}.search-result small{color:var(--color-ink-muted);font-size:11px;display:block}.search-empty{color:var(--color-ink-muted);text-align:center;padding:16px 14px;font-size:13px}.quick-create-wrapper{position:relative}.quick-create-menu{z-index:30;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);min-width:280px;box-shadow:var(--shadow-dropdown);animation:fadeIn var(--motion-fast) var(--ease-standard);position:absolute;top:calc(100% + 6px);right:0;overflow:hidden}.quick-create-menu a{color:var(--color-ink);border-bottom:1px solid var(--color-divider);transition:background var(--motion-fast) var(--ease-standard);grid-template-columns:32px 1fr;align-items:center;gap:12px;padding:10px 14px;display:grid}.quick-create-menu a:last-child{border-bottom:0}.quick-create-menu a:hover{background:var(--color-surface-soft)}.quick-create-menu .qc-icon{background:var(--color-navy-soft);width:32px;height:32px;color:var(--color-navy);border-radius:8px;place-items:center;font-size:16px;display:grid}.quick-create-menu strong{font-size:13px;font-weight:var(--font-weight-semibold);display:block}.quick-create-menu small{color:var(--color-ink-muted);margin-top:1px;font-size:11px;display:block}.cmd-palette{z-index:70;animation:fadeIn var(--motion-fast) var(--ease-standard);place-items:start center;padding:10vh 16px 16px;display:grid;position:fixed;inset:0}.cmd-palette[hidden]{display:none}.cmd-palette-overlay{background:var(--color-overlay);position:absolute;inset:0}.cmd-palette-modal{border-radius:var(--radius-modal);background:var(--color-surface);width:min(680px,100%);max-height:75vh;box-shadow:var(--shadow-modal);animation:modalIn var(--motion-modal) var(--ease-standard);grid-template-rows:auto 1fr auto;display:grid;position:relative;overflow:hidden}.cmd-palette-search{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);color:var(--color-ink-muted);display:flex}.cmd-palette-search svg{color:var(--color-ink-faint);flex:0 0 18px}.cmd-palette-search input{color:var(--color-ink);font-size:16px;font-weight:var(--font-weight-medium);background:0 0;border:0;flex:1;padding:0}.cmd-palette-search input::placeholder{color:var(--color-ink-faint)}.cmd-palette-search input:focus{box-shadow:none;outline:none}.cmd-palette-search kbd{background:var(--color-surface-muted);border:1px solid var(--color-border);color:var(--color-ink-muted);font-family:inherit;font-size:11px;font-weight:var(--font-weight-semibold);border-radius:4px;flex-shrink:0;padding:3px 8px}.cmd-palette-body{max-height:60vh;padding:6px 0;overflow-y:auto}.cmd-section{border-bottom:1px solid var(--color-divider);padding:8px 0}.cmd-section:last-child{border-bottom:0}.cmd-section-label{color:var(--color-ink-muted);font-size:10px;font-weight:var(--font-weight-bold);letter-spacing:.1em;text-transform:uppercase;padding:6px 20px}.cmd-item{gap:var(--space-3);color:var(--color-ink);cursor:pointer;text-align:left;width:100%;transition:background var(--motion-fast) var(--ease-standard);background:0 0;border:0;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;padding:9px 20px;font-size:14px;display:grid}.cmd-item:hover,.cmd-item.is-active{background:var(--color-navy-soft)}.cmd-item-icon{background:var(--color-surface-muted);width:32px;height:32px;color:var(--color-ink-muted);border-radius:8px;place-items:center;font-size:14px;display:grid}.cmd-item.is-active .cmd-item-icon{background:var(--color-navy);color:var(--color-surface)}.cmd-item-content{min-width:0}.cmd-item-content strong{font-size:14px;font-weight:var(--font-weight-semibold);display:block}.cmd-item-content small{color:var(--color-ink-muted);text-overflow:ellipsis;white-space:nowrap;margin-top:1px;font-size:12px;display:block;overflow:hidden}.cmd-item-meta{color:var(--color-ink-faint);align-items:center;gap:6px;font-size:11px;display:inline-flex}.cmd-empty{text-align:center;color:var(--color-ink-muted);padding:32px 20px;font-size:13px}.cmd-palette-footer{gap:var(--space-4);padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border);background:var(--color-surface-soft);color:var(--color-ink-muted);font-size:12px;display:flex}.cmd-palette-footer kbd{background:var(--color-surface);border:1px solid var(--color-border);font-family:inherit;font-size:10px;font-weight:var(--font-weight-bold);color:var(--color-ink);border-radius:4px;margin-right:4px;padding:2px 6px;display:inline-block}.dq-panel{border:1px solid var(--color-warning-line);background:var(--color-warning-bg);border-radius:var(--radius-card);margin-bottom:var(--space-4);padding:14px 16px}.dq-panel-title{color:var(--color-warning);font-size:13px;font-weight:var(--font-weight-semibold);align-items:center;gap:8px;margin:0 0 8px;display:flex}.dq-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.dq-item{color:var(--color-ink);border-bottom:1px dashed #92590a2e;justify-content:space-between;align-items:center;gap:12px;padding:6px 0;font-size:13px;display:flex}.dq-item:last-child{border-bottom:0}.dq-item-msg{color:var(--color-ink)}.dq-item-action{color:var(--color-warning);font-weight:var(--font-weight-semibold);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;font-size:12px;text-decoration:underline}.dq-item-action:hover{color:var(--color-warning)}.recent-strip{margin-bottom:var(--space-4);flex-wrap:wrap;gap:8px;display:flex}.recent-strip a{border:1px solid var(--color-border);border-radius:var(--radius-badge);background:var(--color-surface);color:var(--color-ink-muted);transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard);align-items:center;gap:6px;padding:6px 12px;font-size:12px;display:inline-flex}.recent-strip a:hover{border-color:var(--color-border-strong);background:var(--color-surface-soft);color:var(--color-ink)}.recent-strip a strong{color:var(--color-ink);font-weight:var(--font-weight-semibold)}.preset-strip{margin-bottom:var(--space-4);flex-wrap:wrap;gap:8px;display:flex}.preset-chip{border:1px solid var(--color-border);border-radius:var(--radius-badge);height:34px;color:var(--color-ink);background:var(--color-surface);font-size:13px;font-weight:var(--font-weight-semibold);transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard);align-items:center;gap:6px;padding:0 14px;display:inline-flex}.preset-chip:hover{border-color:var(--color-border-strong);background:var(--color-surface-soft)}.preset-chip.is-active{border-color:var(--color-navy);background:var(--color-navy);color:var(--color-surface)}.preset-chip .count{color:var(--color-ink-muted);font-size:11px;font-weight:var(--font-weight-medium);background:var(--color-surface-muted);border-radius:999px;padding:1px 6px}.notif-count{background:var(--color-danger);min-width:18px;height:18px;color:var(--color-surface);font-size:10px;font-weight:var(--font-weight-bold);border:2px solid var(--color-surface);border-radius:999px;place-items:center;padding:0 5px;display:grid;position:absolute;top:-4px;right:-4px}.notif-menu{z-index:30;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);width:380px;max-width:calc(100vw - 32px);box-shadow:var(--shadow-dropdown);animation:fadeIn var(--motion-fast) var(--ease-standard);grid-template-rows:auto 1fr auto;max-height:540px;display:grid;position:absolute;top:calc(100% + 6px);right:0;overflow:hidden}.notif-menu-header{border-bottom:1px solid var(--color-divider);justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;display:flex}.notif-menu-header strong{color:var(--color-ink-strong);font-size:14px;font-weight:var(--font-weight-semibold)}.notif-menu-body{max-height:420px;overflow-y:auto}.notif-item{border-bottom:1px solid var(--color-divider);color:var(--color-ink);transition:background var(--motion-fast) var(--ease-standard);cursor:pointer;border-left:3px solid #0000;grid-template-columns:32px 1fr;gap:10px;padding:10px 14px;display:grid}.notif-item:hover{background:var(--color-surface-soft)}.notif-item.is-unread{background:var(--color-info-bg);border-left-color:var(--color-info)}.notif-item.is-unread:hover{background:#e6efff}.notif-icon{background:var(--color-surface-muted);width:32px;height:32px;color:var(--color-ink-muted);border-radius:8px;flex-shrink:0;place-items:center;font-size:14px;display:grid}.notif-icon.cat-job{background:var(--color-info-bg);color:var(--color-info)}.notif-icon.cat-payment{background:var(--color-success-bg);color:var(--color-success)}.notif-icon.cat-document{background:var(--color-gold-bg);color:var(--color-gold-strong)}.notif-icon.cat-comment{background:var(--color-waiting-bg);color:var(--color-waiting)}.notif-body{min-width:0}.notif-body strong{font-size:13px;font-weight:var(--font-weight-semibold);display:block}.notif-body p{color:var(--color-ink-muted);word-break:break-word;margin:2px 0 0;font-size:12px;line-height:1.4}.notif-body small{color:var(--color-ink-faint);margin-top:4px;font-size:11px;display:block}.notif-menu-footer{text-align:center;background:var(--color-surface-soft);border-top:1px solid var(--color-divider);color:var(--color-navy);font-size:12px;font-weight:var(--font-weight-semibold);transition:background var(--motion-fast) var(--ease-standard);padding:12px 14px;display:block}.notif-menu-footer:hover{background:var(--color-surface-muted)}.topbar-icon-btn{border:1px solid var(--color-border);border-radius:var(--radius-input);background:var(--color-surface);width:38px;height:38px;color:var(--color-ink-muted);transition:border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard);place-items:center;display:grid;position:relative}.topbar-icon-btn:hover{border-color:var(--color-border-strong);color:var(--color-ink);background:var(--color-surface-soft)}.topbar-icon-btn .badge-dot{background:var(--color-gold);border:2px solid var(--color-surface);border-radius:50%;width:7px;height:7px;position:absolute;top:8px;right:8px}.topbar-quick-create{border-radius:var(--radius-button);height:38px;color:var(--color-surface);background:var(--color-navy);font-size:13px;font-weight:var(--font-weight-semibold);transition:background var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);border:0;align-items:center;gap:6px;padding:0 14px;display:inline-flex}.topbar-quick-create:hover{background:var(--color-navy-2)}.topbar-quick-create:active{transform:translateY(1px)}.topbar-user{align-items:center;gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-badge);background:var(--color-surface);color:var(--color-ink);font-size:12px;font-weight:var(--font-weight-semibold);padding:4px 10px 4px 4px;display:inline-flex}.topbar-user-avatar{background:var(--color-navy);width:28px;height:28px;color:var(--color-surface);font-size:12px;font-weight:var(--font-weight-bold);border-radius:50%;place-items:center;display:grid}.page-container{width:100%;max-width:var(--container-max);padding:var(--space-page-y) var(--space-page-x);flex:1;margin:0 auto}.eyebrow{margin:0 0 var(--space-1);color:var(--color-gold-strong);font-size:var(--font-size-label);font-weight:var(--font-weight-bold);letter-spacing:.1em;text-transform:uppercase}.topbar-meta{gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.topbar-meta span{border-radius:var(--radius-badge);min-height:26px;color:var(--color-ink-muted);background:var(--color-surface-muted);font-size:var(--font-size-label);font-weight:var(--font-weight-semibold);align-items:center;padding:4px 10px;display:inline-flex}.panel,.metric-card,.customer-card,.list-card,.file-card,.step-card,.lead-public-card,.login-panel{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card)}.panel{margin-bottom:var(--space-section);padding:var(--space-card)}.panel-header{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.panel-header h2,.panel-header h3{color:var(--color-ink-strong);font-size:var(--font-size-section-title);font-weight:var(--font-weight-semibold);margin:0}.panel-header>a,.panel-header>span{color:var(--color-ink-muted);font-size:13px;font-weight:var(--font-weight-semibold)}.panel-header>a:hover{color:var(--color-navy)}.alert{margin-bottom:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-input);font-size:13px;font-weight:var(--font-weight-medium);padding:12px 14px}.alert ul{margin:6px 0 0 18px;padding:0}.alert.success{border-color:var(--color-success-line);color:var(--color-success);background:var(--color-success-bg)}.alert.danger{border-color:var(--color-danger-line);color:var(--color-danger);background:var(--color-danger-bg)}.alert.warning{border-color:var(--color-warning-line);color:var(--color-warning);background:var(--color-warning-bg)}.alert.info{border-color:var(--color-info-line);color:var(--color-info);background:var(--color-info-bg)}.metric-grid,.three-column,.customer-summary,.job-overview{gap:var(--space-4);margin-bottom:var(--space-section);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.three-column{grid-template-columns:repeat(3,minmax(0,1fr))}.customer-summary,.job-overview{grid-template-columns:minmax(0,2fr) minmax(320px,1fr)}.two-column{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.metric-card{padding:var(--space-card);color:inherit;transition:transform var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard);text-decoration:none;display:block}.metric-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-1px)}.metric-card:focus-visible{outline:2px solid var(--color-navy-line);outline-offset:3px}.metric-card .metric-label,.metric-card>span:first-child{color:var(--color-ink-muted);font-size:var(--font-size-label);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.04em;display:block}.metric-card strong{color:var(--color-ink-strong);font-size:var(--font-size-card-number);font-weight:var(--font-weight-bold);font-feature-settings:"tnum";margin:8px 0;line-height:1.1;display:block}.metric-card small{color:var(--color-ink-subtle);font-size:var(--font-size-label);display:block}.metric-card.urgent{border-color:var(--color-danger-line);background:var(--color-danger-bg)}.metric-card.urgent strong{color:var(--color-danger)}.metric-definitions{margin-top:var(--space-4)}.metric-definitions summary{cursor:pointer;min-height:44px;color:var(--color-ink);font-weight:var(--font-weight-semibold)}.definition-grid{gap:var(--space-3);margin-top:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.definition-grid p{padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-soft);margin:0}.definition-grid strong,.definition-grid span{display:block}.definition-grid span{color:var(--color-ink-muted);font-size:var(--font-size-label);margin-top:4px}.form-grid{gap:var(--space-form-row);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.form-grid.dense{grid-template-columns:repeat(2,minmax(0,1fr))}.form-panel{gap:var(--space-form-row);display:grid}.form-panel.compact{align-content:start}label{gap:6px;font-size:13px;display:grid}label>span,.field-label,dt{color:var(--color-ink-muted);font-size:var(--font-size-label);font-weight:var(--font-weight-semibold)}input,select,textarea{border:1px solid var(--color-border);border-radius:var(--radius-input);width:100%;color:var(--color-ink);background:var(--color-surface);transition:border-color var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard);padding:10px 12px;font-size:13px}input:hover,select:hover,textarea:hover{border-color:var(--color-border-strong)}input:focus,select:focus,textarea:focus{border-color:var(--color-navy-2);box-shadow:var(--focus-ring);outline:none}input::placeholder,textarea::placeholder{color:var(--color-ink-faint)}input[disabled],select[disabled],textarea[disabled]{background:var(--color-surface-muted);color:var(--color-ink-faint);cursor:not-allowed}textarea{resize:vertical}.form-error{color:var(--color-danger);margin:4px 0 0;font-size:12px}.input-with-icon{position:relative}.input-with-icon input{padding-left:36px}.input-with-icon svg{color:var(--color-ink-faint);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.span-2{grid-column:span 2}.checkbox-line{align-items:center;gap:var(--space-2);font-size:13px;display:flex}.checkbox-line input{width:auto}.filter-toolbar{margin-bottom:var(--space-section);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);flex-wrap:wrap;align-items:flex-end;gap:12px;padding:12px 16px;display:flex}.filter-toolbar label{flex:auto;gap:4px;min-width:140px;margin:0}.filter-toolbar label>span{font-size:11px}.filter-toolbar input,.filter-toolbar select{padding:7px 10px}.filter-toolbar-actions{flex:none;gap:8px;display:flex}.filter-toolbar-actions .btn{padding:7px 12px}.has-active-filter{border-color:var(--color-gold-strong);background:var(--color-gold-bg)}.btn,.primary-button,.secondary-button,.inline-search button,.step-form button,.payment-row button,.step-admin-row button,.delete-row-form button,.job-card button{border-radius:var(--radius-button);font-size:13px;font-weight:var(--font-weight-semibold);transition:background var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard), transform var(--motion-fast) var(--ease-standard);border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:9px 14px;line-height:1;display:inline-flex}.btn:active,.primary-button:active,.secondary-button:active{transform:translateY(1px)}.btn-primary,.primary-button{color:var(--color-surface);background:var(--color-navy)}.btn-primary:hover,.primary-button:hover{background:var(--color-navy-2)}.btn-secondary,.secondary-button,.inline-search button,.step-form button,.payment-row button,.step-admin-row button,.job-card button{color:var(--color-ink-strong);background:var(--color-surface);border-color:var(--color-border)}.btn-secondary:hover,.secondary-button:hover,.inline-search button:hover,.step-form button:hover,.payment-row button:hover,.step-admin-row button:hover,.job-card button:hover{border-color:var(--color-border-strong);background:var(--color-surface-soft)}.btn-ghost{color:var(--color-ink-muted);background:0 0;border-color:#0000}.btn-ghost:hover{color:var(--color-ink);background:var(--color-surface-muted)}.btn-danger{color:var(--color-surface);background:var(--color-danger);border-color:#0000}.btn-danger:hover{background:#971a11}.btn-gold{color:var(--color-navy-deep);background:var(--color-gold);border-color:#0000}.btn-gold:hover{background:var(--color-gold-strong);color:var(--color-surface)}.btn:focus-visible,.primary-button:focus-visible,.secondary-button:focus-visible,button:focus-visible{box-shadow:var(--focus-ring);outline:none}.btn[disabled],.primary-button[disabled],.secondary-button[disabled],button[disabled]{cursor:not-allowed;opacity:.55;transform:none!important}.btn.is-loading,button.is-loading{pointer-events:none;transition:none;position:relative;color:#0000!important}.btn.is-loading:after,button.is-loading:after{content:"";width:14px;height:14px;color:var(--color-ink);border:2px solid;border-top-color:#0000;border-radius:50%;animation:.6s linear infinite spin;position:absolute}.btn-primary.is-loading:after,.primary-button.is-loading:after,.btn-danger.is-loading:after,.btn-gold.is-loading:after{color:var(--color-surface)}.text-button{text-align:center;justify-content:center;align-items:center;display:inline-flex}.compact-button{border-radius:var(--radius-badge);padding:7px 11px;font-size:12px}.button-row{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}input:invalid,select:invalid,textarea:invalid,.is-invalid{border-color:var(--color-danger-line)!important}.is-invalid{animation:shakeInvalid var(--motion-slow) var(--ease-standard)}.highlight-flash,.highlight-pulse{animation:highlightPulse 2s var(--ease-out) forwards}.badge{border-radius:var(--radius-badge);font-size:11px;font-weight:var(--font-weight-semibold);letter-spacing:.01em;white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:3px 10px;line-height:1.5;display:inline-flex}.badge:before{content:"";opacity:.7;background:currentColor;border-radius:50%;width:6px;height:6px}.badge.no-dot:before{display:none}.badge-neutral{color:var(--color-neutral);background:var(--color-neutral-bg);border-color:var(--color-neutral-line)}.badge-info{color:var(--color-info);background:var(--color-info-bg);border-color:var(--color-info-line)}.badge-success{color:var(--color-success);background:var(--color-success-bg);border-color:var(--color-success-line)}.badge-warning{color:var(--color-warning);background:var(--color-warning-bg);border-color:var(--color-warning-line)}.badge-danger{color:var(--color-danger);background:var(--color-danger-bg);border-color:var(--color-danger-line)}.badge-waiting{color:var(--color-waiting);background:var(--color-waiting-bg);border-color:var(--color-waiting-line)}.badge-teal{color:var(--color-teal);background:var(--color-teal-bg);border-color:var(--color-teal-line)}.badge-gold{color:var(--color-gold-strong);background:var(--color-gold-bg);border-color:var(--color-gold-soft)}.badge.lead-new{color:var(--color-info);background:var(--color-info-bg);border-color:var(--color-info-line)}.badge.lead-contacted{color:var(--color-neutral);background:var(--color-neutral-bg);border-color:var(--color-neutral-line)}.badge.lead-qualified{color:var(--color-teal);background:var(--color-teal-bg);border-color:var(--color-teal-line)}.badge.lead-quoted{color:var(--color-gold-strong);background:var(--color-gold-bg);border-color:var(--color-gold-soft)}.badge.lead-follow{color:var(--color-warning);background:var(--color-warning-bg);border-color:var(--color-warning-line)}.badge.lead-won{color:var(--color-success);background:var(--color-success-bg);border-color:var(--color-success-line)}.badge.lead-lost{color:var(--color-danger);background:var(--color-danger-bg);border-color:var(--color-danger-line)}.badge.job-pending{color:var(--color-neutral);background:var(--color-neutral-bg);border-color:var(--color-neutral-line)}.badge.job-in-progress{color:var(--color-info);background:var(--color-info-bg);border-color:var(--color-info-line)}.badge.job-waiting{color:var(--color-waiting);background:var(--color-waiting-bg);border-color:var(--color-waiting-line)}.badge.job-overdue{color:var(--color-danger);background:var(--color-danger-bg);border-color:var(--color-danger-line)}.badge.job-done{color:var(--color-success);background:var(--color-success-bg);border-color:var(--color-success-line)}.badge.payment-unpaid{color:var(--color-neutral);background:var(--color-neutral-bg);border-color:var(--color-neutral-line)}.badge.payment-partial{color:var(--color-warning);background:var(--color-warning-bg);border-color:var(--color-warning-line)}.badge.payment-paid{color:var(--color-success);background:var(--color-success-bg);border-color:var(--color-success-line)}.badge.payment-overdue{color:var(--color-danger);background:var(--color-danger-bg);border-color:var(--color-danger-line)}.badge.doc-not-requested{color:var(--color-neutral);background:var(--color-neutral-bg);border-color:var(--color-neutral-line)}.badge.doc-requested{color:var(--color-info);background:var(--color-info-bg);border-color:var(--color-info-line)}.badge.doc-received{color:var(--color-teal);background:var(--color-teal-bg);border-color:var(--color-teal-line)}.badge.doc-needs-revision{color:var(--color-warning);background:var(--color-warning-bg);border-color:var(--color-warning-line)}.badge.doc-approved{color:var(--color-success);background:var(--color-success-bg);border-color:var(--color-success-line)}.status-pill{border-radius:var(--radius-badge);min-height:26px;color:var(--color-ink-muted);background:var(--color-surface-muted);font-size:var(--font-size-label);font-weight:var(--font-weight-semibold);align-items:center;padding:4px 10px;display:inline-flex}.filter-strip{gap:var(--space-2);margin:2px 0 var(--space-4);flex-wrap:wrap;display:flex}.filter-strip a,.filter-chip{border:1px solid var(--color-border);border-radius:var(--radius-badge);height:32px;color:var(--color-ink-muted);background:var(--color-surface);font-size:12px;font-weight:var(--font-weight-semibold);transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard), color var(--motion-fast) var(--ease-standard);align-items:center;gap:6px;padding:0 14px;display:inline-flex}.filter-strip a:hover,.filter-chip:hover{border-color:var(--color-border-strong);color:var(--color-ink);background:var(--color-surface-soft)}.filter-strip a.active,.filter-chip.active{border-color:var(--color-navy);color:var(--color-surface);background:var(--color-navy)}.stack-list{gap:var(--space-2);display:grid}.compact-list{gap:6px}.list-card,.mini-row{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.list-card{border:1px solid var(--color-border);border-radius:var(--radius-input);background:var(--color-surface);box-shadow:none;transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard);padding:12px 14px}.list-card:hover{border-color:var(--color-border-strong);background:var(--color-surface-soft)}.list-card strong,.list-card span,.list-card time,.mini-row span,.mini-row small,.mini-row strong{display:block}.list-card span,.list-card time,.mini-row small{color:var(--color-ink-muted);font-size:12px}.danger-line{border-left:3px solid var(--color-danger)}.mini-row{border-bottom:1px solid var(--color-divider);padding:9px 0}.mini-row:last-child{border-bottom:0}.empty-state{color:var(--color-ink-muted);margin:0;font-size:13px}.empty-block{place-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);text-align:center;color:var(--color-ink-muted);display:grid}.empty-block .empty-icon{background:var(--color-surface-muted);width:48px;height:48px;color:var(--color-ink-faint);border-radius:50%;place-items:center;display:grid}.empty-block h3{color:var(--color-ink-strong);font-size:15px;font-weight:var(--font-weight-semibold);margin:0}.empty-block p{max-width:360px;margin:0;font-size:13px}.empty-block.is-filtered .empty-icon{background:var(--color-warning-bg);color:var(--color-warning)}.table-wrap{border-radius:var(--radius-card);border:1px solid var(--color-border);overflow-x:auto}table{border-collapse:collapse;background:var(--color-surface);width:100%;font-size:var(--font-size-table)}th,td{border-bottom:1px solid var(--color-divider);padding:var(--space-table-cell);text-align:left;vertical-align:top}th{color:var(--color-ink-muted);background:var(--color-surface-soft);font-size:var(--font-size-label);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.04em}tbody tr{transition:background var(--motion-fast) var(--ease-standard)}tbody tr:hover{background:var(--color-surface-soft)}tbody tr:last-child td{border-bottom:0}td span{color:var(--color-ink-muted);font-size:12px;display:block}.overdue-row td,tr.overdue-row td{background:var(--color-danger-bg)}.danger-text{color:var(--color-danger);font-weight:var(--font-weight-bold)}.detail-row td{background:var(--color-surface-soft)}.pagination{gap:var(--space-1);border-top:1px solid var(--color-divider);background:var(--color-surface-soft);color:var(--color-ink-muted);justify-content:flex-end;align-items:center;padding:12px 14px;font-size:12px;display:flex}.pagination .page-btn{border:1px solid var(--color-border);background:var(--color-surface);min-width:30px;height:30px;color:var(--color-ink-muted);font-weight:var(--font-weight-semibold);border-radius:6px;place-items:center;padding:0 8px;display:inline-grid}.pagination .page-btn.active{color:var(--color-surface);background:var(--color-navy);border-color:var(--color-navy)}.pagination .page-btn:hover:not(.active){background:var(--color-surface-muted)}details summary{cursor:pointer;font-weight:var(--font-weight-semibold);padding:6px 0}.split-actions{gap:var(--space-4);margin-top:var(--space-4);grid-template-columns:minmax(0,2fr) minmax(280px,1fr) minmax(280px,1fr);display:grid}.close-panel{border-left:4px solid var(--color-gold);padding-left:var(--space-4)}.activity-log{color:var(--color-ink-muted);gap:8px;margin-top:10px;font-size:13px;display:grid}.activity-log p{margin:0}.customer-grid,.file-grid{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.file-grid.one-col{grid-template-columns:1fr}.customer-card,.file-card{padding:var(--space-card);box-shadow:none;gap:8px;display:grid}.customer-card div{flex-wrap:wrap;gap:8px;display:flex}.customer-card span,.customer-card small,.file-card span{color:var(--color-ink-muted);font-size:12px}.definition-grid{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.definition-grid dd{font-weight:var(--font-weight-semibold);margin:3px 0 0}.note-box{margin:var(--space-4) 0 0;border-left:4px solid var(--color-teal);color:var(--color-teal);background:var(--color-teal-bg);border-radius:6px;padding:10px 12px;font-size:13px}.payment-row{border-bottom:1px solid var(--color-divider);padding-bottom:var(--space-3);grid-template-columns:1fr 100px 100px;gap:8px;display:grid}.payment-row select,.payment-row textarea,.payment-row button{grid-column:span 3}.contact-stack{margin-top:var(--space-4);gap:8px;display:grid}.contact-row,.service-row{border-bottom:1px solid var(--color-divider);padding-bottom:var(--space-3);gap:8px;display:grid}.contact-row{grid-template-columns:repeat(3,minmax(0,1fr))}.contact-row button,.service-row textarea,.service-row button{grid-column:1/-1}.service-row{grid-template-columns:repeat(2,minmax(0,1fr))}.danger-zone{border-color:var(--color-danger-line);background:var(--color-danger-bg)}.board-section{margin-bottom:var(--space-6)}.board-title{padding:0 2px}.kanban-board{gap:var(--space-3);padding-bottom:var(--space-2);grid-auto-columns:minmax(280px,1fr);grid-auto-flow:column;display:grid;overflow-x:auto}.kanban-column{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-soft);min-height:300px;transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard)}.kanban-column header{justify-content:space-between;gap:var(--space-2);border-bottom:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-card) var(--radius-card) 0 0;align-items:center;padding:12px 14px;display:flex}.kanban-column header strong{color:var(--color-ink-strong);font-size:13px;font-weight:var(--font-weight-semibold)}.kanban-column header span{color:var(--color-ink-muted);font-size:var(--font-size-label)}.kanban-dropzone{min-height:240px;padding:var(--space-3)}.kanban-column.drag-over{border-color:var(--color-gold);background:var(--color-gold-bg);transform:scale(.99)}.job-card{margin-bottom:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-input);background:var(--color-surface);box-shadow:none;transition:transform var(--motion-fast) var(--ease-standard), box-shadow var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard), opacity var(--motion-fast) var(--ease-standard);gap:10px;padding:12px;display:grid}.job-card:hover{box-shadow:var(--shadow-card-hover);border-color:var(--color-border-strong);transform:translateY(-2px)}.job-card.dragging{opacity:.8;box-shadow:var(--shadow-dropdown);cursor:grabbing;transform:rotate(-2deg)scale(1.02)}.job-card strong,.job-card span,.job-card small{display:block}.job-card strong{color:var(--color-ink-strong);font-size:13px;font-weight:var(--font-weight-semibold)}.job-card span,.job-card small{color:var(--color-ink-muted);font-size:12px}.job-card button{padding:6px 10px;font-size:12px}.mobile-kanban-actions,.mobile-contact-actions{display:none}.mobile-kanban-actions label{gap:6px;display:grid}.mobile-kanban-actions span{color:var(--color-ink-muted);font-size:12px;font-weight:var(--font-weight-semibold)}.comment-compose-grid{grid-template-columns:200px 1fr auto;align-items:end;gap:8px;display:grid}.inline-grid-form{grid-template-columns:minmax(0,2fr) minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.document-filter-toggle{display:none}.step-timeline{gap:var(--space-3);display:grid}.step-card{gap:var(--space-3);padding:var(--space-card);box-shadow:none;display:grid}.step-card.status-done{border-color:var(--color-success-line);background:var(--color-success-bg)}.step-card.status-waiting{border-color:var(--color-waiting-line);background:var(--color-waiting-bg)}.step-heading{gap:var(--space-3);grid-template-columns:34px 1fr;align-items:center;display:grid}.step-heading>span:first-child{width:34px;height:34px;color:var(--color-surface);background:var(--color-navy);font-weight:var(--font-weight-bold);border-radius:50%;place-items:center;display:grid}.step-heading small{color:var(--color-ink-muted)}.step-form,.step-admin-row{grid-template-columns:150px 150px 150px minmax(180px,1fr) auto;gap:8px;display:grid}.template-stack{gap:var(--space-5);display:grid}.steps-admin{margin:var(--space-4) 0;gap:8px;display:grid}.step-admin-row{grid-template-columns:70px minmax(180px,1fr) 120px minmax(220px,1fr) auto}.step-admin-wrap{border-radius:var(--radius-md,6px);border:1px solid #0000;grid-template-columns:28px 1fr;align-items:start;gap:6px;padding:2px;transition:border-color .15s,background .15s;display:grid}.step-admin-wrap.is-dragging{opacity:.6;border-color:var(--color-navy-soft);background:var(--color-navy-soft)}.step-admin-wrap.drop-target-above{border-top:2px solid var(--color-navy)}.step-admin-wrap.drop-target-below{border-bottom:2px solid var(--color-navy)}.step-drag-handle{border:1px solid var(--color-line,#e5e7eb);background:var(--color-surface-soft,#fafafa);color:var(--color-ink-muted);border-radius:var(--radius-sm,4px);cursor:grab;-webkit-user-select:none;user-select:none;justify-content:center;align-self:stretch;align-items:center;font-size:14px;line-height:1;display:inline-flex}.step-drag-handle:focus-visible{outline:2px solid var(--color-navy);outline-offset:2px}.step-admin-wrap.is-dragging .step-drag-handle{cursor:grabbing}@media (prefers-reduced-motion:reduce){.step-admin-wrap{transition:none}}.mention{font-weight:var(--font-weight-semibold);background:var(--color-gold-bg);color:var(--color-gold-strong);border-radius:4px;align-items:center;padding:0 4px;display:inline-flex}.mention.role-mention{background:var(--color-navy-soft);color:var(--color-navy)}.mention.user-mention{background:var(--color-gold-bg);color:var(--color-gold-strong)}.mention-autocomplete{z-index:100;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-dropdown);min-width:180px;max-height:200px;position:absolute;overflow-y:auto}.mention-item{cursor:pointer;transition:background var(--motion-fast) var(--ease-standard);padding:8px 12px;font-size:13px}.mention-item:hover,.mention-item.is-active{background:var(--color-surface-soft);color:var(--color-navy)}.mention-item strong{display:block}.mention-item small{color:var(--color-ink-muted);font-size:11px}[id^=comment-].highlight-pulse{animation:2s ease-out highlightPulse}.delete-row-form{justify-content:flex-end;margin-top:-6px;display:flex}.delete-row-form button{color:var(--color-danger);background:0 0;border-color:#0000}.delete-row-form button:hover{background:var(--color-danger-bg)}.inline-search{gap:var(--space-2);min-width:min(380px,100%);display:flex}.public-page{background:radial-gradient(1200px 600px at 0% -10%, #c9a2270f, transparent), radial-gradient(900px 500px at 110% 110%, #0b1f3a0d, transparent), var(--color-bg-page);min-height:100vh}.public-shell{min-height:100vh;padding:var(--space-6);place-items:center;display:grid}.login-panel,.lead-public-card{width:min(960px,100%);padding:var(--space-8);border-radius:var(--radius-modal)}.login-panel{gap:var(--space-8);grid-template-columns:1.3fr minmax(280px,.7fr);display:grid}.login-copy{align-content:center;gap:var(--space-3);display:grid}.login-copy h1,.lead-public-card h1{margin-bottom:var(--space-1);color:var(--color-ink-strong);font-size:var(--font-size-page-title);font-weight:var(--font-weight-semibold)}.login-copy p,.lead-public-card p{color:var(--color-ink-muted)}.hint-list{gap:var(--space-2);flex-wrap:wrap;display:flex}.hint-list span{border-radius:var(--radius-badge);color:var(--color-ink-muted);background:var(--color-surface-muted);font-size:var(--font-size-label);font-weight:var(--font-weight-semibold);padding:6px 10px}.lead-public-card{gap:var(--space-5);display:grid}.honeypot-field{width:1px;height:1px;position:absolute;top:auto;left:-10000px;overflow:hidden}.lead-success-card{max-width:640px}.lead-success-actions{gap:var(--space-2);flex-wrap:wrap;display:flex}.tabs{border-bottom:1px solid var(--color-border);margin-bottom:var(--space-4);gap:2px;padding:0 0 1px;display:flex;overflow-x:auto}.tabs .tab{color:var(--color-ink-muted);font-size:13px;font-weight:var(--font-weight-semibold);transition:color var(--motion-fast) var(--ease-standard), border-color var(--motion-fast) var(--ease-standard);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 16px;position:relative}.tabs .tab:hover{color:var(--color-ink)}.tabs .tab.active{color:var(--color-navy);border-color:var(--color-navy)}.modal-overlay{z-index:50;padding:var(--space-4);background:var(--color-overlay);animation:fadeIn var(--motion-modal) var(--ease-standard);place-items:center;display:grid;position:fixed;inset:0}.modal{border-radius:var(--radius-modal);background:var(--color-surface);width:min(560px,100%);max-height:90vh;box-shadow:var(--shadow-modal);animation:modalIn var(--motion-modal) var(--ease-standard);overflow-y:auto}.modal-header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-card) var(--space-card) var(--space-3);border-bottom:1px solid var(--color-divider);display:flex}.modal-header h2{color:var(--color-ink-strong);font-size:var(--font-size-section-title);font-weight:var(--font-weight-semibold);margin:0}.modal-body{padding:var(--space-card);gap:var(--space-3);display:grid}.modal-footer{justify-content:flex-end;gap:var(--space-2);padding:var(--space-3) var(--space-card) var(--space-card);border-top:1px solid var(--color-divider);background:var(--color-surface-soft);border-radius:0 0 var(--radius-modal) var(--radius-modal);display:flex}@keyframes modalIn{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.toast-stack{bottom:var(--space-5);right:var(--space-5);z-index:60;gap:var(--space-2);pointer-events:none;display:grid;position:fixed}.toast{pointer-events:auto;align-items:center;gap:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);min-width:280px;max-width:400px;box-shadow:var(--shadow-dropdown);color:var(--color-ink);animation:toastIn var(--motion-normal) var(--ease-standard);padding:12px 14px;font-size:13px;display:flex}.toast.success{border-color:var(--color-success-line);background:var(--color-success-bg);color:var(--color-success)}.toast.danger{border-color:var(--color-danger-line);background:var(--color-danger-bg);color:var(--color-danger)}.toast.warning{border-color:var(--color-warning-line);background:var(--color-warning-bg);color:var(--color-warning)}@keyframes toastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.skeleton{background:linear-gradient(90deg, var(--color-surface-muted) 0%, var(--color-surface-soft) 40%, var(--color-surface-muted) 80%);background-size:200% 100%;border-radius:6px;height:12px;animation:1.4s ease-in-out infinite skeleton-pulse;display:block}.skeleton.lg{height:18px}.skeleton.xl{height:28px}.skeleton.block{border-radius:var(--radius-input);height:80px}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.highlight-flash{animation:highlightFlash 1.6s var(--ease-out)}@keyframes highlightFlash{0%{background-color:var(--color-gold-bg)}to{background-color:#0000}}.upload-box{place-items:center;gap:var(--space-2);padding:var(--space-8) var(--space-4);border:1.5px dashed var(--color-border-strong);border-radius:var(--radius-card);background:var(--color-surface-soft);color:var(--color-ink-muted);text-align:center;transition:border-color var(--motion-fast) var(--ease-standard), background var(--motion-fast) var(--ease-standard);display:grid}.upload-box:hover{border-color:var(--color-navy-2)}.upload-box.dragging,.upload-box.is-dragging{border-color:var(--color-gold);background:var(--color-gold-bg);color:var(--color-gold-strong)}.upload-box small{font-size:12px}.guide-section{margin-bottom:var(--space-section);padding:var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface)}.guide-section h2{color:var(--color-ink-strong);font-size:var(--font-size-section-title);font-weight:var(--font-weight-semibold);margin:0 0 4px}.guide-section .guide-desc{margin:0 0 var(--space-4);color:var(--color-ink-muted);font-size:13px}.guide-row{gap:var(--space-3);padding:var(--space-3) 0;border-top:1px dashed var(--color-divider);flex-wrap:wrap;align-items:flex-start;display:flex}.guide-row:first-of-type{border-top:0}.guide-row>.guide-label{color:var(--color-ink-muted);font-size:12px;font-weight:var(--font-weight-semibold);flex:0 0 200px}.guide-row>.guide-content{gap:var(--space-2);flex-wrap:wrap;flex:1;align-items:center;display:flex}.color-swatch{gap:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-input);background:var(--color-surface);grid-template-columns:64px 1fr;align-items:center;min-width:220px;padding:8px;display:grid}.color-swatch .swatch-chip{border:1px solid var(--color-divider);border-radius:6px;width:64px;height:48px}.color-swatch strong{color:var(--color-ink);font-size:12px;display:block}.color-swatch small{color:var(--color-ink-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;display:block}.token-pill{border:1px solid var(--color-border);border-radius:var(--radius-badge);background:var(--color-surface-soft);color:var(--color-ink-muted);align-items:center;padding:4px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;display:inline-flex}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}@media (width<=1180px){.metric-grid,.three-column,.two-column,.customer-summary,.job-overview,.split-actions{grid-template-columns:1fr 1fr}.metric-grid,.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{grid-template-columns:1fr auto}.topbar-search{display:none}.mobile-filter-toggle{display:none!important}.desktop-only{display:inline-flex!important}.sticky-bottom-action{display:contents}}@media (width<=780px){.desktop-only{display:none!important}:root{--space-page-x:16px;--space-page-y:16px}.app-shell{grid-template-columns:1fr}.sidebar{z-index:100;width:280px;padding-top:var(--space-4);transition:transform .3s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.app-shell.nav-open .sidebar{box-shadow:var(--shadow-dropdown);transform:translate(0)}.sidebar-overlay{background:var(--color-overlay);z-index:99;opacity:0;pointer-events:none;transition:opacity .3s;position:fixed;inset:0;display:block!important}.sidebar-overlay[hidden]{display:none!important}.app-shell.nav-open .sidebar-overlay{opacity:1;pointer-events:auto}.sidebar-header-mobile{display:flex!important}.nav-list{grid-template-columns:1fr}.topbar{height:auto;padding:var(--space-3) var(--space-4);gap:var(--space-3);grid-template-columns:auto 1fr auto;position:sticky}.topbar-hamburger{margin-left:-8px;padding:6px;display:inline-flex!important}.topbar-actions .topbar-quick-create span{display:none}.metric-grid,.three-column,.two-column,.customer-summary,.job-overview,.split-actions,.comment-compose-grid,.inline-grid-form,.form-grid,.form-grid.dense,.customer-grid,.file-grid,.definition-grid,.login-panel,.payment-row,.step-form,.step-admin-row,.contact-row,.service-row{grid-template-columns:1fr}.span-2,.payment-row select,.payment-row textarea,.payment-row button,.contact-row button,.service-row textarea,.service-row button{grid-column:span 1}.inline-search{width:100%}.panel-header{flex-direction:column;align-items:flex-start}.panel-header>a,.panel-header>span{min-height:32px}.btn,.primary-button,.secondary-button,button.compact-button,.topbar-icon-btn,.topbar-quick-create,.filter-strip a,.filter-chip,.job-card a,.list-card,.upload-box,.tabs .tab{min-height:44px}.job-card{gap:12px;padding:14px}.job-card[draggable=true]{cursor:default}.mobile-kanban-actions{border-top:1px dashed var(--color-divider);padding-top:4px;display:grid}.mobile-contact-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.mobile-contact-actions .btn{flex:140px}.document-filter-toggle{display:flex}[data-tab-panel]:not([data-tab-panel=documents])+.document-filter-toggle{display:none}.table-responsive-cards table,.table-responsive-cards thead,.table-responsive-cards tbody,.table-responsive-cards th,.table-responsive-cards td,.table-responsive-cards tr{display:block}.table-responsive-cards table{border:none}.table-responsive-cards thead tr{position:absolute;top:-9999px;left:-9999px}.table-responsive-cards tr{border:1px solid var(--color-border);border-radius:var(--radius-card);margin-bottom:var(--space-4);background:var(--color-surface);padding:var(--space-2);box-shadow:var(--shadow-card)}.table-responsive-cards tr.detail-row{box-shadow:none;border:0;padding:0}.table-responsive-cards tr.detail-row td{text-align:left;padding:0;display:block}.table-responsive-cards tr.detail-row td:before{content:none}.table-responsive-cards td{border:none;border-bottom:1px dashed var(--color-divider);text-align:right;justify-content:flex-end;align-items:center;gap:8px;min-height:44px;padding:10px 12px 10px 45%;display:flex;position:relative}.table-responsive-cards td>*{min-width:0;max-width:100%}.table-responsive-cards td:last-child{border-bottom:0}.table-responsive-cards td:before{content:attr(data-label);width:40%;font-weight:var(--font-weight-semibold);color:var(--color-ink-muted);text-align:left;white-space:nowrap;text-overflow:ellipsis;position:absolute;left:12px;overflow:hidden}.bottom-sheet-overlay{background:var(--color-overlay);z-index:105;opacity:0;pointer-events:none;transition:opacity .3s;position:fixed;inset:0}.bottom-sheet{background:var(--color-surface);z-index:110;border-radius:var(--radius-modal) var(--radius-modal) 0 0;max-height:85vh;padding:var(--space-4);transition:transform .3s;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(100%);box-shadow:0 -4px 20px #00000026}.bottom-sheet.is-open{transform:translateY(0)}.bottom-sheet-overlay.is-open{opacity:1;pointer-events:auto}.mobile-filter-toggle{width:100%;margin-bottom:var(--space-4);justify-content:center;display:flex}.desktop-filter-panel{display:none!important}.sticky-bottom-action{padding:var(--space-3) var(--space-4);background:var(--color-surface);border-top:1px solid var(--color-border);z-index:90;justify-content:stretch;gap:var(--space-2);display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px #0000000d}.sticky-bottom-action .btn{flex:1}.page-container{padding-bottom:80px}}.calendar-panel{gap:var(--space-4);display:grid}.calendar-panel-header{align-items:flex-start}.calendar-toolbar,.calendar-legend{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.calendar-toolbar{justify-content:flex-end}.calendar-legend{margin-top:var(--space-2);color:var(--color-ink-muted);font-size:12px}.calendar-legend span{align-items:center;gap:6px;display:inline-flex}.calendar-dot{border-radius:999px;width:9px;height:9px;display:inline-block}.calendar-dot.lead{background:var(--color-info)}.calendar-dot.job{background:var(--color-gold-strong)}.calendar-feed-row{gap:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-input);background:var(--color-surface-soft);grid-template-columns:minmax(0,1fr) auto;align-items:center;display:grid}.calendar-feed-row input{border:1px solid var(--color-border);border-radius:var(--radius-input);background:var(--color-surface);min-width:0;color:var(--color-ink-muted);padding:8px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.calendar-sync-state{color:var(--color-warning);font-size:12px;font-weight:var(--font-weight-semibold);white-space:nowrap}#calendar{min-height:520px}.fc-theme-standard .fc-scrollgrid,.fc-theme-standard td,.fc-theme-standard th{border-color:var(--color-border)!important}.fc-theme-standard th{background:var(--color-surface-soft);color:var(--color-ink-muted);font-weight:var(--font-weight-semibold);padding:8px 0!important}.fc .fc-button-primary{background-color:var(--color-surface);color:var(--color-ink-strong);border-color:var(--color-border);font-weight:var(--font-weight-semibold);text-transform:capitalize}.fc .fc-button-primary:hover{background-color:var(--color-surface-soft);border-color:var(--color-border-strong);color:var(--color-ink-strong)}.fc .fc-button-primary:not(:disabled):active,.fc .fc-button-primary:not(:disabled).fc-button-active{background-color:var(--color-navy-soft);border-color:var(--color-navy-line);color:var(--color-navy)}.fc .fc-button-primary:focus{box-shadow:var(--focus-ring)}.fc .fc-daygrid-day.fc-day-today{background-color:var(--color-gold-bg)}.fc .fc-event{cursor:pointer;border-radius:4px;padding:2px 4px;font-size:11px;border:none!important}.fc .fc-event-main{color:var(--color-surface);font-weight:var(--font-weight-medium);white-space:normal;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.fc-event[href]{text-decoration:none}.fc-event:hover{opacity:.9}@media (width<=780px){.calendar-toolbar{justify-content:stretch;width:100%}.calendar-toolbar .btn{flex:120px}.calendar-feed-row{grid-template-columns:1fr}.calendar-sync-state{white-space:normal}#calendar{min-height:460px}.fc .fc-toolbar{align-items:stretch;gap:var(--space-2);flex-direction:column}.fc .fc-toolbar-chunk{justify-content:center;gap:var(--space-1);flex-wrap:wrap;display:flex}.fc .fc-button{min-height:38px}.fc .fc-daygrid-day-number{padding:6px;font-size:12px}.fc .fc-event{font-size:10.5px}}.user-stack{gap:16px;display:grid}.user-card{border:1px solid var(--color-border,#e3e7ec)}.user-card.is-disabled{opacity:.78;background:var(--color-surface-muted,#f6f7f9)}.user-card-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.user-card-id{flex:280px;align-items:center;gap:12px;min-width:0;display:flex}.user-card-id strong{font-size:15px;display:block}.user-card-id small{color:var(--color-ink-faint,#707683);word-break:break-all;font-size:12.5px;display:block}.user-avatar{background:linear-gradient(135deg, var(--color-accent,#2c6df0), var(--color-accent-strong,#1a4dbd));color:#fff;border-radius:50%;flex:0 0 40px;justify-content:center;align-items:center;width:40px;height:40px;font-size:15px;font-weight:600;display:inline-flex}.user-meta-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px;display:flex}.user-meta-row small{color:var(--color-ink-faint,#707683);font-size:12px}.user-card-actions{flex-wrap:wrap;align-items:flex-start;gap:8px;display:flex}.user-card-actions form{margin:0}.status-pill.role-admin{color:#1a4dbd;background:#ecf3ff}.status-pill.role-sales{color:#a85a00;background:#fff4e5}.status-pill.role-staff{color:#2f7a3a;background:#eef5ee}.status-pill.success{color:#1f7a3a;background:#e6f7ec}.status-pill.muted{color:#707683;background:#eceff3}.status-pill.info{color:#1a4dbd;background:#ecf3ff}@media (width<=720px){.user-card-head{flex-direction:column;align-items:stretch}.user-card-actions{justify-content:flex-start}}.breadcrumbs{color:var(--color-ink-muted);margin:0 0 12px;font-size:13px}.breadcrumbs ol{flex-wrap:wrap;align-items:center;gap:6px;margin:0;padding:0;list-style:none;display:flex}.breadcrumbs li{align-items:center;gap:6px;display:inline-flex}.breadcrumbs a{color:var(--color-ink-muted);text-decoration:none}.breadcrumbs a:hover,.breadcrumbs a:focus-visible{color:var(--color-navy);text-decoration:underline}.breadcrumbs .is-current span{color:var(--color-ink);font-weight:600}.breadcrumbs .breadcrumb-sep{color:var(--color-ink-faint)}.file-preview-backdrop{z-index:1000;background:#0b1f3a8c;justify-content:center;align-items:center;padding:24px;display:none;position:fixed;inset:0}.file-preview-backdrop.is-open{display:flex}.file-preview-modal{background:var(--color-surface);border-radius:var(--radius-modal,12px);width:min(1100px,100%);height:min(88vh,100%);box-shadow:var(--shadow-modal);flex-direction:column;display:flex;overflow:hidden}.file-preview-head{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.file-preview-body{background:#2a2a2a;flex:1;justify-content:center;align-items:center;display:flex;overflow:auto}.file-preview-body iframe,.file-preview-body img{object-fit:contain;background:#fff;border:0;width:100%;max-width:100%;height:100%;max-height:100%}.upload-progress{border-radius:var(--radius-input,8px);background:var(--color-surface-muted,#f5f6f8);border:1px solid var(--color-border);margin-top:8px;padding:8px 12px;font-size:12px;display:none}.upload-progress.is-active{display:block}.upload-progress-bar{background:#0b1f3a14;border-radius:999px;height:6px;margin-top:6px;overflow:hidden}.upload-progress-bar>span{background:var(--color-navy);width:0%;height:100%;transition:width .15s var(--ease-standard,ease-out);display:block}.upload-progress.is-error .upload-progress-bar>span{background:var(--color-danger)}@media (prefers-reduced-motion:reduce){.upload-progress-bar>span{transition:none}}.text-right{text-align:right}.text-center{text-align:center}.text-left{text-align:left}.text-tabular{font-feature-settings:"tnum"}.text-muted{color:var(--color-ink-muted)}.text-faint{color:var(--color-ink-faint)}.text-subtle{color:var(--color-ink-subtle)}.text-strong{color:var(--color-ink-strong)}.d-none{display:none}.d-block{display:block}.d-inline{display:inline}.d-inline-block{display:inline-block}.d-flex{display:flex}.d-inline-flex{display:inline-flex}.d-grid{display:grid}.flex-1{flex:1}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.flex-column{flex-direction:column}.flex-row{flex-direction:row}.align-center{align-items:center}.align-start{align-items:flex-start}.align-end{align-items:flex-end}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.gap-6{gap:var(--space-6)}.grid-2-col{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.grid-3-col{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.grid-auto-fit{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.m-0{margin:0}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.ml-1{margin-left:var(--space-1)}.ml-2{margin-left:var(--space-2)}.mr-1{margin-right:var(--space-1)}.mr-2{margin-right:var(--space-2)}.p-0{padding:0}.pt-1{padding-top:var(--space-1)}.pt-2{padding-top:var(--space-2)}.pb-1{padding-bottom:var(--space-1)}.pb-2{padding-bottom:var(--space-2)}.w-full{width:100%}.w-auto{width:auto}.min-w-0{min-width:0}.badge-compact{padding:1px 6px;font-size:10px}.btn-full{width:100%}.panel-mb{margin-bottom:var(--space-4)}.section-mb{margin-bottom:var(--space-section)}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.border-0{border:0}.border-radius-0{border-radius:0}@media (width<=780px){.mobile-hidden{display:none!important}.mobile-flex{display:flex!important}.mobile-block{display:block!important}.mobile-w-full{width:100%!important}}@media (width>=781px){.desktop-hidden{display:none!important}}
