:root{--font-display: "Instrument Serif", "Georgia", serif;--font-ui: "Geist", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--mobile-bottom-space: 150px;--bg: oklch(.965 .012 78);--bg-elev: oklch(.985 .008 78);--surface: #ffffff;--surface-2: oklch(.97 .01 78);--border: oklch(.9 .014 75);--border-strong: oklch(.83 .018 72);--text: oklch(.24 .025 60);--text-2: oklch(.42 .022 65);--text-3: oklch(.58 .018 70);--text-4: oklch(.72 .014 72);--accent: oklch(.55 .13 55);--accent-soft: oklch(.93 .04 70);--sage: oklch(.55 .07 145);--terracotta: oklch(.6 .15 35);--warn: oklch(.62 .15 50);--ok: oklch(.55 .1 150);--err: oklch(.55 .16 25);--d-row: 28px;--d-pad: 14px;--d-gap: 12px;--d-radius: 10px;--d-radius-sm: 6px;--fs-3xs: 9.5px;--fs-2xs: 10.5px;--fs-xs: 11px;--fs-sm: 12px;--fs-md: 13px;--fs-base: 13.5px;--fs-lg: 16px;--fs-xl: 20px;--fs-2xl: 24px;--control-h: 36px;--control-h-sm: 28px;--control-fs: var(--fs-md);--control-fs-sm: var(--fs-sm);--sidebar-w: 220px;--panel-w: 400px;--bp-sm: 640px;--bp-md: 900px;--bp-lg: 1180px;--bp-xl: 1440px;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:var(--fs-base);line-height:1.45;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.005em;min-width:320px}#root{height:100%}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;height:100vh;height:100dvh;min-height:100vh;min-height:100dvh;overflow:hidden}.app.has-panel{grid-template-columns:var(--sidebar-w) 1fr var(--panel-w)}.sidebar{background:linear-gradient(210deg,#281c13 50%,color-mix(in srgb,var(--sidebar-season, #281c13) 20%,transparent)),#281c13;color:#fff;--text: #ffffff;--text-2: oklch(1 0 0 / .9);--text-3: oklch(1 0 0 / .62);--text-4: oklch(1 0 0 / .48);--border: oklch(1 0 0 / .16);--border-strong: oklch(1 0 0 / .34);--surface: oklch(1 0 0 / .14);--surface-2: oklch(1 0 0 / .1);border-right:1px solid oklch(1 0 0 / .12);display:flex;flex-direction:column;padding:18px 14px 14px;gap:4px;overflow:hidden}.sidebar-scroll{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:4px;overflow-y:auto;overflow-x:hidden}.brand{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:6px 8px 16px;margin-bottom:4px;border-bottom:1px solid var(--border)}.brand-mark{font-family:var(--font-display);font-size:26px;line-height:1.05;color:var(--text);font-weight:400;letter-spacing:-.01em;white-space:nowrap}.brand-sub{font-size:10.5px;letter-spacing:.04em;color:var(--text-3);text-transform:uppercase;font-family:var(--font-mono)}.nav-group{display:flex;flex-direction:column;gap:1px;margin-top:14px}.nav-group-title{font-size:10px;letter-spacing:.08em;color:var(--text-4);text-transform:uppercase;padding:8px 10px 4px;font-family:var(--font-mono)}.nav-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--d-radius-sm);color:var(--text-2);text-decoration:none;cursor:pointer;font-size:13px;font-weight:450;border:1px solid transparent;-webkit-user-select:none;user-select:none;white-space:nowrap}.nav-item:hover{background:var(--surface-2);color:var(--text)}.nav-item.active{background:var(--surface);color:var(--text);border-color:var(--border);box-shadow:0 1px #00000005}.nav-item .icon{width:14px;height:14px;flex:0 0 auto;opacity:.75}.nav-item.active .icon{opacity:1}.nav-spacer{flex:1}.sidebar-version{padding:8px 10px 10px;text-align:left;font-family:var(--font-mono);font-size:10px;color:var(--text-4);letter-spacing:.02em}.sidebar-foot{flex-shrink:0;display:flex;align-items:center;gap:10px;padding:16px 10px 10px;border-top:1px solid var(--border);margin-top:8px}.avatar{width:28px;height:28px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:500;letter-spacing:.02em}.sidebar-foot .who{font-size:12.5px}.sidebar-foot .role{color:var(--text-3);font-size:11px}.main{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;background:var(--bg)}.topbar{display:flex;align-items:center;gap:12px;padding:12px 22px;border-bottom:1px solid var(--border);background:var(--bg);height:56px;flex:0 0 auto}.topbar h1{font-family:var(--font-display);font-size:22px;font-weight:400;margin:0;letter-spacing:-.01em;white-space:nowrap;flex:0 0 auto}.topbar .spacer{flex:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:var(--control-h);padding:0 14px;border-radius:var(--d-radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:var(--font-ui);font-size:var(--control-fs);line-height:1;cursor:pointer;font-weight:450;transition:background .12s,border-color .12s;white-space:nowrap;flex:0 0 auto}.btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong)}.btn.primary{background:var(--text);color:var(--bg);border-color:var(--text)}.btn.primary:hover:not(:disabled){background:var(--text-2);border-color:var(--text-2)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover:not(:disabled){background:var(--surface-2)}.btn.small{height:var(--control-h-sm);padding:0 10px;font-size:var(--control-fs-sm);gap:5px}.segmented{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--d-radius-sm);padding:2px;gap:1px}.segmented button{border:none;background:transparent;padding:4px 10px;border-radius:4px;font-family:inherit;font-size:12px;color:var(--text-2);cursor:pointer;white-space:nowrap}.segmented button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 1px #0000000a}.segmented.lg{padding:3px}.segmented.lg button{display:inline-flex;align-items:center;gap:6px;height:calc(var(--control-h) - 6px);padding:0 14px;font-size:var(--control-fs);border-radius:6px}.topbar-search{position:relative;flex:1 1 auto;max-width:460px;min-width:180px}.search{display:flex;align-items:center;gap:8px;height:var(--control-h);background:var(--surface);border:1px solid var(--border);border-radius:var(--d-radius-sm);padding:0 11px;width:100%;color:var(--text-3);font-size:13px;transition:border-color .12s,box-shadow .12s}.topbar-search:focus-within .search{border-color:var(--accent);box-shadow:0 0 0 3px oklch(from var(--accent) l c h / .15)}.search input{background:transparent;border:none;outline:none;font:inherit;color:var(--text);width:100%}.search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;max-height:min(70vh,460px);overflow-y:auto;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--d-radius);box-shadow:0 12px 32px -8px #54443838;z-index:40;padding:4px}.search-empty{padding:18px 12px;text-align:center;color:var(--text-3);font-size:12.5px}.search-group+.search-group{border-top:1px solid var(--border);margin-top:4px;padding-top:4px}.search-group-title{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-4);padding:6px 8px 4px}.search-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:7px 8px;border:none;background:transparent;border-radius:var(--d-radius-sm);cursor:pointer;font:inherit}.search-item:hover{background:var(--surface-2)}.search-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.search-item-icon{color:var(--text-3);display:inline-flex;flex:0 0 auto}.search-item-main{font-size:13px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-item-meta{margin-left:auto;font-size:11.5px;color:var(--text-3);white-space:nowrap;flex:0 0 auto;padding-left:10px}.cal{flex:1;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth;padding:0 22px 60px}.cal-house-bar{position:sticky;top:0;z-index:12;background:var(--bg);padding:10px 0 8px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;align-items:flex-start;gap:8px}.cal-filter-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;width:100%}.cal-filter-label{flex:0 0 auto;min-width:58px;color:var(--text-3);font-family:var(--font-mono);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase}.cal-shift-hint{padding-left:68px}.house-chips{display:flex;gap:6px;flex-wrap:wrap}@media(max-width:1180px){.cal-house-bar{flex-wrap:wrap}.cal-shift-hint{display:none}}.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px 3px 6px;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-size:11.5px;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;flex:0 0 auto}.chip .dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}.chip.off{opacity:.45;text-decoration:line-through}.chip:hover{border-color:var(--border-strong)}.cal-status-filter{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.cal-status-tag{cursor:pointer;-webkit-user-select:none;user-select:none;transition:opacity .12s}.cal-status-tag:hover{filter:brightness(.97)}.cal-status-tag.off{opacity:.4;text-decoration:line-through}.month{padding:28px 0 12px}.month-header{display:flex;align-items:baseline;gap:12px;padding:0 0 14px}.month-title{font-family:var(--font-display);font-size:36px;font-weight:400;margin:0;text-transform:capitalize;letter-spacing:-.015em}.month-rule{flex:1;height:1px;background:var(--border)}.month-meta{font-family:var(--font-mono);font-size:10.5px;color:var(--text-3);letter-spacing:.04em;text-transform:uppercase}.month-grid{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--d-radius);overflow:hidden}.weekday-row{display:grid;grid-template-columns:repeat(7,1fr)}.week-row{display:grid;grid-template-columns:repeat(7,1fr);position:relative}.week-row:last-child .day{border-bottom:none}.weekday{font-size:10px;font-family:var(--font-mono);color:var(--text-3);letter-spacing:.06em;text-transform:uppercase;padding:8px 10px;background:var(--surface-2);border-bottom:1px solid var(--border);border-right:1px solid var(--border)}.weekday:last-child{border-right:none}.day{min-height:100px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:6px 6px 4px;position:relative;display:flex;flex-direction:column;gap:2px;background:var(--surface);overflow:hidden}.day:last-child{border-right:none}.day.out{background:var(--surface-2);color:var(--text-4)}.day.weekend:not(.out):not(.today){background:oklch(from var(--surface) calc(l - .005) c h)}.day-num{font-size:11.5px;font-variant-numeric:tabular-nums;color:var(--text-2);padding:2px 4px;align-self:flex-start;border-radius:4px;line-height:1}.day.out .day-num{color:var(--text-4)}.day.today{box-shadow:inset 0 0 0 2px var(--accent);background:oklch(from var(--accent) l c h / .06);z-index:1}.day.today .day-num{background:var(--accent);color:#fff;font-weight:500}.day-add{position:absolute;top:4px;right:4px;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:6px;background:var(--accent);color:#fff;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .12s;z-index:2}.day:hover .day-add,.day-add:focus-visible{opacity:1;pointer-events:auto}@media(hover:none){.day.day-active .day-add{opacity:1;pointer-events:auto}}.day-add:hover{filter:brightness(1.08)}.bars-layer{position:absolute;left:0;right:0;top:26px;bottom:4px;pointer-events:none}.bar{position:absolute;height:var(--d-row);padding:0 8px;display:flex;align-items:center;font-size:11.5px;font-weight:500;color:#fff;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;transition:filter .12s,transform .12s;letter-spacing:-.005em;pointer-events:auto;border-radius:3px;line-height:1}.bar:hover{filter:brightness(1.08)}.bar.start{border-top-left-radius:5px;border-bottom-left-radius:5px}.bar.end{border-top-right-radius:5px;border-bottom-right-radius:5px}.bar:not(.start){border-top-left-radius:0;border-bottom-left-radius:0}.bar:not(.end){border-top-right-radius:0;border-bottom-right-radius:0}.bar.option{background-image:repeating-linear-gradient(-45deg,rgba(255,255,255,.15) 0 3px,transparent 3px 7px);box-shadow:inset 0 0 0 1.5px #0000002e}.bar.blocked{background:var(--surface-2)!important;color:var(--text-2)!important;background-image:repeating-linear-gradient(45deg,var(--text-4) 0 1px,transparent 1px 5px)!important;border:1px solid var(--border-strong);font-weight:500}.bar.active{outline:2px solid var(--text);outline-offset:1px;z-index:5}.bar-src{font-family:var(--font-mono);font-size:9px;letter-spacing:.04em;text-transform:uppercase;margin-left:6px;opacity:.7;font-weight:400}.bar-house{font-family:var(--font-mono);font-size:9px;letter-spacing:.04em;text-transform:uppercase;margin-left:auto;padding-left:8px;opacity:.9;font-weight:400;flex:0 0 auto}.bar-house~.bar-pay{margin-left:6px}.bar-multi{font-family:var(--font-mono);font-size:9px;font-weight:500;margin-left:5px;padding:0 4px;border-radius:6px;background:#ffffff47;flex:0 0 auto}.bar-pay{display:inline-block;width:6px;height:6px;border-radius:50%;margin-left:auto;background:#ffffffb3}.bar-pay.partial{background:#ffffff59;box-shadow:inset 0 0 0 1px #fff9}.bar-pay.unpaid{background:transparent;box-shadow:inset 0 0 0 1px #ffffff8c}.bar-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.tag.bar-status{flex:0 0 auto;margin-left:6px;box-sizing:border-box;width:10px;height:10px;min-width:0;padding:0;gap:0;border:none;box-shadow:0 0 0 1px #ffffff80}.panel{background:var(--bg-elev);border-left:1px solid var(--border);overflow-y:auto;display:flex;flex-direction:column}.panel-head{padding:46px 20px 14px;border-bottom:1px solid var(--border);background:var(--bg-elev);position:sticky;top:0;z-index:2}.panel-head-actions{position:absolute;top:12px;right:12px;display:flex;align-items:center;gap:8px;z-index:3}.panel-close,.panel-share{position:static;width:24px;height:24px;border:none;background:transparent;color:var(--text-3);cursor:pointer;border-radius:4px;display:grid;place-items:center}.panel-close:hover,.panel-share:hover{background:var(--surface-2);color:var(--text)}.panel-share.is-copied{color:var(--ok)}.panel-share.is-error{color:var(--danger, #c0392b)}.panel-share:disabled{opacity:.5;cursor:default}.client-suggest{list-style:none;margin:0;padding:0;max-height:220px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-sm, 6px);background:var(--surface)}.client-suggest-empty{padding:10px 12px;color:var(--text-3);font-size:12.5px}.client-suggest-item{display:flex;flex-direction:column;gap:1px;width:100%;text-align:left;padding:7px 12px;border:none;background:transparent;cursor:pointer;font-family:inherit;color:var(--text);border-bottom:1px solid var(--border)}.client-suggest li:last-child .client-suggest-item{border-bottom:none}.client-suggest-item:hover:not(:disabled){background:var(--surface-2)}.client-suggest-item:disabled{opacity:.5;cursor:default}.client-suggest-item .name{font-size:13px}.client-suggest-item .muted{font-size:11.5px}.client-suggest-item.is-current{background:color-mix(in oklch,var(--accent) 12%,transparent)}.client-suggest-item.is-current .name{font-weight:550}.pending-files{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.pending-files li{display:flex;align-items:center;gap:8px;padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius-sm, 6px);background:var(--surface);font-size:12.5px}.pending-files li .name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pending-files li svg{flex:0 0 auto;opacity:.7}.pagination{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:12px;padding:4px 2px;font-size:12.5px}.pagination__count{color:var(--text-3)}.pagination__spacer{flex:1}.pagination__pager{display:flex;align-items:center;gap:8px}.pagination__page{color:var(--text-2);white-space:nowrap;font-variant-numeric:tabular-nums}.pagination__size{display:flex;align-items:center;gap:6px;color:var(--text-3);white-space:nowrap}.pagination__size select{width:auto;padding:4px 8px;font-size:12.5px}@media(max-width:640px){.pagination{gap:10px}.pagination__spacer{display:none}.pagination__count{width:100%}}.tag{display:inline-flex;align-items:center;gap:5px;padding:1px 6px;border-radius:999px;font-size:10px;font-family:var(--font-mono);letter-spacing:.03em;text-transform:uppercase;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border);white-space:nowrap}.tag.option{background:#f9eed1;color:#653e00;color:oklch(.4 .1 70);border-color:#e3caa2}.tag.option_bloquee{background:#fed899;color:#593300;color:oklch(.36 .11 65);border-color:#e1ad63}.tag.confirmed{background:#d9f3dd;color:#1d4e2b;border-color:#adcfad}.tag.en_cours{background:#d6efff;background:oklch(.94 .04 235);color:#00537c;color:oklch(.42 .1 240);border-color:#afd4ea}.tag.termine{background:var(--surface-2);color:var(--text-2);border-color:var(--border-strong)}.tag.annule{background:#ffe7e4;background:oklch(.95 .04 25);color:#a43b38;border-color:#f6c2bd}.tag.blocked{background:var(--surface-2);color:var(--text-3)}.tag.attente_acompte{background:#ffeada;background:oklch(.95 .05 60);color:#8b3f00;color:oklch(.46 .13 50);border-color:#f7caa6}.tag.attente_solde{background:#d6efff;background:oklch(.94 .04 235);color:#00537c;color:oklch(.42 .1 240);border-color:#afd4ea}.tag.solde{background:#d9f3dd;color:#1d4e2b;border-color:#adcfad}.tag .dot{width:6px;height:6px;border-radius:50%}.panel-house{font-family:var(--font-display);font-size:24px;margin:8px 0 4px;line-height:1.2}.panel-ref{font-family:var(--font-mono);font-size:18px;letter-spacing:.02em;margin:0 0 8px}.panel-head .row{margin:0 0 8px}.panel-guest{font-size:14px;color:var(--text-2);margin:0}.panel-dates{padding:0 0 8px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin:14px 20px 16px}.panel-date{display:flex;flex-direction:column;gap:2px}.panel-date-label{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);font-family:var(--font-mono)}.panel-date-value{font-size:14px;font-weight:500}.panel-date-time{font-size:11px;color:var(--text-3)}.panel-arrow{color:var(--text-4);font-size:16px}.panel-section{padding:16px 20px;border-top:1px solid var(--border)}.panel-section.offre-section{border-top:none}.panel-section-title{font-size:10.5px;letter-spacing:.06em;color:var(--text-3);text-transform:uppercase;margin:0 0 10px;font-family:var(--font-mono);font-weight:600;display:flex;align-items:center;justify-content:space-between}.panel-section-title .add{font-size:10px;cursor:pointer;text-transform:none;letter-spacing:0;color:var(--accent)}.kv{display:grid;grid-template-columns:100px 1fr;gap:6px 16px;font-size:13px}.kv dt{color:var(--text-3)}.kv dd{margin:0;color:var(--text)}.checklist{display:flex;flex-direction:column;gap:6px}.check{display:flex;align-items:center;gap:9px;padding:7px 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--d-radius-sm);cursor:pointer;font-size:13px}.check input{margin:0;accent-color:var(--accent)}.check.done{color:var(--text-3);text-decoration:line-through;background:var(--surface-2)}.attachments{display:flex;flex-direction:column;gap:4px}.attach{display:flex;align-items:center;gap:10px;padding:7px 10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--d-radius-sm);cursor:pointer;font-size:12.5px}.attach .ext{font-family:var(--font-mono);font-size:9.5px;background:var(--surface-2);color:var(--text-3);padding:1px 4px;border-radius:3px;letter-spacing:.04em}.attach .size{margin-left:auto;color:var(--text-3);font-size:11px;font-family:var(--font-mono)}.payment-bar{height:6px;background:var(--surface-2);border-radius:4px;overflow:hidden;margin-bottom:8px}.payment-bar-fill{height:100%;background:var(--ok)}.payment-row{display:flex;justify-content:space-between;font-size:12px}.payment-row+.payment-row{margin-top:4px}.note-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--d-radius-sm);padding:10px 12px;font-size:13px;line-height:1.5;white-space:pre-wrap}.note-highlight{background:#f9e3a7;padding:0 3px;border-radius:2px}.view{flex:1;overflow-y:auto;padding:22px 28px 60px;background-color:var(--bg);background-image:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='140'%20height='140'%3E%3Cfilter%20id='n'%3E%3CfeTurbulence%20type='fractalNoise'%20baseFrequency='0.85'%20numOctaves='2'%20stitchTiles='stitch'/%3E%3CfeColorMatrix%20type='saturate'%20values='0'/%3E%3C/filter%3E%3Crect%20width='100%25'%20height='100%25'%20filter='url(%23n)'%20opacity='0.3'/%3E%3C/svg%3E");background-size:140px 140px}.view h2{font-family:var(--font-display);font-size:28px;font-weight:400;margin:0 0 4px;letter-spacing:-.01em}.view .sub{color:var(--text-3);margin-bottom:22px;font-size:13px}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.house-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--d-radius);overflow:hidden;display:flex;flex-direction:column}.house-card-img{height:130px;background:repeating-linear-gradient(45deg,#e6dcd0,#e6dcd0 8px,#f0e6da 8px,#f0e6da 16px);position:relative;display:grid;place-items:center;font-family:var(--font-mono);font-size:10.5px;color:var(--text-3);letter-spacing:.04em}.house-card-img:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(0deg,oklch(0 0 0 / .06),transparent 50%)}.house-card-bar{height:4px}.house-card-body{padding:14px 16px 16px}.house-card-name{font-family:var(--font-display);font-size:19px;margin:0 0 2px;font-weight:400}.house-card-stats{display:flex;gap:14px;margin-bottom:12px}.house-card-stat{display:flex;flex-direction:column;gap:2px}.house-card-stat .v{font-size:18px;font-family:var(--font-display)}.house-card-stat .l{font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;font-family:var(--font-mono)}.house-card-eq{display:flex;flex-wrap:wrap;gap:4px}.house-card-picto{position:absolute;top:0;left:14px;z-index:2;width:52px;height:64px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:6px;box-shadow:0 2px 6px #00000047}.house-card-img .house-card-picto img{position:static;inset:auto;width:40px;height:40px;object-fit:contain}.house-asset-edit{height:90px;border-radius:var(--d-radius-sm);display:grid;place-items:center;overflow:hidden}.house-asset-edit img{max-width:80%;max-height:70%;object-fit:contain}.eq-pill{font-size:11px;padding:2px 7px;border-radius:4px;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border);white-space:nowrap}.pricing{background:var(--surface);border:1px solid var(--border);border-radius:var(--d-radius);overflow:hidden;margin-bottom:22px}.pricing-head{display:flex;align-items:center;padding:14px 16px;border-bottom:1px solid var(--border);gap:14px}.pricing-house-name{font-family:var(--font-display);font-size:20px;margin:0;white-space:nowrap}.chart-block>div:last-child{padding:18px}.pricing-dot{width:10px;height:10px;border-radius:50%}.pricing-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.pricing-table{width:100%;border-collapse:collapse;min-width:640px}.pricing-table th,.pricing-table td{padding:10px 14px;text-align:right;font-variant-numeric:tabular-nums;font-size:13px;border-bottom:1px solid var(--border);white-space:nowrap}.pricing-table th:first-child,.pricing-table td:first-child{text-align:left;font-weight:500}.pricing-table thead th{background:var(--surface-2);font-size:10.5px;letter-spacing:.05em;color:var(--text-3);text-transform:uppercase;font-family:var(--font-mono);font-weight:500}.pricing-table tbody tr:last-child td{border-bottom:none}.pricing-table tbody tr:hover td{background:var(--surface-2)}.season-cell{display:flex;align-items:center;gap:8px;white-space:nowrap}.season-cell .sw{width:14px;height:14px;border-radius:3px;flex:0 0 auto}.season-cell .when{font-family:var(--font-mono);font-size:10px;color:var(--text-3);margin-left:6px}.chan-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.chan-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--d-radius);padding:18px}.chan-card h3{font-family:var(--font-display);font-size:22px;margin:0 0 4px;font-weight:400}.chan-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);white-space:nowrap}.chan-row:last-child{border-bottom:none}.chan-pill{font-family:var(--font-mono);font-size:10px;letter-spacing:.04em;text-transform:uppercase;padding:2px 7px;border-radius:3px;background:#d0f7d6;color:#235430;white-space:nowrap;flex:0 0 auto}.chan-pill.warn{background:#ffe8c2;background:oklch(.94 .08 80);color:#733e00;color:oklch(.42 .1 60)}.chan-pill.err{background:#ffe3de;background:oklch(.94 .08 30);color:#86281d}.markup-input{display:inline-flex;align-items:center;gap:4px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--d-radius-sm);padding:3px 6px;font-family:var(--font-mono);font-size:11.5px}.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--d-radius);padding:14px 16px}.tile-l{font-size:10.5px;letter-spacing:.06em;color:var(--text-3);text-transform:uppercase;font-family:var(--font-mono)}.tile-v{font-family:var(--font-display);font-size:30px;line-height:1.1;margin-top:6px}.tile-d{font-size:11.5px;color:var(--text-3);margin-top:4px}.tile-d.up{color:var(--ok)}.tile-d.down{color:var(--err)}.cal::-webkit-scrollbar,.view::-webkit-scrollbar,.panel::-webkit-scrollbar{width:10px}.cal::-webkit-scrollbar-thumb,.view::-webkit-scrollbar-thumb,.panel::-webkit-scrollbar-thumb{background:var(--border);border:2px solid var(--bg);border-radius:5px}.cal::-webkit-scrollbar-thumb:hover,.view::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}button:focus-visible,.nav-item:focus-visible,.chip:focus-visible,.bar:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.muted{color:var(--text-3)}.mono{font-family:var(--font-mono)}.row{display:flex;align-items:center;gap:8px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c140c66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;display:grid;place-items:center;animation:fadeIn .15s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.modal{background:var(--bg);border:1px solid var(--border);border-radius:14px;width:760px;max-height:88vh;overflow:hidden;box-shadow:0 20px 60px #0000002e,0 4px 12px #00000014;display:flex;flex-direction:column;animation:slideUp .2s cubic-bezier(.2,.7,.2,1)}.modal-head{display:flex;align-items:baseline;gap:14px;padding:20px 24px 16px;border-bottom:1px solid var(--border)}.modal-head h2{font-family:var(--font-display);font-size:28px;margin:0;font-weight:400;letter-spacing:-.01em}.modal-head .step{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.06em;color:var(--text-3);text-transform:uppercase}.modal-body{overflow-y:auto;padding:22px 24px;display:grid;grid-template-columns:1fr 1fr;gap:22px 28px}.modal-foot{display:flex;align-items:center;gap:12px;padding:14px 22px;border-top:1px solid var(--border);background:var(--bg-elev)}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1 / -1}.modal-body>.field-hint{grid-column:1 / -1}.field-label{font-size:10.5px;letter-spacing:.06em;color:var(--text-3);text-transform:uppercase;font-family:var(--font-mono)}.field-hint{font-size:11px;color:var(--text-3);font-family:var(--font-mono);letter-spacing:.02em}.input{background:var(--surface);border:1px solid var(--border);border-radius:var(--d-radius-sm);padding:8px 11px;font:inherit;font-size:13.5px;color:var(--text);outline:none;transition:border-color .12s,box-shadow .12s;width:100%}input.input,select.input{height:var(--control-h);padding-top:0;padding-bottom:0}select.input{cursor:pointer}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px oklch(from var(--accent) l c h / .15)}textarea.input{resize:vertical;min-height:70px;font-family:inherit}.input-row{display:flex;gap:8px}.input-row .input{flex:1}.house-picker{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.house-pick{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px 8px;background:var(--surface);border:1px solid var(--border);border-radius:var(--d-radius-sm);cursor:pointer;text-align:center;position:relative;transition:border-color .1s,background .1s}.house-pick:hover{border-color:var(--border-strong)}.house-pick.on{border-color:var(--text);background:var(--surface-2)}.house-pick .swatch{width:34px;height:34px;border-radius:50%;margin-bottom:3px;display:grid;place-items:center;overflow:hidden}.house-pick .swatch img{width:80%;height:80%;object-fit:contain}.house-pick .name{font-size:11.5px;line-height:1.2;font-weight:500}.house-pick .cap{font-family:var(--font-mono);font-size:9.5px;color:var(--text-3);letter-spacing:.04em;text-transform:uppercase}.status-segmented{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--d-radius-sm);padding:3px}@media(min-width:900px){.modal-body>.field-statut{grid-column:1 / -1}.field-statut .status-segmented{grid-template-columns:repeat(4,1fr)}}.status-segmented button{border:none;background:transparent;padding:7px 10px;border-radius:5px;font-family:inherit;font-size:12px;color:var(--text-2);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px}.status-segmented button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #0000000f}.price-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--d-radius);padding:14px 16px;display:flex;flex-direction:column;gap:10px}.price-card-top{display:flex;align-items:baseline;justify-content:space-between}.price-amount{font-family:var(--font-display);font-size:32px;line-height:1;letter-spacing:-.015em}.price-meta{font-family:var(--font-mono);font-size:10.5px;color:var(--text-3);letter-spacing:.05em;text-transform:uppercase}.price-breakdown{display:flex;flex-direction:column;gap:4px;font-size:12.5px;border-top:1px solid var(--border);padding-top:10px}.price-row{display:flex;justify-content:space-between}.price-discount{display:flex;align-items:center;gap:8px;margin:10px 0 6px;flex-wrap:wrap}.price-discount .lbl{font-size:12px;color:var(--text-3)}.discount-editor{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.supp-list{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;column-gap:8px;row-gap:4px;align-items:center}.supp-row{display:contents}.supp-label{font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.supp-amount{font-size:13px;color:var(--text-2);font-variant-numeric:tabular-nums;justify-self:end}.supp-cat-tag{justify-self:start;font-size:9.5px}.supp-namewrap{display:flex;flex-direction:column;min-width:0;gap:1px}.supp-desc{font-size:11px;color:var(--text-3);line-height:1.3;white-space:normal}.supp-vat{margin-top:10px}.supp-vat-title{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);font-family:var(--font-mono);margin-bottom:6px}.supp-vat-row{display:grid;grid-template-columns:1fr auto auto auto;gap:10px;align-items:baseline;font-size:12.5px;padding:2px 0;font-variant-numeric:tabular-nums}.supp-vat-row>span:not(.supp-vat-cat),.supp-vat-row>strong{text-align:right;min-width:62px}.supp-vat-cat{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.supp-vat-total{border-top:1px dotted var(--border);margin-top:6px;padding-top:8px}.supp-vat-total>span:first-child,.line-net>span:first-child{text-align:left}.price-row .lbl{color:var(--text-3)}.line-list{display:flex;flex-direction:column;gap:8px}.line-row{border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:var(--surface);display:flex;flex-direction:column;gap:6px}.line-main{display:flex;align-items:center;gap:8px}.line-main .input{flex:1;min-width:0;height:var(--control-h-sm)}.line-edit{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.line-total{margin-left:auto;font-variant-numeric:tabular-nums;font-weight:600;min-width:62px;text-align:right}.line-vat{font-size:11.5px}.line-add{border:1px dashed var(--border-strong, var(--border));border-radius:8px;padding:8px 10px;background:var(--surface-2)}.line-add .input{width:100%}.takeover-btn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:8px}.offre-block{padding-top:12px;margin-top:12px;border-top:1px solid var(--border)}.offre-block:first-of-type{padding-top:0;margin-top:0;border-top:none}.panel-sublabel,.offre-sub{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);font-family:var(--font-mono);font-weight:600}.offre-sub{margin:0 0 8px}.offre-total{margin-top:12px;padding-top:10px;border-top:1px solid var(--border-strong, var(--border))}.offre-total strong{font-size:15px}.panel-section .panel-dates{margin:8px 0 4px}.panel-section-title.panel-heading-lg{font-family:var(--font-ui);font-size:var(--fs-lg);color:var(--text);text-transform:none;letter-spacing:normal;font-weight:600;margin-bottom:12px;align-items:center}.panel-section-title.panel-heading-lg>span{display:inline-flex;align-items:center;gap:8px}.panel-actions{display:flex;gap:8px;margin-top:12px}.panel-actions>*{flex:1 1 0;min-width:0;justify-content:center}.panel-actions--stack{flex-direction:column}.panel-actions--stack>*{flex:0 0 auto}.line-net{margin-top:12px;padding-top:10px;border-top:1px solid var(--border-strong, var(--border))}.line-net strong{font-size:15px}.toggle-row{display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--d-radius-sm);cursor:pointer}.toggle-row input{margin:0;accent-color:var(--accent)}.toggle-row .text{display:flex;flex-direction:column;gap:1px}.toggle-row .text .l{font-size:13px;font-weight:450}.toggle-row .text .s{font-size:11px;color:var(--text-3)}.dup-warn{display:flex;align-items:center;gap:8px;padding:8px 11px;background:#ffebd5;background:oklch(.95 .06 70);border:1px solid oklch(.85 .08 65);border-radius:var(--d-radius-sm);font-size:12px;color:#5f2e00;color:oklch(.36 .1 55)}.login-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:radial-gradient(120% 80% at 50% -10%,var(--accent-soft),transparent 60%),var(--bg);padding:40px 20px}.login-card{width:360px;max-width:100%;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:28px 28px 26px;box-shadow:0 20px 60px #00000014,0 2px 8px #0000000a;display:flex;flex-direction:column;gap:14px}.login-brand{display:flex;flex-direction:column;gap:3px;padding-bottom:16px;margin-bottom:2px;border-bottom:1px solid var(--border)}.login-mark{font-family:var(--font-display);font-size:26px;line-height:1.05;letter-spacing:-.01em}.login-sub{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.04em;color:var(--text-3);text-transform:uppercase}.login-title{font-family:var(--font-display);font-size:24px;font-weight:400;margin:0;letter-spacing:-.01em}.login-hint{margin:-8px 0 4px;color:var(--text-3);font-size:12.5px}.login-error{background:#ffe8e6;background:oklch(.95 .05 25);border:1px solid oklch(.85 .08 25);color:#8d1a1e;border-radius:var(--d-radius-sm);padding:8px 11px;font-size:12.5px}.login-submit{justify-content:center;padding:9px 12px;font-size:13.5px;margin-top:4px}.login-foot{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.04em;color:var(--text-4);text-transform:uppercase}.sidebar-foot .who-block{display:flex;flex-direction:column;min-width:0}.logout-btn{margin-left:auto;border:1px solid transparent;background:transparent;color:var(--text-3);cursor:pointer;border-radius:4px;width:26px;height:26px;display:grid;place-items:center;flex:0 0 auto}.logout-btn:hover{background:var(--surface-2);color:var(--text);border-color:var(--border)}.users-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--d-radius);overflow:auto hidden}.users-row{display:grid;grid-template-columns:minmax(150px,1.4fr) minmax(170px,1.6fr) 116px 100px 84px;column-gap:14px;align-items:center;padding:12px 18px;border-bottom:1px solid var(--border);font-size:13px}.users-row:last-child{border-bottom:none}.users-row.head{background:var(--surface-2);font-family:var(--font-mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}.user-identity{display:flex;align-items:center;gap:10px;min-width:0}.user-avatar{width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:11px;font-weight:500;flex:0 0 auto}.user-name{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-badge{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.03em;text-transform:uppercase;padding:2px 8px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--text-2)}.role-badge.admin{background:#ffe6d5;background:oklch(.94 .05 55);color:#773a00;color:oklch(.42 .12 55);border-color:#f3c2a3}.state-dot{display:inline-flex;align-items:center;gap:6px;color:var(--text-3);font-size:12px}.state-dot .d{width:7px;height:7px;border-radius:50%;background:var(--ok)}.state-dot.off .d{background:var(--text-4)}.users-actions{display:flex;gap:4px;justify-content:flex-end}.res-table{overflow-x:auto}.res-row{grid-template-columns:118px 100px minmax(120px,1fr) 138px 104px 68px 148px;column-gap:18px}.res-row .res-amount{text-align:right}.promo-table{overflow-x:auto}.promo-table .promo-trow{grid-template-columns:minmax(110px,1fr) minmax(150px,1.6fr) 188px 92px 78px 118px 76px;column-gap:16px}.icon-btn{border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;border-radius:var(--d-radius-sm);width:28px;height:28px;display:grid;place-items:center}.icon-btn:hover:not(:disabled){background:var(--surface-2);border-color:var(--border-strong);color:var(--text)}.icon-btn.danger:hover:not(:disabled){color:var(--err);border-color:#f8a49d}.icon-btn:disabled{opacity:.45;cursor:not-allowed}.gen-pw{font-family:var(--font-mono);font-size:11px;cursor:pointer;color:var(--accent);background:none;border:none;padding:0;text-align:left}.notif{position:relative;flex:0 0 auto}.notif-btn{position:relative}.notif-badge{position:absolute;top:-2px;right:-2px;min-width:15px;height:15px;padding:0 3px;border-radius:999px;background:var(--err);color:#fff;font-size:9.5px;font-weight:600;line-height:15px;text-align:center;font-family:var(--font-mono)}.notif-panel{position:absolute;top:calc(100% + 8px);right:0;width:340px;max-width:calc(100vw - 24px);max-height:min(70vh,520px);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--d-radius);box-shadow:0 12px 32px -8px #54443838;z-index:40;display:flex;flex-direction:column;overflow:hidden}.notif-panel-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border);font-weight:500;font-size:13px}.notif-list{overflow-y:auto}.notif-close{display:none;border:none;background:transparent;color:var(--text-3);cursor:pointer;padding:4px;margin:-4px -4px -4px 8px;border-radius:4px}.notif-close:hover{background:var(--surface-2);color:var(--text)}@media(max-width:640px){.notif-panel{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;max-width:none;max-height:none;height:100dvh;border:none;border-radius:0;z-index:80;padding-top:env(safe-area-inset-top)}.notif-panel-head{padding:16px;font-size:15px}.notif-close{display:inline-flex}.notif-list{padding-bottom:var(--mobile-bottom-space)}}.notif-empty{padding:24px 16px;text-align:center;color:var(--text-3);font-size:12.5px}.notif-item{display:flex;gap:10px;width:100%;text-align:left;padding:11px 14px;border:none;border-bottom:1px solid var(--border);background:transparent;cursor:pointer;font:inherit}.notif-item:last-child{border-bottom:none}.notif-item:hover{background:var(--surface-2)}.notif-kind{flex:0 0 auto;align-self:flex-start;margin-top:1px;font-family:var(--font-mono);font-size:9px;letter-spacing:.04em;text-transform:uppercase;padding:2px 6px;border-radius:999px;background:var(--surface-2);color:var(--text-3);border:1px solid var(--border)}.notif-kind.departure{background:#ffe7e2;background:oklch(.95 .05 30);color:#8f3126;border-color:#f8bdb3}.notif-kind.arrival{background:#d5f5da;color:#154f27;border-color:#a9d0b0}.notif-kind.option{background:#fbeec9;color:#694500;color:oklch(.42 .1 75);border-color:#e0cba1}.notif-kind.balance{background:#ffeadc;background:oklch(.95 .04 55);color:#834100;color:oklch(.45 .12 55);border-color:#ecc5a7}.notif-body{display:flex;flex-direction:column;gap:2px;min-width:0}.notif-title{font-size:12.5px;color:var(--text);font-weight:450;line-height:1.3}.notif-detail{font-size:11.5px;color:var(--text-3)}.notif-item.warn .notif-title{color:var(--text)}.topbar-burger,.nav-scrim{display:none}@media(min-width:1600px){:root{--sidebar-w: 240px;--panel-w: 420px}}@media(max-width:1380px){.app.has-panel{grid-template-columns:var(--sidebar-w) 1fr}.panel{position:fixed;top:0;right:0;bottom:0;width:min(var(--panel-w),100vw);z-index:50;box-shadow:-12px 0 40px -12px #54443847}}@media(max-width:900px){.app,.app.has-panel{grid-template-columns:1fr}.sidebar{position:fixed;top:0;left:0;bottom:0;width:264px;z-index:60;transform:translate(-100%);transition:transform .22s ease;box-shadow:12px 0 40px -12px #54443847;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:calc(14px + env(safe-area-inset-bottom))}.sidebar-scroll{flex:0 0 auto;overflow:visible}.app.nav-open .sidebar{transform:none}.app.nav-open .nav-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:#362c2452}.topbar-burger{display:inline-flex;padding:6px}.topbar{padding:10px 14px;gap:2px}.topbar-search{display:none}.cal{overflow-x:hidden;padding:0 14px 48px}.month{min-width:0}.cal-house-bar{flex-wrap:wrap}.view{padding-left:14px;padding-right:14px}.chan-grid,.modal-body{grid-template-columns:1fr!important}.tiles{grid-template-columns:repeat(2,1fr)}.house-picker{grid-template-columns:repeat(3,1fr)}.modal-body .input{width:100%;min-width:0;box-sizing:border-box}.modal-body input[type=date].input{max-width:100%}}@media(max-width:640px){html,body{font-size:13px}.topbar{flex-wrap:nowrap;height:56px}.topbar h1{font-size:18px;flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.btn-label-lg{display:none}.btn.primary .btn-label-sm{display:inline}.res-io{order:99;width:100%;justify-content:flex-end}.users-table{overflow:visible}.res-table{overflow-x:visible}.res-row .res-amount{text-align:left}.users-row.head{display:none}.users-row{min-width:0;grid-template-columns:1fr!important;gap:4px;padding:12px 14px;align-items:start}.users-row>*{min-width:0;max-width:100%;overflow-wrap:anywhere;white-space:normal!important}.users-actions{justify-content:flex-start}.support-row{grid-template-columns:1fr!important;gap:4px;padding:12px 14px}.support-head{display:none}.support-item>*{white-space:normal;overflow:visible;text-overflow:clip}.tiles{grid-template-columns:1fr 1fr;gap:8px}.modal{width:calc(100vw - 24px)!important;max-width:calc(100vw - 24px)}.modal-overlay{padding:12px}.panel{width:100vw}.view{padding:14px 12px var(--mobile-bottom-space)}.cal{padding:0 8px var(--mobile-bottom-space);overflow-x:hidden}.day{padding:2px}.day-num{font-size:11px}.bar{font-size:9px;padding:0 3px}.bar-src,.bar-multi,.bar-house{display:none}.month-title{font-size:22px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:16px}.card-head{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border)}.card-title{font-family:var(--font-display);font-size:18px;line-height:1.2;margin:0}.card-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.card-body{padding:18px}.card-head-toggle{cursor:pointer;-webkit-user-select:none;user-select:none}.card-head-toggle .card-chevron{margin-left:auto;display:inline-flex;color:var(--text-3)}.card-head-toggle .card-actions{margin-left:auto}.card-head-toggle .card-actions~.card-chevron{margin-left:4px}@media(max-width:640px){.card-head{padding:12px 14px}.card-body{padding:14px}}.num-input{position:relative;display:inline-flex}.num-input--block{display:flex;width:100%}.num-input--block .num-input-field{width:100%}.num-input-field{text-align:right;border:1px solid var(--border);border-radius:var(--d-radius-sm);height:var(--control-h);box-sizing:border-box;padding:0 26px 0 10px;font:inherit;font-size:13.5px;background:var(--surface);color:var(--text);-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.num-input-field::-webkit-outer-spin-button,.num-input-field::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.num-input-field:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px oklch(from var(--accent) l c h / .15)}.num-input-steppers{position:absolute;right:1px;top:1px;bottom:1px;display:flex;flex-direction:column;width:19px}.num-input-steppers button{flex:1;min-height:0;border:none;border-left:1px solid var(--border);background:var(--surface-2);color:var(--text-3);display:grid;place-items:center;cursor:pointer;padding:0}.num-input-steppers button:first-child{border-top-right-radius:3px;border-bottom:1px solid var(--border)}.num-input-steppers button:last-child{border-bottom-right-radius:3px}.num-input-steppers button:hover:not(:disabled){background:var(--surface);color:var(--text)}.num-input-steppers button:disabled{opacity:.35;cursor:default}.num-input-steppers svg{width:11px;height:11px}.topbar-icons{display:inline-flex;align-items:center;gap:2px}.season-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.season-row-label{display:inline-flex;align-items:center;gap:8px;min-width:170px}.season-row-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}@media(max-width:640px){.season-row{flex-direction:column;align-items:stretch;gap:6px}.season-row-label{min-width:0}}.season-win-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.season-win-dot{width:12px;height:12px;border-radius:3px;flex:0 0 auto}.season-win-date{width:150px;flex:0 0 auto}.season-preview{display:grid;grid-template-columns:repeat(12,1fr);gap:3px}.season-preview-month{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}.season-preview-days{display:flex;width:100%;height:22px;border-radius:3px;overflow:hidden}.season-preview-days>span{flex:1 1 0;min-width:0}.season-preview-label{font-size:10px;color:var(--text-3)}.season-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:10px}.season-legend-item{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-2)}@media(max-width:640px){.season-win-row{align-items:stretch}.season-preview{grid-template-columns:repeat(6,1fr);row-gap:8px}}.hec-subtitle{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);margin:0 0 8px}.hec-form{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}.hec-field{display:flex;flex-direction:column;gap:4px}.hec-field-label{font-size:12px;color:var(--text-3);font-weight:500;display:inline-flex;align-items:center}@media(max-width:560px){.hec-form{grid-template-columns:1fr}}.hec-charte-logo{border-radius:var(--d-radius);padding:22px;display:flex;justify-content:center;margin:0 0 12px}.hec-charte-logo img{width:180px;max-width:60%;height:auto;display:block}.hec-charte-colors{display:flex;flex-direction:column;gap:8px}.hec-color-row{display:flex;align-items:center;gap:10px}.hec-color-input{width:34px;height:34px;padding:0;border:none;border-radius:8px;background:none;cursor:pointer;flex:0 0 auto}.hec-color-input:disabled{cursor:default;opacity:.7}.hec-swatch-label{font-size:12.5px;color:var(--text-2);flex:1;line-height:1.2}.hec-color-hex{width:100px!important;flex:0 0 auto;text-transform:uppercase;font-size:12px}.bw-row{border:1px solid var(--border);border-radius:var(--d-radius);padding:12px 14px;background:var(--surface);display:flex;flex-direction:column;gap:10px}.bw-row-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}.bw-row-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bw-warn{display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.35;color:oklch(from var(--warning, #b45309) l c h);background:oklch(from var(--warning, #b45309) .96 .04 h);border:1px solid oklch(from var(--warning, #b45309) .85 .06 h);border-radius:8px;padding:8px 10px}.bw-warn-ico{flex:0 0 auto;margin-top:1px}.mail-status{display:inline-flex;align-items:center;gap:5px;font-size:12.5px}.mail-status:before{content:"";width:7px;height:7px;border-radius:50%;flex:0 0 auto}.mail-status.opened{color:oklch(from var(--success, #15803d) l c h)}.mail-status.opened:before{background:var(--success, #15803d)}.mail-status.sent{color:var(--text-3)}.mail-status.sent:before{background:transparent;box-shadow:inset 0 0 0 1.5px var(--text-4)}.mail-status.muted{color:var(--text-4)}.mail-status.muted:before{background:transparent;box-shadow:inset 0 0 0 1.5px var(--text-4)}.mail-status.error{color:var(--danger, #b91c1c)}.mail-status.error:before{background:var(--danger, #b91c1c)}.date-edit-msg{font-size:12px;margin:6px 0 0;line-height:1.45}.date-edit-msg.err{color:var(--danger, #b91c1c)}.date-edit-msg.warn{color:var(--accent, #95421a)}.line-reorder{display:inline-flex;flex-direction:column;gap:1px;flex:0 0 auto}.line-reorder .icon-btn{height:16px;width:20px;padding:0}.bw-feeds{display:flex;flex-direction:column;gap:5px;margin-top:2px}.bw-feed{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.bw-feed-house{font-size:12px;font-weight:500;min-width:130px}.bw-feed-url{flex:1;min-width:0;font-family:var(--font-mono);font-size:10.5px;color:var(--text-3);background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:3px 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn.xs{padding:2px 8px;font-size:11px;line-height:1.4}@media(prefers-color-scheme:dark){.bw-warn{color:oklch(from var(--warning, #f59e0b) .85 .1 h);background:oklch(from var(--warning, #f59e0b) .28 .05 h);border-color:oklch(from var(--warning, #f59e0b) .4 .06 h)}}@media(max-width:640px){.bw-feed-house{min-width:0}}.house-card-img img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.house-img-edit{height:150px;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface-2);display:grid;place-items:center}.house-img-edit img{width:100%;height:100%;object-fit:cover}.house-img-empty{color:var(--text-3);font-size:12.5px}.filter-badge{display:inline-grid;place-items:center;min-width:16px;height:16px;padding:0 4px;margin-left:2px;border-radius:999px;background:var(--accent);color:#fff;font-size:10px;font-weight:600;line-height:1}.view-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;flex-wrap:wrap}.btn-label-sm{display:none}@media(max-width:1180px){.btn-xlsx-label{display:none}}.activity-filters{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:flex-end;padding:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--d-radius);margin-bottom:16px}.filter-field{display:flex;flex-direction:column;gap:4px}.filter-field>span{font-family:var(--font-mono);font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3)}.filter-field .input{width:auto;min-width:150px}.filter-field input[type=date].input{min-width:140px}.activity-type{display:inline-flex;align-items:center;flex-wrap:nowrap;gap:5px;padding:1px 6px;border-radius:999px;font-size:10px;font-family:var(--font-mono);letter-spacing:.03em;text-transform:uppercase;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border);white-space:nowrap}.activity-type svg{flex:0 0 auto}.activity-type span{white-space:nowrap}.activity-type.type-reservation{background:#d6efff;background:oklch(.94 .04 235);color:#00537c;color:oklch(.42 .1 240);border-color:#afd4ea}.activity-type.type-client{background:#d5f5da;color:#1d4e2b;border-color:#acd3b3}.activity-type.type-checklist{background:#fbeec9;color:#694500;color:oklch(.42 .1 75);border-color:#e0cba1}.bulk-bar{display:flex;align-items:center;gap:10px;padding:8px 14px;margin-bottom:12px;background:var(--accent-soft);border:1px solid var(--border-strong);border-radius:var(--d-radius-sm);font-size:var(--fs-md)}.brand-weather{display:flex;flex-direction:column;gap:4px;margin-top:8px}.brand-date{font-size:var(--fs-2xs);color:var(--text-3);text-transform:uppercase;font-family:var(--font-mono);letter-spacing:.08em}.brand-season{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-2xs);color:var(--text-3);text-transform:uppercase;font-family:var(--font-mono);letter-spacing:.08em}.brand-meteo{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--text-3);text-decoration:none;width:fit-content}.brand-meteo:hover{color:var(--text)}.brand-meteo-loc{color:var(--text-4);font-size:var(--fs-xs)}.bar.annule{opacity:.25;text-decoration:line-through}.link-ref{font-family:var(--font-mono);font-size:10.5px;color:var(--accent);background:none;border:none;padding:0;cursor:pointer;text-align:left;text-decoration:underline;text-underline-offset:2px}.link-ref:hover{color:var(--text)}.kpi-bar{display:grid;grid-template-columns:minmax(280px,1.6fr) repeat(3,minmax(160px,1fr));gap:12px;margin-bottom:16px}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:6px;min-width:0}.kpi-title{font-size:var(--fs-2xs);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--text-3)}.kpi-value{font-size:24px;font-family:var(--font-display);line-height:1.1;font-variant-numeric:tabular-nums}.kpi-sub{font-size:var(--fs-xs);color:var(--text-3)}.kpi-cap{text-transform:capitalize}.kpi-stack{display:flex;height:8px;border-radius:999px;overflow:hidden;background:var(--surface-2);margin:2px 0 8px}.kpi-stack-seg{height:100%}.kpi-split-rows{display:grid;grid-template-columns:minmax(70px,1fr) auto auto;gap:5px 10px;align-items:baseline;font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.kpi-split-row{display:contents}.kpi-split-house{display:inline-flex;align-items:center;gap:6px;min-width:0}.kpi-split-house .dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto}.kpi-split-units,.kpi-split-ca{text-align:right;white-space:nowrap}.kpi-seasons{justify-content:flex-start}.kpi-season-mini{display:flex;flex-direction:column;gap:3px;margin-top:6px}.kpi-season-mini-row{display:flex;justify-content:space-between;gap:8px;font-size:var(--fs-xs);font-variant-numeric:tabular-nums}@media(max-width:1100px){.kpi-bar{grid-template-columns:1fr 1fr}.kpi-split{grid-column:1 / -1}}@media(max-width:640px){.kpi-bar{grid-template-columns:1fr}}.support-row{display:grid;grid-template-columns:56px 190px minmax(200px,1fr) 92px 150px 110px;column-gap:16px;align-items:center;padding:11px 18px;border-bottom:1px solid var(--border)}.support-head{background:var(--surface-2);font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3)}.support-item{font-size:13px;color:inherit;text-decoration:none;cursor:pointer}.support-item:hover{background:var(--surface-2)}@media(max-width:820px){.support-row{grid-template-columns:48px 120px minmax(140px,1fr) 84px}.support-row>:nth-child(5),.support-row>:nth-child(6){display:none}}.data-state{padding:28px 18px;text-align:center;font-size:var(--fs-md);background:var(--surface);border:1px solid var(--border);border-radius:10px}.data-state-error{margin:4px 0 12px}.stale-banner{display:flex;align-items:center;gap:10px;margin:12px 22px 0;padding:10px 14px;border:1px solid oklch(.86 .06 60);background:#fff3e4;background:oklch(.97 .03 75);color:#773a00;color:oklch(.42 .11 55);border-radius:var(--d-radius);font-size:12.5px}.stale-banner .btn{margin-left:auto;flex:0 0 auto}.version-banner{border-color:var(--border);background:var(--surface-2);color:var(--text-2)}@media(max-width:640px){.stale-banner{margin:10px 12px 0;align-items:flex-start;flex-wrap:wrap}.stale-banner .btn{margin-left:0}}.ical-row{grid-template-columns:150px 110px 1fr 150px 32px}@media(max-width:640px){.ical-row{grid-template-columns:1fr;gap:4px;white-space:normal}.ical-row>*{min-width:0;overflow-wrap:anywhere;white-space:normal!important}}@media(max-width:900px){.res-table{overflow-x:visible}.res-row.head{display:none}.res-row{grid-template-columns:1fr;gap:4px;align-items:start}.res-row>*{min-width:0;max-width:100%;white-space:normal!important;overflow:visible;text-overflow:clip}.res-row .res-amount{text-align:left}}.arrival-table{width:100%;border-collapse:collapse;font-size:13px}.arrival-table th{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3);font-weight:500;padding:4px 6px 8px;text-align:center}.arrival-table td{padding:4px 6px;text-align:center;vertical-align:middle}.arrival-table tbody tr+tr td{border-top:1px solid var(--border)}.icon-btn{position:relative}.season-win-rule-dot{position:absolute;top:3px;right:3px;width:6px;height:6px;border-radius:50%;background:var(--accent)}.dash-section-title{font-family:var(--font-display);font-size:22px;margin:6px 0 2px;display:flex;align-items:center}.dash-subtitle{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin:14px 0 8px}.dash-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}@media(max-width:520px){.dash-kpi-grid{grid-template-columns:1fr}}
