:root{--ink:#252729;--muted:#6f706d;--paper:#f5f4f0;--panel:#fff;--line:#dedbd4;--ember:#d94b2b;--ember-dark:#ad341c;--gold:#deab1f;--violet:#8a3ffc;--teal:#2b7a78;--shadow:0 14px 36px rgba(27,29,30,.08);--radius:16px;--font:"Segoe UI",Aptos,Arial,sans-serif;--display:"Bahnschrift SemiCondensed","Arial Narrow",sans-serif}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font-family:var(--font);font-size:16px}body{margin:0;background:radial-gradient(circle at 90% 0,rgba(217,75,43,.06),transparent 30rem),var(--paper)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:240px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:var(--ink);color:#fff;padding:26px 18px;display:flex;flex-direction:column;z-index:30}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:45px;height:45px;display:grid;place-items:center;border-radius:50% 50% 50% 8px;background:var(--ember);font:bold 18px var(--display);box-shadow:inset 0 -6px 14px rgba(70,0,0,.22)}.brand strong{display:block;font:700 22px var(--display);letter-spacing:.02em}.brand small{display:block;color:#bfc0bd;font-size:11px;letter-spacing:.13em;text-transform:uppercase;margin-top:2px}.sidebar nav{display:grid;gap:7px;margin-top:44px}.sidebar nav a{display:flex;align-items:center;gap:13px;color:#c9c9c6;padding:12px 13px;border-radius:11px;font-weight:600}.sidebar nav a span{width:22px;text-align:center;font-size:18px}.sidebar nav a:hover,.sidebar nav a.active{color:#fff;background:#36383a}.sidebar nav a.active{box-shadow:inset 3px 0 var(--ember)}.sidebar-foot{margin-top:auto;display:grid;gap:9px;padding:14px 12px;color:#c9c9c6;font-size:13px}.sidebar-foot small{color:#848581}.link-button{background:none;border:0;padding:0;color:inherit;cursor:pointer}.main{min-width:0}.topbar{height:72px;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 34px;background:rgba(245,244,240,.9);backdrop-filter:blur(14px);position:sticky;top:0;z-index:20}.topbar-title{font:650 14px var(--display);letter-spacing:.1em;text-transform:uppercase}.topbar .button{margin-left:auto}.menu-toggle{display:none;background:none;border:0;font-size:24px;margin-right:12px}.page{max-width:1500px;margin:auto;padding:32px 38px 60px}.messages{position:fixed;top:82px;right:20px;z-index:100;display:grid;gap:8px}.message{background:#fff;border:1px solid var(--line);border-left:4px solid var(--teal);border-radius:10px;padding:12px 16px;box-shadow:var(--shadow);max-width:420px}.message.error{border-left-color:var(--ember)}h1,h2,h3,p{margin-top:0}h1{font:700 clamp(32px,4vw,54px)/.98 var(--display);letter-spacing:-.025em;margin-bottom:10px}h2{font:700 24px/1.1 var(--display);letter-spacing:-.01em}h3{font:700 17px var(--display)}p{color:var(--muted);line-height:1.55}.kicker{display:block;color:var(--ember);font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:11px 16px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--ink);font-weight:700;cursor:pointer}.button:hover{border-color:#aaa59c;transform:translateY(-1px)}.button-primary{background:var(--ember);border-color:var(--ember);color:#fff;box-shadow:0 8px 18px rgba(217,75,43,.2)}.button-primary:hover{background:var(--ember-dark);border-color:var(--ember-dark)}.button-compact{padding:9px 13px;font-size:14px}.button-small{padding:7px 10px;font-size:13px}.icon-button{border:0;background:#ece9e2;border-radius:50%;width:30px;height:30px;cursor:pointer}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:0 3px 8px rgba(27,29,30,.025)}.page-head,.detail-hero,.section-head{display:flex;justify-content:space-between;align-items:center;gap:20px}.page-head{margin-bottom:28px}.page-head p{margin:0}.hero-line{position:relative;display:flex;justify-content:space-between;align-items:flex-end;padding:12px 0 30px;border-bottom:1px solid var(--line)}.hero-line h1{font-size:clamp(42px,6vw,78px)}.heat-dial{width:138px;height:138px;border-radius:50% 50% 50% 12px;border:12px solid #ede8df;border-right-color:var(--ember);display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-6deg)}.heat-dial span,.heat-dial small{transform:rotate(6deg)}.heat-dial span{font:700 40px var(--display)}.heat-dial small{color:var(--muted);font-size:11px}.stats-strip{display:grid;grid-template-columns:repeat(4,1fr);margin:22px 0 28px;border:1px solid var(--line);border-radius:14px;background:#fff}.stats-strip div{padding:16px 20px;border-right:1px solid var(--line)}.stats-strip div:last-child{border:0}.stats-strip strong{font:700 28px var(--display);margin-right:8px}.stats-strip span{color:var(--muted);font-size:13px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(270px,.7fr);gap:20px}.calendar-panel{min-width:0}.section-head{margin-bottom:18px}.section-head h2{margin:0}.section-head .kicker{margin-bottom:4px}.legend{display:flex;flex-wrap:wrap;gap:12px;color:var(--muted);font-size:12px}.legend span{display:flex;align-items:center;gap:5px}.dot{width:8px;height:8px;border-radius:50%;display:inline-block}.dot.inspect{background:var(--teal)}.dot.install{background:var(--ember)}.dot.service{background:var(--violet)}.dot.done{background:var(--gold)}.timeline{display:grid}.timeline-item{display:grid;grid-template-columns:42px 4px 1fr;gap:12px;align-items:stretch;padding:10px 0}.timeline-item time{font:700 14px var(--display);padding-top:5px}.event-line{border-radius:6px;background:var(--ember)}.event-line.service{background:var(--violet)}.event-line.sale{background:var(--gold)}.event-line.inspection{background:var(--teal)}.timeline-item strong{display:block;font-size:14px}.timeline-item small{display:block;color:var(--muted);margin-top:3px}.map-panel{margin-top:20px}.map-panel #job-map{height:460px;border-radius:11px;overflow:hidden}.map-note{font-size:12px;margin:10px 0 0}.crm-marker{display:block;width:22px;height:22px;border:3px solid #fff;border-radius:50% 50% 50% 4px;background:var(--marker);transform:rotate(-45deg);box-shadow:0 4px 10px rgba(0,0,0,.25)}.crm-marker-wrap{background:none!important;border:0!important}.reminder-panel{margin-bottom:20px;border-left:4px solid var(--violet)}.reminder-list{display:grid}.reminder-row{display:grid;grid-template-columns:10px 1fr auto auto;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.reminder-row:first-child{border-top:0}.event-dot{width:8px;height:8px;border-radius:50%;background:var(--violet)}.reminder-row strong,.reminder-row small{display:block}.reminder-row small{color:var(--muted)}.filterbar{display:flex;gap:10px;margin-bottom:18px}.filterbar input{flex:1}.filterbar input,.filterbar select,.mail-folders select{height:43px;border:1px solid var(--line);background:#fff;border-radius:9px;padding:0 12px}.data-table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.data-table{width:100%;border-collapse:collapse;min-width:800px}.data-table th{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:left;background:#f0eee9}.data-table th,.data-table td{padding:14px 16px;border-bottom:1px solid var(--line)}.data-table td strong{display:block;font-size:14px;margin-top:5px}.data-table td small{display:block;color:var(--muted);margin-top:3px}.data-table tr:last-child td{border-bottom:0}.row-link{font-weight:700;color:var(--ember);white-space:nowrap}.job-type{display:inline-block;color:var(--ember);font-size:10px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.job-type.service{color:var(--violet)}.job-type.sale{color:#9c7508}.job-type.inspection{color:var(--teal)}.status{display:inline-flex;padding:5px 9px;border-radius:99px;background:#eceae5;font-size:11px;font-weight:700;white-space:nowrap}.status.todo{background:#fce9e4;color:#a63119}.status.in_progress{background:#fff0c4;color:#745600}.status.done{background:#e5f2e9;color:#2e6a40}.status.cancelled{background:#e7e7e7;color:#666}.wizard-form{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden}.wizard-progress{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line);background:#f0eee9}.wizard-progress button{border:0;border-right:1px solid var(--line);background:none;padding:15px;color:var(--muted);font-weight:700;cursor:pointer}.wizard-progress button:last-child{border-right:0}.wizard-progress span{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#dedbd4;margin-right:6px;font-size:12px}.wizard-progress button.active{color:var(--ink);background:#fff;box-shadow:inset 0 3px var(--ember)}.wizard-progress button.active span{background:var(--ember);color:#fff}.wizard-step{display:none;padding:32px}.wizard-step.active{display:block;animation:stepIn .22s ease-out}@keyframes stepIn{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:none}}.form-section-head{display:flex;gap:16px;align-items:flex-start;margin-bottom:26px}.form-section-head>span{font:700 35px var(--display);color:#d8d4cc}.form-section-head h2{margin:2px 0 4px}.form-section-head p{margin:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 22px}.field{display:grid;gap:7px}.field label{font-size:12px;font-weight:750;color:#50514f}.field input,.field select,.field textarea,.simple-form input,.simple-form select,.simple-form textarea{width:100%;border:1px solid #cbc7be;border-radius:9px;padding:10px 12px;background:#fff;color:var(--ink);min-height:43px}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid rgba(217,75,43,.14);border-color:var(--ember)}.field small{color:var(--muted);font-size:11px}.span-2{grid-column:1/-1}.or-divider{text-transform:uppercase;letter-spacing:.12em;font-size:10px;color:#999690;display:flex;align-items:center;gap:12px}.or-divider:before,.or-divider:after{content:"";height:1px;background:var(--line);flex:1}.checkbox-field{display:flex;gap:10px;align-items:center}.checkbox-field label{order:2}.checkbox-field input{width:21px;height:21px;min-height:0}.wizard-actions,.form-actions{display:flex;justify-content:flex-end;gap:10px;padding:18px 32px;background:#f0eee9;border-top:1px solid var(--line)}.wizard-actions [data-prev]{margin-right:auto}.wizard-actions [data-save]{display:none}.money-preview{margin-top:25px;background:var(--ink);color:#fff;padding:18px 22px;border-radius:12px;display:flex;align-items:center;justify-content:space-between}.money-preview strong{font:700 27px var(--display);color:#ffb39f}.checklist-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.checklist-card{border:1px solid var(--line);border-radius:12px;overflow:hidden}.checklist-card h3{margin:0;padding:12px 14px;background:#f0eee9}.quantity-row{display:grid;grid-template-columns:1fr 75px;align-items:center;gap:10px;padding:8px 12px;border-top:1px solid #eeeae3;font-size:13px}.quantity-row input{width:75px;border:1px solid var(--line);border-radius:7px;padding:6px;text-align:right}.custom-items,.upload-drop{margin-top:24px}.custom-row{display:grid;grid-template-columns:170px 1fr 100px 36px;gap:8px;margin-bottom:8px}.custom-row input,.custom-row select{border:1px solid var(--line);border-radius:8px;padding:8px}.upload-drop{border:2px dashed #c9c2b7;border-radius:12px;padding:22px;background:#faf8f4}.form-errors,.errorlist{color:#a63119;background:#fce9e4;border-radius:8px;padding:9px 12px}.errorlist{list-style:none;margin:0;font-size:12px}.detail-hero{padding-bottom:25px;border-bottom:1px solid var(--line);align-items:flex-end}.detail-hero h1{margin-top:9px}.detail-hero p{margin-bottom:0}.detail-actions{display:flex;gap:9px;flex-wrap:wrap}.detail-meta{display:flex;gap:10px;align-items:center}.tabs{display:flex;gap:6px;margin:22px 0;border-bottom:1px solid var(--line);overflow:auto}.tabs button{border:0;background:none;padding:12px 15px;font-weight:700;color:var(--muted);border-bottom:3px solid transparent;white-space:nowrap;cursor:pointer}.tabs button.active{color:var(--ink);border-color:var(--ember)}.tabs span{background:#dedbd4;border-radius:99px;padding:2px 6px;font-size:10px}.tab-panel{display:none}.tab-panel.active{display:block}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.info-card dl,.money-card dl{display:grid;grid-template-columns:140px 1fr;gap:10px;margin:0}.info-card dt,.money-card dt{color:var(--muted);font-size:12px}.info-card dd,.money-card dd{margin:0;font-weight:600}.card-actions{display:flex;gap:16px;margin-top:20px;font-size:13px;font-weight:700;color:var(--ember)}.money-card{background:var(--ink);color:#fff}.money-card>span{color:#bbb}.money-card>strong{display:block;font:700 47px var(--display);color:#ffb39f;margin:6px 0 20px}.money-card dt{color:#aaa}.money-card .button{margin-top:22px}.notes-card{margin-top:18px}.item-columns{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:18px}.item-columns h3{border-bottom:2px solid var(--ember);padding-bottom:8px}.item-columns p{font-size:13px;margin-bottom:7px;color:var(--ink)}.item-columns p strong{color:var(--ember)}.upload-inline{margin-bottom:18px}.upload-inline p{display:grid;gap:5px}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:15px}.photo-grid figure{margin:0;background:#fff;border:1px solid var(--line);padding:8px;border-radius:12px}.photo-grid img{display:block;width:100%;height:190px;object-fit:cover;border-radius:8px}.photo-grid figcaption{padding:8px 4px 2px;color:var(--muted);font-size:12px}.document-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin-bottom:20px}.document-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:20px;display:grid;gap:6px}.document-card:hover{border-color:var(--ember)}.document-card span{font-size:10px;font-weight:800;letter-spacing:.1em;color:var(--ember)}.document-card small{color:var(--muted)}.document-card.generated{background:#fff7f3}.danger-zone{margin-top:32px;border-top:1px solid var(--line);padding-top:18px}.link-danger{border:0;background:none;color:#b72f18;padding:0;cursor:pointer}.customer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}.customer-card{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:13px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:16px}.customer-card:hover{border-color:#aaa59c;box-shadow:var(--shadow)}.customer-card strong,.customer-card small,.customer-card em{display:block}.customer-card small{color:var(--muted);margin:4px 0}.customer-card em{font-style:normal;color:var(--ember);font-size:11px;font-weight:700}.avatar{width:45px;height:45px;border-radius:50% 50% 50% 10px;display:grid;place-items:center;background:#f3d8cf;color:var(--ember-dark);font:700 20px var(--display)}.avatar-large{width:60px;height:60px;margin-bottom:12px}.simple-form{max-width:900px}.simple-form>p{display:grid;gap:6px}.compose-form{max-width:980px}.mail-shell{display:grid;grid-template-columns:220px 1fr;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;min-height:600px}.mail-folders{background:#f0eee9;border-right:1px solid var(--line);padding:18px;display:flex;flex-direction:column;gap:5px}.mail-folders select{width:100%;margin-bottom:12px}.mail-folders a{padding:9px 10px;border-radius:8px;font-size:13px}.mail-folders a.active{background:#fff;font-weight:700}.mail-folders small{margin-top:auto;color:var(--muted)}.mail-list-head{display:flex;justify-content:space-between;padding:18px;border-bottom:1px solid var(--line)}.mail-row{display:grid;grid-template-columns:32px 1fr;gap:8px;padding:16px 18px;border-bottom:1px solid var(--line)}.mail-row.unread{background:#fffaf7}.mail-row.unread h3{font-weight:800}.star{border:0;background:none;color:#c4c0b7;font-size:22px;cursor:pointer}.star.on{color:var(--gold)}.mail-meta{display:flex;justify-content:space-between;gap:12px}.mail-meta time{color:var(--muted);font-size:11px}.mail-row h3{font:600 15px var(--font);margin:5px 0}.mail-row p{font-size:12px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:800px}.mail-actions{display:flex;gap:14px;margin-top:8px;font-size:12px;color:var(--ember);font-weight:700}.mail-actions form{display:flex;gap:5px}.mail-actions select,.mail-actions button{border:0;background:none;color:inherit;font-weight:700}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.settings-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.settings-row small{display:block;color:var(--muted)}.future-box{border-left:4px solid var(--gold)}.empty{padding:30px;text-align:center;color:var(--muted)}.auth-page{min-height:100vh;display:grid;grid-template-columns:1.25fr .75fr;background:var(--ink)}.auth-brand{position:relative;color:#fff;padding:48px clamp(30px,8vw,120px);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.auth-brand:after{content:"";position:absolute;width:520px;height:520px;border:80px solid rgba(217,75,43,.18);border-radius:50% 50% 50% 12px;right:-190px;bottom:-210px;transform:rotate(-20deg)}.auth-brand h1{font-size:clamp(48px,7vw,96px);max-width:800px}.auth-brand p{color:#bfc0bd;max-width:570px;font-size:18px}.ember-line{width:130px;height:5px;background:linear-gradient(90deg,var(--gold),var(--ember));border-radius:5px}.auth-form{background:var(--paper);display:grid;place-items:center;padding:30px}.auth-form form{width:min(390px,100%)}.auth-form h2{font-size:38px}.auth-form p{display:grid;gap:6px}.auth-form input{width:100%;border:1px solid var(--line);border-radius:9px;padding:12px}.auth-form .button{width:100%;margin:8px 0 15px}.auth-form a{font-size:13px;color:var(--ember)}.auth-simple{min-height:100vh;display:grid;place-items:center;padding:20px}.auth-simple .panel{width:min(500px,100%)}.fc{--fc-border-color:#e5e1d9;--fc-button-bg-color:#252729;--fc-button-border-color:#252729;--fc-event-border-color:transparent;font-size:13px}.fc .fc-toolbar-title{font:700 20px var(--display)}.fc .fc-button{font-size:12px}.fc .fc-daygrid-day-number{font-weight:600}.leaflet-popup-content{font:13px var(--font);line-height:1.5}.leaflet-popup-content a{color:var(--ember);font-weight:700}@media(max-width:1050px){.app-shell{grid-template-columns:78px 1fr}.sidebar{padding:22px 12px}.sidebar .brand>span:last-child,.sidebar nav a:not(.active)::after,.sidebar nav a{font-size:0}.sidebar nav a{justify-content:center;padding:13px}.sidebar nav a span{font-size:20px}.sidebar-foot a,.sidebar-foot form,.sidebar-foot small{font-size:0}.dashboard-grid{grid-template-columns:1fr}.upcoming-panel{order:-1}.item-columns{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.app-shell{display:block}.sidebar{position:fixed;width:260px;left:-280px;transition:left .2s}.sidebar.open{left:0;box-shadow:20px 0 60px rgba(0,0,0,.3)}.sidebar .brand>span:last-child,.sidebar nav a,.sidebar-foot a,.sidebar-foot form,.sidebar-foot small{font-size:initial}.sidebar nav a{justify-content:flex-start}.sidebar nav a span{font-size:18px}.menu-toggle{display:block}.topbar{padding:0 16px;height:62px}.page{padding:24px 16px 50px}.hero-line{align-items:center}.hero-line h1{font-size:47px}.heat-dial{width:95px;height:95px;border-width:8px}.heat-dial span{font-size:29px}.stats-strip{grid-template-columns:repeat(2,1fr)}.stats-strip div:nth-child(2){border-right:0}.stats-strip div:nth-child(-n+2){border-bottom:1px solid var(--line)}.page-head,.detail-hero{align-items:flex-start;flex-direction:column}.wizard-progress button{font-size:0}.wizard-progress span{font-size:12px;margin:0}.wizard-step{padding:22px 16px}.form-grid,.detail-grid,.checklist-grid,.settings-grid{grid-template-columns:1fr}.span-2{grid-column:auto}.custom-row{grid-template-columns:1fr 1fr}.custom-row input:nth-of-type(1){grid-column:1/-1}.wizard-actions{padding:14px 16px}.filterbar{display:grid;grid-template-columns:1fr 1fr}.filterbar input{grid-column:1/-1}.item-columns{grid-template-columns:1fr}.mail-shell{grid-template-columns:1fr}.mail-folders{border-right:0;border-bottom:1px solid var(--line);max-height:220px}.mail-list{min-width:0}.mail-row p{max-width:70vw}.auth-page{grid-template-columns:1fr}.auth-brand{display:none}.auth-form{min-height:100vh}.map-panel #job-map{height:370px}.legend{display:none}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}*:focus-visible{outline:3px solid rgba(217,75,43,.4);outline-offset:2px}
