@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700;800&family=DM+Sans:wght@400;500;600;700;800&display=swap";:root{--navy:#1a2744;--navy2:#0f172a;--green:#c9a227;--green2:#f5d77b;--cream:#f8f9f4;--line:#e8ede8;--muted:#64748b;--danger:#dc2626;--amber:#f59e0b;--blue:#2563eb}*{box-sizing:border-box}body{background:var(--cream);color:var(--navy);margin:0;font-family:DM Sans,sans-serif}button,input,select,textarea{font:inherit}.shell{min-height:100vh;display:flex}.sidebar{color:#fff;z-index:10;background:linear-gradient(#0f172a 0%,#0b1222 100%);border-right:1px solid #ffffff0f;flex-direction:column;width:270px;min-width:270px;transition:width .25s,min-width .25s;display:flex;position:fixed;inset:0 auto 0 0;overflow:hidden;box-shadow:8px 0 40px #00000059}.sidebar.collapsed{width:64px!important;min-width:64px!important}.brand-block{text-align:center;background:linear-gradient(#ffffff0a,#ffffff04);border-bottom:1px solid #ffffff14;flex-shrink:0;padding:18px 18px 22px}.brand-top{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.sidebar.collapsed .brand-top{justify-content:center}.live-dot{letter-spacing:1.5px;color:#f5d77b;text-transform:uppercase;align-items:center;gap:7px;font-size:9px;font-weight:900;display:flex}.live-dot span:first-child{background:#f5d77b;border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:1.8s infinite livePulse}@keyframes livePulse{0%,to{opacity:1}50%{opacity:.35}}.sidebar.collapsed .live-dot .live-text{display:none}.collapse-btn{color:#fff6;cursor:pointer;background:#ffffff12;border:1px solid #ffffff1a;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;transition:all .15s;display:flex}.collapse-btn:hover{color:#ffffffe6;background:#ffffff24}.brand-logo-full{object-fit:contain;filter:brightness(1.3)drop-shadow(0 8px 18px #00000059);width:100%;max-width:150px;height:auto;margin:10px auto 14px;display:block}.sidebar.collapsed .brand-logo-full{max-width:36px;margin:8px auto}.brand-text-block{text-align:center;transition:opacity .2s;overflow:hidden}.sidebar.collapsed .brand-text-block{opacity:0;height:0;margin:0}.brand-text-block .b-name{color:#fff;font-size:13px;font-weight:900}.brand-text-block .b-sub{color:#f5d77b;letter-spacing:1.8px;text-transform:uppercase;margin-top:4px;font-size:9px;font-weight:900}.nav{scrollbar-width:none;flex:1;padding:10px 12px;overflow-y:auto}.nav::-webkit-scrollbar{display:none}.nav-group{margin-bottom:2px}.nav-group-label{letter-spacing:2.4px;color:#ffffff40;text-transform:uppercase;white-space:nowrap;-webkit-user-select:none;user-select:none;padding:14px 12px 5px;font-size:9px;font-weight:900;transition:opacity .15s;overflow:hidden}.sidebar.collapsed .nav-group-label{opacity:0;pointer-events:none;padding:4px 0}.nav button{color:#ffffff94;cursor:pointer;text-align:left;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:12px;align-items:center;gap:11px;width:100%;margin-bottom:2px;padding:10px 13px;font-size:13px;font-weight:700;transition:all .2s;display:flex;position:relative;overflow:hidden}.nav button:hover{color:#fff;background:#ffffff12;transform:translate(3px)}.nav button.active{color:#fff;background:linear-gradient(135deg,#c9a227,#b8891f);border:none;transform:translate(3px);box-shadow:0 8px 20px #2d6a2d59}.nav button .nav-label{flex:1}.sidebar.collapsed .nav button{justify-content:center;padding:10px}.sidebar.collapsed .nav button .nav-label{display:none}.nav-badge{color:#fff;background:#e53935;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;min-width:16px;height:16px;margin-left:auto;padding:0 4px;font-size:9px;font-weight:800;display:flex}.nav-badge.green{background:#c9a227}.sidebar.collapsed .nav-badge{min-width:12px;height:12px;padding:0 2px;font-size:7px;position:absolute;top:4px;right:4px}.sidebar-foot{background:#ffffff09;border-top:1px solid #ffffff14;flex-shrink:0;align-items:center;gap:12px;padding:14px 16px;display:flex;overflow:hidden}.avatar{color:#fff;background:linear-gradient(135deg,#c9a227,#f5d77b);border-radius:12px;flex-shrink:0;place-items:center;width:38px;height:38px;font-size:13px;font-weight:900;display:grid;box-shadow:0 6px 16px #2d6a2d59}.sidebar-foot strong{color:#fff;font-size:13px;display:block}.sidebar-foot small{color:#ffffff73;font-size:11px;display:block}.sidebar.collapsed .sidebar-foot{justify-content:center;padding:14px 10px}.sidebar.collapsed .sidebar-foot>:not(.avatar){display:none}.main{flex:1;min-width:0;margin-left:270px;transition:margin-left .25s}.topbar{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:5;background:#fffffff2;border-bottom:1px solid #0f172a0f;justify-content:space-between;align-items:center;height:72px;padding:0 32px;display:flex;position:sticky;top:0;box-shadow:0 4px 24px #0f172a0d}.topbar strong{font:800 26px Playfair Display,serif;display:block}.topbar small{color:var(--muted);margin-top:2px;font-size:12px;font-weight:600;display:block}.top-actions{gap:10px;display:flex}.top-actions button,.row-actions button,.button-row button,button.primary,.danger{cursor:pointer;color:var(--navy);background:#fff;border:1px solid #0f172a14;border-radius:12px;align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:800;transition:all .2s;display:inline-flex}button.primary,.primary{color:#fff!important;background:linear-gradient(135deg,#c9a227,#b8891f)!important;border:none!important;box-shadow:0 6px 16px #2d6a2d40!important}.danger{color:#dc2626!important;background:#fff5f5!important;border-color:#fecaca!important}.page{padding:30px}.page-head{justify-content:space-between;align-items:end;margin-bottom:24px;display:flex}.page-head h2{margin:0;font:800 32px Playfair Display,serif}.page-head p{color:var(--muted);margin:4px 0 0}.stats-grid{grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:22px;display:grid}.stat{border:1px solid var(--line);background:#fff;border-radius:18px;padding:20px;transition:transform .2s,box-shadow .2s;position:relative;overflow:hidden;box-shadow:0 4px 16px #1a27440a}.stat:before{content:"";background:linear-gradient(#c9a227,#f5d77b);width:4px;height:100%;position:absolute;top:0;left:0}.stat:hover{transform:translateY(-4px);box-shadow:0 14px 32px #1a27441a}.stat svg{color:var(--green)}.stat small{color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-top:12px;font-size:11px;font-weight:900;display:block}.stat strong{margin-top:4px;font:800 30px Playfair Display,serif;display:block}.stat span{color:var(--green);font-size:13px;font-weight:800}.stat-card{border:1px solid var(--line);background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 4px 16px #1a27440a}.card-head{border-bottom:1px solid var(--line);background:#fff;padding:18px 22px}.card-head h3{margin:0;font:800 18px Playfair Display,serif}.card-body{padding:20px 22px}.grid{gap:22px;margin-bottom:22px;display:grid}.two{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1.5fr .8fr}.quote-grid{grid-template-columns:1.1fr .9fr}.card{border:1px solid var(--line);background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 4px 16px #1a27440a}.chart{height:300px}.quick-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.quick-grid button{border:1px solid var(--line);background:var(--cream);text-align:left;color:var(--navy);cursor:pointer;border-radius:14px;align-items:center;gap:12px;padding:18px;font-weight:900;display:flex}.quick-grid button:hover{border-color:var(--green);background:#fff}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%}th{text-transform:uppercase;letter-spacing:1px;text-align:left;color:var(--muted);background:var(--cream);padding:12px;font-size:11px}td{border-bottom:1px solid var(--line);padding:13px 12px;font-size:14px}tr:hover td{background:#fbfdfb}.badge{color:var(--navy);white-space:nowrap;background:#e8edf5;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:900;display:inline-flex}.confirmed,.paid,.won,.available,.active,.completed,.high{color:#166534;background:#dcfce7}.pending,.part-paid,.quote-sent,.medium,.contacted{color:#92400e;background:#fef3c7}.unpaid,.lost,.cancelled,.busy,.overdue{color:#991b1b;background:#fee2e2}.new,.low{color:#1e40af;background:#dbeafe}.form-grid-inner{grid-template-columns:1fr 1fr;gap:14px;display:grid}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field span{font-size:13px;font-weight:900}.field input,.field select,.field textarea,.search input{color:var(--navy);background:#fff;border:1.5px solid #cbd5cb;border-radius:11px;outline:none;padding:11px 12px}.field textarea{resize:vertical;min-height:95px}.wide{grid-column:1/-1}.search{border:1px solid var(--line);background:var(--cream);border-radius:12px;align-items:center;gap:9px;margin-bottom:15px;padding:8px 10px;display:flex}.search input{background:0 0;border:0;flex:1;padding:6px}.row-actions{flex-wrap:wrap;gap:7px;display:flex}.row-actions button{padding:7px 9px;font-size:12px}.price-line{border-bottom:1px solid var(--line);justify-content:space-between;padding:11px 0;display:flex}.price-line span{color:var(--muted);font-weight:700}.price-line strong{font-weight:900}.extras{grid-template-columns:1fr 1fr 1fr;gap:10px;margin:6px 0 16px;display:grid}.extras label{border:1px solid var(--line);background:var(--cream);border-radius:12px;padding:11px;font-size:13px;font-weight:800}.total-card{background:var(--navy);color:#fff;border-radius:18px;margin-bottom:16px;padding:22px}.total-card small{opacity:.7}.total-card strong{font:800 42px Playfair Display,serif;display:block}.total-card span{color:#ffffffb3}.scope{background:var(--cream);border-radius:14px;margin:14px 0;padding:14px}.scope strong{margin-bottom:8px;display:block}.scope span{background:#e8edf5;border-radius:999px;margin:4px;padding:5px 9px;font-size:12px;font-weight:900;display:inline-flex}.button-row{flex-wrap:wrap;gap:10px;display:flex}.success{color:#166534;background:#dcfce7;border:1px solid #86efac;border-radius:13px;align-items:center;gap:10px;margin-bottom:18px;padding:12px 14px;font-weight:900;display:flex}.success button{color:#166534;cursor:pointer;background:0 0;border:0;margin-left:auto}.day-section{margin:20px 0}.day-section h3{font:800 18px Playfair Display,serif}.list{flex-direction:column;gap:10px;display:flex}.list-row{border:1px solid var(--line);background:var(--cream);border-radius:12px;justify-content:space-between;align-items:center;padding:12px;display:flex}.checklist{gap:12px;font-weight:800;display:grid}.checklist div{background:var(--cream);border-radius:12px;padding:12px}.postcode-results{border:1.5px solid var(--green);z-index:50;background:#fff;border-top:none;border-radius:0 0 10px 10px;max-height:200px;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0000001f}.postcode-result-item{cursor:pointer;color:var(--navy);border-bottom:1px solid var(--line);padding:10px 14px;font-size:13px}.postcode-result-item:hover{background:var(--cream);color:var(--green);font-weight:700}.postcode-searching{color:var(--muted);padding:10px 14px;font-size:13px;font-style:italic}.pwa-banner{background:var(--navy2);color:#fff;z-index:300;border-radius:14px;align-items:center;gap:12px;padding:14px 18px;display:flex;position:fixed;bottom:80px;left:16px;right:16px;box-shadow:0 8px 32px #0000004d}.pwa-banner-text{flex:1;font-size:13px;font-weight:600}.pwa-banner-sub{opacity:.7;margin-top:2px;font-size:11px}.pwa-banner button{background:var(--green);color:#fff;cursor:pointer;white-space:nowrap;border:none;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:700}.mobile-menu-btn{z-index:200;cursor:pointer;color:#fff;background:#0f172a;border:none;border-radius:10px;justify-content:center;align-items:center;width:42px;height:42px;font-size:20px;display:none;position:fixed;top:16px;left:16px;box-shadow:0 4px 12px #0000004d}.sidebar-overlay{z-index:99;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000008c;display:none;position:fixed;inset:0}@media (width<=900px){.mobile-menu-btn{display:flex}.sidebar{z-index:150;transition:left .25s;position:fixed;top:0;bottom:0;left:-290px;width:270px!important;min-width:270px!important}.sidebar.open{left:0}.sidebar-overlay.open{display:block}.main{margin-left:0!important}.topbar{height:60px!important;padding:0 16px 0 68px!important}.topbar strong{font-size:18px!important}.topbar small{font-size:11px!important}.top-actions button span{display:none}.page{padding:16px!important}.page-head{gap:12px;flex-direction:column!important;margin-bottom:16px!important}.page-head h2{font-size:24px!important}.stats-grid{grid-template-columns:1fr 1fr!important;gap:12px!important}.stat strong{font-size:24px!important}.grid.two,.grid.form-grid,.grid.quote-grid,.form-grid-inner{grid-template-columns:1fr!important}.extras{grid-template-columns:1fr 1fr!important}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}table{min-width:600px}.button-row{flex-wrap:wrap}.button-row button{flex:1;justify-content:center;min-width:120px}.quick-grid{grid-template-columns:1fr 1fr!important}.total-card strong{font-size:30px!important}.card-head,.card-body{padding:14px 16px!important}.row-actions{flex-direction:column}.row-actions button{justify-content:center;width:100%}.mobile-bottom-nav{z-index:90;padding:6px 0;padding-bottom:calc(6px + env(safe-area-inset-bottom));background:#0f172a;border-top:1px solid #ffffff14;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-bottom-nav button{color:#ffffff73;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 4px;font-family:inherit;font-size:9px;font-weight:700;display:flex}.mobile-bottom-nav button.active{color:var(--green2)}.mobile-bottom-nav svg{width:20px;height:20px}.main{padding-bottom:72px}}@media (width<=480px){.stats-grid{grid-template-columns:1fr 1fr!important}.stat{padding:14px!important}.stat strong{font-size:20px!important}.page{padding:12px!important}}@media print{.sidebar,.topbar,.button-row,.row-actions,.search,.mobile-bottom-nav{display:none!important}.main{margin-left:0}.page{padding:0}.card{box-shadow:none;break-inside:avoid}}
