/*! tailwindcss v4.3.5 | MIT License | https://tailwindcss.com */@layer theme{:host,:root{--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.hidden{display:none}.table{display:table}}:root{--paper:#eef5fc;--white:#fff;--ink:#172941;--muted:#465d77;--line:#d6e4f3;--blue:#16518b;--ice:#e1f0ff;--danger:#a02933}*{box-sizing:border-box}body{background:radial-gradient(ellipse at 90% 0,#dceeff,transparent 42rem),var(--paper);color:var(--ink);margin:0;font-family:Geist,Inter,system-ui,sans-serif;font-size:15px}a,button,select,summary{-webkit-tap-highlight-color:transparent}button,select,summary{cursor:pointer}button:disabled{cursor:wait;opacity:.7}:focus-visible{outline-offset:3px;outline:3px solid #367ccc}dd,dl,h1,h2,h3,p{margin:0}h1{letter-spacing:-.059em;overflow-wrap:anywhere;font-size:clamp(2.05rem,5vw,3.15rem);font-weight:740;line-height:1.04}h2{letter-spacing:-.024em;font-size:1.13rem;font-weight:710}h3{overflow-wrap:anywhere;font-size:1.05rem;font-weight:700}small{font-size:.82rem}fieldset{border:0;min-width:0;margin:0;padding:0}.shell{grid-template-columns:236px minmax(0,1fr);min-height:100dvh;display:grid}.sidebar{background:var(--white);border-right:1px solid var(--line);flex-direction:column;height:100dvh;padding:29px 18px 19px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:11px;padding:0 4px;line-height:1.25;display:flex}.brand strong{font-weight:720;display:block}.brand small{color:var(--muted)}.avatar,.banner-icon,.brand-icon,.category-icon{flex:none;place-items:center;display:grid}.brand-icon{background:var(--blue);color:#fff;border-radius:11px;width:39px;height:39px}.navigation{gap:5px;margin-top:44px;display:grid}.navigation a{min-height:46px;color:var(--muted);border-radius:9px;align-items:center;gap:12px;padding:0 12px;font-weight:650;display:flex}.navigation a.active,.navigation a:hover{background:var(--ice);color:var(--blue)}.navigation .nav-add{display:none}.profile{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px;margin-top:auto;padding:13px 0 0;display:flex}.profile strong{font-size:.9rem}.avatar{background:#eee6fd;border-radius:50%;width:34px;height:34px;font-weight:720}.icon-button{min-width:44px;min-height:44px;color:var(--muted);border-radius:9px;place-items:center;margin-left:auto;display:grid}.icon-button:hover{background:var(--ice);color:var(--blue)}.content{width:min(100%,1140px);margin-inline:auto;padding:49px clamp(24px,4vw,60px) 48px}.page-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:23px;display:flex}.muted,.page-heading p{color:var(--muted)}.page-heading p:not(.eyebrow){margin-top:8px}.button{text-align:center;border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:7px;min-height:44px;padding:9px 14px;font-weight:670;line-height:1.25;display:inline-flex}.button svg{flex:none}.primary{background:var(--blue);color:#fff}.primary:hover{background:#123f73}.secondary{background:var(--white);color:var(--blue);border-color:var(--line)}.secondary:hover{background:var(--ice)}.danger-button{color:var(--danger);background:#fff3f2;border-color:#f2c4c4}.budget-banner{color:#fff;background:linear-gradient(110deg,#15477f,#245f9f);border-radius:14px;align-items:center;gap:14px;margin-bottom:23px;padding:17px 20px;display:flex}.banner-icon{background:#ffffff1c;border-radius:11px;width:43px;height:43px}.budget-banner small{color:#ebf6ff;display:block}.budget-banner strong{letter-spacing:-.045em;font-size:1.7rem;line-height:1.15;display:block}.banner-link{align-items:center;gap:6px;margin-left:auto;font-size:.9rem;font-weight:650;display:inline-flex}.banner-link svg{flex:none}.banner-negative{color:#ffd1cf}.banner-danger{background:#792c37}.banner-danger small{color:#ffe8e5}.filterbar{grid-template-columns:minmax(0,1fr) repeat(3,minmax(0,155px));gap:8px;display:grid}input:not([type=checkbox]),select,textarea{background:var(--white);width:100%;min-width:0;min-height:44px;color:var(--ink);font:inherit;border:1px solid #bfd4e9;border-radius:9px;padding:9px 11px;font-size:16px}input::placeholder,textarea::placeholder{color:#577089}select{text-overflow:ellipsis;padding-right:26px}input[type=checkbox]{width:19px;height:19px;accent-color:var(--blue);flex:none}.search{background:var(--white);color:var(--muted);border:1px solid #bfd4e9;border-radius:9px;align-items:center;padding-left:11px;display:flex}.search svg{flex:none}.search input{background:0 0;border:0}.panel{border:1px solid var(--line);background:var(--white);border-radius:13px}.padded{padding:clamp(15px,2.8vw,24px)}.purchase-groups{gap:21px;margin-top:23px;display:grid}.section-heading{align-items:center;gap:9px;margin-bottom:10px;display:flex}.count,.priority,.status{border-radius:999px;font-size:.75rem;font-weight:680}.priority{padding:4px 8px}.p1{color:#942f2b;background:#ffe6dd}.p2{color:#72500c;background:#fff0c6}.p3{color:#58417f;background:#e8ddfa}.count{color:var(--muted);background:#e3eefb;padding:2px 8px}.purchase-list{margin:0;padding:0;list-style:none;overflow:hidden}.purchase-list li+li{border-top:1px solid var(--line)}.purchase-row{grid-template-columns:auto minmax(0,1fr) auto minmax(84px,auto) auto;align-items:center;gap:12px;min-height:61px;padding:8px 14px;display:grid}.purchase-row:hover{background:#f2f8ff}.purchase-row:focus-visible{outline-offset:-4px}.category-icon{width:37px;height:37px;color:var(--blue);background:#e9f3ff;border-radius:9px}.purchase-name small,.purchase-name strong{overflow-wrap:anywhere;display:block}.purchase-name small{color:var(--muted)}.status{align-items:center;gap:4px;width:fit-content;padding:4px 8px;display:inline-flex}.status-open{color:#184d80;background:#deefff}.status-closed{color:#534483;background:#eee8fa}.row-cost{text-align:right;font-variant-numeric:tabular-nums;font-weight:690}.row-arrow{color:#56728d}.empty{color:var(--muted);text-align:center;justify-items:center;gap:8px;padding:32px 16px;display:grid}.empty h2{color:var(--ink)}.budget-page,.narrow{max-width:790px;margin-inline:auto}.back{min-height:44px;color:var(--blue);align-items:center;gap:8px;margin:-10px 0 8px;font-weight:650;display:inline-flex}.eyebrow{letter-spacing:.08em;text-transform:uppercase;margin-bottom:9px;font-size:.78rem;font-weight:720}.detail-page>section,.detail-summary{margin-bottom:19px}.detail-summary{flex-wrap:wrap;gap:12px 36px;padding:15px 18px;display:flex}.detail-summary>div{align-content:start;gap:4px;display:grid}.detail-summary small{color:var(--muted)}.stack{gap:12px;display:grid}.field{min-width:0;font-size:.9rem;font-weight:640;display:block}.amount-input,.field>input,.field>select,.field>textarea{margin-top:5px;display:block}.field textarea{resize:vertical}.optional{color:var(--muted);margin-left:4px;font-weight:400}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.amount-input{position:relative}.amount-input input{padding-right:30px}.amount-input>span{color:var(--muted);align-items:center;display:grid;position:absolute;inset:0 12px 0 auto}.disclosure{border-top:1px solid var(--line)}.disclosure summary{min-height:44px;color:var(--blue);justify-content:space-between;align-items:center;gap:10px;padding:5px 0;font-weight:650;list-style:none;display:flex}.disclosure summary::-webkit-details-marker{display:none}.disclosure summary>span{align-items:center;gap:7px;display:flex}.disclosure[open]>summary>svg{rotate:180deg}.details-body{gap:12px;padding:4px 0 8px;display:grid}.checkbox{align-items:flex-start;gap:8px;min-height:44px;padding-top:9px;font-size:.9rem;display:flex}.checkbox input{margin-top:2px}.feedback{align-items:center;gap:6px;margin-top:9px;font-size:.9rem;display:flex}.danger,.error,.negative{color:var(--danger)}.success{color:var(--blue)}.form-submit{margin-top:12px}.button-row{flex-wrap:wrap;gap:8px;display:flex}.offer-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}.offer{gap:9px;min-width:0;padding:15px;display:grid}.offer.retained{border-color:#6998c9}.offer-heading{justify-content:space-between;align-items:start;gap:8px;display:flex}.offer-heading .status{flex:none}.offer-meta,.offer-variance{font-size:.85rem}.offer-prices div{justify-content:space-between;gap:8px;padding:3px 0;display:flex}.offer-prices dt{color:var(--muted)}.offer-prices dd{text-align:right}.offer-total{border-top:1px solid var(--line);margin-top:3px;font-weight:720}.capture{background:var(--paper);border-radius:8px;place-items:center;display:grid;overflow:hidden}.capture img{object-fit:contain;max-width:100%;max-height:155px}.external-link{width:fit-content;min-height:44px;color:var(--blue);align-items:center;gap:6px;text-decoration:underline;display:flex}.note{color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere}.order-summary{margin-bottom:9px}.budget-lines>div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;display:flex}.budget-lines small{color:var(--muted);display:block}.budget-lines dd,.category-table td{text-align:right;font-variant-numeric:tabular-nums}.budget-lines dd{font-weight:720}.budget-edit{padding:0 18px}.budget-edit>.disclosure{border-top:0}.budget-categories{margin-top:22px}.category-table{overflow:hidden}.category-table table{border-collapse:collapse;width:100%}.category-table td,.category-table th{padding:9px clamp(6px,2vw,17px)}.category-table th{text-align:left;font-weight:640}.category-table thead{color:var(--blue);background:#e9f3ff}.category-table thead th:not(:first-child){text-align:right}.category-table tbody tr{border-top:1px solid var(--line)}.login-shell{place-items:center;min-height:100dvh;padding:17px;display:grid}.login-panel{width:min(100%,430px);padding:clamp(20px,5vw,33px)}.login-panel .brand-icon{margin-bottom:20px}.login-panel h1{font-size:2.35rem}.login-panel .muted{margin:10px 0 22px}@media (max-width:820px){.shell{display:block}.sidebar{border:0;border-bottom:1px solid var(--line);height:auto;padding:max(9px,env(safe-area-inset-top)) 15px 8px;flex-direction:row;justify-content:space-between;gap:6px;position:static}.brand{padding:0;font-size:.88rem}.brand-icon{width:34px;height:34px}.profile{border:0;gap:4px;margin:0;padding:0}.profile .avatar{display:none}.profile strong{font-size:.8rem}.navigation{z-index:10;background:var(--white);border-top:1px solid var(--line);padding:6px max(10px,env(safe-area-inset-right)) max(6px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0;position:fixed;bottom:0;left:0;right:0}.navigation .nav-add,.navigation a{flex-direction:column;justify-content:center;gap:3px;min-height:49px;padding:3px;font-size:.76rem;display:flex}.navigation .nav-add{background:var(--blue);color:#fff}.content{padding:23px 15px calc(80px + env(safe-area-inset-bottom))}.desktop-add{display:none}}@media (max-width:570px){.page-heading{margin-bottom:15px}.page-heading p:not(.eyebrow){font-size:.9rem}.budget-banner{gap:9px;margin-bottom:15px;padding:12px}.banner-icon{width:36px;height:36px}.banner-link{font-size:.78rem}.filterbar{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.filterbar .search{grid-column:1/-1}.filterbar select{padding-left:6px;padding-right:2px;font-size:16px}.purchase-groups{gap:17px;margin-top:15px}.purchase-row{grid-template-rows:auto auto;grid-template-columns:auto minmax(0,1fr) auto;gap:2px 8px;padding:9px}.purchase-row .category-icon{grid-row:1/3;width:32px;height:32px}.purchase-name{grid-area:1/2;line-height:1.25}.purchase-name strong{font-size:.88rem}.purchase-name small{margin-top:3px;font-size:.76rem}.purchase-row .status{grid-area:2/2;padding:2px 6px;font-size:.68rem}.row-cost{grid-area:1/3/3;font-size:.83rem}.row-arrow{display:none}.offer-grid{gap:7px}.offer{padding:9px;font-size:.85rem}.offer-heading{flex-wrap:wrap}.offer-prices div{gap:0;display:grid}.offer-prices dd{text-align:left}.offer .form-grid{grid-template-columns:minmax(0,1fr)}.offer .button{padding-inline:7px}.form-grid{gap:9px}.category-table{font-size:.83rem}}.detail-toolbar{justify-content:space-between;align-items:center;gap:8px;margin-bottom:15px;display:flex}.detail-toolbar .back{margin:0}.composer{background:linear-gradient(120deg,#dfefff,#f1f8ff);border-color:#bdd9f2}.composer .category-icon{background:#fff}.quick-attachments,.quick-link{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.quick-tools{flex-wrap:wrap;align-items:start;gap:8px;margin-top:8px;display:flex}.quick-tools .button{background:#fff}.quick-tools .photo-button{background:#d4eaff}.quick-details{padding-top:12px}.photo-picker{min-width:0}.photo-button{color:#174c80;cursor:pointer;background:#e2efff;border-color:#bfd9f3;position:relative}.photo-button:hover{background:#d4eaff}.photo-button:focus-within{outline-offset:2px;outline:3px solid #367ccc}.photo-button input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.photo-filename{text-overflow:ellipsis;white-space:nowrap;max-width:14ch;margin-top:4px;display:block;overflow:hidden}.offer .photo-button{width:100%}.sheet{width:min(100% - 32px,560px);max-height:calc(100dvh - 40px);color:var(--ink);background:var(--white);border:1px solid var(--line);border-radius:18px;margin:auto;padding:20px;overflow:auto;box-shadow:0 16px 55px #17355138}.sheet::backdrop{background:#12274480}.sheet-heading{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.sheet-heading h2{font-size:1.3rem}.sheet .button{padding-inline:14px}.purchase-delete>.button{color:var(--danger)}.delete-description{overflow-wrap:anywhere;margin-bottom:10px}.purchase-row[data-category=Cuisine] .category-icon{color:#235aa0;background:#e3efff}.purchase-row[data-category=Buanderie] .category-icon{color:#1d666b;background:#d9f4f3}.purchase-row[data-category=Séjour] .category-icon{color:#914421;background:#ffeadc}.purchase-row[data-category=Bureau] .category-icon{color:#5a4292;background:#eae4fc}.purchase-row[data-category=Chambre] .category-icon{color:#90426a;background:#fce6f1}.purchase-row[data-category="Salle de bain"] .category-icon{color:#246984;background:#e1f5fc}.purchase-row[data-category=Entretien] .category-icon{color:#2f6654;background:#e2f2ec}.purchase-row[data-category=Autre] .category-icon{color:#795315;background:#fff0c6}@media (max-width:570px){.sheet{max-width:none;max-height:calc(100dvh - 28px);padding:15px 15px max(20px,env(safe-area-inset-bottom));border-radius:19px 19px 0 0;margin:auto 0 0}.new-purchase .form-submit,.sheet,.sheet .form-submit{width:100%}.detail-toolbar{margin-bottom:9px}.quick-link .button{padding-inline:9px}}@media (max-width:360px){.quick-attachments{grid-template-columns:1fr}}