@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--navy:#17263c;--navy2:#253850;--amber:#ffc164;--paper:#f3f5f7;--white:#fff;--ink:#223248;--muted:#748092;--line:#e5e9ef;--green:#217e64;--red:#b94443;--font:'DM Sans',system-ui,sans-serif;--heading:'Manrope',system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);font-family:var(--font);color:var(--ink);-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #d28e24;outline-offset:3px}a{color:inherit}h1,h2,h3,h4{font-family:var(--heading)}h1{font-size:32px;letter-spacing:-1.1px;line-height:1.2;margin:8px 0 12px}h2{font-size:21px;letter-spacing:-.5px;margin:0}h3{font-size:17px;letter-spacing:-.3px;margin:0 0 9px}p{line-height:1.6}.muted{color:var(--muted)}.small{font-size:12px;line-height:1.6}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.8px;text-transform:uppercase;color:var(--muted)}#sidebar{position:fixed;top:0;bottom:0;width:246px;background:var(--navy);color:#d3dfed;padding:28px 20px;z-index:8;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:white;font-family:var(--heading);font-size:23px;font-weight:800;letter-spacing:-.7px}.brand img{width:40px;height:40px}.brand small{display:block;color:#9bacc1;font-family:var(--font);font-size:8px;letter-spacing:1.7px;margin-top:4px}.workspace{font-size:9px;color:#7d93ad;margin:38px 12px 12px;letter-spacing:1.4px;font-weight:700}.workspace span{color:#94baa9;border:1px solid #416255;border-radius:5px;float:right;padding:2px 4px;font-size:8px}#desktop-nav{display:grid;gap:8px}.nav-link{border:0;background:transparent;color:#a9bbd1;padding:14px 15px;border-radius:12px;text-align:left;display:flex;align-items:center;gap:13px;font-weight:600;font-size:13px}.nav-link svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.7}.nav-link.active{background:var(--amber);color:var(--navy)}.nav-link:hover:not(.active){background:#ffffff0a}.sidebar-bottom{margin-top:auto}.side-link{border:0;color:#afc0d5;background:none;padding:12px;display:block;text-align:left;font-size:12px}.sidebar-bottom p{font-size:11px;color:#7188a3;line-height:1.9;padding:12px;margin:14px 0;border-top:1px solid #ffffff12}.sync{font-size:10px;color:var(--muted)}#sync-desktop{padding:0 12px;color:#a0b7cd}.shell{margin-left:246px}header{height:82px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px;background:var(--white)}.header-crumb{font-size:13px;color:var(--muted)}.header-actions{display:flex;align-items:center;gap:18px}.private-label{font-size:10px;color:var(--green)}.avatar{width:35px;height:35px;background:#e7edf4;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800}.icon-button{border:1px solid var(--line);border-radius:10px;width:35px;height:35px;display:grid;place-items:center;background:white;color:var(--ink)}main{padding:32px 38px 25px;max-width:1550px;margin:auto}.title-row,.row{display:flex;align-items:center;justify-content:space-between;gap:14px}.title-row{margin-bottom:25px;align-items:flex-start}.title-row p{margin:0;font-size:13px;color:var(--muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:white;color:var(--ink);border-radius:10px;padding:11px 16px;font-size:12px;font-weight:700;min-height:42px;text-decoration:none}.btn svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.8}.btn.primary{background:var(--navy);color:white;border-color:var(--navy)}.btn.amber{background:var(--amber);border-color:var(--amber);color:var(--navy)}.btn.danger{color:var(--red);border-color:#edd0d0}.btn.ghost{border:0;background:transparent;padding:8px;color:var(--muted)}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.hero{border-radius:18px;background:var(--navy);color:white;display:grid;grid-template-columns:1.6fr 1fr;gap:20px;padding:30px 32px;position:relative;overflow:hidden;margin-bottom:24px;min-height:235px}.hero .eyebrow{color:var(--amber)}.hero h1{font-size:34px;line-height:1.18;margin:14px 0;color:white}.hero p{color:#9eafc5;font-size:12px;margin:0 0 23px;max-width:390px}.house-art{width:100%;height:210px;align-self:center;opacity:.95}.hero .badge{background:#31475a;color:#d4e7d8;border:1px solid #486054}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:28px}.stat{background:white;border:1px solid var(--line);border-radius:14px;padding:19px}.stat .value{font-family:var(--heading);font-size:26px;font-weight:800;letter-spacing:-.8px;margin:8px 0 3px}.stat .meta{font-size:10px;color:var(--muted)}.stat .stat-icon{width:31px;height:31px;background:#f1f4f8;border-radius:9px;display:grid;place-items:center;font-size:15px}.stat .row .small{font-weight:700}.section-head{margin:24px 0 15px;display:flex;align-items:center;justify-content:space-between}.section-head a,.section-head button{font-size:11px;color:var(--muted)}.card{background:white;border:1px solid var(--line);border-radius:15px;padding:22px;min-width:0}.project-card{padding:0;overflow:hidden;cursor:pointer;transition:transform .2s,box-shadow .2s}.project-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px #17263c0b}.project-cover{height:92px;position:relative;overflow:hidden;background:#e5edf2;display:flex;align-items:center;padding:20px;background-image:linear-gradient(45deg,transparent 48%,#c4d4df55 49%,#c4d4df55 51%,transparent 52%),linear-gradient(-45deg,transparent 48%,#c4d4df55 49%,#c4d4df55 51%,transparent 52%);background-size:45px 45px}.project-cover .project-number{font-family:var(--heading);font-size:43px;font-weight:800;color:#a8bfce;letter-spacing:-2px}.project-cover .badge{position:absolute;right:14px;top:15px}.project-body{padding:18px 20px}.project-body h3{margin:0 0 8px;font-size:16px}.project-body .small{display:block;color:var(--muted);margin-bottom:5px}.progress{height:5px;background:#edf0f4;border-radius:10px;overflow:hidden;margin:15px 0 8px}.progress span{display:block;background:var(--green);height:100%;border-radius:10px}.badge{font-size:9px;font-weight:800;border-radius:6px;padding:5px 8px;white-space:nowrap}.badge.active{background:#ddede6;color:#24785d}.badge.planned{background:#fff1d9;color:#a27623}.badge.done{background:#e5ebf5;color:#587399}.quick{display:flex;gap:14px;align-items:center;text-align:left;padding:22px;width:100%;background:white;border:1px solid var(--line);border-radius:14px;color:var(--ink)}.quick .quick-icon{width:44px;height:44px;border-radius:13px;background:#fff3df;color:#b27b29;display:grid;place-items:center;flex-shrink:0}.quick-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.6}.quick strong{font-size:13px;display:block;margin-bottom:5px}.quick small{color:var(--muted);font-size:10px}.quick .arrow{margin-left:auto;color:#adb6c3}.empty{border:1px dashed #ccd4df;border-radius:15px;padding:35px 22px;text-align:center;color:var(--muted);font-size:13px}.empty h3{color:var(--ink)}.empty .actions{justify-content:center;margin-top:15px}.empty-icon{font-size:29px;margin-bottom:10px}.note{padding:14px 17px;border:1px solid #ead8b6;background:#fff7e9;border-radius:11px;font-size:11px;line-height:1.7;color:#8b6b36;margin:17px 0}.note.info{background:#eef4fa;border-color:#d6e3f0;color:#526d89}.note.success{background:#e8f4ee;border-color:#cce6d8;color:#297957}.note.error{background:#fff0ef;border-color:#efd0cb;color:#a6403c}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:23px 0;overflow:auto}.tabs button{border:0;border-bottom:3px solid transparent;white-space:nowrap;padding:13px 17px;color:var(--muted);background:none;font-size:12px;font-weight:700}.tabs button.active{color:var(--navy);border-color:var(--amber)}label{display:block;font-size:12px;font-weight:600;color:var(--ink);margin-bottom:7px}input,textarea,select{width:100%;padding:12px;border:1px solid #dce2e9;border-radius:9px;background:#fff;color:var(--ink);font-size:13px;min-height:44px}input::placeholder,textarea::placeholder{color:#a0a9b6}textarea{min-height:90px;resize:vertical}.field{margin:0 0 16px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.span2{grid-column:1/-1}.search{max-width:300px}.search-row{display:flex;gap:10px;margin-bottom:22px}.search-row select{width:auto;min-width:130px}.selector{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted);margin-bottom:20px}.selector select{max-width:360px}.calc-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.calc-tile{border:1px solid var(--line);border-radius:12px;background:white;text-align:left;padding:16px;color:var(--ink);display:flex;align-items:center;gap:10px}.calc-tile.active{background:#fff4df;border-color:#e7b760}.calc-tile strong{font-size:12px}.calc-tile span{font-size:24px}.calc-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:20px}.result{background:var(--navy);border-radius:15px;color:white;padding:28px;align-self:start;position:sticky;top:20px}.result .eyebrow{color:#9eafc5}.result .result-value{font-family:var(--heading);font-size:48px;font-weight:800;letter-spacing:-2px;margin:15px 0 5px}.result .result-value small{font-size:16px;font-weight:500;letter-spacing:0;color:#a9b9cd}.result p{font-size:12px;color:#acbbce}.result ul{list-style:none;padding:0;border-top:1px solid #ffffff19;margin:18px 0}.result li{padding:12px 0;font-size:12px;border-bottom:1px solid #ffffff19;display:flex;justify-content:space-between}.formula{font-size:10px!important;line-height:1.8}.list-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.list-row:last-child{border-bottom:0}.list-row .grow{flex:1;min-width:0}.list-row strong{font-size:12px;display:block;word-break:break-word}.list-row small{font-size:10px;color:var(--muted)}.list-row input[type=checkbox]{width:21px;height:21px;min-height:0;accent-color:var(--green);flex-shrink:0}.list-row.checked strong{text-decoration:line-through;color:var(--muted)}.amount{font-size:13px;font-weight:700;white-space:nowrap}.green{color:var(--green)}.red{color:var(--red)}.mini-btn{border:0;background:#f3f5f8;color:var(--muted);border-radius:8px;padding:7px;min-width:30px;min-height:30px;font-size:12px}.photos-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.photo-card{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:white;cursor:pointer}.photo-card img{width:100%;height:170px;object-fit:cover;display:block;background:#e7ecf1}.photo-card div{padding:13px}.photo-card strong{font-size:12px;display:block;margin-bottom:4px}.photo-card small{font-size:10px;color:var(--muted)}.photo-preview{width:100%;max-height:400px;object-fit:contain;border-radius:10px;background:#e8edf3;display:block;margin:15px 0}.drop-zone{border:2px dashed #cfdae7;border-radius:16px;padding:32px;text-align:center;background:#f8fafc}.drop-zone h3{margin-top:12px}.drop-zone p{font-size:12px;color:var(--muted)}.drop-zone label.btn{display:inline-flex;cursor:pointer;margin:0}.scan-modes{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.scan-mode{padding:20px;border-radius:14px;background:white;border:1px solid var(--line)}.scan-mode h3{font-size:14px}.scan-mode p{font-size:11px;color:var(--muted);min-height:36px}.ocr-text{min-height:160px;font-size:12px;line-height:1.7}.loading{padding:70px 20px;text-align:center;color:var(--muted)}.loading h2{color:var(--ink);margin-top:20px}.spinner{display:inline-block;width:28px;height:28px;border:3px solid #dfe6ef;border-top-color:var(--amber);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}dialog{border:0;border-radius:20px;max-width:680px;width:calc(100% - 32px);padding:26px;color:var(--ink);max-height:90dvh;box-shadow:0 20px 90px #17263c22}dialog::backdrop{background:#101e33aa;backdrop-filter:blur(3px)}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px}.modal-head h2{font-size:22px}.modal-footer{display:flex;justify-content:flex-end;gap:9px;padding-top:12px}.modal-body p{font-size:12px;color:var(--muted)}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;text-transform:uppercase;letter-spacing:1px;font-size:9px;color:var(--muted);background:#f6f8fb;padding:12px}td{padding:15px 12px;border-bottom:1px solid var(--line)}.align-right{text-align:right}.summary-box{background:#f5f7fa;border-radius:12px;padding:18px;margin:18px 0}.summary-box .row{padding:5px 0;font-size:12px}.summary-box .total{border-top:1px solid var(--line);margin-top:9px;padding-top:12px;font-size:17px;font-weight:800}.status-message{font-size:12px;margin-top:12px;line-height:1.7}.measure-canvas{display:block;width:100%;height:auto;touch-action:none;border-radius:10px;cursor:crosshair}.steps{display:flex;gap:10px;flex-wrap:wrap;margin:13px 0}.step{padding:8px 10px;border-radius:8px;background:#f1f4f8;font-size:10px}.step.active{background:var(--amber)}.chart-bars{display:grid;gap:15px;margin:20px 0}.chart-bars .bar-label{display:flex;justify-content:space-between;font-size:11px;margin-bottom:6px}.bar-track{height:9px;background:#edf1f5;border-radius:5px;overflow:hidden}.bar-track span{display:block;height:100%;border-radius:5px}.timeline-date{background:#edf2f7;width:40px;height:40px;border-radius:10px;text-align:center;display:grid;place-items:center;font-size:11px;font-weight:800;flex-shrink:0}.print-sheet{display:none}footer{max-width:1550px;margin:0 auto;padding:16px 38px 27px;color:#8a96a5;font-size:9px;display:flex;justify-content:space-between;gap:12px}footer button{border:0;background:none;color:#8a96a5;font:inherit;padding:0}#mobile-nav,.mobile-brand{display:none}#sync-mobile{display:none}#toast{position:fixed;bottom:24px;left:calc(50% + 100px);transform:translateX(-50%);z-index:50;background:var(--navy);color:white;padding:13px 20px;border-radius:12px;font-size:12px;box-shadow:0 10px 30px #17263c22;display:none;max-width:90%}.form-error{font-size:12px;color:var(--red);line-height:1.7}.due{color:var(--red);font-size:10px}.install-note{display:flex;align-items:center;gap:12px;border:1px solid var(--line);padding:15px 18px;border-radius:12px;font-size:11px;background:white}.project-selector-label{font-size:10px;text-transform:uppercase;letter-spacing:1px}.footer-space{margin-bottom:16px}@media(min-width:1500px){main{padding:40px 48px}}@media(max-width:1150px){#sidebar{width:215px;padding:25px 14px}.shell{margin-left:215px}main{padding:28px 25px}.brand{font-size:21px}header{padding:0 25px}.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.hero h1{font-size:29px}.hero{padding:26px}.photos-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:800px){#sidebar{display:none}.shell{margin:0}header{height:69px;padding:0 20px;background:var(--navy);color:white}.mobile-brand{display:flex;align-items:center;gap:8px;font-family:var(--heading);font-weight:800;font-size:20px;letter-spacing:-.7px}.mobile-brand img{width:32px;height:32px}.header-crumb,.private-label,.avatar{display:none}.header-actions{gap:8px}.icon-button{color:#b8c7d9;border:1px solid #ffffff30;background:transparent}.title-row{gap:10px}.title-row h1{font-size:27px}.title-row p{font-size:11px}.title-row>.btn{padding:10px;font-size:11px}.hero{grid-template-columns:1fr;padding:24px;min-height:auto}.hero .house-art{display:none}.hero h1{font-size:31px}.hero p{font-size:11px}.stats{gap:10px}.stat{padding:16px}.stat .value{font-size:24px}.grid3,.grid2,.calc-layout{grid-template-columns:1fr}.calc-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.result{position:static}.photos-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.photo-card img{height:130px}.scan-modes{grid-template-columns:1fr 1fr;gap:10px}.scan-mode{padding:15px}.scan-mode .btn{font-size:10px;padding:8px 10px}main{padding:24px 18px 10px}.card{padding:19px}.formgrid{gap:0 12px}.search-row{flex-wrap:wrap}.search{max-width:none;flex:1;min-width:180px}footer{padding:15px 20px 108px;flex-wrap:wrap}footer>span:nth-child(2){display:none}#sync-mobile{display:block}#mobile-nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:white;border-top:1px solid var(--line);padding:8px 8px max(8px,env(safe-area-inset-bottom));z-index:10;box-shadow:0 -5px 22px #17263c07}#mobile-nav .nav-link{flex:1;display:flex;flex-direction:column;padding:7px 2px;gap:5px;font-size:9px;border-radius:10px;text-align:center;color:#8793a3;font-weight:700}#mobile-nav .nav-link.active{background:#fff3df;color:#a76a14}#mobile-nav .nav-link svg{width:22px;height:22px}#toast{bottom:90px;left:50%;width:max-content;max-width:90%}.selector{align-items:flex-start;flex-direction:column}.selector select{max-width:none}.tabs button{padding:12px 13px;font-size:11px}.row.wrap{flex-wrap:wrap}.table-wrap table{min-width:500px}dialog{padding:22px;max-height:88dvh}.quick{padding:18px}.span2{grid-column:1/-1}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media print{body{background:white}.shell,#sidebar,#mobile-nav,dialog,#toast{display:none!important}.print-sheet{display:block;font-family:Arial,sans-serif;color:#111;padding:15mm;font-size:11pt}.print-sheet h1{font-size:25pt}.print-sheet table{font-size:10pt}.print-sheet th{background:#eee!important}.print-sheet td,.print-sheet th{padding:9px 4px}.print-sheet .summary-box{max-width:300px;margin-left:auto}.print-sheet .note{font-size:9pt}.print-sheet footer{display:block;padding:20px 0;font-size:9pt}.print-sheet .print-top{display:flex;justify-content:space-between;gap:30px}.print-sheet .small{font-size:9pt}@page{size:A4;margin:10mm}}
.drop-zone>div>svg{width:42px;height:42px;stroke:currentColor;fill:none;stroke-width:1.5}.stat .value{overflow-wrap:anywhere}input[type=file]{font-size:12px}.result .btn{width:100%}
/* Direction visuelle : couleurs de terrain, relief et mouvements discrets. */
:root{--amber:#ffad46;--paper:#f5f6fa;--green:#138d78}body{background:radial-gradient(ellipse at 92% 7%,#e9f0ff 0,transparent 43%),var(--paper)}#sidebar{background:linear-gradient(170deg,#17263c 20%,#1b3450 100%)}.brand img,.mobile-brand img{filter:drop-shadow(0 3px 8px #00000025)}#desktop-nav .nav-link.active{background:linear-gradient(110deg,#ffbf69,#ff9f36);box-shadow:0 7px 20px #ff9f361f}.nav-link{transition:background .18s,color .18s,transform .18s}.nav-link:hover{transform:translateX(2px)}.btn{transition:transform .18s,box-shadow .18s,background .18s}.btn:hover{transform:translateY(-2px);box-shadow:0 6px 14px #17263c12}.btn:active,.quick:active,.calc-tile:active{transform:scale(.98)}.btn.primary{background:linear-gradient(120deg,#1c3451,#17263c)}.btn.amber{background:linear-gradient(110deg,#ffbc66,#ff9f36);border-color:#ffb154;box-shadow:0 7px 20px #ff9f3620}.btn:disabled{transform:none;box-shadow:none}.hero{background:radial-gradient(ellipse at 92% 14%,#355c7a 0,transparent 55%),linear-gradient(120deg,#14263e,#1e3c56);box-shadow:0 15px 35px #17263c14;border:1px solid #314c68;padding-bottom:38px}.hero::before{content:'';position:absolute;width:250px;height:250px;border-radius:50%;border:1px solid #ffffff0c;right:-65px;top:-95px;pointer-events:none;box-shadow:0 0 0 35px #ffffff03,0 0 0 70px #ffffff02}.hero>div:first-child{position:relative;z-index:1}.hero .eyebrow{color:#ffb357}.hero h1{letter-spacing:-1.3px}.hero .house-art{filter:drop-shadow(0 10px 18px #0000001f);animation:blueprint-in .75s ease-out both}.hero-stamp{position:absolute;right:28px;bottom:15px;font-size:8px;letter-spacing:1.6px;color:#99b3ca;display:flex;align-items:center;gap:7px}.hero-stamp span{font-family:var(--heading);font-weight:800;font-size:10px;color:#ffc36d;border:1px solid #6f6958;padding:4px 5px;border-radius:5px}.day-ribbon{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:-3px 0 18px;font-size:11px;font-weight:600;color:#6f8095}.day-ribbon>span:first-child{display:flex;align-items:center;gap:9px;text-transform:capitalize}.day-icon{font-size:15px;color:#c78525;background:#fff1d9;width:27px;height:27px;border-radius:9px;display:grid;place-items:center}.day-count{font-size:10px;color:#71869c}.stats .stat{position:relative;overflow:hidden;border-top:3px solid #5c91e4;box-shadow:0 5px 16px #1e3d6005;transition:transform .2s,box-shadow .2s}.stats .stat:nth-child(2){border-top-color:#21aa8f}.stats .stat:nth-child(3){border-top-color:#f4ab4d}.stats .stat:nth-child(4){border-top-color:#9681d4}.stats .stat:nth-child(1) .stat-icon{background:#eaf2ff;color:#487cbb}.stats .stat:nth-child(2) .stat-icon{background:#e2f4ed;color:#138b6a}.stats .stat:nth-child(3) .stat-icon{background:#fff1de;color:#bd7b1d}.stats .stat:nth-child(4) .stat-icon{background:#f0ebff;color:#8c70bc}.stats .stat:hover{transform:translateY(-3px);box-shadow:0 8px 20px #17263c0a}.stat .stat-icon{font-weight:800}.quick{transition:transform .2s,box-shadow .2s,border-color .2s;position:relative;overflow:hidden;padding:23px 20px}.quick:hover{transform:translateY(-4px);box-shadow:0 10px 25px #17263c0b}.quick-calc{background:linear-gradient(120deg,#fff8ee,#fff);border-color:#f4ddbd}.quick-scan{background:linear-gradient(120deg,#eef6ff,#fff);border-color:#d7e5f7}.quick-budget{background:linear-gradient(120deg,#edf9f4,#fff);border-color:#d5ecdf}.quick-scan .quick-icon{background:#dfedff;color:#447fb8}.quick-budget .quick-icon{background:#daf2e8;color:#21836b}.quick .arrow{transition:transform .2s}.quick:hover .arrow{transform:translate(3px,-3px)}.project-cover{height:111px;background-color:#e6eefc}.tone-1 .project-cover{background-color:#e0f1ea}.tone-2 .project-cover{background-color:#fff0da}.tone-1 .project-number{color:#8db9a4}.tone-2 .project-number{color:#d7af79}.project-number{position:relative;z-index:1}.project-cover .badge{z-index:2;box-shadow:0 3px 10px #17263c09}.cover-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.project-cover:has(.cover-photo)::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#17263ca8,#17263c1a);pointer-events:none}.project-cover:has(.cover-photo) .project-number{color:#fff}.progress span{background:linear-gradient(90deg,#16a889,#6ac1a2);transform-origin:left;animation:progress-in .5s ease-out}.card{box-shadow:0 4px 15px #18395304}.activity-strip{display:flex;align-items:center;gap:25px;padding:20px 24px;background:linear-gradient(105deg,#eaf4f0 0,#f0f7ff 100%);border:1px solid #dbe8e4;border-radius:16px;margin:-7px 0 27px}.activity-main{display:flex;gap:15px;align-items:center;flex:1;min-width:0}.activity-main h3{font-size:13px;margin:6px 0 4px}.activity-main p{font-size:10px;color:#6c8292;margin:0}.activity-ring{--completion:0%;flex-shrink:0;width:63px;height:63px;border-radius:50%;background:conic-gradient(#15967c var(--completion),#dce7e8 0);display:grid;place-items:center;position:relative}.activity-ring::before{content:'';position:absolute;inset:6px;border-radius:50%;background:#f2f8f6}.activity-ring span{z-index:1;font-family:var(--heading);font-size:17px;font-weight:800;color:#28675a}.activity-ring small{font-size:9px;margin-left:1px}.activity-mini{display:flex;align-items:center;gap:10px;min-width:110px}.activity-symbol{height:34px;width:34px;display:grid;place-items:center;color:#4b7aab;background:#e3edf8;border-radius:10px;font-size:19px}.activity-symbol.orange{background:#faeddd;color:#ba7d31}.activity-mini b{display:block;font-size:17px;font-family:var(--heading)}.activity-mini small{display:block;font-size:9px;color:#718394;margin-top:2px}.calc-tile{transition:transform .18s,border-color .18s,box-shadow .18s}.calc-tile:hover{border-color:#d9b986;box-shadow:0 4px 14px #17263c07}.calc-tile:nth-child(2),.calc-tile:nth-child(5){background:#f2f7ff}.calc-tile:nth-child(3),.calc-tile:nth-child(6){background:#f0f9f4}.calc-tile.active{background:linear-gradient(120deg,#ffe8c4,#fff8ee);box-shadow:0 4px 12px #ff9f3612}.tabs button{transition:color .15s,background .15s}.tabs button.active{background:#fff8ec;border-radius:9px 9px 0 0}.result{background:radial-gradient(ellipse at 100% 0,#335f7c,transparent 75%),var(--navy);box-shadow:0 12px 25px #17263c0d}input:focus,select:focus,textarea:focus{border-color:#e0a04b;background:#fffdfa}.photo-card{transition:transform .2s,box-shadow .2s}.photo-card:hover{transform:translateY(-3px);box-shadow:0 10px 22px #17263c10}.empty{background:linear-gradient(125deg,#fffaf1,#f5f9ff);border-color:#d5dde6}.empty-icon{color:#dc8d2e}.title-row{animation:content-in .3s ease-out}.hero,.stats,.activity-strip,.grid3,.calc-layout,.scan-modes{animation:content-in .38s ease-out both}.stats{animation-delay:.04s}.grid3{animation-delay:.08s}dialog[open]{animation:dialog-in .2s ease-out}.list-row.checked{background:#f5fbf8;border-radius:9px;padding-left:8px;padding-right:8px}.timeline-date{background:#edf3fe;color:#4d7dae}#toast{background:linear-gradient(115deg,#203b54,#17263c);border-left:4px solid #ffad46;animation:content-in .2s ease-out}@keyframes content-in{from{opacity:.4;translate:0 7px}to{opacity:1;translate:0 0}}@keyframes blueprint-in{from{opacity:.3;transform:translateY(10px) scale(.97)}to{opacity:.95;transform:none}}@keyframes progress-in{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes dialog-in{from{opacity:.5;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}@media(max-width:1150px){.activity-strip{gap:18px}.activity-mini{min-width:80px}.activity-main h3{font-size:12px}.activity-mini small{max-width:80px}}@media(max-width:800px){header{background:linear-gradient(105deg,#17263c,#294760)}main{padding-top:21px}.hero{padding:24px 23px 47px;background:radial-gradient(ellipse at 100% 0,#3a627e,transparent 70%),#172b44}.hero::before{right:-140px;top:-80px}.hero-stamp{bottom:14px;right:23px;font-size:7px}.day-ribbon{margin-bottom:14px;align-items:flex-start}.day-count{max-width:145px;text-align:right;font-size:9px;padding-top:5px}.activity-strip{flex-wrap:wrap;padding:17px;gap:16px;margin-bottom:24px}.activity-main{flex-basis:100%}.activity-ring{width:56px;height:56px}.activity-mini{flex:1;border-top:1px solid #dce6e8;padding-top:13px}.activity-mini small{max-width:none}.stats .stat{border-top-width:3px}.quick{padding:20px}.project-cover{height:118px}#mobile-nav .nav-link.active{background:linear-gradient(145deg,#fff3df,#ffe4b9);color:#a76612}#mobile-nav .nav-link:hover{transform:none}.title-row h1{font-size:28px}dialog{background:linear-gradient(155deg,#fff,#fbfcff)}.calc-tile{padding:15px 12px}.calc-tile strong{font-size:11px}.grid3{gap:13px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Animations de l’interface, respectueuses du réglage de mouvement réduit. */
.hero .house-art{animation:blueprint-in .75s ease-out both,blueprint-float 5.5s .75s ease-in-out infinite;will-change:transform}.house-art path[stroke-dasharray]{animation:measure-dash 5s linear infinite}.hero::before{animation:ambient-orbit 12s ease-in-out infinite}.hero-stamp span{animation:brand-glint 5s 2s ease-in-out infinite}.motion-toggle{color:#d49239;border-color:#ead7b9;background:#fff8eb}.motion-toggle[aria-pressed=false]{color:#8694a5;border-color:var(--line);background:transparent}.motion-reveal{opacity:0;translate:0 18px;transition:opacity .5s ease var(--reveal-delay,0ms),translate .5s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms),transform .18s,box-shadow .18s}.motion-reveal.motion-visible{opacity:1;translate:0 0}.stats .stat{animation:stat-pop .45s cubic-bezier(.18,.65,.3,1) both}.stats .stat:nth-child(2){animation-delay:.06s}.stats .stat:nth-child(3){animation-delay:.12s}.stats .stat:nth-child(4){animation-delay:.18s}.activity-ring{animation:ring-intro .6s ease-out}.nav-link.active svg{animation:nav-pop .3s ease-out}.btn:active,.icon-button:active,.mini-btn:active{transform:scale(.95)}.project-card .cover-photo{transition:transform .65s ease}.project-card:hover .cover-photo{transform:scale(1.04)}.result-value{animation:value-in .35s ease-out}.activity-strip .activity-symbol{transition:transform .2s}.activity-strip:hover .activity-symbol{transform:rotate(-5deg)}@keyframes blueprint-float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-7px) rotate(.5deg)}}@keyframes measure-dash{to{stroke-dashoffset:-35}}@keyframes ambient-orbit{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-12px,12px) scale(1.06)}}@keyframes brand-glint{0%,85%,100%{box-shadow:0 0 0 0 #ffad4600}91%{box-shadow:0 0 0 7px #ffad4612}}@keyframes stat-pop{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}@keyframes ring-intro{from{opacity:.3;transform:scale(.85) rotate(-20deg)}to{opacity:1;transform:none}}@keyframes nav-pop{0%{transform:scale(.85)}60%{transform:scale(1.1)}100%{transform:scale(1)}}@keyframes value-in{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:none}}.motion-off *, .motion-off *::before, .motion-off *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion-off .motion-reveal{opacity:1;translate:none}@media(max-width:800px){.hero{padding-bottom:140px}.hero .house-art{display:block;position:absolute;bottom:7px;right:15px;width:180px;height:120px;pointer-events:none}.hero-stamp{left:23px;right:auto;bottom:28px;max-width:115px;line-height:1.8;letter-spacing:1px}.hero-stamp span{font-size:13px;padding:5px 6px}.header-actions .motion-toggle{background:#ffffff0a;border-color:#ffffff30;color:#ffbb60}.header-actions .motion-toggle[aria-pressed=false]{color:#aabacf}.motion-reveal{translate:0 12px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.motion-reveal{opacity:1!important;translate:none!important}.hero .house-art{will-change:auto}}
.account-button{border:1px solid #dce6e2;background:#f1faf6;color:#337f68;border-radius:8px;padding:7px 10px;font-size:10px;font-weight:700;cursor:pointer}.guest-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff1dc;border:1px solid #efd5ab;padding:12px 16px;border-radius:12px;margin-bottom:21px}.guest-banner b{display:block;font-size:11px;color:#956829}.guest-banner span{display:block;font-size:10px;margin-top:4px;color:#99816a}.guest-welcome{max-width:820px;margin:15px auto;padding:40px;background:radial-gradient(ellipse at 100% 0,#365978,transparent 70%),#17263c;color:white;border-radius:25px;box-shadow:0 15px 45px #17263c15}.guest-welcome h1{font-size:48px;letter-spacing:-2px;line-height:1.1;margin:20px 0}.guest-welcome>.eyebrow{color:#ffb257}.guest-welcome>p{font-size:14px;color:#b8c7d9;max-width:490px}.welcome-logo{width:66px;height:66px;border-radius:15px;margin-bottom:22px}.guest-welcome .note{margin-top:28px;background:#ffffff0b;border-color:#ffffff20;color:#c1cfe0}.guest-welcome .actions{margin-top:25px}.guest-welcome .form-error{color:#ffc69e}.guest-banner .btn{font-size:10px;color:#936622}@media(max-width:800px){.header-actions{gap:6px}.account-button{background:#ffffff0a;color:#ffc47c;border-color:#ffffff24;font-size:9px;padding:8px}.guest-welcome{padding:27px 24px;margin:0}.guest-welcome h1{font-size:39px}.guest-welcome .actions{align-items:stretch;flex-direction:column}.guest-welcome .btn{font-size:11px;width:100%}.guest-banner{padding:12px;margin-bottom:18px}.guest-banner span{font-size:9px}.welcome-logo{width:58px;height:58px}}
.vat-choice{margin:22px 0 10px;padding:17px 18px;background:#f4f8fc;border:1px solid #dce5ee;border-radius:12px}.vat-choice select{max-width:470px;background:white}.vat-choice p{margin:9px 0 0;font-size:11px}@media(max-width:800px){.vat-choice{padding:14px}.vat-choice select{font-size:12px}}
/* Noms du chantier et du client : priorité à la lisibilité sur le terrain. */
.title-row>div{min-width:0}.project-title h1{font-size:42px;line-height:1.16;letter-spacing:-1.2px;overflow-wrap:anywhere;margin:10px 0 16px}.project-title .eyebrow{color:#687a91;font-size:11px}.project-title .detail-client{display:block;font-family:var(--heading);font-size:23px;line-height:1.3;font-weight:800;color:#263f57;margin:0 0 9px;overflow-wrap:anywhere}.project-title .detail-address{display:block;font-size:13px;color:#78879a;line-height:1.6}.project-title>.btn{flex-shrink:0}.project-body h3{font-size:22px;line-height:1.25;font-weight:800;letter-spacing:-.5px;margin:0 0 12px;overflow-wrap:anywhere}.project-body .card-client{display:block;font-size:17px;font-weight:700;color:#385670;margin-bottom:9px;overflow-wrap:anywhere}.project-body .card-date{margin-top:3px}@media(max-width:800px){.project-title h1{font-size:35px;line-height:1.18;margin-bottom:15px;letter-spacing:-1px}.project-title .detail-client{font-size:22px;margin-bottom:9px}.project-title .detail-address{font-size:12px}.project-title .eyebrow{font-size:10px}.project-title{gap:10px}.project-title>.btn{padding:11px;font-size:11px;min-width:70px}.project-body h3{font-size:23px}.project-body .card-client{font-size:18px}}
.calc-groups{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 10px}.calc-groups button{border:1px solid #dce3eb;background:white;color:#687c93;padding:11px 15px;font-size:12px;font-weight:700;border-radius:10px;transition:background .18s,transform .18s}.calc-groups button.active{color:white;background:var(--navy);border-color:var(--navy)}.calc-groups button:active{transform:scale(.98)}.materials-result{background:#ffffff0a;border:1px solid #ffffff18;border-radius:10px;padding:13px;margin:16px 0}.materials-result h4{font-size:11px;margin:0 0 10px;color:#ffbe66}.materials-result .row{font-size:11px;line-height:1.6;margin:9px 0;align-items:flex-start;color:#c1d0e0}.materials-result .row b{color:white;text-align:right;flex-shrink:0;min-width:45px}.result li>span{max-width:68%}.result li b{text-align:right}.conditional-field>.field{margin-bottom:16px}@media(max-width:800px){.calc-groups{display:grid;grid-template-columns:1fr 1fr;gap:8px}.calc-groups button{padding:11px 8px;font-size:11px}.materials-result .row{font-size:11px}}
/* Fournisseurs : formats dans les calculs, prix et commande chez l’enseigne. */
.supplier-panel{margin:0 0 22px;padding:20px 22px;border-top:3px solid var(--amber)}.supplier-panel h3{margin:7px 0 0}.supplier-links{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.supplier-links .btn{font-size:11px;min-height:40px;padding:9px 12px;border-color:#d7e0e9;background:#f8fafc}.supplier-options{border-top:1px solid var(--line);padding-top:14px;margin-top:17px}.supplier-options summary{font-size:12px;font-weight:700;color:var(--navy);cursor:pointer;line-height:1.6}.supplier-slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.supplier-select{display:flex;align-items:center;gap:7px}.supplier-select select{min-width:0;font-size:12px}.supplier-select .btn{flex-shrink:0;min-width:44px;font-size:20px;padding:6px}.supplier-price-note{font-size:10px;line-height:1.7;color:#77879b;margin:15px 0 0}.supplier-catalog-actions{margin:20px 0}.supplier-reference{padding:20px 0;border-top:1px solid var(--line)}.supplier-reference h3{font-size:17px;line-height:1.4;margin:7px 0 0;overflow-wrap:anywhere}.supplier-reference .badge{white-space:normal}.supplier-reference .actions{margin-top:12px}.supplier-empty{margin:20px 0}.supplier-result{border:1px solid #ffffff2b;border-radius:12px;padding:16px;margin:18px 0;background:#ffffff09}.supplier-result h4{color:var(--amber);font-size:13px;margin:0 0 13px}.supplier-result>p{font-size:10px;line-height:1.7;color:#b8cadc}.supplier-result-line{display:grid;gap:7px;font-size:11px;margin-bottom:17px;line-height:1.6}.supplier-result-line b{color:white}.supplier-result-line span{color:#b8cadc}.supplier-inline{font-size:11px;text-decoration:underline;text-underline-offset:3px;line-height:1.8;color:#315f88;overflow-wrap:anywhere}.supplier-result .supplier-inline{color:#ffcf90}.material-supplier{display:grid;gap:4px;margin:9px 0 0;font-size:10px;color:#647d94;line-height:1.6}.supplier-list-summary{margin:18px 0;padding:14px;background:#f0f5fa;border:1px solid #dde7f0;border-radius:10px;display:flex;align-items:center;gap:12px;justify-content:space-between}.supplier-list-summary>span{font-size:11px;line-height:1.6;color:#536f8c}.purchase-intro{display:flex;gap:12px;align-items:center;margin-bottom:18px}.purchase-intro p{font-size:13px;line-height:1.7;margin:0}.purchase-step{flex-shrink:0;width:35px;height:35px;border-radius:50%;background:var(--amber);color:var(--navy);display:grid;place-items:center;font-weight:800}.purchase-group{margin:22px 0;border-top:1px solid var(--line);padding-top:16px}.purchase-group>h3{font-size:17px;margin:4px 0 10px}.purchase-line{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 0;border-bottom:1px solid #edf0f4}.purchase-line>div{display:grid;gap:6px;min-width:0}.purchase-line strong{font-size:13px;line-height:1.5;overflow-wrap:anywhere}.purchase-line>.btn{flex-shrink:0;max-width:170px}.purchase-quantity{font-size:12px;color:#287b61;line-height:1.6}.purchase-copy-fallback{font-size:12px;color:#687f98}.purchase-copy-fallback summary{cursor:pointer;line-height:1.8}.purchase-copy-fallback textarea{margin-top:12px;min-height:230px;white-space:pre-wrap;font-size:12px}
@media(max-width:800px){.supplier-panel{padding:17px}.supplier-panel .row{align-items:flex-start}.supplier-panel .row .btn{font-size:10px;padding:10px}.supplier-links{display:grid;grid-template-columns:1fr 1fr;gap:8px}.supplier-links .btn{font-size:10px;padding:9px 6px;line-height:1.5;text-align:center}.supplier-slot-grid{grid-template-columns:1fr}.supplier-options summary{font-size:12px}.supplier-reference .row{align-items:flex-start}.supplier-reference h3{font-size:16px}.supplier-reference .badge{font-size:8px;max-width:100px}.supplier-list-summary{align-items:flex-start;flex-direction:column}.purchase-line{align-items:flex-start;flex-direction:column}.purchase-line>.btn{max-width:none;width:100%}.material-supplier{max-width:220px}.supplier-select select{font-size:11px}.supplier-price-note{font-size:10px}}
.language-toggle{min-height:38px;min-width:52px;padding:7px 9px;border:1px solid var(--line);border-radius:10px;background:#f5f8fc;color:var(--navy);font-size:11px;font-weight:800;white-space:nowrap}.language-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:16px 0;max-height:52dvh;overflow-y:auto;overscroll-behavior:contain;padding:3px 3px 8px}.language-option{display:flex;align-items:center;gap:15px;border:1px solid var(--line);border-radius:12px;background:white;color:var(--navy);min-height:68px;padding:15px;text-align:left}.language-option.active{background:#fff3de;border-color:#edba70}.language-label{display:grid;gap:4px;flex:1;min-width:0}.language-label strong{font-size:16px;line-height:1.35;overflow-wrap:anywhere}.language-label small{font-size:11px;line-height:1.35;color:var(--muted);overflow-wrap:anywhere}.language-selected{flex-shrink:0}.language-empty{grid-column:1/-1;color:var(--muted);font-size:13px;padding:24px 0;text-align:center}.language-search{display:grid;gap:9px;margin-top:16px}.language-option{gap:10px;padding:12px}.language-code{flex-shrink:0}.language-option:focus-visible{outline-offset:-3px}.language-code{display:grid;place-items:center;background:#edf2f8;color:#526c86;width:40px;height:36px;border-radius:8px;font-size:12px;font-weight:800}.language-option.active .language-code{background:var(--amber);color:var(--navy)}@media(max-width:800px){.language-toggle{min-width:45px;min-height:35px;padding:6px;font-size:10px}.header-actions{gap:5px}.mobile-brand{font-size:clamp(15px,4.3vw,20px)}.mobile-brand img{width:30px;height:30px}.language-option{min-height:68px}.language-options{grid-template-columns:1fr;max-height:48dvh}}@media(max-width:390px){header{padding-left:14px;padding-right:14px}.account-button{font-size:8px;padding:7px}.header-actions .icon-button{width:31px;height:35px}.mobile-brand{gap:6px;font-size:15px}.language-toggle{min-width:42px}}

.workspace .workspace-title{float:none;border:0;padding:0;color:#7d93ad;font-size:9px;letter-spacing:1.4px}

@media(max-width:800px){.header-actions .account-button{max-width:72px;line-height:1.2;white-space:normal;overflow-wrap:anywhere;text-align:center}.header-actions{flex-shrink:0}.mobile-brand{min-width:0;font-size:clamp(13px,4vw,20px)}.mobile-brand img{flex-shrink:0}}

/* Aperçus interactifs : mêmes outils, une entrée plus vivante sur mobile. */
.hero.hero-interactive{grid-template-columns:1.15fr 1fr;align-items:center;gap:30px;padding-bottom:50px;isolation:isolate}
.hero-copy,.tool-stage{position:relative;z-index:1;min-width:0}
.hero-copy h1{font-size:clamp(28px,2.7vw,39px);max-width:500px}
.hero-copy .actions{gap:10px}
.tool-stage{border:1px solid #ffffff24;border-radius:18px;background:linear-gradient(145deg,#ffffff0c,#ffffff03);padding:12px 15px 15px;box-shadow:0 16px 35px #0914231c}
.tool-stage-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:4px;background:#11253c88;border-radius:12px}
.tool-stage-tab{border:1px solid transparent;background:transparent;color:#bdcde0;border-radius:9px;min-height:44px;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 6px;font-size:11px;font-weight:700;line-height:1.3;overflow-wrap:anywhere;transition:background .2s,color .2s,transform .2s}
.tool-stage-tab svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;flex-shrink:0}
.tool-stage-tab.selected{background:var(--amber);color:var(--navy);box-shadow:0 3px 10px #07192b20}
.tool-stage-tab:active{transform:scale(.96)}
.tool-scene{height:178px;display:grid;place-items:center;pointer-events:none;overflow:hidden}
.tool-scene .house-art,.tool-art{display:block;position:static;width:100%;max-width:310px;height:178px;opacity:1;align-self:center;animation:scene-enter .45s ease-out both}
.tool-stage-caption{min-height:52px;text-align:center}
.tool-stage-caption strong{font-family:var(--heading);font-size:15px;line-height:1.35;color:white;display:block;overflow-wrap:anywhere}
.hero .tool-stage-caption p,.guest-welcome .tool-stage-caption p{font-size:11px;line-height:1.5;color:#b2c6d9;margin:6px 0 12px;max-width:none}
.tool-open{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;line-height:1.45;width:100%;min-height:44px;border:1px solid #ffffff2b;background:#ffffff08;color:#ffd398;border-radius:10px;padding:10px 12px;font-size:11px;font-weight:700;transition:background .2s,border-color .2s}
.tool-open svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;flex-shrink:0;transition:transform .2s}
.scene-paper{animation:paper-enter .55s ease-out both;transform-box:fill-box;transform-origin:center}
.scene-phone{animation:scene-enter .65s ease-out both}
.scan-beam{animation:scan-sweep 3.5s .7s ease-in-out infinite}
.scene-check{animation:scene-confirm .6s .15s cubic-bezier(.2,.9,.3,1.2) both;transform-box:fill-box;transform-origin:center}
.budget-bar{transform-box:fill-box;transform-origin:center bottom;animation:budget-grow .65s cubic-bezier(.2,.7,.3,1) both}
.budget-bar.bar-b{animation-delay:.08s}.budget-bar.bar-c{animation-delay:.16s}.budget-bar.bar-d{animation-delay:.24s}
.budget-line{animation:scene-enter .6s .25s both}
.guest-welcome.welcome-interactive{max-width:1080px}
.welcome-layout{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:35px}
.welcome-copy{min-width:0}.welcome-copy>.eyebrow{color:#ffb257}.welcome-copy>p{font-size:14px;color:#b8c7d9;max-width:490px}
.welcome-copy .welcome-logo{margin-bottom:17px}
.welcome-copy .actions{display:flex;flex-direction:column;align-items:stretch;max-width:390px}
.welcome-copy .actions .btn{white-space:normal;line-height:1.5;text-align:center}
.welcome-interactive .tool-stage{align-self:center}
@media(hover:hover) and (pointer:fine){.tool-stage-tab:hover:not(.selected){background:#ffffff10;color:white}.tool-open:hover{background:#ffffff13;border-color:#ffc16488}.tool-open:hover svg{transform:translateX(3px)}.hero-copy .btn.amber:hover{box-shadow:0 6px 22px #ffc16426;transform:translateY(-2px)}}
@keyframes scene-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes paper-enter{from{opacity:0;transform:translate(-12px,7px) rotate(-5deg)}to{opacity:1;transform:none}}
@keyframes scene-confirm{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}
@keyframes scan-sweep{0%,100%{transform:translateY(-18px);opacity:.35}50%{transform:translateY(39px);opacity:1}}
@keyframes budget-grow{from{transform:scaleY(.1);opacity:.3}to{transform:scaleY(1);opacity:1}}
@media(max-width:1150px){.hero.hero-interactive{gap:20px;padding-left:25px;padding-right:25px}.tool-stage{padding-left:11px;padding-right:11px}.tool-stage-tab{font-size:10px}.welcome-layout{gap:24px}.guest-welcome.welcome-interactive{padding:32px}}
@media(max-width:800px){.hero.hero-interactive{grid-template-columns:1fr;padding:24px 21px 48px;gap:23px}.hero-copy h1{font-size:31px;margin-top:12px}.hero-copy p{max-width:440px}.hero-interactive .hero-stamp{left:21px;right:auto;bottom:16px;max-width:none;font-size:7px;line-height:1.4;letter-spacing:.8px}.hero-interactive .hero-stamp span{font-size:10px;padding:3px 5px}.tool-stage{padding:10px 12px 13px}.tool-stage-tab{font-size:11px}.hero-interactive .tool-scene .house-art{display:block;position:static;inset:auto;width:100%;height:178px}.welcome-layout{grid-template-columns:1fr;gap:25px}.guest-welcome.welcome-interactive{padding:26px 21px}.welcome-copy>p{font-size:13px}.welcome-copy .actions{max-width:none}.welcome-interactive .note{font-size:10px}.tool-stage-caption{min-height:0}}
@media(max-width:390px){.tool-stage-tab{flex-direction:column;gap:4px;font-size:10px}.tool-stage-tab svg{width:17px;height:17px}.hero.hero-interactive{padding-left:17px;padding-right:17px}.hero-copy h1{font-size:28px}.hero-copy .btn{width:100%;font-size:11px}.guest-welcome.welcome-interactive{padding:23px 18px}.welcome-copy h1{font-size:34px}}
@media(prefers-reduced-motion:reduce){.tool-scene .house-art,.tool-art{animation:none;will-change:auto}}

.weather-card{background:linear-gradient(125deg,#fff 45%,#edf5ff);border:1px solid #dde7f2;border-radius:19px;padding:23px;margin:18px 0 24px;box-shadow:0 7px 26px #22324806}.weather-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.weather-heading h2{font-size:24px;margin-top:7px;overflow-wrap:anywhere}.weather-heading p{margin:5px 0 0}.weather-now{display:flex;align-items:center;gap:19px;margin:20px 0}.weather-symbol{font-size:48px;line-height:1.3;flex-shrink:0}.weather-temperature{font-family:var(--heading);font-size:37px;letter-spacing:-1px}.weather-now p{margin:3px 0;font-size:13px}.weather-metrics{margin-left:auto;display:flex;flex-wrap:wrap;gap:20px}.weather-metrics>span{display:grid;gap:5px;font-size:11px;color:var(--muted)}.weather-metrics b{color:var(--ink);font-size:15px}.weather-days{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.weather-days article{background:#ffffffb8;border:1px solid #dfe8f2;border-radius:12px;display:grid;gap:7px;padding:14px;text-align:center;font-size:14px}.weather-day-name{font-weight:700;font-size:12px;overflow-wrap:anywhere}.weather-day-symbol{font-size:25px}.weather-days small{font-size:10px;line-height:1.5;color:var(--muted)}.weather-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:13px}.weather-credit{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:9px;color:var(--muted);border-top:1px solid #dde7f2;padding-top:12px;margin-top:12px}.weather-credit>span{margin-left:auto}.weather-search{display:flex;gap:8px;margin:9px 0 17px}.weather-search input{min-width:0;flex:1}.weather-city-result{width:100%;border:1px solid var(--line);border-radius:11px;padding:14px;background:white;display:grid;grid-template-columns:1fr auto;text-align:left;gap:4px;margin-bottom:8px}.weather-city-result strong{font-size:14px;overflow-wrap:anywhere}.weather-city-result>span:not(.weather-result-arrow){color:var(--muted);font-size:11px;grid-column:1;overflow-wrap:anywhere}.weather-result-arrow{grid-column:2;grid-row:1/3;align-self:center;color:var(--green);font-size:20px}
.pro-home{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--navy);color:white;border-radius:18px;padding:26px;margin:24px 0}.pro-home h2{margin-top:13px;font-size:23px}.pro-home p{margin:8px 0;font-size:12px;color:#bccce0}.pro-home .small{color:#d3dfed}.pro-home .btn:not(.amber){background:#ffffff0a;color:white;border-color:#ffffff35}.beta-pill{display:inline-flex;border-radius:7px;padding:5px 9px;background:#fff1d8;color:#8c5710;font-size:10px;font-weight:800;letter-spacing:.3px}.pro-home .beta-pill{background:#ffc16424;color:#ffd494}.pro-intro{text-align:center;padding:7px 0 20px}.pro-price{font-family:var(--heading);font-size:40px;font-weight:800;margin:15px 0 4px;letter-spacing:-1px}.pro-price small{font-size:16px;letter-spacing:0;font-weight:500;color:var(--muted)}.pro-intro .small{margin:7px 0}.pro-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-bottom:18px}.pro-compare article{border:1px solid var(--line);border-radius:14px;padding:19px}.pro-compare h3{margin-top:11px}.pro-compare p,.pro-compare li{font-size:12px;line-height:1.7}.pro-compare ul{padding-left:17px;margin-bottom:0}.pro-compare li{margin-bottom:9px}.pro-future{background:#fff8eb;border-color:#f4dfb7!important}.pro-vendors{display:flex;flex-wrap:wrap;gap:6px;margin:14px 0}.pro-vendors span{font-size:10px;background:white;border:1px solid #f0dfc4;padding:6px;border-radius:6px}.pro-demo-label{display:flex;align-items:center;gap:12px;background:#f3f6fb;padding:13px;border-radius:12px;margin:10px 0 17px}.pro-demo-label p{font-size:12px;margin:0}.pro-supplier-tabs{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0}.pro-supplier-tabs button{flex:1 1 130px;min-width:0;border:1px solid var(--line);border-radius:10px;padding:12px 8px;background:white;color:var(--ink);font-size:11px;font-weight:700;overflow-wrap:anywhere}.pro-supplier-tabs button.selected{background:var(--navy);border-color:var(--navy);color:#ffd18b}.pro-cart-preview{border:1px solid var(--line);border-radius:14px;padding:17px;margin-bottom:17px}.pro-cart-preview .row{align-items:flex-start;flex-wrap:wrap}.pro-cart-preview h3{font-size:15px}.pro-demo-line{display:flex;gap:15px;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding:14px 0}.pro-demo-line:last-child{padding-bottom:0}.pro-demo-line>div{display:grid;gap:5px;min-width:0}.pro-demo-line strong{font-size:13px;overflow-wrap:anywhere}.pro-demo-line>b{font-size:14px;text-align:right;min-width:70px;color:var(--green)}.pro-purchase-teaser{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #f0dfc4;background:#fff8eb;border-radius:12px;padding:12px;margin:18px 0}
@media(max-width:800px){.weather-card{padding:19px 16px}.weather-heading h2{font-size:21px}.weather-heading>.btn{font-size:10px;max-width:110px;white-space:normal;flex-shrink:0}.weather-now{flex-wrap:wrap;gap:13px;margin:17px 0}.weather-temperature{font-size:33px}.weather-symbol{font-size:39px}.weather-metrics{width:100%;margin:5px 0 0;justify-content:space-between;gap:12px}.weather-days{gap:6px}.weather-days article{padding:11px 6px;font-size:12px}.weather-day-name{font-size:10px}.weather-credit>span{width:100%;margin:3px 0 0}.pro-home{flex-direction:column;align-items:flex-start;padding:23px 19px}.pro-home .actions{width:100%}.pro-home .actions>.btn{flex:1}.pro-compare{grid-template-columns:1fr}.pro-demo-line{align-items:flex-start}.pro-demo-line>b{font-size:12px}.pro-purchase-teaser{align-items:flex-start;flex-direction:column}.pro-purchase-teaser>.btn{width:100%}.weather-search{flex-wrap:wrap}.weather-search input{flex-basis:180px}}
/* Local-weather scenery stays behind every control. All effects use CSS transforms. */
body{isolation:isolate;background:#edf3f8}.shell{position:relative;z-index:1}
.weather-backdrop{position:fixed;inset:0 0 0 246px;z-index:0;overflow:hidden;pointer-events:none;background:#e9f2fa;contain:layout paint;--cloud-opacity:0;--rain-opacity:0;--orb-opacity:0}
.weather-sky{position:absolute;inset:0;background:linear-gradient(180deg,#b8d9f2,#edf5fc 72%);transition:background 1s}
.weather-landscape{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:65% center;opacity:.7;filter:saturate(.72);transition:filter 1.5s,opacity 1.5s}
.weather-veil{position:absolute;inset:0;background:linear-gradient(180deg,#f3f7fc9c 0%,#f3f7fc66 40%,#f3f7fcb3 100%)}
.weather-orb{position:absolute;top:8%;right:8%;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,#fff5d6 0 28%,#ffcf769c 46%,#ffc16400 72%);opacity:var(--orb-opacity);animation:weather-sun-glow 7s ease-in-out infinite;transition:opacity 1s}
.weather-clouds{position:absolute;inset:0;opacity:var(--cloud-opacity);transition:opacity 1s}
.weather-clouds i{position:absolute;top:16%;left:-25%;width:250px;height:60px;border-radius:70px;background:#ffffffa1;filter:blur(1px);animation:weather-cloud-drift 55s linear infinite}
.weather-clouds i::before,.weather-clouds i::after{content:'';position:absolute;border-radius:50%;background:inherit;bottom:12px;width:95px;height:95px;left:36px}.weather-clouds i::after{width:130px;height:130px;left:95px;bottom:0}
.weather-clouds i:nth-child(2){top:32%;width:190px;height:44px;animation-duration:68s;animation-delay:-24s;opacity:.7;transform:scale(.75)}
.weather-clouds i:nth-child(3){top:7%;animation-duration:80s;animation-delay:-46s;opacity:.55}
.weather-precipitation{position:absolute;inset:0;opacity:var(--rain-opacity);overflow:hidden}
.weather-precipitation i{position:absolute;top:-20px;left:var(--x);width:1px;height:28px;background:linear-gradient(transparent,#7096b6a6);animation:weather-rain-fall var(--fall) var(--delay) linear infinite}
.weather-haze{position:absolute;inset:-10%;background:linear-gradient(110deg,transparent,#ffffffa6,transparent);opacity:0;animation:weather-fog-drift 18s ease-in-out infinite;transition:opacity 1s}
.weather-backdrop[data-condition="clear"]{--orb-opacity:.9}.weather-backdrop[data-condition="sun"]{--orb-opacity:.7;--cloud-opacity:.65}
.weather-backdrop[data-condition="cloud"]{--cloud-opacity:.95}.weather-backdrop[data-condition="fog"]{--cloud-opacity:.45}.weather-backdrop[data-condition="fog"] .weather-haze{opacity:.75}
.weather-backdrop[data-condition="drizzle"]{--cloud-opacity:.85;--rain-opacity:.28}.weather-backdrop[data-condition="rain"],.weather-backdrop[data-condition="ice"]{--cloud-opacity:.9;--rain-opacity:.5}
.weather-backdrop[data-condition="storm"]{--cloud-opacity:1;--rain-opacity:.65}.weather-backdrop[data-condition="storm"] .weather-sky{background:linear-gradient(#93a9c0,#dce7f1)}
.weather-backdrop[data-condition="snow"]{--cloud-opacity:.8;--rain-opacity:.7}.weather-backdrop[data-condition="snow"] .weather-precipitation i{width:5px;height:5px;border-radius:50%;background:#fff;animation-name:weather-snow-fall;animation-duration:calc(var(--fall)*4)}
.weather-backdrop[data-period="night"] .weather-landscape{filter:saturate(.45) brightness(.62)}.weather-backdrop[data-period="night"] .weather-sky{background:linear-gradient(#4d658d,#b5c7df)}
.weather-backdrop[data-period="night"] .weather-orb{width:66px;height:66px;background:#fffae4;box-shadow:0 0 40px #fff1c655}.weather-backdrop[data-period="night"] .weather-orb::after{content:'';position:absolute;width:54px;height:54px;top:-7px;left:22px;border-radius:50%;background:#7088a8}
.weather-backdrop[data-condition="neutral"] .weather-orb,.weather-backdrop[data-condition="unknown"] .weather-orb{opacity:0}
.weather-card{background:#ffffffed;box-shadow:0 8px 28px #18395309}.hero.hero-interactive{background:linear-gradient(110deg,#142840f5,#234c66df 65%,#26445dab),url('/assets/site-landscape-v1.webp') center 65%/cover}
.weather-backdrop[data-paused="true"] *{animation-play-state:paused!important}.motion-off .weather-backdrop *{animation:none!important}.motion-off .weather-precipitation{display:none}
@keyframes weather-sun-glow{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
@keyframes weather-cloud-drift{from{translate:-20vw 0}to{translate:135vw 0}}
@keyframes weather-rain-fall{from{transform:translate3d(0,-5vh,0) rotate(12deg)}to{transform:translate3d(-15vw,110vh,0) rotate(12deg)}}
@keyframes weather-snow-fall{from{transform:translate3d(0,-5vh,0)}to{transform:translate3d(var(--sway),110vh,0)}}
@keyframes weather-fog-drift{0%,100%{transform:translateX(-5%)}50%{transform:translateX(5%)}}
@media(max-width:1150px){.weather-backdrop{left:215px}}
@media(max-width:800px){.weather-backdrop{left:0}.weather-landscape{object-position:66% center;opacity:.6}.weather-clouds i{width:190px;height:44px}.weather-orb{width:100px;height:100px;right:3%;top:10%}.weather-precipitation i:nth-child(n+21){display:none}}
@media(prefers-reduced-motion:reduce){.weather-backdrop *{animation:none!important;transition:none!important}.weather-precipitation{display:none}}
@media print{.weather-backdrop{display:none!important}}

/* Local animated sky inside the forecast card. All controls stay in front. */
.weather-card-live{position:relative;isolation:isolate;overflow:hidden;background:#eaf3fb;border-color:#d6e3f0;box-shadow:0 12px 32px #15335018;--card-sky-top:#d6eaf8;--card-sky-bottom:#f7fbff;--card-cloud:#ffffff;--card-cloud-opacity:.8;--card-orb-color:#ffd279}.weather-card-content{position:relative;z-index:1}.weather-card-scene{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none;contain:layout paint;border-radius:inherit;--card-cloud-travel:1200px;--card-drop-travel:1000px}.weather-card-atmosphere{position:absolute;inset:0;background:linear-gradient(160deg,var(--card-sky-top),var(--card-sky-bottom) 85%)}.weather-card-veil{position:absolute;inset:0;background:linear-gradient(105deg,#ffffff96 0%,#ffffff36 66%,#ffffff12),linear-gradient(0deg,#ffffffc4,transparent 75%)}
.weather-card-live[data-condition="clear"],.weather-card-live[data-condition="sun"]{--card-sky-top:#b2dff9;--card-sky-bottom:#f7f5e8}.weather-card-live[data-condition="cloud"]{--card-sky-top:#c7d8e8;--card-sky-bottom:#eff4fa;--card-cloud:#f9fcff}.weather-card-live[data-condition="rain"],.weather-card-live[data-condition="drizzle"],.weather-card-live[data-condition="ice"],.weather-card-live[data-condition="storm"]{--card-sky-top:#aac1d9;--card-sky-bottom:#e9f2fa;--card-cloud:#d1dce8;--card-cloud-opacity:.9}.weather-card-live[data-condition="snow"]{--card-sky-top:#afcfdf;--card-sky-bottom:#f1f8fb;--card-cloud:#e3edf4}.weather-card-live[data-condition="fog"]{--card-sky-top:#c9d6df;--card-sky-bottom:#f7f9fb;--card-cloud:#edf2f5}.weather-card-live[data-period="night"]{--card-sky-top:#8fa4d0;--card-sky-bottom:#e9edf8;--card-orb-color:#fff2c7;--card-cloud:#cdd8ee}.weather-card-live[data-condition="neutral"],.weather-card-live[data-condition="unknown"]{--card-sky-top:#e3eef7;--card-sky-bottom:#f8fbff}
.weather-card-orb{display:none;position:absolute;right:8%;top:9%;width:130px;height:130px;color:var(--card-orb-color);filter:drop-shadow(0 0 18px #fff5cb99);animation:card-orb-float 8s ease-in-out infinite}.weather-card-orb svg{width:100%;height:100%}.weather-card-sun{display:block;animation:card-sun-turn 65s linear infinite}.weather-card-moon{display:none}.weather-card-live[data-condition="clear"] .weather-card-orb,.weather-card-live[data-condition="sun"] .weather-card-orb{display:block}.weather-card-live[data-period="night"] .weather-card-sun{display:none}.weather-card-live[data-period="night"] .weather-card-moon{display:block}
.weather-card-stars{display:none;position:absolute;inset:0}.weather-card-live[data-period="night"][data-condition="clear"] .weather-card-stars,.weather-card-live[data-period="night"][data-condition="sun"] .weather-card-stars{display:block}.weather-card-stars i{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);background:#fff9de;border-radius:50%;box-shadow:0 0 5px #f9f4e0;animation:card-star-twinkle 5s var(--delay) ease-in-out infinite}
.weather-card-clouds{display:none;position:absolute;inset:0;opacity:var(--card-cloud-opacity)}.weather-card-live:is([data-condition="sun"],[data-condition="cloud"],[data-condition="drizzle"],[data-condition="rain"],[data-condition="ice"],[data-condition="snow"],[data-condition="fog"],[data-condition="storm"]) .weather-card-clouds{display:block}.weather-card-clouds i{position:absolute;top:22%;left:-180px;width:190px;height:45px;border-radius:70px;background:var(--card-cloud);animation:card-cloud-sail 27s linear infinite}.weather-card-clouds i::before,.weather-card-clouds i::after{content:'';position:absolute;background:inherit;border-radius:50%;width:72px;height:72px;bottom:7px;left:27px}.weather-card-clouds i::after{width:92px;height:92px;left:83px;bottom:0}.weather-card-clouds i:nth-child(2){top:48%;width:160px;height:39px;animation-duration:34s;animation-delay:-14s;opacity:.8;scale:.8}.weather-card-clouds i:nth-child(3){top:9%;animation-duration:43s;animation-delay:-31s;opacity:.65;scale:1.2}
.weather-card-precipitation{display:none;position:absolute;inset:0;overflow:hidden;opacity:.48}.weather-card-live:is([data-condition="rain"],[data-condition="drizzle"],[data-condition="ice"],[data-condition="storm"],[data-condition="snow"]) .weather-card-precipitation{display:block}.weather-card-precipitation i{position:absolute;left:var(--x);top:-30px;width:2px;height:26px;background:linear-gradient(transparent,#487998a6);border-radius:2px;animation:card-rain-drop var(--fall) var(--delay) linear infinite}.weather-card-live[data-condition="drizzle"] .weather-card-precipitation{opacity:.28}.weather-card-live[data-condition="snow"] .weather-card-precipitation{opacity:.85}.weather-card-live[data-condition="snow"] .weather-card-precipitation i{width:6px;height:6px;background:#fff;border-radius:50%;box-shadow:0 0 4px #fff;animation-name:card-snow-drift;animation-duration:calc(var(--fall)*4)}.weather-card-fog{display:none;position:absolute;inset:-10%;background:linear-gradient(95deg,transparent 10%,#ffffffcc 48%,transparent 88%);animation:card-fog-wash 13s ease-in-out infinite}.weather-card-live[data-condition="fog"] .weather-card-fog{display:block}
.weather-card-live .weather-days article{background:#ffffffc9;border-color:#ffffffde;box-shadow:0 3px 14px #37567409}.weather-card-live .weather-heading>.btn,.weather-card-live .weather-bottom>.btn{background:#ffffff80;border-color:#ffffffb3}.weather-card-live .weather-heading .eyebrow,.weather-card-live .muted,.weather-card-live .weather-metrics>span,.weather-card-live .weather-days small,.weather-card-live .weather-credit{color:#53657c}.weather-card-live .weather-now .weather-symbol{animation:card-orb-float 7s ease-in-out infinite}
@keyframes card-cloud-sail{from{translate:-10% 0}to{translate:var(--card-cloud-travel) 0}}@keyframes card-orb-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes card-sun-turn{to{transform:rotate(360deg)}}@keyframes card-star-twinkle{0%,100%{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}@keyframes card-rain-drop{from{transform:translate3d(0,-20px,0) rotate(12deg)}to{transform:translate3d(-70px,var(--card-drop-travel),0) rotate(12deg)}}@keyframes card-snow-drift{from{transform:translate3d(0,-20px,0)}to{transform:translate3d(var(--sway),var(--card-drop-travel),0)}}@keyframes card-fog-wash{0%,100%{transform:translateX(-10%);opacity:.45}50%{transform:translateX(10%);opacity:.9}}
.weather-card-live[data-paused="true"] .weather-card-scene *,.weather-card-live[data-paused="true"] .weather-symbol{animation-play-state:paused!important}.motion-off .weather-card-live .weather-card-scene *,.motion-off .weather-card-live .weather-symbol{animation:none!important}.motion-off .weather-card-precipitation{display:none}
@media(max-width:800px){.weather-card-orb{width:114px;height:114px;right:4%;top:11%}.weather-card-clouds i{width:165px;height:41px}.weather-card-precipitation i:nth-child(n+17){display:none}.weather-card-live .weather-days small{overflow-wrap:normal}.weather-card-live .weather-days article{gap:9px;padding-bottom:14px}}
@media(prefers-reduced-motion:reduce){.weather-card-live .weather-card-scene *,.weather-card-live .weather-symbol{animation:none!important;transition:none!important}.weather-card-precipitation{display:none}}
@media print{.weather-card-scene{display:none!important}.weather-card-live{background:white}}

@supports(width:1cqw){.weather-card-scene{container-type:size}.weather-card-clouds{--card-cloud-travel:calc(100cqw + 220px)}.weather-card-precipitation{--card-drop-travel:calc(100cqh + 80px)}}

/* More pronounced weather motion; data and controls keep their fixed layout. */
.weather-card-live[data-period="night"]{--card-sky-top:#7087ba;--card-sky-bottom:#e5eefa}.weather-card-atmosphere{background-size:180% 180%;animation:card-sky-flow 12s ease-in-out infinite}.weather-card-veil{background:linear-gradient(105deg,#ffffff96 0%,#ffffff30 60%,#ffffff10),linear-gradient(0deg,#ffffffbf,transparent 72%)}.weather-card-orb{width:158px;height:158px;top:8%;right:7%;animation:card-orb-dance 4.8s ease-in-out infinite;filter:drop-shadow(0 0 22px #fff0aaad)}.weather-card-orb::before{content:'';position:absolute;inset:-20px;background:radial-gradient(circle,#fff3bf6b 0 26%,#ffe8ad21 52%,transparent 72%);border-radius:50%;animation:card-orb-halo 4s ease-in-out infinite}.weather-card-sun{position:relative;animation-duration:16s}.weather-card-moon{position:relative;animation:card-moon-rock 7s ease-in-out infinite}.weather-card-stars i{animation-duration:2.7s;box-shadow:0 0 7px #fff1becc;background:#fff2bf}.weather-card-stars i:nth-child(3n){border-radius:1px;clip-path:polygon(50% 0,62% 35%,100% 50%,62% 65%,50% 100%,38% 65%,0 50%,38% 35%);width:calc(var(--size)*2);height:calc(var(--size)*2)}
.weather-card-streaks{display:none;position:absolute;inset:0;overflow:hidden}.weather-card-live[data-period="night"]:is([data-condition="clear"],[data-condition="sun"]) .weather-card-streaks{display:block}.weather-card-streaks i{position:absolute;top:8%;left:55%;width:110px;height:2px;opacity:0;border-radius:4px;background:linear-gradient(90deg,transparent,#fff6cc);transform:rotate(-28deg);animation:card-star-streak 6.5s linear infinite}.weather-card-streaks i:nth-child(2){top:28%;left:70%;width:90px;animation-delay:-2.3s;animation-duration:8.2s}.weather-card-streaks i:nth-child(3){top:43%;left:30%;width:70px;animation-delay:-4.9s;animation-duration:10s}
.weather-card-clouds i{animation-duration:12s;opacity:.9}.weather-card-clouds i:nth-child(2){animation-duration:16s;animation-delay:-6s}.weather-card-clouds i:nth-child(3){animation-duration:19s;animation-delay:-12s}.weather-card-clouds i:nth-child(4){top:37%;animation-duration:14s;animation-delay:-9s;scale:.65;opacity:.65}.weather-card-clouds i:nth-child(5){top:65%;animation-duration:21s;animation-delay:-16s;scale:1.3;opacity:.5}.weather-card-precipitation{opacity:.68}.weather-card-precipitation i{height:35px;box-shadow:0 0 1px #729db466}.weather-card-live[data-condition="snow"] .weather-card-precipitation i{width:8px;height:8px;animation-duration:calc(var(--fall)*4.5)}.weather-card-fog{animation-duration:7s}.weather-card-live .weather-heading .eyebrow,.weather-card-live .muted,.weather-card-live .weather-metrics>span,.weather-card-live .weather-days small,.weather-card-live .weather-credit{color:#3e536d}
.weather-icon{position:relative;display:inline-block;line-height:1.25;animation:none!important}.weather-icon-glyph{display:inline-block;transform-origin:50% 65%;animation:card-icon-bob 3.8s ease-in-out infinite}.weather-icon-clear[data-period="day"] .weather-icon-glyph{animation:card-sun-turn 14s linear infinite}.weather-icon-clear[data-period="night"] .weather-icon-glyph{animation:card-icon-moon 4.2s ease-in-out infinite}.weather-icon-snow .weather-icon-glyph{animation:card-sun-turn 12s linear infinite}.weather-day-symbol.weather-icon{display:block;min-height:36px}.weather-days article:nth-child(2) .weather-icon-glyph{animation-delay:-1.3s}.weather-days article:nth-child(3) .weather-icon-glyph{animation-delay:-2.6s}.weather-icon-particles{display:none;position:absolute;inset:0;pointer-events:none}.weather-icon:is(.weather-icon-rain,.weather-icon-drizzle,.weather-icon-ice,.weather-icon-storm,.weather-icon-snow) .weather-icon-particles{display:block}.weather-icon-particles i{position:absolute;left:24%;top:70%;width:2px;height:7px;border-radius:3px;background:#488bbdc7;animation:card-icon-drop 1.2s linear infinite}.weather-icon-particles i:nth-child(2){left:42%;animation-delay:-.3s}.weather-icon-particles i:nth-child(3){left:60%;animation-delay:-.6s}.weather-icon-particles i:nth-child(4){left:76%;animation-delay:-.9s}.weather-icon-snow .weather-icon-particles i{width:4px;height:4px;border-radius:50%;background:#a6d1e6;animation-duration:2s}
@keyframes card-sky-flow{0%,100%{background-position:0 20%}50%{background-position:100% 80%}}@keyframes card-orb-dance{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(-15px,-18px,0) scale(1.09)}}@keyframes card-orb-halo{0%,100%{transform:scale(.9);opacity:.55}50%{transform:scale(1.16);opacity:1}}@keyframes card-moon-rock{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(8deg)}}@keyframes card-star-streak{0%,65%{opacity:0;transform:translate3d(100px,-60px,0) rotate(-28deg)}69%{opacity:.85}83%{opacity:0;transform:translate3d(-210px,105px,0) rotate(-28deg)}100%{opacity:0;transform:translate3d(-210px,105px,0) rotate(-28deg)}}@keyframes card-icon-bob{0%,100%{transform:translate3d(-3px,0,0) rotate(-4deg)}50%{transform:translate3d(5px,-9px,0) rotate(5deg)}}@keyframes card-icon-moon{0%,100%{transform:translateY(0) rotate(-8deg)}50%{transform:translateY(-12px) rotate(10deg)}}@keyframes card-icon-drop{0%{opacity:0;transform:translateY(-4px)}25%{opacity:.85}100%{opacity:0;transform:translateY(13px)}}
.weather-card-live[data-paused="true"] .weather-card-content *{animation-play-state:paused!important}.weather-card-live:is([data-condition="neutral"],[data-condition="unknown"]) .weather-card-atmosphere{animation:none}.motion-off .weather-icon-particles{display:none}
.weather-icon-unknown .weather-icon-glyph,.weather-card-live:is([data-condition="neutral"],[data-condition="unknown"]) .weather-icon-glyph{animation:none}
@media(max-width:800px){.weather-card-orb{width:136px;height:136px;right:5%;top:10%}.weather-card-precipitation i:nth-child(n+17){display:block}.weather-card-precipitation i:nth-child(n+25){display:none}.weather-card-stars i:nth-child(n+23){display:none}.weather-card-streaks i{width:80px}}
@media(prefers-reduced-motion:reduce){.weather-card-live *,.weather-card-live *::before,.weather-card-live *::after{animation:none!important;transition:none!important}.weather-icon-particles{display:none}}

.document-summary{display:flex;gap:20px;align-items:center;justify-content:space-between;margin:24px 0;padding:23px;border:1px solid #d4e2ef;border-radius:15px;background:linear-gradient(115deg,#edf5ff,#fff9ee)}.document-summary h3{margin:9px 0}.document-summary p{font-size:12px;margin:5px 0}.document-summary>.btn{flex-shrink:0}.document-flow{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.document-flow>span{font-size:10px;font-weight:700;color:#4d6c89;background:#edf4fa;padding:8px 11px;border-radius:7px}.document-list{display:grid;gap:12px;margin:22px 0}.document-tile{border:1px solid var(--line);border-radius:14px;display:flex;align-items:center;gap:16px;padding:19px;background:#fff}.document-tile .grow{min-width:0}.document-tile h3{overflow-wrap:anywhere;font-size:16px;margin:8px 0}.document-tile p{margin:5px 0;overflow-wrap:anywhere}.document-tile .progress{max-width:260px;margin-top:9px}.document-type{width:43px;height:49px;flex-shrink:0;display:grid;place-items:center;border:1px solid #f1dcba;border-radius:10px;background:#fff5e4;color:#b97b24;font-size:24px}.document-destination{display:grid;gap:6px;padding:16px;background:#eef5fc;border:1px solid #d9e5f1;border-radius:12px;margin:5px 0 20px}.document-destination strong{font-family:var(--heading);font-size:19px;overflow-wrap:anywhere}.document-destination>span:last-child{font-size:12px;color:var(--muted)}.document-upload{display:grid;gap:10px;justify-items:start;padding:18px;border:1px dashed #d5b17e;background:#fffbf5;border-radius:12px;margin-bottom:21px}.document-upload b{overflow-wrap:anywhere;max-width:100%}.document-body-input{min-height:180px;font-size:12px;line-height:1.65}.document-review{border:1px solid var(--line);border-radius:12px;padding:15px;margin:20px 0}.document-review h3{margin:0}.document-review-row{display:flex;align-items:flex-start;gap:12px;margin:12px 0}.document-review-row>input{width:20px;height:20px;margin-top:12px;flex-shrink:0}.document-review-row textarea{flex:1;min-width:0;min-height:62px;resize:vertical;font-size:12px;line-height:1.6}.document-review .actions{gap:7px}.document-review .actions>.btn{font-size:10px;padding:8px}.document-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:11px;margin:10px 0 18px}.document-meta b{width:100%;font-size:17px;overflow-wrap:anywhere}.document-post .grow strong{overflow-wrap:anywhere;font-size:13px;line-height:1.5}.document-post>input{flex-shrink:0}.document-post.checked strong{text-decoration:line-through;color:var(--muted)}.document-text{margin:20px 0;color:#52687e;font-size:12px}.document-text summary{cursor:pointer;font-weight:700}.document-text pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:350px;overflow:auto;border:1px solid var(--line);border-radius:10px;background:#f8fafc;padding:14px;font:11px/1.7 var(--font)}.document-source-link{display:block;max-width:100%;font-size:10px;text-align:left;overflow-wrap:anywhere;color:#507ba2;background:none;border:0;padding:5px 0}.document-unlinked{font-size:23px;color:#6d8eab;align-self:flex-start;padding-top:5px}.document-post>.btn{flex-shrink:0;max-width:135px;white-space:normal;font-size:10px}
@media(max-width:800px){.document-summary{align-items:flex-start;flex-direction:column;padding:20px}.document-summary>.btn{width:100%}.document-tile{gap:12px;padding:14px;flex-wrap:wrap}.document-tile>.grow{flex-basis:calc(100% - 60px)}.document-tile>.btn{width:100%;min-height:42px}.document-flow{gap:6px}.document-flow>span{font-size:9px;padding:8px}.document-review{padding:12px}.document-review .row{align-items:flex-start}.document-review-row{gap:9px}.document-post{gap:10px;flex-wrap:wrap}.document-post>.grow{flex-basis:calc(100% - 40px)}.document-post>.btn{max-width:none;width:100%}.document-review-row>input{width:22px;height:22px}.document-destination strong{font-size:19px}}

/* Montant client et acomptes, réunis dans le même encadré. */
.payment-card{border-top:3px solid #21aa8f;margin:24px 0;background:linear-gradient(130deg,#fff,#f4fbf8)}.payment-card h3{margin:8px 0 0}.payment-card>.row{gap:16px}.payment-card>.row>.actions{flex-shrink:0}.payment-total{display:flex;gap:12px;flex-wrap:wrap;align-items:center;padding:18px 0;border-bottom:1px solid var(--line)}.payment-total>span{font-weight:700;flex:1;min-width:120px}.payment-total>strong{font:800 clamp(21px,3vw,29px)/1.3 var(--heading);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.payment-total>.btn{font-size:10px}.payment-entry{display:flex;align-items:center;gap:14px;padding:15px 0;border-bottom:1px solid #e7eeeb;flex-wrap:wrap}.payment-entry .grow{min-width:120px}.payment-entry strong,.payment-entry small{display:block;overflow-wrap:anywhere}.payment-entry strong{font-size:12px}.payment-entry small{font-size:10px;color:var(--muted);margin-top:5px}.payment-deduction{color:#29816c;font-size:15px;font-variant-numeric:tabular-nums}.payment-entry .btn{font-size:10px;padding:8px 10px;min-height:36px}.payment-line,.payment-balance{display:flex;gap:15px;align-items:center;justify-content:space-between;padding:15px 0;font-size:12px}.payment-line b,.payment-balance strong{font-variant-numeric:tabular-nums;text-align:right;overflow-wrap:anywhere}.payment-balance{padding:18px;background:#e4f3ec;border-radius:12px;color:#215e4d;font-weight:700}.payment-balance strong{font:800 clamp(22px,3vw,30px)/1.2 var(--heading)}.payment-credit{background:#fff0d9;color:#8d6020}.client-budget-stat .payment-mini-line{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:4px 10px;font-size:10px;padding:10px 0;border-bottom:1px solid var(--line)}.payment-mini-line>b{font-size:14px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.client-budget-stat .payment-mini-line.balance{color:#21765c;border:0}.client-budget-stat>.btn{font-size:9px;padding:8px 0;min-height:32px;margin-top:2px}.client-budget-stat>.row>.small{font-weight:700;line-height:1.4}.client-budget-stat .stat-icon{flex-shrink:0}@media(max-width:800px){.payment-card>.row{align-items:flex-start}.payment-card>.row>.btn{width:100%}.payment-total>.btn{width:100%}.payment-total>strong{font-size:24px}.payment-entry{gap:12px}.payment-entry>.actions{width:100%;justify-content:flex-end}.payment-entry .btn{min-height:42px}.payment-balance{padding:15px;flex-wrap:wrap}.payment-balance strong{margin-left:auto}.client-budget-stat{padding:16px 12px}.client-budget-stat>.row{gap:6px}.client-budget-stat .stat-icon{width:28px;height:28px;font-size:16px}.client-budget-stat .payment-mini-line{font-size:9px}.payment-mini-line>b{font-size:12px}}

/* Aperçu des montants et fournitures avant intégration. */
.quote-import-review{margin:24px 0;border:1px solid #c9dfd8;background:#f6fbf8;border-radius:14px;padding:18px}.quote-import-review h3{margin:0}.quote-import-review>.row{gap:12px}.quote-import-review .note{font-size:11px;margin:12px 0}.quote-source-totals{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.quote-source-totals>span{display:grid;gap:6px;flex:1;min-width:120px;padding:12px;background:white;border:1px solid var(--line);border-radius:9px;font-size:10px;color:var(--muted)}.quote-source-totals b{color:var(--navy);font-size:18px;overflow-wrap:anywhere}.quote-total-choice{padding:14px;background:#fff9ee;border:1px solid #f0dfbf;border-radius:11px;margin:16px 0}.quote-check{display:flex!important;align-items:flex-start;gap:10px;font-size:12px;font-weight:600;line-height:1.6;cursor:pointer}.quote-check input[type=checkbox]{width:20px;height:20px;flex-shrink:0;margin:0}.quote-total-choice .field{margin:15px 0 0}.quote-import-row{margin:13px 0;padding:15px;background:#fff;border:1px solid var(--line);border-radius:12px}.quote-import-row>.field{margin-bottom:10px}.quote-import-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.quote-import-fields .field{min-width:0;margin-bottom:10px}.quote-import-fields input{padding:10px;min-width:0;width:100%;font-size:12px}.quote-import-fields label{min-height:28px;font-size:9px}.quote-import-choices{display:flex;gap:12px 20px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:13px}.quote-import-choices .quote-check{font-size:11px}.quote-import-row details{margin-top:13px}.quote-import-row details p{white-space:pre-wrap;overflow-wrap:anywhere}.quote-review-totals{padding:13px;border-radius:9px;background:#e5f2eb;color:#25654f;font-weight:700;overflow-wrap:anywhere}.quote-reviewed{padding-top:10px;color:#285c4e}.quote-applied{padding:16px;border:1px solid #cfe2d8;background:#f0f8f3;border-radius:12px;margin:20px 0}.quote-applied h3{font-size:15px;margin-top:0}.quote-mail-attachments{padding:15px;border:1px solid #cfe2d8;background:#f0f8f3;border-radius:12px;margin:18px 0}.quote-mail-attachments>.btn{display:flex;white-space:normal;text-align:left;width:100%;overflow-wrap:anywhere;margin-top:9px}@media(max-width:800px){.quote-import-review{padding:13px}.quote-import-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}.quote-import-row{padding:12px}.quote-import-fields label{min-height:0}.quote-import-choices{display:grid;gap:14px}.quote-check{font-size:12px;min-height:36px}.quote-applied .actions>.btn{width:100%}.quote-source-totals b{font-size:16px}}

.camera-dimensions,.camera-recognition{border:1px solid #d4e4dc;border-radius:13px;background:#f1f8f4;padding:18px;margin:18px 0}.camera-dimensions h3{margin:0}.camera-dimensions .row{gap:12px}.camera-dimension-chip{display:inline-flex;gap:8px;background:white;border:1px solid #d1e0d9;padding:9px 12px;border-radius:8px;font-size:12px;margin:4px 8px 4px 0}.camera-material{border-top:1px solid #d1e0d9;padding-top:14px;margin-top:14px}.camera-material strong{font-size:15px}.camera-material .btn{font-size:11px}.camera-dimension-field{min-width:0;margin-bottom:16px}.camera-dimension-field .field{margin-bottom:5px}.camera-dimension-field .btn{font-size:10px;padding:8px 0}.camera-calculation-source p{margin:8px 0;overflow-wrap:anywhere}.camera-calculation-source span{font-size:11px}@media(max-width:800px){.camera-dimensions,.camera-recognition{padding:15px}.camera-dimensions .row>.btn{width:100%}.camera-material .btn{width:100%}.camera-dimension-field .btn{min-height:42px}}

/* Account and legal links */
.legal-links{display:flex;flex-wrap:wrap;gap:10px 18px;margin:12px 0}.legal-links a{color:var(--muted,#657387);font-size:13px;text-decoration:underline;text-underline-offset:3px}footer{flex-wrap:wrap}footer>.legal-links{flex-basis:100%;justify-content:center}.account-plan{padding:24px;background:linear-gradient(135deg,#fef3da,#eff6ff);border:1px solid #e8dfc8;border-radius:20px}.account-plan h3{font-size:25px;margin:12px 0}.creator-plan{background:linear-gradient(125deg,#e6f4ee,#edf5ff)}.account-section{padding:20px 0;border-bottom:1px solid #e4e8ee}.account-center p{line-height:1.65}.account-check{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.6;margin:16px 0}.account-check input{width:20px;height:20px;margin-top:3px;flex-shrink:0}.readiness-list{padding:0;list-style:none}.readiness-list li{padding:8px 0;line-height:1.5}.account-center .actions{flex-wrap:wrap}@media(max-width:600px){.account-plan{padding:18px}.account-plan h3{font-size:22px}.account-section .actions .btn{width:100%}}
.family-masonry{--family-bg:#fff4e8;--family-ink:#7c431c;--family-accent:#bf6a2e}
.family-plaster{--family-bg:#eef5ff;--family-ink:#234c80;--family-accent:#4176c4}
.family-facades{--family-bg:#eaf8f1;--family-ink:#1f6048;--family-accent:#2a8e74}
.family-finishing{--family-bg:#f3effd;--family-ink:#593d83;--family-accent:#8064b5}
.calc-groups{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:24px 0 16px}
.calc-groups .calc-family{display:flex;align-items:center;gap:12px;text-align:left;padding:17px 14px;min-height:86px;border:1px solid var(--family-accent);border-top-width:4px;border-radius:14px;background:var(--family-bg);color:var(--family-ink);box-shadow:0 5px 18px #17263c06;transition:background .18s,transform .18s,box-shadow .18s}
.calc-groups .calc-family.active{background:var(--family-ink);border-color:var(--family-ink);color:#fff;box-shadow:0 8px 22px #17263c18}
.calc-family .family-icon{display:grid;place-items:center;flex-shrink:0;width:38px;height:38px;border-radius:11px;background:#ffffffa6;font-size:23px;color:var(--family-ink)}
.calc-family.active .family-icon{background:#ffffff22;color:#fff}
.family-copy{display:grid;gap:5px;min-width:0}.family-copy strong{font-size:12px;line-height:1.4;overflow-wrap:anywhere}.family-copy small{font-size:10px;font-weight:500;opacity:.85}
.calc-tile[class*="family-"]{background:var(--family-bg);border-color:var(--family-bg);border-left:4px solid var(--family-accent);color:var(--family-ink);min-height:74px;box-shadow:0 4px 14px #17263c05}
.calc-tile[class*="family-"].active{background:var(--family-bg);border-color:var(--family-accent);box-shadow:inset 0 0 0 1px var(--family-accent),0 4px 14px #17263c08}
.calc-tile[class*="family-"]>span{color:var(--family-ink);flex-shrink:0}.calc-tile strong{line-height:1.45;overflow-wrap:anywhere}
.calc-family:focus-visible,.calc-tile:focus-visible{outline:3px solid #17263c;outline-offset:4px}
.calc-form-card{border-top:4px solid var(--family-accent)}.family-label{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:7px;background:var(--family-bg);color:var(--family-ink);font-size:10px;font-weight:700;line-height:1.5}.calc-form-card>.family-label{margin-bottom:12px}
.supplier-reference[class*="family-"]{margin:16px 0;padding:18px;border:1px solid var(--family-accent);border-left-width:5px;border-radius:13px;background:linear-gradient(120deg,var(--family-bg),#fff 65%)}
.supplier-family-tags{display:grid;justify-items:end;gap:7px}.supplier-reference .badge.planned{background:var(--family-bg);color:var(--family-ink)}
@media(hover:hover){.calc-groups .calc-family:hover,.calc-tile[class*="family-"]:hover{transform:translateY(-2px);box-shadow:0 8px 22px #17263c12}}
@media(max-width:1000px){.calc-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.calc-groups{gap:9px;margin-top:20px}.calc-groups .calc-family{padding:13px 10px;gap:9px;min-height:82px}.calc-family .family-icon{width:30px;height:34px;font-size:20px}.family-copy strong{font-size:11px}.calc-tile[class*="family-"]{min-height:78px}.supplier-reference[class*="family-"]{padding:14px}.supplier-family-tags{justify-items:start}}
.bag-field .field{margin-bottom:0}.bag-presets{display:flex;gap:7px;margin:7px 0 16px}.bag-presets .btn{padding:6px 12px;min-height:36px;font-size:12px;background:var(--family-bg,#fff4e8);border-color:var(--family-accent,#bf6a2e);color:var(--family-ink,#7c431c)}

/* Integrated site planning */
.planning-intro{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:4px solid #5b94d5;margin-bottom:20px;background:linear-gradient(110deg,#fff,#f0f6ff)}
.planning-intro h3{font-size:21px;margin:10px 0}.planning-intro p{max-width:640px;line-height:1.8}.planning-intro>.actions{flex-shrink:0;max-width:390px;justify-content:flex-end}
.planning-counts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-bottom:22px}.planning-counts>button{padding:20px 24px;background:#fff;border:1px solid var(--line);border-radius:16px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--ink);text-align:left;box-shadow:0 4px 18px #17263c03}.planning-counts span{font-size:12px;color:var(--muted);font-weight:700}.planning-counts strong{font-family:var(--heading);font-size:29px}.planning-counts .has-late{border-color:#edccc6;background:#fff9f7}.planning-counts .has-late strong{color:#b94c3f}
.planning-board{padding:24px}.planning-toolbar{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-bottom:24px}.planning-ranges{display:flex;gap:4px;background:#eff3f8;border-radius:11px;padding:4px;margin-right:auto}.planning-ranges button{border:0;background:transparent;border-radius:8px;padding:10px 15px;color:#718198;font:inherit;font-size:12px;font-weight:700}.planning-ranges button.selected{background:#172e49;color:white;box-shadow:0 3px 10px #17263c13}.planning-filter{display:grid;gap:6px;font-size:10px;font-weight:700;color:var(--muted);max-width:280px}.planning-filter select{font-size:12px;padding:9px 12px;min-height:40px;max-width:100%}
.planning-week-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 18px}.planning-week-heading strong{display:block;font-family:var(--heading);font-size:18px}.planning-week-heading small{display:block;color:var(--muted);margin-top:3px;font-size:11px}.planning-week-heading .actions{gap:6px}.planning-arrow{font-size:24px;padding:5px 13px;min-width:40px;min-height:40px}.planning-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;border-bottom:1px solid var(--line);padding-bottom:23px;margin-bottom:23px}.planning-week button{border:1px solid #e7edf4;background:#f8fafc;border-radius:12px;padding:12px 4px;display:grid;gap:5px;justify-items:center;color:#627389;min-height:90px}.planning-week button>span{font-size:10px;text-transform:uppercase}.planning-week button strong{font-size:22px;color:var(--ink);font-family:var(--heading)}.planning-week button small{font-size:10px;font-weight:800;height:18px;min-width:18px;display:grid;place-items:center;background:#e8eef5;border-radius:50%}.planning-week button.is-today{border-color:#efc67f;background:#fff9ee}.planning-week button.selected{border-color:#315f89;background:#234767;color:#d5e8f5}.planning-week button.selected strong{color:white}.planning-week button.selected small{color:#17263c;background:#ffca7c}
.planning-section-label{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:11px;font-weight:800;color:#7b8898;text-transform:uppercase;letter-spacing:1px;margin-bottom:18px}.planning-section-label span{background:#edf2f8;padding:4px 9px;border-radius:7px;color:#355b7f}.planning-day-title{font-family:var(--heading);font-size:14px;margin:23px 0 12px;text-transform:capitalize}.planning-event{display:flex;gap:18px;padding:18px 18px 16px 14px;border:1px solid #e2e9ef;border-left:4px solid #7e9ec8;border-radius:13px;margin-bottom:12px;background:#fff;min-width:0}.planning-event.kind-visit{border-left-color:#9b82cc}.planning-event.kind-delivery{border-left-color:#eeb35d}.planning-event.kind-intervention{border-left-color:#3aab95}.planning-event.kind-reminder{border-left-color:#e88d8d}.planning-event.kind-task{border-left-color:#6795d3}.planning-event.is-late{background:#fffcfa}.planning-event.is-done{opacity:.64;background:#f8faf9}.planning-event.is-done h4{text-decoration:line-through}.planning-hour{width:61px;flex-shrink:0;border-right:1px solid #e8edf2;display:flex;flex-direction:column;gap:7px;padding-right:12px}.planning-hour>strong{font-family:var(--heading);font-size:19px}.planning-hour small{font-size:10px;color:var(--muted)}.planning-event-body{min-width:0;flex:1}.planning-event h4{font-size:17px;font-family:var(--heading);line-height:1.4;margin:7px 0 4px;overflow-wrap:anywhere}.planning-event-tags{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.planning-event-tags>span{font-size:9px;border-radius:5px;padding:3px 7px;background:#edf3fa;color:#55749b;font-weight:700}.planning-event-tags .planning-late{color:#ae4c41;background:#fff0e9}.planning-event-tags .planning-conflict{background:#fff1d6;color:#906311}.planning-event-tags .planning-finished{color:#3b806e;background:#e4f3eb}.planning-project-name{border:0;background:none;padding:0;font-size:13px;font-weight:800;color:#315f89;text-align:left;overflow-wrap:anywhere}.planning-client{display:inline-block;margin-left:8px;color:#81909d;font-size:12px;overflow-wrap:anywhere}.planning-reminder{display:flex;align-items:center;gap:5px;margin:9px 0 0;font-size:10px;line-height:1.7;color:#83909e;flex-wrap:wrap}.planning-reminder svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.7}.planning-notes{white-space:pre-wrap;overflow-wrap:anywhere}.planning-event-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:13px}.planning-event-actions>button{background:#f4f7fa;border:1px solid #e5ebf1;color:#61778e;padding:8px 10px;font:inherit;font-size:10px;border-radius:7px;min-height:34px;font-weight:700}.planning-event-actions .planning-complete{display:flex;gap:5px;align-items:center;color:#267c69;background:#e9f6f0;border-color:#d5eae2}.planning-complete svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2}.planning-event-actions .planning-delete{color:#ac6262;background:#fffafa}.planning-event-actions>button:hover{filter:brightness(.96)}
.planning-empty{text-align:center;padding:32px 15px 38px}.planning-empty>span{width:60px;height:60px;background:#fff0d7;display:grid;place-items:center;margin:0 auto 18px;border-radius:18px;color:#b77c2d}.planning-empty svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.5}.planning-empty h3{font-size:21px}.planning-empty p{line-height:1.8}.planning-empty .btn{margin-top:12px}.planning-undated{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:20px}.planning-undated p{font-size:12px;line-height:1.8;margin-bottom:0}.planning-footnote{line-height:1.9;margin:18px 5px 28px}.planning-calendar-help{margin-top:26px}.planning-calendar-help h3{font-size:15px;margin-top:20px}.planning-calendar-help p{font-size:12px;line-height:1.9}.planning-notification-state{background:#f2f6fc;border-radius:14px;padding:18px;margin:12px 0 25px}.planning-notification-state p{line-height:1.8}.planning-notification-state .btn{font-size:11px}
.planning-home{display:flex;gap:20px;align-items:center;margin-bottom:25px;border-left:4px solid #6795d3;background:linear-gradient(120deg,#fff,#f1f7fd)}.planning-home .grow{min-width:0}.planning-home h3{font-family:var(--heading);font-size:20px;margin:7px 0;overflow-wrap:anywhere}.planning-home p{margin:0;line-height:1.8}.planning-home-icon{background:#e9f1fc;color:#5286bd;border-radius:14px;width:54px;height:54px;flex-shrink:0;display:grid;place-items:center}.planning-home-icon svg{width:27px;height:27px;stroke:currentColor;fill:none;stroke-width:1.6}.planning-bell{position:relative;cursor:pointer}.planning-bell svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.6;fill:none}.planning-bell>span{position:absolute;top:-7px;right:-7px;border:2px solid white;min-width:18px;height:18px;border-radius:20px;background:#d96a56;color:white;font-size:9px;font-weight:800;display:grid;place-items:center;padding:2px}.nav-link[data-planning-nav]{position:relative}.nav-link[data-alerts]::after{content:attr(data-alerts);margin-left:auto;background:#cb6651;color:white;border-radius:20px;font-size:9px;min-width:18px;height:18px;display:grid;place-items:center;padding:2px;font-weight:800}
@media(max-width:1050px){.planning-intro{flex-direction:column;align-items:flex-start}.planning-intro>.actions{justify-content:flex-start;max-width:none}.planning-home{flex-wrap:wrap}.planning-home>.btn{margin-left:74px}}
@media(max-width:800px){.planning-bell{display:none}.planning-home{padding:20px 17px;gap:13px}.planning-home h3{font-size:17px}.planning-home-icon{width:42px;height:42px;border-radius:12px}.planning-home>.grow{flex-basis:calc(100% - 60px)}.planning-home>.btn{margin-left:55px;font-size:11px}.planning-intro{padding:19px}.planning-intro h3{font-size:19px}.planning-intro .btn{font-size:10px;padding:11px}.planning-counts{gap:8px}.planning-counts>button{padding:14px 11px;display:block}.planning-counts span{font-size:10px;display:block;margin-bottom:8px}.planning-counts strong{font-size:27px}.planning-board{padding:16px}.planning-toolbar{gap:12px}.planning-ranges{width:100%;margin:0}.planning-ranges>button{flex:1;font-size:11px;padding:11px 7px}.planning-filter{flex:1;max-width:100%;min-width:0}.planning-filter select{max-width:100%;width:100%;font-size:11px}.planning-week-heading strong{font-size:14px}.planning-week-heading .actions>.btn{font-size:10px;min-height:38px;padding:7px 10px}.planning-week{gap:4px}.planning-week button{min-height:78px;padding:9px 1px;border-radius:10px}.planning-week button>span{font-size:8px}.planning-week button strong{font-size:19px}.planning-week button small{font-size:9px;height:16px;min-width:16px}.planning-event{padding:15px 12px 13px 10px;gap:11px}.planning-hour{width:49px;padding-right:8px}.planning-hour>strong{font-size:16px}.planning-event h4{font-size:16px}.planning-event-actions>button{min-height:40px;padding:9px 10px}.planning-client{display:block;margin:3px 0 0}.planning-undated{align-items:flex-start;flex-direction:column}.nav-link[data-alerts]::after{position:absolute;top:3px;right:7px;font-size:8px;min-width:16px;height:16px}.planning-section-label{font-size:9px}.planning-day-title{font-size:13px}.planning-footnote{font-size:10px}.planning-event-tags>span{font-size:8px}.planning-home .eyebrow{font-size:9px}}
@media(prefers-reduced-motion:reduce){.planning-event,.planning-week button{animation:none;transition:none}}

.offline-banner{background:#fff3db;border:1px solid #edd09d;border-radius:14px;padding:16px 20px;display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:22px}.offline-banner strong{font-size:13px;color:#865c1e}.offline-banner p{font-size:11px;color:#99733c;margin:5px 0 0;line-height:1.8}.offline-banner .actions{flex-shrink:0}.reserves-intro,.reserve-overview{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px;border-top:4px solid #b18cd4}.reserves-intro h3{font-size:23px;margin-top:10px}.reserve-stats{display:flex;gap:15px;flex-wrap:wrap;margin:10px 0 22px}.reserve-stats>span{flex:1;border:1px solid var(--line);background:white;padding:16px 18px;border-radius:12px;color:var(--muted);font-size:12px}.reserve-stats strong{display:block;font-family:var(--heading);font-size:26px;color:var(--ink);margin-bottom:4px}.reserve-card{margin-bottom:18px}.reserve-card h3{font-size:21px;margin:16px 0 8px;overflow-wrap:anywhere}.reserve-card.resolved{background:#f7fcf8}.reserve-badge{background:#eef0fb;color:#756095;padding:6px 10px;border-radius:8px;font-weight:700;font-size:10px}.reserve-badge.urgent{color:#af4e40;background:#fff0e9}.resolved .reserve-badge{color:#367d65;background:#e1f4e8}.reserve-location{color:#6a7e93;font-size:13px;font-weight:700}.reserve-description{white-space:pre-wrap;line-height:1.8;overflow-wrap:anywhere}.reserve-photos{display:flex;gap:9px;margin:15px 0;flex-wrap:wrap}.reserve-photos button{padding:0;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:#eef3f8;width:104px;height:82px}.reserve-photos img{width:100%;height:100%;object-fit:cover}.reserve-photo-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-height:350px;overflow:auto;margin:15px 0}.reserve-photo-picker label{position:relative;border:1px solid var(--line);border-radius:10px;padding:6px;background:#f7f9fc;display:grid;gap:5px;cursor:pointer;overflow:hidden}.reserve-photo-picker input{position:absolute;top:10px;left:10px;width:20px;height:20px;accent-color:#357e73}.reserve-photo-picker img{width:100%;height:86px;object-fit:cover;border-radius:7px}.reserve-photo-picker span{display:block;font-size:10px;line-height:1.4;overflow-wrap:anywhere}.reserve-add-photos{margin-top:16px}.reserve-overview{margin-top:22px}.reserve-overview h3{font-size:21px;margin:10px 0 5px}.reserve-overview p{margin-bottom:0}.reserve-overview .actions{flex-shrink:0}.report-intro h2{font-size:26px;margin-top:13px}.report-intro>p{font-size:13px;line-height:1.9;max-width:650px}.report-intro .note{margin:24px 0;line-height:1.8;font-size:12px}.report-options{display:grid;gap:12px;margin:20px 0}.report-options label{display:flex;align-items:center;gap:10px;font-size:12px;line-height:1.6;color:var(--ink)}.report-options input{width:19px;height:19px;accent-color:#367e70;flex-shrink:0}.planning-event.kind-reserve{border-left-color:#c18085}
@media(max-width:800px){.offline-banner,.reserves-intro,.reserve-overview{align-items:flex-start;flex-direction:column;padding:18px}.offline-banner .actions{flex-wrap:wrap}.offline-banner .btn{font-size:10px;padding:10px}.reserve-stats{gap:8px}.reserve-stats>span{padding:12px 10px;font-size:10px}.reserve-stats strong{font-size:24px}.reserve-card h3{font-size:18px}.reserve-photo-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.reserve-photo-picker img{height:95px}.reserve-card .btn{font-size:10px;padding:11px}.reserve-overview h3{font-size:19px}.reserve-overview .actions{flex-wrap:wrap}.report-options label{font-size:11px}}
.offline-conflict-item{padding:16px 0;border-top:1px solid var(--line)}.offline-conflict-item h3{font-size:14px}.offline-conflict-item label{display:block;border:1px solid var(--line);padding:14px;border-radius:10px;background:#f8fafc;font-size:12px}.offline-conflict-item label:has(input:checked){border-color:#4a8d7a;background:#eff8f3}.offline-conflict-item input{width:18px;height:18px;accent-color:#357c69;margin-right:9px}.offline-conflict-item pre{white-space:pre-wrap;overflow-wrap:anywhere;font:inherit;font-size:11px;line-height:1.8;margin-bottom:0;max-height:260px;overflow:auto}
.devis-workspace{margin-top:24px;min-width:0}.devis-heading{display:flex;align-items:center;justify-content:space-between;gap:22px;border-top:4px solid #e5a94d;margin-bottom:20px;background:linear-gradient(115deg,#fff7e9,#fff 65%)}.devis-heading h2{font-size:29px;margin:12px 0 8px}.devis-heading p{max-width:580px;line-height:1.7;margin-bottom:0}.devis-heading .actions{flex-shrink:0}.devis-fieldset{border:0;padding:0;margin:0;min-width:0}.devis-fieldset>.card{margin-bottom:20px}.devis-identification .formgrid{grid-template-columns:repeat(3,minmax(0,1fr))}.devis-identification .formgrid>.field:last-child{grid-column:1/-1}.devis-workspace .section-head{margin-top:0;gap:14px}.devis-save-state{font-size:11px;color:#976322;line-height:1.6}.devis-parties{margin-bottom:20px;align-items:start}.devis-parties>.card{min-width:0;padding:22px}.devis-parties summary{cursor:pointer;color:var(--navy);font-size:13px;line-height:1.7}.devis-parties>section>details>summary{display:flex;justify-content:space-between;gap:14px;align-items:center;list-style:none}.devis-parties>section>details>summary::after{content:'+';font-size:24px;color:#a37230}.devis-parties>section>details[open]>summary::after{content:'−'}.devis-parties summary>span{font-size:11px;color:var(--muted)}.devis-parties summary>strong{flex:1;text-align:right;overflow-wrap:anywhere}.devis-parties details[open]>.formgrid,.devis-parties details[open]>.section-head{margin-top:20px}.devis-parties .formgrid{gap:12px}.devis-parties .formgrid>.field{margin:0}.devis-parties .field input,.devis-parties .field textarea{font-size:12px}.devis-parties details details{margin-top:20px;border-top:1px solid var(--line);padding-top:15px}.devis-line-card{padding:25px;min-width:0;border-top:3px solid #5e90d0}.devis-line-card .section-head h3{margin-bottom:8px}.devis-line-card .section-head p{margin:0}.devis-line-card .table-wrap{margin-top:20px}.devis-editor-table{width:100%;min-width:740px;table-layout:auto}.devis-editor-table th{font-size:10px;padding:12px 7px}.devis-editor-table td{padding:10px 5px;vertical-align:top}.devis-editor-table th:first-child{width:34%}.devis-editor-table input{width:100%;min-height:44px;padding:10px 9px;background:#f7f9fc;border:1px solid #d9e1eb;border-radius:8px;font-size:12px;min-width:58px}.devis-editor-table input:focus{border-color:#ba8738;outline:2px solid #f5e5c6}.devis-editor-table td:first-child input{min-width:210px}.devis-editor-table td:nth-child(2) input{min-width:75px}.devis-editor-table td:nth-child(4) input{min-width:90px}.devis-row-total{font-weight:800;font-size:13px;white-space:nowrap;padding-top:23px!important}.devis-row-actions{white-space:nowrap}.devis-row-actions .mini-btn{padding:8px;min-height:35px;min-width:30px;color:#5c6c7e}.devis-row-actions .mini-btn:last-child{color:#b15145}.devis-totals{max-width:400px;margin:22px 0 0 auto;border:1px solid var(--line);border-radius:13px;padding:18px;background:#fafbfd}.devis-totals>div{display:flex;justify-content:space-between;gap:14px;font-size:13px;line-height:1.8;padding:6px 0}.devis-totals>p{line-height:1.8;font-size:11px;margin:0 0 12px}.devis-totals .devis-grand-total{border-top:1px solid #d8e0eb;margin-top:9px;padding-top:15px;font-size:17px;color:var(--navy)}.devis-grand-total strong{font-size:24px;overflow-wrap:anywhere}.devis-readiness{border-left:4px solid #e1ab57}.devis-readiness h3{font-size:17px}.devis-readiness ul{padding-left:18px;columns:2;column-gap:35px;margin-bottom:0}.devis-readiness li{font-size:11px;line-height:1.8;margin-bottom:5px;break-inside:avoid;color:var(--muted)}.devis-toolbar{position:sticky;bottom:16px;z-index:12;display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:17px 20px;background:#fffef9;border:1px solid #e5cca5;border-radius:15px;box-shadow:0 10px 35px #17263c20;margin-top:20px}.devis-toolbar .actions{gap:8px}.devis-toolbar .form-error{width:100%;margin:0}.devis-toolbar>.small{font-size:11px;color:#766247}.devis-company-details{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}.devis-company-details summary{font-size:13px;font-weight:700;cursor:pointer;margin-bottom:15px}.devis-client-preview{background:white;padding:27px 18px;color:#17263c}.devis-client-preview>header{display:flex;justify-content:space-between;gap:24px;align-items:center;border-bottom:3px solid #e3ad57;padding-bottom:20px}.devis-client-preview header h2{font-size:27px;margin:10px 0}.devis-client-preview header p{font-size:11px;line-height:1.6;color:#77818d}.devis-preview-total{font-family:var(--heading);font-size:29px;white-space:nowrap}.devis-preview-parties{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:25px 0}.devis-preview-parties>section:last-child{background:#f5f7fb;border-radius:12px;padding:17px}.devis-preview-parties h3{font-size:17px;margin:0 0 10px}.devis-preview-parties p{font-size:11px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.devis-preview-parties .eyebrow{font-size:9px;margin-bottom:10px}.devis-client-preview>.table-wrap{margin-top:23px}.devis-client-preview table{font-size:11px;width:100%;min-width:490px}.devis-client-preview th{background:#17263c;color:white;font-size:10px}.devis-client-preview td:first-child{min-width:210px;white-space:normal;overflow-wrap:anywhere}.devis-client-preview td{font-size:11px}.devis-preview-note{margin:21px 0}.devis-preview-note h4{font-size:12px;margin:0 0 7px}.devis-preview-note p{font-size:11px;line-height:1.8;white-space:pre-wrap;margin:0;overflow-wrap:anywhere}.devis-preview-draft{padding:12px;background:#fff1e7;color:#9c543b;font-size:11px;border-radius:8px}.devis-signatures{display:grid;grid-template-columns:1fr 1fr;gap:25px;margin:30px 0 10px}.devis-signatures>div{min-height:105px;font-size:12px;font-weight:700;border-bottom:1px solid #cfd8e3;line-height:1.8}.devis-signatures small{font-size:10px;font-weight:400;color:var(--muted)}
@media(max-width:800px){.devis-workspace{margin-top:18px}.devis-heading{padding:20px;align-items:flex-start;flex-direction:column;gap:13px}.devis-heading h2{font-size:25px}.devis-heading .actions{width:100%;flex-wrap:wrap}.devis-heading .btn{font-size:11px;padding:11px 13px;flex:1}.devis-identification{padding:20px}.devis-identification .formgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.devis-identification .formgrid>.field:first-child{grid-column:1/-1}.devis-identification .field{margin:0}.devis-identification .section-head{align-items:flex-start;flex-direction:column;gap:5px}.devis-parties{grid-template-columns:1fr;gap:10px}.devis-parties>.card{padding:17px}.devis-parties>section>details>summary{font-size:12px;gap:12px}.devis-parties summary>span{font-size:10px}.devis-line-card{padding:17px}.devis-line-card .section-head{align-items:flex-start;flex-direction:column}.devis-line-card .section-head>.btn{width:100%;justify-content:center}.devis-editor-table{min-width:0;display:block}.devis-editor-table thead{display:none}.devis-editor-table tbody{display:block}.devis-editor-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;border:1px solid #d7e1ec;border-radius:12px;padding:14px;margin:0 0 14px;background:#fff}.devis-editor-table td{display:block;padding:0;border:0;min-width:0}.devis-editor-table td::before{content:attr(data-label);display:block;font-size:10px;font-weight:700;color:#728195;margin-bottom:6px}.devis-editor-table td:first-child{grid-column:1/-1}.devis-editor-table input,.devis-editor-table td:first-child input,.devis-editor-table td:nth-child(2) input,.devis-editor-table td:nth-child(4) input{min-width:0;font-size:16px;min-height:45px}.devis-row-total{font-size:19px;padding-top:0!important;color:#285f89}.devis-row-actions{display:flex!important;align-items:end;justify-content:flex-end;grid-column:1/-1;gap:8px}.devis-row-actions::before{display:none!important}.devis-row-actions .mini-btn{min-height:40px;min-width:44px;background:#f2f6fa;border-radius:8px}.devis-totals{max-width:100%;padding:14px}.devis-totals .devis-grand-total{font-size:15px}.devis-grand-total strong{font-size:23px}.devis-readiness{padding:18px}.devis-readiness ul{columns:1}.devis-toolbar{bottom:calc(87px + env(safe-area-inset-bottom));padding:12px;gap:8px;border-radius:12px}.devis-toolbar .actions{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:7px}.devis-toolbar .actions>.btn{font-size:10px;padding:11px 9px;justify-content:center;min-height:41px}.devis-toolbar .actions>button[type=submit]{grid-column:1/-1;font-size:12px}.devis-toolbar>.small{font-size:10px}.devis-client-preview{padding:15px 0}.devis-client-preview>header{align-items:flex-start;flex-direction:column;gap:8px}.devis-client-preview header h2{font-size:25px}.devis-preview-total{font-size:28px}.devis-preview-parties{grid-template-columns:1fr;gap:15px}.devis-preview-parties>section:last-child{padding:16px}.devis-signatures{gap:15px}.devis-signatures>div{font-size:10px}}

.offline-readiness{display:flex;align-items:center;justify-content:space-between;gap:22px;border-left:4px solid #329885;padding:20px 24px;margin:0 0 24px;background:linear-gradient(115deg,#eff9f5,#fff)}.offline-readiness .eyebrow{color:#287c6a;font-size:10px}.offline-readiness h3{font-size:19px;margin:8px 0}.offline-readiness p{margin:0;line-height:1.7;max-width:650px}.offline-readiness>.btn{flex-shrink:0}.offline-start{max-width:680px;margin:35px auto;padding:30px}.offline-start h1{font-size:29px;line-height:1.3;margin:15px 0}.offline-start>p,.offline-start li{font-size:14px;line-height:1.9}.offline-start ol{padding-left:22px}.offline-start li{margin:9px 0}.offline-start details{border-top:1px solid var(--line);margin-top:25px;padding-top:20px}.offline-start summary{font-size:13px;cursor:pointer;line-height:1.7}@media(max-width:800px){.offline-readiness{padding:18px;align-items:flex-start;flex-direction:column;gap:13px}.offline-readiness h3{font-size:18px}.offline-readiness>.btn{width:100%;justify-content:center;font-size:12px;min-height:44px}.offline-start{margin:20px 0;padding:22px}.offline-start h1{font-size:25px}.offline-start .btn{width:100%;justify-content:center}.offline-start>p,.offline-start li{font-size:13px}}
:root .backup-controls{border:0;padding:0;margin:0;min-width:0}.backup-intro{padding:18px;border-radius:18px;background:linear-gradient(120deg,#edf6ff,#fff6e7);margin-bottom:18px}.backup-intro h3{margin:8px 0}.backup-section{padding:18px 0;border-top:1px solid var(--line)}.backup-section h3{margin-top:0}.backup-preview{margin-top:18px;padding:18px;border:1px solid var(--line);border-radius:16px;background:#f8fafc}.backup-project-list{padding-left:20px;max-height:180px;overflow:auto}.backup-project-list li{margin:7px 0}.backup-replace{padding:12px;border:1px solid #dc987b;border-radius:12px;background:#fff3ed}.backup-replace[hidden]{display:none}.backup-controls input[type=file]{width:100%;max-width:100%;padding:12px 0}.backup-controls:disabled{opacity:.7}#backup-status{overflow-wrap:anywhere}#backup-download .btn{width:100%;white-space:normal;text-align:center}

.material-picker{min-width:0;margin:24px 0;padding:22px 0 0;border:1px solid #e0e7ef;border-radius:23px;background:linear-gradient(145deg,#fffffff5,#f5f8fcf5);box-shadow:0 10px 32px #17263c08;overflow:hidden}
.material-picker-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 22px}.material-picker-heading h3{margin:0;font-size:20px}.material-picker>p{margin:9px 0 15px;padding:0 22px;font-size:12px;line-height:1.7}
.material-rail{min-width:0;margin-bottom:18px}.material-rail-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 22px;margin-bottom:3px;min-height:44px}.material-rail-heading h4{margin:0;font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:#708296}.material-rail-controls{display:flex;gap:6px}.material-rail-arrow{width:44px;height:38px;min-height:44px;display:grid;place-items:center;padding:0;border:1px solid #dce5ed;border-radius:12px;background:#fff;color:#294c6c;box-shadow:0 3px 10px #17263c04}.material-rail-arrow svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.material-rail-arrow:disabled{opacity:.25;cursor:default}.material-rail-arrow:not(:disabled):hover{background:var(--family-bg);border-color:var(--family-accent)}
.material-track{position:relative;display:flex;gap:13px;min-width:0;overflow-x:auto;overflow-y:hidden;padding:12px 22px 20px;scroll-padding-inline:22px;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;touch-action:pan-x pan-y pinch-zoom;cursor:grab;-webkit-overflow-scrolling:touch}.material-track::-webkit-scrollbar{display:none}.material-track.is-dragging{cursor:grabbing;scroll-snap-type:none}.material-track.is-dragging .material-slide{cursor:grabbing;pointer-events:none}
.material-slide{position:relative;flex:0 0 auto;scroll-snap-align:start;box-sizing:border-box;border:1px solid #ffffff;border-radius:19px;background:var(--family-bg);color:var(--family-ink);text-align:left;overflow:hidden;user-select:none;box-shadow:0 4px 12px #17263c08;transition:transform .23s,background .23s,box-shadow .23s,border-color .23s}
.material-slide-group{display:flex;align-items:center;gap:11px;width:166px;min-height:96px;padding:16px 13px;border-color:color-mix(in srgb,var(--family-accent) 25%,white)}.material-slide-group.active{background:var(--family-ink);color:#fff;border-color:var(--family-ink);box-shadow:0 7px 18px #17263c18;transform:translateY(-3px)}
.material-slide-icon{position:relative;z-index:1;display:grid;place-items:center;flex-shrink:0;width:38px;height:40px;font-size:28px;border-radius:12px;background:#ffffff99;color:var(--family-ink);box-shadow:inset 0 0 0 1px #ffffff9c}
.material-slide-copy{position:relative;z-index:1;display:grid;gap:5px;min-width:0;padding-right:2px}.material-slide-copy strong{font-size:13px;line-height:1.4;overflow-wrap:anywhere}.material-slide-copy small{font-size:10px;line-height:1.5;opacity:.72}.material-slide-group .material-slide-check{display:none}.material-slide-group.active .material-slide-icon{background:#ffffff20;color:#fff;box-shadow:inset 0 0 0 1px #ffffff22}
.material-slide-kind{display:grid;align-content:start;grid-template-rows:44px 1fr;gap:13px;width:212px;min-height:174px;padding:18px;border-color:#dfe6ef;background:linear-gradient(130deg,#fff,var(--family-bg));box-shadow:0 7px 17px #17263c08}
.material-slide-kind::before{content:'';position:absolute;right:-22px;top:-12px;width:145px;height:145px;transform:rotate(-18deg);border:1px solid currentColor;border-radius:24px;opacity:.07;background:repeating-linear-gradient(90deg,transparent 0 22px,currentColor 23px,transparent 24px 45px);pointer-events:none}
.material-slide-kind .material-slide-icon{width:46px;height:44px;font-size:31px;background:var(--family-bg);box-shadow:inset 0 0 0 1px #17263c0a}.material-slide-kind .material-slide-copy{gap:7px;padding-right:21px}.material-slide-kind .material-slide-copy strong{font-size:15px}.material-slide-kind .material-slide-copy small{font-size:10px}
.material-slide-kind.active{color:#fff;border-color:var(--family-ink);background:linear-gradient(130deg,var(--family-ink),#172e48);box-shadow:0 9px 21px #17263c25;transform:translateY(-4px)}.material-slide-kind.active::before{opacity:.18}.material-slide-kind.active .material-slide-icon{background:#ffffff1c;color:#ffce84;box-shadow:inset 0 0 0 1px #ffffff20}
.material-slide-check{position:absolute;right:13px;bottom:13px;display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#ffffffbf;color:var(--family-ink)}.material-slide-check svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.material-slide.active .material-slide-check{background:#ffc36c;color:#25374a}
.material-rail-progress{height:3px;position:relative;margin:0 22px;background:#e2e9f1;border-radius:5px;overflow:hidden}.material-rail-progress>span{position:absolute;top:0;height:100%;min-width:16px;border-radius:5px;background:var(--family-accent);opacity:.7}
.material-current{display:flex;align-items:center;justify-content:center;gap:8px 12px;flex-wrap:wrap;padding:15px 20px;background:var(--family-bg);border-top:1px solid #17263c08;color:var(--family-ink);text-align:center}.material-current svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;flex-shrink:0}.material-current>span{font-size:11px}.material-current>strong{font-size:13px;overflow-wrap:anywhere}
.material-track:focus-visible{outline:3px solid #315d7d;outline-offset:-3px;border-radius:12px}.material-slide:focus-visible,.material-rail-arrow:focus-visible{outline:3px solid #315d7d;outline-offset:3px}
@media(hover:hover){.material-slide:hover{transform:translateY(-4px);border-color:var(--family-accent);box-shadow:0 10px 22px #17263c14}.material-slide-kind.active:hover{box-shadow:0 12px 26px #17263c2b}}
@media(max-width:800px){.material-picker{margin:18px 0;border-radius:20px;padding-top:19px}.material-picker-heading{padding:0 17px}.material-picker-heading h3{font-size:18px}.material-picker>p{padding:0 17px;font-size:11px;margin-bottom:12px}.material-rail-heading{padding:0 17px}.material-track{padding:11px 17px 18px;scroll-padding-inline:17px;gap:11px}.material-slide-group{width:156px;min-height:93px;padding:14px 12px;gap:9px}.material-slide-group .material-slide-copy strong{font-size:12px}.material-slide-icon{width:33px;font-size:25px}.material-slide-kind{width:202px;min-height:170px;padding:17px}.material-slide-kind .material-slide-copy strong{font-size:14px}.material-rail-progress{margin:0 17px}.material-current{padding:14px}.material-current>span{font-size:10px}.material-current>strong{font-size:12px}}
@media(prefers-reduced-motion:reduce){.material-slide,.material-rail-arrow{transition:none}.material-track{scroll-behavior:auto}}
.family-wood{--family-bg:#eaf5f8;--family-ink:#285668;--family-accent:#388399}
.material-search{margin:0 22px 12px}.material-search label{font-size:11px;color:#60778c}.material-search input{font-size:13px;background:#fff;border-color:#d9e3ed;max-width:100%}.material-search-empty{padding:22px;margin:0 0 18px;color:var(--muted);font-size:13px}
@media(max-width:800px){.material-search{margin:0 17px 10px}.material-search input{font-size:16px}}
