:root{--font-family:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--ease-default:cubic-bezier(.4, 0, .2, 1);--ease-spring:cubic-bezier(.175, .885, .32, 1.275);--duration-instant:.1s;--duration-fast:.16s;--duration-normal:.25s;--duration-slow:.4s;--z-base:0;--z-dropdown:100;--z-sticky:200;--z-modal-backdrop:300;--z-modal:400;--z-toast:500;--z-tooltip:600;--space-xs:.5rem;--space-sm:.75rem;--space-md:1.25rem;--space-lg:2rem;--space-xl:3rem;--tap-target:44px;--sidebar-gutter:var(--space-md);--sidebar-width:280px;--sidebar-rail-width:3.5rem;--sidebar-icon-size:1.25rem;--sidebar-row-height:2.75rem;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-pill:9999px;--color-brand:#09090b;--color-brand-hover:#27272a;--color-brand-text:#fff;--color-bg:#f4f4f5;--color-surface:#fff;--color-surface-hover:#fafafa;--color-surface-glass:#fffc;--color-border:#e4e4e7;--color-border-strong:#d4d4d8;--color-text-primary:#09090b;--color-text-secondary:#52525b;--color-text-muted:#a1a1aa;--status-to-be-checked-bg:#f1f5f9;--status-to-be-checked-text:#475569;--status-to-be-checked-border:transparent;--status-checked-bg:#e0e7ff;--status-checked-text:#3730a3;--status-checked-border:transparent;--status-quoted-bg:#fef3c7;--status-quoted-text:#92400e;--status-quoted-border:transparent;--status-authorised-bg:#dcfce7;--status-authorised-text:#166534;--status-authorised-border:transparent;--status-pending-invoice-bg:#fce7f3;--status-pending-invoice-text:#9d174d;--status-pending-invoice-border:transparent;--status-completed-bg:#d1fae5;--status-completed-text:#065f46;--status-completed-border:transparent;--status-cancelled-bg:#fee2e2;--status-cancelled-text:#991b1b;--status-cancelled-border:transparent;--color-success:#166534;--color-success-bg:#dcfce7;--color-error:#dc2626;--color-error-bg:#fee2e2;--color-warning:#d97706;--color-warning-bg:#fef3c7;--color-danger:#dc2626;--color-purple:#3730a3;--color-purple-bg:#e0e7ff;--shadow-sm:0 1px 2px #00000005, 0 2px 4px #00000005;--shadow-md:0 4px 6px #00000005, 0 8px 12px #00000008;--shadow-lg:0 12px 24px #00000008, 0 24px 48px #0000000a;--shadow-float:0 32px 64px #0000000f, 0 16px 32px #0000000a}[data-theme=dark]{--color-bg:#09090b;--color-surface:#141415;--color-surface-hover:#1c1c1e;--color-surface-glass:#141415b3;--color-border:#ffffff0f;--color-border-strong:#ffffff1f;--color-text-primary:#fff;--color-text-secondary:#a1a1aa;--color-text-muted:#71717a;--color-brand:#c2f042;--color-brand-hover:#b0e030;--color-brand-text:#09090b;--status-to-be-checked-bg:#27272a;--status-to-be-checked-text:#e4e4e7;--status-checked-bg:#3730a34d;--status-checked-text:#a5b4fc;--status-quoted-bg:#92400e4d;--status-quoted-text:#fcd34d;--status-authorised-bg:#1665344d;--status-authorised-text:#86efac;--status-pending-invoice-bg:#9d174d4d;--status-pending-invoice-text:#f9a8d4;--status-completed-bg:#065f464d;--status-completed-text:#6ee7b7;--status-cancelled-bg:#991b1b4d;--status-cancelled-text:#fca5a5;--color-success:#86efac;--color-success-bg:#16653459;--color-error:#f87171;--color-error-bg:#991b1b59;--color-warning:#fbbf24;--color-warning-bg:#92400e59;--color-danger:#f87171;--color-purple:#a5b4fc;--color-purple-bg:#3730a359;--shadow-sm:0 1px 2px #00000080;--shadow-md:0 4px 12px #0009;--shadow-lg:0 16px 32px #000c;--shadow-float:0 32px 64px #000000e6}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html,body,#root{background-color:var(--color-bg);width:100%;height:100%;overflow:hidden}body{font-family:var(--font-family);background-color:var(--color-bg);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-wrap:pretty;margin:0;line-height:1.6}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:var(--space-xs);color:var(--color-text-primary);letter-spacing:-.03em;font-weight:600;line-height:1.1}h1,h2,h3{text-wrap:balance}h1{letter-spacing:-.04em;font-size:2.5rem;font-weight:700}h2{letter-spacing:-.03em;font-size:1.875rem;font-weight:600}h3{letter-spacing:-.02em;font-size:1.5rem}h4{font-size:1.25rem;font-weight:600}h5{font-size:1.125rem}h6{text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-secondary);font-size:.875rem;font-weight:700}a{color:var(--color-brand);transition:color var(--duration-fast) var(--ease-default);text-decoration:none}a:hover{color:var(--color-brand-hover)}a:focus-visible{outline:2px solid var(--color-brand);outline-offset:4px}.status-badge{border-radius:var(--radius-pill);white-space:nowrap;letter-spacing:.02em;border:1px solid #0000;align-items:center;padding:.35rem .85rem;font-size:.75rem;font-weight:700;line-height:1.2;display:inline-flex}.status-badge.to_be_checked{background-color:var(--status-to-be-checked-bg);color:var(--status-to-be-checked-text);border-color:var(--status-to-be-checked-border)}.status-badge.checked{background-color:var(--status-checked-bg);color:var(--status-checked-text);border-color:var(--status-checked-border)}.status-badge.quoted{background-color:var(--status-quoted-bg);color:var(--status-quoted-text);border-color:var(--status-quoted-border)}.status-badge.authorised{background-color:var(--status-authorised-bg);color:var(--status-authorised-text);border-color:var(--status-authorised-border)}.status-badge.pending_invoice{background-color:var(--status-pending-invoice-bg);color:var(--status-pending-invoice-text);border-color:var(--status-pending-invoice-border)}.status-badge.completed{background-color:var(--status-completed-bg);color:var(--status-completed-text);border-color:var(--status-completed-border)}.status-badge.cancelled{background-color:var(--status-cancelled-bg);color:var(--status-cancelled-text);border-color:var(--status-cancelled-border)}input,select,textarea{border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);background-color:var(--color-bg);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out);padding:.85rem 1.25rem;font-family:inherit;font-size:.95rem;font-weight:500}input:hover,select:hover,textarea:hover{border-color:var(--color-border-strong)}input:focus,select:focus,textarea:focus{border-color:var(--color-brand);background-color:var(--color-surface);outline:none;box-shadow:0 0 0 4px #c2f04233}button,.button{border-radius:var(--radius-pill);cursor:pointer;transition:transform var(--duration-fast) var(--ease-spring), background-color var(--duration-fast) var(--ease-default), border-color var(--duration-fast) var(--ease-default), box-shadow var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-family:inherit;font-size:.95rem;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex;transform:scale(1)}button:focus-visible,.button:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}button:disabled,.button:disabled{opacity:.55;cursor:not-allowed;transform:none}button.primary:disabled,.button.primary:disabled{background-color:var(--color-surface-hover)!important;color:var(--color-text-muted)!important;border:1px dashed var(--color-border-strong)!important;box-shadow:none!important}button.locked,.button.locked{background-color:var(--status-to-be-checked-bg);color:var(--status-to-be-checked-text);border:1px dashed var(--color-border-strong);box-shadow:none;cursor:not-allowed}button.locked:hover,.button.locked:hover{background-color:var(--status-to-be-checked-bg);border-color:var(--color-border-strong)}button.doc-btn-quote{background-color:var(--color-brand);color:var(--color-brand-text);border-color:var(--color-brand)}button.doc-btn-jobsheet{background-color:var(--color-success-bg);color:var(--color-success);border-color:var(--color-success)}button.doc-btn-completion{background-color:var(--color-purple-bg);color:var(--color-purple);border-color:var(--color-purple)}.doc-btn-locked-hint{text-transform:uppercase;letter-spacing:.04em;opacity:.85;margin-left:.15rem;font-size:.7rem;font-weight:600}button.primary,.button.primary{background-color:var(--color-brand);color:var(--color-brand-text);box-shadow:0 4px 12px #c2f04226}button.primary:hover:not(:disabled),.button.primary:hover:not(:disabled){background-color:var(--color-brand-hover);box-shadow:0 8px 16px #c2f04233}button.secondary,.button.secondary{background-color:var(--color-bg);border-color:var(--color-border);color:var(--color-text-primary);box-shadow:var(--shadow-sm)}button.secondary:hover:not(:disabled),.button.secondary:hover:not(:disabled){background-color:var(--color-surface-hover);border-color:var(--color-border-strong)}button.danger,.button.danger{color:#fff;background-color:#dc2626;border-color:#0000}button.danger:hover:not(:disabled),.button.danger:hover:not(:disabled){background-color:#b91c1c}button.small,.button.small{padding:.35rem .75rem;font-size:.8125rem}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-muted{color:var(--color-text-muted)}.font-medium{font-weight:500}.font-bold{font-weight:700}.flex{display:flex}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}table{border-collapse:collapse;text-align:left;width:100%}table th{color:var(--color-text-secondary);border-bottom:2px solid var(--color-border);padding:1rem;font-size:.875rem;font-weight:600}table td{border-bottom:1px solid var(--color-border);vertical-align:middle;padding:1rem}.dense-table th,.dense-table td{padding:.5rem .75rem}.app-shell{background-color:var(--color-bg);width:100vw;height:100dvh;padding:var(--space-md);gap:var(--space-md);box-sizing:border-box;display:flex;overflow:hidden}.sidebar{width:var(--sidebar-width);background-color:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);height:100%;min-height:0;z-index:var(--z-sticky);box-shadow:var(--shadow-sm);transition:width var(--duration-normal) var(--ease-out);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.sidebar--collapsed{width:var(--sidebar-rail-width)}.sidebar-top{gap:var(--space-sm);padding:var(--space-md) var(--sidebar-gutter) var(--space-sm);border-bottom:1px solid var(--color-border);flex-direction:column;flex-shrink:0;display:flex}.sidebar-header{justify-content:space-between;align-items:center;gap:var(--space-xs);flex-shrink:0;display:flex}.sidebar-collapse-btn{border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg);width:2rem;height:2rem;color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.sidebar-collapse-btn:hover{background-color:var(--color-surface-hover);color:var(--color-text-primary)}.sidebar-collapse-btn:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.sidebar-brand{align-items:center;gap:var(--space-sm);flex:1;min-width:0;display:flex}.sidebar--collapsed .sidebar-brand-name,.sidebar--collapsed .sidebar-nav-link-label,.sidebar--collapsed .sidebar-section-label,.sidebar--collapsed .sidebar-user-menu-text,.sidebar--collapsed .sidebar-user-menu-chevron{display:none}.sidebar--collapsed .sidebar-header{flex-direction:column;align-items:center}.sidebar--collapsed .sidebar-brand{flex:none}.sidebar--collapsed .sidebar-top,.sidebar--collapsed .sidebar-nav{padding-left:var(--space-xs);padding-right:var(--space-xs);align-items:center}.sidebar--collapsed .sidebar-nav-link{width:var(--sidebar-row-height);justify-content:center;padding:0}.sidebar--collapsed .sidebar-user-menu-trigger{width:var(--sidebar-row-height);min-width:var(--sidebar-row-height);border-radius:50%;justify-content:center;padding:0}.sidebar--collapsed .sidebar-user-menu{padding-left:var(--space-xs);padding-right:var(--space-xs);justify-content:center;display:flex}.sidebar--collapsed .sidebar-user-menu-panel{width:12rem;z-index:var(--z-dropdown);position:absolute;top:0;left:calc(100% + .5rem)}.app-header{padding:var(--space-md) var(--space-xl);z-index:10;background-color:#0000;flex-shrink:0;justify-content:space-between;align-items:center;display:flex;position:relative}.app-header-search{flex:1;max-width:400px}.app-header-actions{align-items:center;gap:var(--space-md);display:flex}.app-header-icon-btn{border:1px solid var(--color-border);background-color:var(--color-bg);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:8px;display:inline-flex}.app-header-icon-btn:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.main-content-inner--dashboard{padding:var(--space-lg) var(--space-xl)}.dashboard-page{gap:var(--space-lg);flex-direction:column;display:flex}.dashboard-bento{gap:var(--space-lg);grid-template-columns:1fr 1fr;display:grid}@media (width<=900px){.dashboard-bento{grid-template-columns:1fr}}.stat-card{padding:var(--space-lg);margin-bottom:0}.stat-card-header{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);color:var(--color-text-secondary);display:flex}.stat-card-icon{background-color:var(--color-bg);border-radius:var(--radius-md);border:1px solid var(--color-border);justify-content:center;align-items:center;padding:8px;display:flex}.stat-card-value{letter-spacing:-.04em;color:var(--color-text-primary);font-size:2.5rem;font-weight:700}.stat-card-badge{border-radius:var(--radius-sm);color:var(--color-success);background-color:var(--color-success-bg);align-items:center;gap:4px;padding:2px 8px;font-size:.75rem;font-weight:700;display:inline-flex}.dashboard-panel{padding:var(--space-lg);min-height:12rem;margin-bottom:0}.dashboard-panel-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.dashboard-panel-title{margin:0;font-size:1.1rem}.dashboard-list{gap:var(--space-xs);flex-direction:column;display:flex}.dashboard-list-item{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);color:inherit;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);border:1px solid #0000;text-decoration:none;display:flex}.dashboard-list-item:hover{background-color:var(--color-surface-hover);border-color:var(--color-border)}.dashboard-list-item-main{min-width:0}.dashboard-list-item-title{color:var(--color-text-primary);margin:0;font-size:.9rem;font-weight:600}.dashboard-list-item-meta{color:var(--color-text-muted);margin:2px 0 0;font-size:.8rem}.activity-list{gap:var(--space-xs);flex-direction:column;display:flex}.activity-row{align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-bg);color:inherit;transition:background-color var(--duration-fast) var(--ease-out);text-decoration:none;display:flex}.activity-row:hover{background-color:var(--color-surface-hover)}.activity-avatar{background-color:var(--color-brand);width:2.5rem;height:2.5rem;color:var(--color-brand-text);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.9rem;font-weight:700;display:flex}.activity-row-body{flex:1;min-width:0}.activity-row-title{color:var(--color-text-primary);margin:0;font-size:.9rem}.activity-row-sub{color:var(--color-text-muted);margin:2px 0 0;font-size:.8rem}.activity-row-date{color:var(--color-text-muted);flex-shrink:0;font-size:.75rem}.dashboard-empty{color:var(--color-text-secondary);padding:var(--space-sm) 0;margin:0;font-size:.9rem}.dashboard-page-title{margin:0;font-size:2rem}.dashboard-page-subtitle{margin-top:.25rem;font-size:1rem}.dashboard-create-btn{border-radius:var(--radius-pill);padding:.85rem 1.5rem;font-size:1rem}.sidebar-brand{align-items:center;gap:var(--space-sm);display:flex}.sidebar-brand-mark{border-radius:var(--radius-md);background-color:var(--color-brand);justify-content:center;align-items:center;padding:6px;display:flex}.sidebar-brand-name{letter-spacing:-.05em;color:var(--color-text-primary);font-size:1.4rem;font-weight:800}.sidebar-section-label{padding:var(--space-sm) var(--space-sm) var(--space-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em;font-size:.75rem;font-weight:700}.sidebar-section-label--group{padding-top:var(--space-lg)}.sidebar-nav{min-height:0;padding:0 var(--sidebar-gutter) var(--space-xs);gap:var(--space-xs);scrollbar-width:thin;scrollbar-color:var(--color-border) transparent;flex-direction:column;flex:1;display:flex;overflow-y:auto}.sidebar-nav-link{align-items:center;gap:var(--space-sm);min-height:var(--sidebar-row-height);padding:0 var(--space-sm);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);background:0 0;border:none;font-size:.95rem;font-weight:600;text-decoration:none;display:flex}.sidebar-nav-link svg{width:var(--sidebar-icon-size);height:var(--sidebar-icon-size);flex-shrink:0}.sidebar-nav-link:hover{background-color:var(--color-surface-hover);color:var(--color-text-primary)}.sidebar-nav-link.active{background-color:var(--color-brand);color:var(--color-brand-text);box-shadow:var(--shadow-sm)}.sidebar-nav-link.active svg{color:var(--color-brand-text)}.sidebar-nav-link:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.user-avatar{background-color:var(--color-brand);width:2.25rem;height:2.25rem;color:var(--color-brand-text);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex}.user-menu{position:relative}.user-menu-trigger{cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.user-menu-trigger:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.user-menu-panel{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:12rem;box-shadow:var(--shadow-md);padding:var(--space-xs);z-index:var(--z-dropdown,100);position:absolute;top:calc(100% + .5rem);right:0}.user-menu-header{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--color-border);margin-bottom:var(--space-xs)}.user-menu-item{align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);color:var(--color-text-secondary);text-align:left;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;font-size:.875rem;font-weight:600;display:flex}.user-menu-item:hover{background-color:var(--color-surface-hover);color:var(--color-text-primary)}.user-menu-item:focus-visible{outline:2px solid var(--color-brand);outline-offset:-2px}.sidebar-user-menu{flex-shrink:0;position:relative}.sidebar-user-menu-trigger{width:100%;min-height:var(--sidebar-row-height);padding:var(--space-xs) var(--space-sm);background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;color:inherit;text-align:left;transition:background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);justify-content:space-between;align-items:center;display:flex}.sidebar-user-menu-trigger:hover{background-color:var(--color-surface-hover);border-color:var(--color-border-strong)}.sidebar-user-menu-trigger:active{transform:scale(.97)}.sidebar-user-menu-trigger:focus-visible{outline:2px solid var(--color-brand);outline-offset:2px}.sidebar-user-menu-name{color:var(--color-text-primary);font-size:.9rem;font-weight:600;line-height:1.1;display:block}.sidebar-user-menu-text{text-align:left}.sidebar-user-menu-role{text-transform:capitalize;margin-top:2px;font-size:.75rem;display:block}.sidebar-user-menu-chevron{transition:transform var(--duration-fast) var(--ease-out);flex-shrink:0}.sidebar-user-menu-chevron-open{transform:rotate(180deg)}.sidebar-user-menu-panel{top:var(--space-xs);width:100%;min-width:0;position:relative;left:0;right:auto}@media (prefers-reduced-motion:reduce){.sidebar-user-menu-chevron{transition:none}.sidebar-user-menu-trigger:active{transform:none}}.main-content{border-radius:var(--radius-lg);box-shadow:none;background-color:#0000;border:none;flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden auto}.main-content-inner{width:100%;max-width:1400px;margin:0 auto;padding:clamp(2rem,4vw,4rem)}.page-header{margin-bottom:var(--space-xl);justify-content:space-between;align-items:flex-end;gap:var(--space-md);flex-wrap:wrap;display:flex}.page-error{background-color:var(--status-cancelled-bg);color:var(--status-cancelled-text);border:1px solid var(--status-cancelled-border);padding:var(--space-md);border-radius:var(--radius-md);margin-bottom:var(--space-xl);align-items:center;gap:var(--space-sm);display:flex}.empty-state{text-align:center;padding:var(--space-xl);color:var(--color-text-secondary);border-radius:var(--radius-xl);background-color:#0000;flex-direction:column;justify-content:center;align-items:center;display:flex}.section-card{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-xl);margin-bottom:var(--space-xl);box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-fast) var(--ease-out), transform var(--duration-fast) var(--ease-out)}.section-card-header{margin-bottom:var(--space-lg);justify-content:space-between;align-items:center;display:flex}.card-hover:hover{border-color:var(--color-border-strong);transform:translateY(-2px)}.detail-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.stat-grid{gap:var(--space-lg);grid-template-columns:repeat(4,1fr);display:grid}.bento-grid{gap:var(--space-lg);grid-template-columns:repeat(12,1fr);display:grid}@media (width<=1024px){.stat-grid{grid-template-columns:repeat(2,1fr)}.app-shell{gap:0;padding:0}.sidebar{border-top:none;border-bottom:none;border-left:none;border-radius:0}.main-content{border:none;border-radius:0}}@media (width<=768px){.stat-grid{grid-template-columns:1fr}}.slide-over-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:var(--z-modal-backdrop);background-color:#0006;position:fixed;inset:0}.slide-over-panel{top:var(--space-md);bottom:var(--space-md);right:var(--space-md);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:600px;box-shadow:var(--shadow-float);z-index:var(--z-modal);flex-direction:column;display:flex;position:fixed}.filter-bar{gap:var(--space-md);margin-bottom:var(--space-xl);background-color:var(--color-bg);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-pill);border:1px solid var(--color-border);flex-wrap:wrap;align-items:center;display:flex}.search-input-wrapper{flex:1;min-width:250px;position:relative}.search-input-wrapper svg{color:var(--color-text-secondary);pointer-events:none;position:absolute;top:50%;left:1.25rem;transform:translateY(-50%)}.search-input{border-radius:var(--radius-pill);width:100%;padding-left:3rem}.form-section{gap:var(--space-lg);flex-direction:column;display:flex}.form-row{gap:var(--space-xs);flex-direction:column;display:flex}.form-label{color:var(--color-text-secondary);margin-left:.25rem;font-size:.875rem;font-weight:600}.form-actions{justify-content:flex-end;gap:var(--space-md);margin-top:var(--space-xl);display:flex}.segment-control{background-color:var(--color-bg);border-radius:var(--radius-pill);border:1px solid var(--color-border);gap:4px;padding:6px;display:inline-flex}.segment-control button{box-shadow:none;color:var(--color-text-secondary);border-radius:var(--radius-pill);background:0 0;border:none;padding:.5rem 1.5rem;font-weight:600}.segment-control button:hover:not(:disabled){color:var(--color-text-primary);background:0 0}.segment-control button.active{background-color:var(--color-surface);color:var(--color-text-primary);box-shadow:var(--shadow-sm);border:1px solid var(--color-border)}.timeline-item{padding-left:var(--space-xl);padding-bottom:var(--space-lg);border-left:2px solid var(--color-border);margin-left:12px;position:relative}.timeline-item:last-child{border-left-color:#0000}.timeline-item:before{content:"";background-color:var(--color-surface);border:2px solid var(--color-border);width:16px;height:16px;transition:border-color var(--duration-fast) var(--ease-out);border-radius:50%;position:absolute;top:0;left:-9px}.timeline-item.active:before{border-color:var(--color-brand);background-color:var(--color-brand)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.toast-container{top:var(--space-md);right:var(--space-md);z-index:var(--z-toast);gap:var(--space-xs);pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast{border-radius:var(--radius-md);box-shadow:var(--shadow-float);border:1px solid var(--color-border);background-color:var(--color-surface);color:var(--color-text-primary);pointer-events:auto;animation:toast-in var(--duration-fast) var(--ease-out);padding:.625rem 1rem;font-size:.875rem;font-weight:500}.toast-success{border-color:var(--status-authorised-text);background-color:var(--status-authorised-bg);color:var(--status-authorised-text)}.toast-error{border-color:var(--status-cancelled-text);background-color:var(--status-cancelled-bg);color:var(--status-cancelled-text)}.toast-info{border-color:var(--status-checked-text);background-color:var(--status-checked-bg);color:var(--status-checked-text)}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dropzone{min-height:120px;padding:var(--space-lg);border:2px dashed var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:center;transition:border-color var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out);justify-content:center;align-items:center;display:flex}.dropzone:hover{border-color:var(--color-border-strong);background-color:var(--color-bg)}.dropzone.active{border-color:var(--color-brand);background-color:var(--color-bg)}.dropzone.uploading{opacity:.6;cursor:not-allowed;pointer-events:none}.media-grid{gap:var(--space-sm);grid-template-columns:repeat(auto-fill,minmax(150px,1fr));display:grid}.media-item{border-radius:var(--radius-md);border:1px solid var(--color-border);background-color:var(--color-surface);overflow:hidden}.media-item img{object-fit:cover;width:100%;height:120px;display:block}.media-item-label{padding:var(--space-xs);text-align:center;background-color:var(--color-bg);border-top:1px solid var(--color-border);color:var(--color-text-secondary);font-size:.75rem;font-weight:500}.media-sections-layout{gap:var(--space-lg);grid-template-columns:1fr 1fr;display:grid}@media (width<=720px){.media-sections-layout{grid-template-columns:1fr}}.media-section{gap:var(--space-sm);flex-direction:column;display:flex}.media-section-header{align-items:center;gap:var(--space-xs);margin-bottom:var(--space-xs);display:flex}.media-section-title{color:var(--color-text);font-size:.875rem;font-weight:600}.media-section-badge{letter-spacing:.03em;text-transform:uppercase;border-radius:99px;padding:2px 7px;font-size:.6875rem;font-weight:600}.media-section-badge.before{background:color-mix(in srgb, var(--color-warning) 15%, transparent);color:var(--color-warning)}.media-section-badge.after{background:color-mix(in srgb, var(--color-success,#10b981) 15%, transparent);color:var(--color-success,#059669)}.dropzone--compact{padding:var(--space-sm) var(--space-md);min-height:unset;font-size:.8125rem}.media-item{position:relative}.media-delete-btn{color:#fff;cursor:pointer;opacity:0;z-index:2;background:#0009;border:none;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;padding:0;transition:opacity .15s,background .1s;display:flex;position:absolute;top:6px;right:6px}.media-item:hover .media-delete-btn{opacity:1}.media-delete-btn:hover{background:#dc2626d9}.media-confirm-row{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:3;background:#000000b8;gap:4px;padding:6px;display:flex;position:absolute;bottom:0;left:0;right:0}.media-confirm-delete,.media-confirm-cancel{border-radius:var(--radius-sm,4px);cursor:pointer;border:none;flex:1;padding:4px 0;font-size:.75rem;font-weight:600;transition:opacity .1s}.media-confirm-delete{color:#fff;background:#dc2626}.media-confirm-cancel{color:#fff;background:#ffffff26}.media-confirm-delete:hover{opacity:.85}.media-confirm-cancel:hover{opacity:.75}.audit-changes-table{border-collapse:collapse;width:100%;margin-top:var(--space-sm);font-size:.8125rem}.audit-changes-table th,.audit-changes-table td{border:1px solid var(--color-border);text-align:left;padding:.375rem .5rem}.audit-changes-table th{background-color:var(--color-bg);color:var(--color-text-secondary);font-weight:600}.audit-summary-list{margin-top:var(--space-sm);grid-template-columns:auto 1fr;gap:.25rem 1rem;font-size:.8125rem;display:grid}.audit-summary-list dt{color:var(--color-text-secondary);font-weight:600}.audit-summary-list dd{color:var(--color-text-primary);margin:0}.audit-trail-section .section-card-header{margin-bottom:var(--space-sm)}.audit-trail-list{border:1px solid var(--color-border);border-radius:var(--radius-md);flex-direction:column;gap:2px;max-height:420px;display:flex;overflow-y:auto}.audit-entry{border-bottom:1px solid var(--color-border)}.audit-entry:last-child{border-bottom:none}.audit-entry-header{cursor:pointer;text-align:left;width:100%;color:var(--color-text-primary);box-shadow:none;background:0 0;border:none;border-radius:0;grid-template-columns:auto auto auto 1fr auto;align-items:center;gap:.5rem .75rem;padding:.5rem .75rem;font-size:.8125rem;display:grid;transform:none}.audit-entry-header:hover{background-color:var(--color-bg)}.audit-entry-header:focus-visible{outline:2px solid var(--color-brand);outline-offset:-2px}.audit-entry-chevron{color:var(--color-text-muted);display:flex}.audit-entry-summary{white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;overflow:hidden}.audit-entry-meta{white-space:nowrap;font-size:.75rem}.audit-entry-body{padding:0 .75rem .75rem 2.25rem}.audit-json-toggle{border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;box-shadow:none;background:0 0;align-items:center;gap:.35rem;margin-top:.5rem;padding:.25rem .5rem;font-size:.75rem;font-weight:500;display:inline-flex}.audit-json-toggle:hover{background-color:var(--color-bg);color:var(--color-text-primary);border-color:var(--color-border-strong)}.audit-json-grid{margin-top:.5rem}.audit-json-block{background-color:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.5rem;font-size:.75rem;overflow-x:auto}.audit-json-block pre{color:var(--color-text-secondary);margin:.35rem 0 0}.list-header{gap:var(--space-md);padding:var(--space-md) var(--space-xl);border-bottom:1px solid var(--color-border);color:var(--color-text-secondary);font-size:.8125rem;font-weight:500;display:grid}.list-row{gap:var(--space-md);padding:var(--space-md) var(--space-xl);border-bottom:1px solid var(--color-border);align-items:center;transition:background-color .15s ease-out;display:grid}.list-row--top{align-items:start}.list-cols-jobs{grid-template-columns:1fr 1.5fr 2fr 2fr 1.5fr 1fr}.list-cols-clients{grid-template-columns:2fr 2fr 1fr 1fr 1fr}.list-cols-properties{grid-template-columns:2fr 1.5fr 1.5fr .75fr}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.table-scroll table{min-width:640px}.form-grid-2{gap:var(--space-md);grid-template-columns:1fr 1fr;display:grid}.logistics-contractor{flex-shrink:0;width:200px}.logistics-card{min-width:280px}.modal-backdrop{z-index:var(--z-modal-backdrop);padding:var(--space-md);background-color:#00000080;position:fixed;inset:0;overflow-y:auto}.modal-panel{max-height:90dvh;margin:0;overflow-y:auto}.mobile-menu-btn,.sidebar-close-btn,.sidebar-backdrop{display:none}@media (width<=768px){.app-shell{gap:0;padding:0}.sidebar,.sidebar--collapsed{width:min(var(--sidebar-width), 85vw);border:none;border-right:1px solid var(--color-border);transition:transform var(--duration-normal) var(--ease-out);z-index:var(--z-modal);padding-bottom:env(safe-area-inset-bottom);border-radius:0;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar--open{box-shadow:var(--shadow-float);transform:none}.sidebar--collapsed .sidebar-brand-name,.sidebar--collapsed .sidebar-nav-link-label,.sidebar--collapsed .sidebar-section-label,.sidebar--collapsed .sidebar-user-menu-text,.sidebar--collapsed .sidebar-user-menu-chevron{display:block}.sidebar--collapsed .sidebar-header{flex-direction:row;align-items:center}.sidebar--collapsed .sidebar-top,.sidebar--collapsed .sidebar-nav{padding-left:var(--sidebar-gutter);padding-right:var(--sidebar-gutter);align-items:stretch}.sidebar--collapsed .sidebar-nav-link{padding:0 var(--space-sm);justify-content:flex-start;width:auto}.sidebar-collapse-btn{display:none}.sidebar-close-btn{width:var(--tap-target);height:var(--tap-target);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-bg);color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.sidebar-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:var(--z-modal-backdrop);background-color:#00000073;display:block;position:fixed;inset:0}body.mobile-nav-open{overflow:hidden}.main-content{border-radius:0}.app-header{padding:var(--space-sm) var(--space-md);padding-top:calc(var(--space-sm) + env(safe-area-inset-top));gap:var(--space-sm)}.mobile-menu-btn{min-width:var(--tap-target);min-height:var(--tap-target);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text-primary);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.app-header-search{display:none}.app-header-actions{gap:var(--space-xs);margin-left:auto}.main-content-inner,.main-content-inner--dashboard{padding:var(--space-md)}.page-header{margin-bottom:var(--space-md)}h1{font-size:1.75rem}h2{font-size:1.4rem}.section-card{padding:var(--space-md);margin-bottom:var(--space-md);border-radius:var(--radius-lg)}input,select,textarea{min-height:var(--tap-target);padding:.6rem 1rem;font-size:16px}button,.button{min-height:var(--tap-target)}button.small,.button.small{min-height:36px}.search-input{padding-left:3rem}.search-input-wrapper{width:100%;min-width:0}.filter-bar{border-radius:var(--radius-lg);padding:var(--space-sm) var(--space-md);gap:var(--space-sm);margin-bottom:var(--space-md)}.filter-bar>*{flex:100%;min-width:0}.filter-bar select,.filter-bar input{width:100%}.list-header{display:none}.list-row{align-items:stretch;gap:var(--space-sm);padding:var(--space-md);flex-direction:column;display:flex}.list-row>[data-label]:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin-bottom:.2rem;font-size:.7rem;font-weight:700;display:block}.list-row [style*="text-align: right"],.list-row .list-cell-action{text-align:left!important}.slide-over-panel{border-radius:0;max-width:none;inset:0}.toast-container{left:var(--space-md);right:var(--space-md)}.form-grid-2{grid-template-columns:1fr}.logistics-row{flex-direction:column;gap:var(--space-sm)!important}.logistics-contractor{width:auto;padding:0}.logistics-cards{scroll-snap-type:x mandatory;width:100%}.logistics-card{scroll-snap-align:start;min-width:min(80vw,280px)}.modal-panel{width:100%!important;max-width:none!important}}
