*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-ui);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);margin:0}.card{background:var(--card);border-radius:20px;border:1px solid var(--border)}.btn{font-family:var(--font-ui);font-weight:600;font-size:15px;border:none;cursor:pointer;padding:14px 22px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;white-space:nowrap}.btn-primary{background:var(--accent);color:#fff}.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--border-strong)}.btn-block{width:100%}.bottom-nav{position:fixed;bottom:0;left:0;right:0;padding:10px 8px 30px;background:#f7efeaf2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--border);display:flex;justify-content:space-around;align-items:center;z-index:100}.bottom-nav .tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 4px;cursor:pointer;color:var(--faint);font-family:var(--font-ui);font-size:10px;font-weight:600;letter-spacing:.02em}.bottom-nav .tab.active{color:var(--accent)}.section-h{display:flex;align-items:baseline;justify-content:space-between;padding:22px 22px 10px}.section-h .t{font-family:var(--font-display);font-size:22px;font-weight:500;color:var(--ink);letter-spacing:-.005em}.section-h .a{font-family:var(--font-ui);font-size:12px;font-weight:600;color:var(--muted);cursor:pointer}.chip{padding:7px 14px;border-radius:999px;font-size:12.5px;font-weight:600;background:transparent;border:1px solid var(--border);color:var(--muted);cursor:pointer;white-space:nowrap}.chip.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px 3px 7px;border-radius:999px;font-family:var(--font-ui);font-size:11px;font-weight:600}.badge .dot{width:5px;height:5px;border-radius:50%}.icon-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:var(--card);display:flex;align-items:center;justify-content:center;color:var(--ink-2);cursor:pointer}.fab{position:fixed;right:18px;bottom:96px;z-index:50;height:54px;padding:0 22px 0 18px;border-radius:999px;background:var(--accent);color:#fff;border:none;display:flex;align-items:center;gap:10px;cursor:pointer;font-family:var(--font-ui);font-weight:600;font-size:14px;box-shadow:0 10px 24px #923c4e59,0 2px 4px #00000014}.fade-in{animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.login-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:var(--bg)}.login-card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:2.5rem 2rem;width:100%;max-width:400px;box-shadow:0 4px 32px #241a1812}.login-logo{text-align:center;margin-bottom:2.25rem}.login-logo h1{font-family:var(--font-display);font-size:2.5rem;font-weight:600;color:var(--ink);letter-spacing:.02em}.login-logo p{font-size:.75rem;color:var(--muted);margin-top:.375rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500}.login-form{display:flex;flex-direction:column;gap:1.25rem}.field label{display:block;font-size:.8125rem;font-weight:600;color:var(--ink-2);margin-bottom:.4rem;letter-spacing:.01em}.field input{width:100%;padding:.75rem 1rem;border:1.5px solid var(--border-strong);border-radius:10px;background:var(--surface);color:var(--ink);font-family:var(--font-ui);font-size:1rem;transition:border-color .15s,background .15s;outline:none;-webkit-appearance:none}.login-error{font-size:.875rem;color:var(--accent);text-align:center;padding:.625rem 1rem;background:var(--accent-soft);border-radius:8px;font-weight:500}.login-btn{width:100%;padding:.9rem;background:var(--accent);color:#fff;border:none;border-radius:10px;font-family:var(--font-ui);font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s,opacity .15s;margin-top:.25rem;letter-spacing:.01em}.login-btn:hover:not(:disabled){background:var(--accent-2)}.login-btn:disabled{opacity:.6;cursor:not-allowed}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:60px;background:var(--card);border-top:1px solid var(--border);display:flex;align-items:stretch;z-index:100;padding-bottom:env(safe-area-inset-bottom)}.nav-tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--faint);text-decoration:none;transition:color .15s;padding:6px 2px;-webkit-tap-highlight-color:transparent;min-width:0}.nav-tab.active{color:var(--accent)}.nav-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.nav-icon svg{width:20px;height:20px}.nav-label{font-family:var(--font-ui);font-size:.5625rem;font-weight:600;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.layout{min-height:100dvh;background:var(--bg)}.layout-main{padding-bottom:calc(60px + env(safe-area-inset-bottom));min-height:100dvh}.robe-list-page{padding:0 0 1rem}.robe-list-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1rem .75rem;position:sticky;top:0;background:var(--bg);z-index:10}.robe-list-header h1{font-family:var(--font-display);font-size:1.75rem;font-weight:600;color:var(--ink)}.robe-list-controls{padding:0 1rem;display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.search-input{width:100%;padding:.7rem 1rem .7rem 2.5rem;border:1.5px solid var(--border-strong);border-radius:10px;background:var(--card);color:var(--ink);font-family:var(--font-ui);font-size:.9375rem;outline:none;-webkit-appearance:none}.filter-tabs{display:flex;gap:.5rem;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px}.filter-tabs::-webkit-scrollbar{display:none}.filter-tab{flex-shrink:0;padding:.4rem .875rem;border-radius:20px;border:1.5px solid var(--border-strong);background:var(--card);color:var(--muted);font-family:var(--font-ui);font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}.filter-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.robe-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;padding:0 1rem}.robe-card{background:var(--card);border:1px solid var(--border);border-radius:14px;overflow:hidden;cursor:pointer;text-align:left;padding:0;width:100%;transition:transform .1s,box-shadow .15s;-webkit-tap-highlight-color:transparent;box-shadow:0 1px 6px #241a180d}.robe-card:active{transform:scale(.97)}.robe-card-img{position:relative;aspect-ratio:3/4;background:var(--canvas);overflow:hidden}.robe-card-img img{width:100%;height:100%;object-fit:cover;display:block}.robe-card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--faint)}.robe-card-placeholder svg{width:40px;height:40px}.robe-card-badge{position:absolute;top:.5rem;right:.5rem}.robe-card-body{padding:.625rem .75rem .75rem}.robe-card-name{font-family:var(--font-ui);font-size:.875rem;font-weight:600;color:var(--ink);line-height:1.3;margin-bottom:.25rem;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.robe-card-price{font-family:var(--font-display);font-size:.9375rem;font-weight:600;color:var(--accent)}.badge{display:inline-block;padding:.2rem .55rem;border-radius:20px;font-family:var(--font-ui);font-size:.6875rem;font-weight:700;letter-spacing:.02em;white-space:nowrap}.robe-list-loading,.robe-list-empty{text-align:center;color:var(--muted);font-family:var(--font-ui);font-size:.9375rem;padding:3rem 1rem}.robe-list-error{text-align:center;color:var(--accent);font-family:var(--font-ui);font-size:.9375rem;padding:1.5rem 1rem;background:var(--accent-soft);margin:0 1rem;border-radius:10px}.pagination{display:flex;align-items:center;justify-content:center;gap:1.25rem;padding:1.25rem 1rem .5rem}.page-btn{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--border-strong);background:var(--card);color:var(--ink);font-size:1.125rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.page-btn:disabled{opacity:.35;cursor:not-allowed}.page-info{font-family:var(--font-ui);font-size:.875rem;font-weight:600;color:var(--muted)}.robe-count{text-align:center;font-family:var(--font-ui);font-size:.8125rem;color:var(--faint);padding:.5rem 0 0}.robe-detail-page{background:var(--bg);min-height:100dvh}.detail-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;position:sticky;top:0;background:var(--bg);z-index:10}.detail-header-actions{display:flex;gap:.625rem}.btn-icon{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--border-strong);background:var(--card);color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;-webkit-tap-highlight-color:transparent}.btn-icon.danger{color:var(--accent)}.btn-icon svg{width:18px;height:18px}.carousel-wrap{position:relative}.carousel{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;aspect-ratio:4/3;background:var(--canvas)}.carousel::-webkit-scrollbar{display:none}.carousel-slide{flex:0 0 100%;scroll-snap-align:start;overflow:hidden}.carousel-slide img{width:100%;height:100%;object-fit:cover;display:block}.carousel-empty{align-items:center;justify-content:center;flex-direction:column;gap:.75rem;color:var(--faint)}.carousel-empty svg{width:48px;height:48px}.carousel-empty span{font-family:var(--font-ui);font-size:.875rem}.carousel-dots{position:absolute;bottom:.75rem;left:50%;transform:translate(-50%);display:flex;gap:5px}.dot{width:6px;height:6px;border-radius:50%;background:#ffffff80;transition:background .15s}.dot-active{background:#fff}.carousel-counter{position:absolute;top:.75rem;right:.75rem;background:#0006;color:#fff;font-family:var(--font-ui);font-size:.75rem;font-weight:600;padding:.2rem .5rem;border-radius:20px}.detail-body{padding:1.25rem 1rem 2rem}.detail-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.detail-name{font-family:var(--font-display);font-size:1.625rem;font-weight:600;color:var(--ink);line-height:1.2}.badge-btn{background:none;border:none;cursor:pointer;padding:0;flex-shrink:0;margin-top:4px}.pressing-banner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;background:var(--st-cleaning-bg);color:var(--st-cleaning);border-radius:10px;padding:.75rem 1rem;margin-bottom:1rem;font-family:var(--font-ui);font-size:.875rem;font-weight:500}.btn-unlock{background:var(--st-cleaning);color:#fff;border:none;border-radius:8px;padding:.4rem .875rem;font-family:var(--font-ui);font-size:.8125rem;font-weight:700;cursor:pointer;flex-shrink:0;white-space:nowrap}.detail-error-inline{color:var(--accent);font-family:var(--font-ui);font-size:.875rem;background:var(--accent-soft);padding:.625rem 1rem;border-radius:8px;margin-bottom:1rem}.detail-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1.5rem}.info-item{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:.875rem;display:flex;flex-direction:column;gap:.25rem}.info-label{font-family:var(--font-ui);font-size:.6875rem;font-weight:600;color:var(--faint);text-transform:uppercase;letter-spacing:.06em}.info-value{font-family:var(--font-display);font-size:1.0625rem;font-weight:500;color:var(--ink)}.stats-title{font-family:var(--font-display);font-size:1.125rem;font-weight:500;color:var(--ink);margin-bottom:.75rem}.stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:1rem;display:flex;flex-direction:column;gap:.3rem;align-items:center;text-align:center}.stat-value{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--accent)}.stat-label{font-family:var(--font-ui);font-size:.75rem;font-weight:500;color:var(--muted)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#241a1873;display:flex;align-items:flex-end;justify-content:center;z-index:200;padding-bottom:env(safe-area-inset-bottom)}.modal{background:var(--card);border-radius:20px 20px 0 0;width:100%;max-width:480px;padding:1.5rem 1.25rem;animation:slide-up .25s ease}@keyframes slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-title{font-family:var(--font-display);font-size:1.125rem;font-weight:600;color:var(--ink);margin-bottom:1rem;text-align:center}.modal-msg{font-family:var(--font-ui);font-size:.9375rem;color:var(--ink-2);text-align:center;line-height:1.5;margin-bottom:1.25rem}.btn-outline{flex:1;padding:.85rem;border:1.5px solid var(--border-strong);border-radius:12px;background:transparent;color:var(--ink);font-family:var(--font-ui);font-size:.9375rem;font-weight:600;cursor:pointer;min-height:48px}.btn-confirm{flex:1;padding:.85rem;border:none;border-radius:12px;background:var(--accent);color:#fff;font-family:var(--font-ui);font-size:.9375rem;font-weight:700;cursor:pointer;min-height:48px}.btn-confirm.danger{background:#c0392b}.status-options{display:flex;flex-direction:column;gap:.625rem;margin-bottom:1rem}.status-option{background:none;border:1.5px solid var(--border);border-radius:12px;padding:.75rem 1rem;cursor:pointer;display:flex;align-items:center;gap:.75rem;transition:background .15s;min-height:52px}.status-option.current{border-color:var(--accent);background:var(--accent-soft)}.badge{display:inline-block;padding:.25rem .65rem;border-radius:20px;font-family:var(--font-ui);font-size:.75rem;font-weight:700;letter-spacing:.02em}.badge-available{background:var(--st-avail-bg);color:var(--st-avail)}.badge-rented{background:var(--st-rented-bg);color:var(--st-rented)}.badge-cleaning{background:var(--st-cleaning-bg);color:var(--st-cleaning)}.badge-retired{background:var(--st-retired-bg);color:var(--st-retired)}.detail-loading,.detail-error{display:flex;align-items:center;justify-content:center;min-height:50vh;font-family:var(--font-ui);font-size:.9375rem;color:var(--muted);padding:2rem}.detail-error{color:var(--accent)}.detail-planning-section{margin-bottom:1.5rem}.mini-cal{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1rem}.mini-cal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.mini-cal-month{font-family:var(--font-display);font-size:.9rem;color:var(--ink);text-transform:capitalize;font-weight:500}.mini-cal-btn{width:30px;height:30px;border:1px solid var(--border);border-radius:50%;background:var(--bg);color:var(--ink-2);cursor:pointer;display:flex;align-items:center;justify-content:center}.mini-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.mini-cal-dow{text-align:center;font-size:.6rem;font-weight:700;color:var(--faint);padding:.2rem 0;text-transform:uppercase}.mini-cal-cell{position:relative;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:5px;font-size:.72rem;color:var(--ink-2);font-family:var(--font-mono)}.mini-cal-cell.cal-rented{background:var(--st-rented-bg);color:var(--st-rented);font-weight:700}.mini-cal-cell.cal-pressing{background:var(--st-cleaning-bg);color:var(--st-cleaning);font-weight:700}.mini-cal-cell.cal-today{box-shadow:0 0 0 1.5px var(--accent)}.mini-cal-num{position:relative;z-index:1}.mini-cal-dot{position:absolute;bottom:2px;width:4px;height:4px;border-radius:50%;background:var(--accent)}.detail-upcoming{margin-bottom:1.5rem}.upcoming-item{display:flex;align-items:center;gap:.75rem;background:var(--card);border:1px solid var(--border);border-radius:12px;padding:.875rem;margin-bottom:.5rem;text-decoration:none;-webkit-tap-highlight-color:transparent}.upcoming-item:active{background:var(--surface)}.upcoming-dates{display:flex;flex-direction:column;gap:.2rem;min-width:72px}.upcoming-retrait{font-size:.88rem;font-weight:700;color:var(--ink);font-family:var(--font-mono)}.upcoming-soiree{font-size:.7rem;color:var(--muted)}.upcoming-right{flex:1;display:flex;flex-direction:column;gap:.25rem}.upcoming-cliente{font-size:.88rem;color:var(--ink-2);font-weight:500}.upcoming-meta{display:flex;align-items:center;gap:.5rem}.upcoming-amount{font-family:var(--font-mono);font-size:.8rem;color:var(--muted)}.upcoming-pay-badge{font-size:.68rem;font-weight:700;padding:.15rem .5rem;border-radius:999px}.upcoming-pay-badge.paid{background:var(--st-avail-bg);color:var(--st-avail)}.upcoming-pay-badge.pending{background:var(--canvas);color:var(--muted)}.robe-form-page{background:var(--bg);min-height:100dvh}.form-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;position:sticky;top:0;background:var(--bg);z-index:10}.form-header h1{font-family:var(--font-display);font-size:1.25rem;font-weight:600;color:var(--ink)}.btn-back{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--border-strong);background:var(--card);color:var(--ink);cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.btn-back svg{width:20px;height:20px}.robe-form{padding:.5rem 1rem 2rem;display:flex;flex-direction:column;gap:1.5rem}.form-section{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:1.125rem;display:flex;flex-direction:column;gap:1rem}.section-title{font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:.5rem}.section-count{font-family:var(--font-ui);font-size:.75rem;font-weight:600;color:var(--muted)}.photos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.625rem}.photo-thumb{position:relative;aspect-ratio:3/4;border-radius:10px;overflow:hidden;background:var(--canvas)}.photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}.photo-thumb.new:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:2px solid var(--accent);border-radius:10px;pointer-events:none}.photo-remove{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;background:#0000008c;color:#fff;border:none;cursor:pointer;font-size:1rem;line-height:1;display:flex;align-items:center;justify-content:center;font-weight:700}.photo-add{aspect-ratio:3/4;border-radius:10px;border:2px dashed var(--border-strong);background:var(--surface);color:var(--muted);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.375rem;font-family:var(--font-ui);font-size:.6875rem;font-weight:600;transition:border-color .15s,color .15s}.photo-add:active{border-color:var(--accent);color:var(--accent)}.photo-add svg{width:24px;height:24px}.field{display:flex;flex-direction:column;gap:.375rem}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.field label{font-family:var(--font-ui);font-size:.8125rem;font-weight:600;color:var(--ink-2)}.field input{padding:.75rem .875rem;border:1.5px solid var(--border-strong);border-radius:10px;background:var(--surface);color:var(--ink);font-family:var(--font-ui);font-size:1rem;outline:none;-webkit-appearance:none;transition:border-color .15s;min-height:48px}.field input:focus{border-color:var(--accent);background:var(--card)}.field input::placeholder{color:var(--faint)}.form-error{background:var(--accent-soft);color:var(--accent);font-family:var(--font-ui);font-size:.875rem;font-weight:500;padding:.75rem 1rem;border-radius:10px;text-align:center}.form-footer{padding:0}.btn-submit{width:100%;padding:1rem;background:var(--accent);color:#fff;border:none;border-radius:14px;font-family:var(--font-ui);font-size:1rem;font-weight:700;cursor:pointer;transition:background .15s,opacity .15s;min-height:52px;letter-spacing:.01em}.btn-submit:hover:not(:disabled){background:var(--accent-2)}.upload-progress{display:flex;flex-direction:column;gap:.375rem;margin-top:.5rem}.upload-progress-row{display:flex;justify-content:space-between;font-family:var(--font-ui);font-size:.8125rem;font-weight:600;color:var(--muted)}.upload-bar{height:6px;background:var(--border);border-radius:3px;overflow:hidden}.upload-bar-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .2s ease;min-width:4px}.form-loading{display:flex;align-items:center;justify-content:center;min-height:50vh;font-family:var(--font-ui);color:var(--muted)}.planning-page{display:flex;flex-direction:column;height:100%;background:var(--bg);font-family:var(--font-ui)}.planning-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0}.month-title{flex:1;text-align:center;font-family:var(--font-display);font-size:1.05rem;font-weight:600;color:var(--ink);margin:0;text-transform:capitalize}.btn-nav{width:40px;height:40px;min-width:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border);background:var(--card);color:var(--ink-2);cursor:pointer}.btn-nav:active{background:var(--canvas)}.btn-new-res{width:40px;height:40px;min-width:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent);color:#fff;border:none;cursor:pointer;font-size:1.4rem;line-height:1;font-weight:300}.btn-new-res:active{background:var(--accent-2)}.planning-state{flex:1;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.9rem}.planning-error{color:var(--accent)}.gantt-wrap{flex:1;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}.gantt-inner{display:flex;flex-direction:column}.gantt-row{display:flex;align-items:stretch;border-bottom:1px solid var(--border)}.gantt-row:last-child{border-bottom:none}.gantt-label{width:128px;min-width:128px;flex-shrink:0;position:sticky;left:0;z-index:3;background:var(--bg);border-right:1px solid var(--border-strong);display:flex;align-items:center;gap:.4rem;padding:0 .6rem}.gantt-label-robe{cursor:pointer;transition:background .15s}.gantt-label-robe:active{background:var(--accent-soft)}.gantt-robe-thumb{width:28px;height:28px;border-radius:4px;object-fit:cover;flex-shrink:0}.gantt-robe-name{font-size:.75rem;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.gantt-header-row{position:sticky;top:0;z-index:4;background:var(--bg);border-bottom:1px solid var(--border-strong)}.gantt-header-label{height:32px;background:var(--bg)}.gantt-header-days{display:flex;flex-shrink:0}.gantt-header-day{width:38px;min-width:38px;height:32px;display:flex;align-items:center;justify-content:center;font-size:.65rem;color:var(--muted);font-family:var(--font-mono);border-right:1px solid var(--border)}.gantt-header-day.today{color:var(--accent);font-weight:700}.gantt-header-day.weekend{color:var(--faint)}.gantt-track{position:relative;height:52px;flex-shrink:0}.gantt-day-cols{display:flex;height:100%}.gantt-day-col{width:38px;min-width:38px;height:100%;border-right:1px solid var(--border);flex-shrink:0}.gantt-day-col.today{background:color-mix(in srgb,var(--accent-soft) 60%,transparent)}.gantt-day-col.weekend{background:var(--canvas)}.gantt-block{position:absolute;top:11px;height:30px;border-radius:5px;cursor:pointer;display:flex;align-items:center;padding:0 6px;overflow:hidden;z-index:2;transition:filter .1s}.gantt-block:active{filter:brightness(.92)}.gantt-block-rented{background:var(--st-rented-bg);color:var(--st-rented);border:1.5px solid var(--st-rented)}.gantt-block-pressing{background:var(--st-cleaning-bg);color:var(--st-cleaning);border:1.5px solid var(--st-cleaning);border-left-style:dashed}.gantt-block-label{font-size:.68rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;max-width:100%;-webkit-text-size-adjust:none}.gantt-soiree-dot{position:absolute;bottom:3px;width:6px;height:6px;border-radius:50%;background:var(--accent);pointer-events:none;flex-shrink:0}.gantt-empty{padding:3rem 2rem;text-align:center;color:var(--muted);font-size:.9rem}.res-form-page{min-height:100%;background:var(--bg);font-family:var(--font-ui);padding-bottom:2rem}.res-form-header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:10}.btn-back-res{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border);background:var(--card);color:var(--ink-2);cursor:pointer;flex-shrink:0}.res-form-title{font-family:var(--font-display);font-size:1.05rem;color:var(--ink);margin:0}.res-loading{padding:3rem;text-align:center;color:var(--muted)}.res-form-body{padding:0 1rem}.res-section{margin-top:1.5rem}.res-section-title{font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:0 0 .75rem}.res-form-group{margin-bottom:.9rem}.res-label{display:block;font-size:.8rem;color:var(--ink-2);margin-bottom:.3rem;font-weight:500}.res-input{width:100%;height:48px;padding:0 .875rem;border:1px solid var(--border-strong);border-radius:10px;background:var(--card);color:var(--ink);font-family:var(--font-ui);font-size:.95rem;box-sizing:border-box;-moz-appearance:none;appearance:none;-webkit-appearance:none}.res-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.res-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23806C66' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.5rem}.res-textarea{height:auto;padding:.75rem .875rem;resize:none;line-height:1.5}.robe-picker-btn{width:100%;min-height:64px;display:flex;align-items:center;gap:.75rem;padding:.75rem;border:1px solid var(--border-strong);border-radius:12px;background:var(--card);cursor:pointer;text-align:left}.robe-picker-btn:active{background:var(--surface)}.robe-picker-thumb{width:48px;height:48px;border-radius:8px;overflow:hidden;flex-shrink:0;background:var(--canvas);display:flex;align-items:center;justify-content:center;color:var(--faint);font-size:.8rem}.robe-picker-thumb img{width:100%;height:100%;object-fit:cover}.robe-picker-info{flex:1;display:flex;flex-direction:column;gap:.2rem}.robe-picker-name{font-size:.95rem;color:var(--ink);font-weight:500}.robe-picker-price{font-size:.8rem;color:var(--muted);font-family:var(--font-mono)}.robe-picker-placeholder{flex:1;color:var(--faint);font-size:.9rem}.robe-picker-chevron{color:var(--faint);flex-shrink:0}.cliente-row{display:flex;gap:.5rem}.cliente-row .res-input{flex:1}.btn-add-cliente{width:48px;height:48px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--border-strong);background:var(--card);color:var(--accent);cursor:pointer}.btn-add-cliente:active{background:var(--accent-soft)}.dates-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.dates-grid .res-form-group:first-child{grid-column:1 / -1}.avail-banner{display:flex;align-items:center;gap:.5rem;padding:.6rem .875rem;border-radius:8px;font-size:.82rem;font-weight:500;margin-top:.5rem;background:var(--canvas);color:var(--muted)}.avail-banner.ok{background:var(--st-avail-bg);color:var(--st-avail)}.avail-banner.ko{background:var(--accent-soft);color:var(--accent)}.avail-dot{width:8px;height:8px;border-radius:50%;background:currentColor;flex-shrink:0}.amount-row{position:relative}.amount-row .res-input{padding-right:2rem}.amount-currency{position:absolute;right:.875rem;top:50%;transform:translateY(-50%);color:var(--muted);font-family:var(--font-mono);font-size:.9rem;pointer-events:none}.payment-methods,.payment-status-toggle{display:flex;flex-wrap:wrap;gap:.5rem}.pill-btn{padding:.5rem .875rem;border-radius:999px;border:1px solid var(--border-strong);background:var(--card);color:var(--ink-2);font-family:var(--font-ui);font-size:.82rem;cursor:pointer;transition:all .15s;min-height:36px}.pill-btn.active{background:var(--accent-soft-2);border-color:var(--accent);color:var(--accent-2);font-weight:600}.pill-btn.paid.active{background:var(--st-avail-bg);border-color:var(--st-avail);color:var(--st-avail)}.res-error{margin:1rem 0;padding:.75rem .875rem;background:var(--accent-soft);color:var(--accent);border-radius:8px;font-size:.85rem}.res-form-footer{margin-top:1.5rem}.btn-submit-res{width:100%;height:52px;background:var(--accent);color:#fff;border:none;border-radius:12px;font-family:var(--font-ui);font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s,opacity .15s}.btn-submit-res:disabled{opacity:.45;cursor:default}.btn-submit-res:not(:disabled):active{background:var(--accent-2)}.res-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:100;display:flex;align-items:flex-end}.res-modal{width:100%;background:var(--card);border-radius:20px 20px 0 0;padding-bottom:env(safe-area-inset-bottom,1rem);max-height:85vh;overflow-y:auto}.res-modal-picker{max-height:70vh}.res-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem .75rem;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--card);z-index:1}.res-modal-title{font-family:var(--font-display);font-size:1rem;color:var(--ink)}.res-modal-close{width:32px;height:32px;border-radius:50%;border:none;background:var(--canvas);color:var(--muted);font-size:.85rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.picker-list{padding:.5rem 0 1rem}.picker-item{width:100%;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:none;border:none;cursor:pointer;text-align:left;border-bottom:1px solid var(--border)}.picker-item:last-child{border-bottom:none}.picker-item.selected{background:var(--accent-soft)}.picker-item:active{background:var(--canvas)}.picker-thumb{width:44px;height:44px;border-radius:8px;overflow:hidden;background:var(--canvas);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--faint);font-size:.8rem}.picker-thumb img{width:100%;height:100%;object-fit:cover}.picker-info{flex:1;display:flex;flex-direction:column;gap:.15rem}.picker-name{font-size:.9rem;color:var(--ink);font-weight:500}.picker-price{font-size:.78rem;color:var(--muted);font-family:var(--font-mono)}.picker-check{color:var(--accent);flex-shrink:0}.add-cliente-form{padding:1rem}.add-cliente-actions{display:flex;gap:.75rem;margin-top:1rem}.btn-outline-res{flex:1;height:48px;border-radius:10px;border:1px solid var(--border-strong);background:var(--card);color:var(--ink-2);font-family:var(--font-ui);font-size:.9rem;cursor:pointer}.btn-primary-res{flex:1;height:48px;border-radius:10px;border:none;background:var(--accent);color:#fff;font-family:var(--font-ui);font-size:.9rem;font-weight:600;cursor:pointer}.btn-primary-res:disabled{opacity:.45;cursor:default}.res-detail-page{min-height:100%;background:var(--bg);font-family:var(--font-ui);padding-bottom:2rem}.res-detail-loading,.res-detail-error-page{padding:3rem;text-align:center;color:var(--muted)}.res-detail-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:10}.btn-back-detail{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border);background:var(--card);color:var(--ink-2);cursor:pointer}.res-detail-header-actions{display:flex;gap:.5rem}.btn-icon-detail{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border);background:var(--card);color:var(--ink-2);cursor:pointer}.btn-icon-detail.danger{color:var(--accent);border-color:var(--accent-soft-2)}.btn-icon-detail:disabled{opacity:.5;cursor:default}.res-detail-body{padding:1rem;display:flex;flex-direction:column;gap:.25rem}.res-status-row{display:flex;gap:.5rem;margin-bottom:.75rem}.badge-res{display:inline-flex;align-items:center;padding:.35rem .75rem;border-radius:999px;font-size:.78rem;font-weight:600}.badge-res-confirmed,.badge-res-ongoing{background:var(--st-rented-bg);color:var(--st-rented)}.badge-res-completed{background:var(--st-avail-bg);color:var(--st-avail)}.badge-res-cancelled{background:var(--st-retired-bg);color:var(--st-retired)}.badge-res-paid{background:var(--st-avail-bg);color:var(--st-avail)}.badge-res-pending{background:var(--canvas);color:var(--muted)}.robe-summary-card{display:flex;align-items:center;gap:.75rem;padding:.875rem;background:var(--card);border-radius:14px;border:1px solid var(--border);text-decoration:none;margin-bottom:.5rem}.robe-summary-card:active{background:var(--surface)}.robe-summary-thumb{width:56px;height:56px;border-radius:10px;overflow:hidden;background:var(--canvas);flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--faint)}.robe-summary-thumb img{width:100%;height:100%;object-fit:cover}.robe-summary-info{flex:1;display:flex;flex-direction:column;gap:.2rem}.robe-summary-name{font-size:1rem;color:var(--ink);font-weight:500}.robe-summary-price{font-size:.82rem;color:var(--muted);font-family:var(--font-mono)}.robe-link-arrow{color:var(--faint)}.res-detail-section{background:var(--card);border-radius:14px;border:1px solid var(--border);padding:1rem;margin-bottom:.5rem}.res-detail-section-title{font-size:.68rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:0 0 .75rem}.res-detail-value{font-size:.95rem;color:var(--ink)}.res-detail-cliente{display:flex;align-items:center;gap:.5rem;color:var(--ink-2)}.cliente-phone{margin-left:.25rem;color:var(--muted);font-family:var(--font-mono);font-size:.85rem}.dates-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.date-info-item{display:flex;flex-direction:column;gap:.2rem}.date-info-label{font-size:.7rem;color:var(--faint);text-transform:uppercase;letter-spacing:.05em}.date-info-value{font-size:.9rem;color:var(--ink);font-weight:500}.payment-summary{display:flex;flex-direction:column;gap:.75rem}.payment-amount-value{font-size:1.5rem;font-weight:700;color:var(--ink);font-family:var(--font-mono)}.payment-detail-row{display:flex;gap:1.5rem}.payment-detail-item{display:flex;flex-direction:column;gap:.2rem}.payment-detail-label{font-size:.65rem;font-weight:700;color:var(--faint);text-transform:uppercase;letter-spacing:.06em}.payment-detail-value{font-size:.95rem;font-weight:600;color:var(--ink-2)}.payment-status-pill{font-size:.78rem;font-weight:700;padding:.2rem .6rem;border-radius:999px;align-self:flex-start}.payment-status-pill.paid{background:var(--st-avail-bg);color:var(--st-avail)}.payment-status-pill.pending{background:var(--canvas);color:var(--muted)}.res-notes{margin:0;font-size:.9rem;color:var(--ink-2);line-height:1.6}.res-detail-error-inline{padding:.75rem;background:var(--accent-soft);color:var(--accent);border-radius:8px;font-size:.85rem}.res-detail-actions{margin-top:.5rem}.btn-action-cancel{width:100%;height:52px;border-radius:12px;border:1.5px solid var(--accent-soft-2);background:var(--card);color:var(--accent);font-family:var(--font-ui);font-size:.95rem;font-weight:500;cursor:pointer}.btn-action-cancel:active{background:var(--accent-soft)}.btn-action-cancel:disabled{opacity:.5;cursor:default}.res-detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:100;display:flex;align-items:center;justify-content:center;padding:1.5rem}.res-detail-modal{width:100%;max-width:360px;background:var(--card);border-radius:20px;padding:1.5rem}.modal-msg{margin:0 0 1.25rem;font-size:.95rem;color:var(--ink);line-height:1.5;text-align:center}.modal-actions{display:flex;gap:.75rem}.btn-modal-cancel{flex:1;height:48px;border-radius:10px;border:1px solid var(--border-strong);background:var(--card);color:var(--ink-2);font-family:var(--font-ui);font-size:.9rem;cursor:pointer}.btn-modal-confirm{flex:1;height:48px;border-radius:10px;border:none;background:var(--accent-soft-2);color:var(--accent-2);font-family:var(--font-ui);font-size:.9rem;font-weight:600;cursor:pointer}.btn-modal-confirm.danger{background:var(--accent);color:#fff}.agenda-page{min-height:100%;background:var(--bg);font-family:var(--font-ui);display:flex;flex-direction:column}.agenda-loading{padding:3rem;text-align:center;color:var(--muted)}.agenda-header{display:flex;align-items:center;gap:.35rem;padding:.6rem .75rem;border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0;z-index:20}.agenda-header-mid{flex:1;display:flex;flex-direction:column;align-items:center;gap:.1rem;min-width:0}.agenda-page-title{font-family:var(--font-display);font-size:.95rem;color:var(--ink);font-weight:400;line-height:1.1}.agenda-week-label{font-family:var(--font-ui);font-size:.72rem;font-weight:500;color:var(--muted);text-align:center;line-height:1.2}.agenda-today-pill{font-size:.65rem;padding:.15rem .5rem;border-radius:999px;border:1px solid var(--accent);background:transparent;color:var(--accent);cursor:pointer;font-family:var(--font-ui);font-weight:600;line-height:1.4;margin-top:.1rem}.agenda-icon-btn{width:34px;height:34px;border-radius:50%;border:1px solid var(--border);background:var(--card);color:var(--ink-2);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.agenda-add-btn{border-color:var(--accent);color:#fff;background:var(--accent)}.agenda-add-btn:active{background:var(--accent-2)}.week-time-header{display:flex;align-items:stretch;border-bottom:2px solid var(--border);background:var(--bg);flex-shrink:0}.week-time-spacer{width:30px;flex-shrink:0;border-right:1px solid var(--border)}.week-day-header-btn{flex:1;padding:.4rem 0 .35rem;display:flex;flex-direction:column;align-items:center;gap:.1rem;border:none;border-right:1px solid var(--border);background:transparent;cursor:pointer;min-width:0}.week-day-header-btn:last-child{border-right:none}.week-day-header-btn.is-today{background:var(--accent-soft)}.week-day-header-name{font-family:var(--font-ui);font-size:.58rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;line-height:1}.week-day-header-num{font-family:var(--font-ui);font-size:.88rem;font-weight:700;color:var(--ink-2);width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%}.week-day-header-num.is-today{background:var(--accent);color:#fff}.week-time-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.week-time-body{position:relative;display:flex}.week-hours-col{width:30px;flex-shrink:0;position:relative;border-right:1px solid var(--border)}.week-hour-label{position:absolute;right:4px;font-family:var(--font-mono);font-size:.5rem;color:var(--faint);text-align:right;line-height:1;transform:translateY(-50%);pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap}.week-days-grid{flex:1;position:relative;display:flex;min-width:0}.week-hour-line{position:absolute;left:0;right:0;height:1px;background:var(--border);pointer-events:none;z-index:0}.week-day-col{flex:1;position:relative;border-right:1px solid var(--border);min-width:0}.week-day-col:last-child{border-right:none}.week-day-col.is-today{background:#923c4e06}.week-time-appt{position:absolute;border-radius:5px;border:1px solid var(--border);border-left:3px solid var(--mc);background:var(--card);box-shadow:0 1px 3px #00000017;cursor:pointer;text-align:left;overflow:hidden;padding:.18rem .2rem .18rem .25rem;display:flex;flex-direction:column;gap:.04rem;z-index:2;box-sizing:border-box}.week-time-appt.is-pending{border-left-style:dashed;background:var(--surface)}.week-time-appt:active{opacity:.75}.week-time-appt-time{font-family:var(--font-mono);font-size:.5rem;font-weight:700;color:var(--mc);line-height:1;flex-shrink:0}.week-time-appt-name{font-size:.58rem;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;line-height:1.2}.week-time-appt-pending{font-size:.45rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.week-now-line{position:absolute;left:0;right:0;height:2px;background:var(--accent);z-index:3;pointer-events:none;display:flex;align-items:center}.week-now-dot{position:absolute;left:-3px;width:7px;height:7px;border-radius:50%;background:var(--accent)}.day-grid-wrapper{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:.75rem .5rem 3rem}.day-grid{position:relative}.day-hour-label{position:absolute;left:0;width:44px;font-family:var(--font-mono);font-size:.6rem;color:var(--faint);text-align:right;padding-right:8px;line-height:1;transform:translateY(-50%);pointer-events:none;-webkit-user-select:none;user-select:none;z-index:1}.day-hour-line{position:absolute;left:48px;right:0;height:1px;background:var(--border);pointer-events:none}.day-now-line{position:absolute;left:44px;right:0;height:2px;background:var(--accent);z-index:4;display:flex;align-items:center;pointer-events:none}.day-now-dot{position:absolute;left:-4px;width:8px;height:8px;border-radius:50%;background:var(--accent)}.day-appts-zone{position:absolute;top:0;left:52px;right:2px;bottom:0}.day-grid-appt{position:absolute;border-radius:8px;border:1px solid var(--border);border-left:3px solid var(--mc);background:var(--card);box-shadow:0 1px 4px #00000014;cursor:pointer;text-align:left;overflow:hidden;padding:.28rem .4rem;display:flex;flex-direction:column;gap:.06rem;z-index:2;box-sizing:border-box}.day-grid-appt.is-pending{border-left-style:dashed;background:var(--surface)}.day-grid-appt:active{opacity:.75}.day-grid-time{font-family:var(--font-mono);font-size:.6rem;font-weight:700;color:var(--mc);line-height:1;flex-shrink:0}.day-grid-name{font-size:.75rem;font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}.day-grid-robe{font-size:.65rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0}.day-grid-pending{font-size:.55rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}.appt-form-page{min-height:100%;background:var(--bg);font-family:var(--font-ui);padding-bottom:2rem}.appt-loading{padding:3rem;text-align:center;color:var(--muted)}.appt-form-header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:10}.btn-back-appt{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border);background:var(--card);color:var(--ink-2);cursor:pointer;flex-shrink:0}.appt-form-title{font-family:var(--font-display);font-size:1.05rem;color:var(--ink);margin:0}.appt-form-body{padding:0 1rem}.appt-section{margin-top:1.5rem}.appt-section-title{font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:0 0 .75rem}.appt-form-group{margin-bottom:.9rem}.appt-label{display:block;font-size:.8rem;color:var(--ink-2);margin-bottom:.3rem;font-weight:500}.appt-input{width:100%;height:48px;padding:0 .875rem;border:1px solid var(--border-strong);border-radius:10px;background:var(--card);color:var(--ink);font-family:var(--font-ui);font-size:.95rem;box-sizing:border-box;-moz-appearance:none;appearance:none;-webkit-appearance:none}.appt-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.appt-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23806C66' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.5rem}.appt-textarea{height:auto;padding:.75rem .875rem;resize:none;line-height:1.5}.appt-pills{display:flex;flex-wrap:wrap;gap:.5rem}.appt-pill{padding:.5rem 1rem;border-radius:999px;border:1px solid var(--border-strong);background:var(--card);color:var(--ink-2);font-family:var(--font-ui);font-size:.85rem;cursor:pointer;min-height:40px;transition:all .15s}.appt-pill-essayage.active{background:var(--gold-soft);border-color:var(--gold);color:var(--ink-2);font-weight:600}.appt-pill-retrait.active{background:var(--st-avail-bg);border-color:var(--st-avail);color:var(--st-avail);font-weight:600}.appt-pill-retour.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-2);font-weight:600}.appt-pill-autre.active{background:var(--canvas);border-color:var(--faint);color:var(--muted);font-weight:600}.appt-pill-confirmed.active{background:var(--st-avail-bg);border-color:var(--st-avail);color:var(--st-avail);font-weight:600}.appt-pill-pending.active{background:var(--st-rented-bg);border-color:var(--st-rented);color:var(--st-rented);font-weight:600}.appt-datetime-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.appt-error{margin:1rem 0;padding:.75rem .875rem;background:var(--accent-soft);color:var(--accent);border-radius:8px;font-size:.85rem}.appt-form-footer{margin-top:1.5rem}.btn-submit-appt{width:100%;height:52px;background:var(--accent);color:#fff;border:none;border-radius:12px;font-family:var(--font-ui);font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s,opacity .15s}.btn-submit-appt:disabled{opacity:.45;cursor:default}.btn-submit-appt:not(:disabled):active{background:var(--accent-2)}.appt-detail-page{min-height:100%;background:var(--bg);font-family:var(--font-ui);padding-bottom:3rem}.appt-detail-loading{padding:3rem;text-align:center;color:var(--muted);font-family:var(--font-ui)}.appt-detail-error-page{padding:3rem 1rem;text-align:center;color:var(--accent);font-family:var(--font-ui)}.appt-detail-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:10}.btn-back-appt-detail{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border);background:var(--card);color:var(--ink-2);cursor:pointer}.appt-detail-header-actions{display:flex;gap:.5rem}.btn-icon-appt{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border);background:var(--card);color:var(--ink-2);cursor:pointer}.btn-icon-appt.danger{border-color:var(--accent-soft-2);color:var(--accent)}.btn-icon-appt.danger:active{background:var(--accent-soft)}.appt-detail-body{padding:1.25rem 1rem 1rem}.appt-detail-badges{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.25rem}.appt-motif-badge{font-size:.78rem;font-weight:700;padding:.3rem .75rem;border-radius:999px}.appt-status-badge{font-size:.78rem;font-weight:600;padding:.3rem .75rem;border-radius:999px}.appt-status-confirmed{background:var(--st-avail-bg);color:var(--st-avail)}.appt-status-pending{background:var(--st-rented-bg);color:var(--st-rented)}.appt-status-cancelled{background:var(--canvas);color:var(--muted)}.appt-detail-datetime-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1rem 1.25rem;margin-bottom:1rem;display:flex;flex-direction:column;gap:.4rem}.appt-detail-date-label{font-size:.88rem;color:var(--ink-2);font-weight:500;text-transform:capitalize}.appt-detail-time-row{display:flex;align-items:baseline;gap:.75rem}.appt-detail-time{font-family:var(--font-mono);font-size:1.6rem;font-weight:700;color:var(--ink)}.appt-detail-duration{font-size:.82rem;color:var(--muted)}.appt-detail-section{margin-top:1.25rem}.appt-detail-section-title{font-size:.7rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:0 0 .6rem}.appt-detail-info-row{display:flex;align-items:flex-start;gap:.625rem;padding:.875rem;background:var(--card);border:1px solid var(--border);border-radius:12px;color:var(--muted)}.appt-detail-info-main{display:flex;flex-direction:column;gap:.15rem}.appt-detail-info-name{font-size:.95rem;font-weight:600;color:var(--ink)}.appt-detail-info-sub{font-size:.82rem;color:var(--muted)}.appt-robe-link{display:flex;align-items:center;gap:.625rem;padding:.875rem;background:var(--card);border:1px solid var(--border);border-radius:12px;text-decoration:none;color:var(--muted)}.appt-robe-link:active{background:var(--surface)}.appt-robe-link-name{flex:1;font-size:.95rem;font-weight:600;color:var(--ink)}.appt-detail-notes{margin:0;padding:.875rem;background:var(--card);border:1px solid var(--border);border-radius:12px;font-size:.9rem;color:var(--ink-2);line-height:1.6;white-space:pre-wrap}.appt-detail-error-inline{margin:1rem 0;padding:.75rem;background:var(--accent-soft);color:var(--accent);border-radius:8px;font-size:.85rem}.appt-detail-actions{margin-top:2rem}.btn-action-cancel-appt{width:100%;height:48px;border-radius:12px;border:1px solid var(--accent-soft-2);background:var(--accent-soft);color:var(--accent);font-family:var(--font-ui);font-size:.9rem;font-weight:600;cursor:pointer;transition:opacity .15s}.btn-action-cancel-appt:disabled{opacity:.45;cursor:default}.appt-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:100;display:flex;align-items:flex-end}.appt-modal{width:100%;background:var(--card);border-radius:20px 20px 0 0;padding:1.5rem 1rem calc(1.5rem + env(safe-area-inset-bottom,0px))}.appt-modal-msg{font-size:.95rem;color:var(--ink);text-align:center;margin:0 0 1.25rem;line-height:1.5}.appt-modal-actions{display:flex;gap:.75rem}.btn-modal-cancel-appt{flex:1;height:48px;border-radius:10px;border:1px solid var(--border-strong);background:var(--card);color:var(--ink-2);font-family:var(--font-ui);font-size:.9rem;cursor:pointer}.btn-modal-confirm-appt{flex:1;height:48px;border-radius:10px;border:none;background:var(--canvas);color:var(--ink-2);font-family:var(--font-ui);font-size:.9rem;font-weight:600;cursor:pointer}.btn-modal-confirm-appt.danger{background:var(--accent);color:#fff}.cliente-list-page{padding:0 0 1rem}.cliente-list-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1rem .75rem;position:sticky;top:0;background:var(--bg);z-index:10}.cliente-list-header h1{font-family:var(--font-display);font-size:1.75rem;font-weight:600;color:var(--ink)}.btn-fab{width:44px;height:44px;border-radius:50%;background:var(--accent);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 12px #923c4e59;transition:background .15s,transform .1s;flex-shrink:0}.btn-fab:active{transform:scale(.94)}.btn-fab svg{width:20px;height:20px}.cliente-list-controls{padding:0 1rem;display:flex;flex-direction:column;gap:.625rem;margin-bottom:.75rem}.search-wrap{position:relative}.search-icon{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--muted);pointer-events:none}.search-input{width:100%;padding:.7rem 1rem .7rem 2.5rem;border:1.5px solid var(--border-strong);border-radius:10px;background:var(--card);color:var(--ink);font-family:var(--font-ui);font-size:.9375rem;outline:none;-webkit-appearance:none;box-sizing:border-box}.search-input:focus{border-color:var(--accent)}.search-input::placeholder{color:var(--faint)}.sort-tabs{display:flex;gap:.5rem}.sort-tab{flex-shrink:0;padding:.4rem .875rem;border-radius:20px;border:1.5px solid var(--border-strong);background:var(--card);color:var(--muted);font-family:var(--font-ui);font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .15s;white-space:nowrap}.sort-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.cliente-list{display:flex;flex-direction:column;gap:0;padding:0 1rem}.cliente-row{display:flex;align-items:center;gap:.875rem;padding:.875rem 0;border:none;background:transparent;cursor:pointer;text-align:left;width:100%;border-bottom:1px solid var(--border);-webkit-tap-highlight-color:transparent;min-height:64px}.cliente-row:last-child{border-bottom:none}.cliente-row:active{background:var(--canvas);margin:0 -.5rem;padding-left:.5rem;padding-right:.5rem;border-radius:10px}.cliente-avatar{border-radius:50%;object-fit:cover;flex-shrink:0}.cliente-avatar-initiales{background:var(--accent-soft);color:var(--accent);font-family:var(--font-ui);font-size:.9375rem;font-weight:700;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.cliente-row-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.cliente-row-name{font-family:var(--font-ui);font-size:.9375rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cliente-row-phone{font-family:var(--font-ui);font-size:.8125rem;color:var(--muted)}.cliente-row-stats{display:flex;flex-direction:column;align-items:flex-end;gap:.125rem;flex-shrink:0}.cliente-row-locations{font-family:var(--font-ui);font-size:.75rem;color:var(--muted);white-space:nowrap}.cliente-row-total{font-family:var(--font-mono);font-size:.875rem;font-weight:600;color:var(--accent);white-space:nowrap}.cliente-row-chevron{width:16px;height:16px;color:var(--faint);flex-shrink:0}.cliente-list-state{text-align:center;color:var(--muted);font-family:var(--font-ui);font-size:.9375rem;padding:3rem 1rem}.cliente-list-state.error{color:var(--accent);background:var(--accent-soft);margin:0 1rem;border-radius:10px;padding:1.25rem 1rem}.cliente-count{text-align:center;font-family:var(--font-ui);font-size:.8125rem;color:var(--faint);padding:.75rem 0 0}.cliente-detail-page{min-height:100vh;background:var(--bg);padding-bottom:2rem}.cliente-detail-loading,.cliente-detail-error-page{text-align:center;padding:4rem 1rem;font-family:var(--font-ui);font-size:.9375rem;color:var(--muted)}.cliente-detail-header{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem;position:sticky;top:0;background:var(--bg);z-index:10}.cliente-detail-header-actions{display:flex;gap:.5rem}.btn-icon{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--border-strong);background:var(--card);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s}.btn-icon.danger{color:var(--accent);border-color:var(--accent-soft-2)}.btn-icon:disabled{opacity:.4;cursor:not-allowed}.cliente-detail-body{padding:0 1rem;display:flex;flex-direction:column;gap:1.25rem}.cliente-detail-profile{display:flex;align-items:center;gap:1.25rem;padding:.5rem 0 .25rem}.cliente-detail-avatar-wrap{flex-shrink:0}.cliente-detail-avatar{width:80px;height:80px;border-radius:50%;object-fit:cover;border:3px solid var(--accent-soft)}.cliente-detail-avatar.initiales{background:var(--accent-soft);color:var(--accent);font-family:var(--font-ui);font-size:1.625rem;font-weight:700;display:flex;align-items:center;justify-content:center;border:3px solid var(--accent-soft);border-radius:50%;width:80px;height:80px}.cliente-detail-identity{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.cliente-detail-name{font-family:var(--font-display);font-size:1.5rem;font-weight:600;color:var(--ink);line-height:1.2}.cliente-detail-phone,.cliente-detail-email{font-family:var(--font-ui);font-size:.9375rem;color:var(--accent);text-decoration:none}.cliente-detail-phone:active,.cliente-detail-email:active{opacity:.7}.cliente-stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.625rem}.cliente-stat-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:.875rem .625rem;display:flex;flex-direction:column;align-items:center;gap:.25rem}.cliente-stat-value{font-family:var(--font-ui);font-size:1.125rem;font-weight:700;color:var(--ink);text-align:center;line-height:1.2}.cliente-stat-value.mono{font-family:var(--font-mono);font-size:.9375rem;color:var(--accent)}.cliente-stat-label{font-family:var(--font-ui);font-size:.6875rem;color:var(--muted);text-align:center;text-transform:uppercase;letter-spacing:.04em;font-weight:600}.cliente-detail-section{display:flex;flex-direction:column;gap:.75rem}.cliente-detail-section-title{font-family:var(--font-ui);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);display:flex;align-items:center;gap:.5rem}.cliente-section-count{background:var(--bone);color:var(--muted);font-size:.6875rem;font-weight:700;border-radius:10px;padding:.1rem .45rem}.cliente-section-empty{font-family:var(--font-ui);font-size:.875rem;color:var(--faint);padding:.25rem 0}.cliente-detail-notes{font-family:var(--font-ui);font-size:.9375rem;color:var(--ink-2);line-height:1.6;background:var(--surface);border-radius:10px;padding:.875rem 1rem;white-space:pre-wrap}.cliente-detail-quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:.625rem}.btn-quick-action{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem .75rem;border-radius:12px;border:1.5px solid var(--border-strong);background:var(--card);color:var(--ink);font-family:var(--font-ui);font-size:.875rem;font-weight:600;cursor:pointer;min-height:52px;transition:background .15s,transform .1s}.btn-quick-action:active{transform:scale(.97)}.btn-quick-action.accent{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 2px 10px #923c4e47}.cliente-history-list{display:flex;flex-direction:column;gap:0;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--card)}.cliente-history-card{display:flex;align-items:center;gap:.875rem;padding:.875rem 1rem;text-decoration:none;border-bottom:1px solid var(--border);transition:background .1s}.cliente-history-card:last-child{border-bottom:none}.cliente-history-card:active{background:var(--surface)}.cliente-history-robe-img{width:44px;height:56px;border-radius:8px;overflow:hidden;background:var(--canvas);flex-shrink:0}.cliente-history-robe-img img{width:100%;height:100%;object-fit:cover;display:block}.cliente-history-robe-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--faint)}.cliente-history-robe-placeholder svg{width:20px;height:20px}.cliente-history-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.cliente-history-robe-name{font-family:var(--font-ui);font-size:.875rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cliente-history-dates{font-family:var(--font-ui);font-size:.75rem;color:var(--muted)}.cliente-res-status{display:inline-block;font-family:var(--font-ui);font-size:.6875rem;font-weight:700;padding:.15rem .45rem;border-radius:8px;width:fit-content}.cliente-res-status-confirmed{background:var(--st-avail-bg);color:var(--st-avail)}.cliente-res-status-ongoing{background:var(--st-rented-bg);color:var(--st-rented)}.cliente-res-status-completed{background:var(--canvas);color:var(--muted)}.cliente-res-status-cancelled{background:var(--bone);color:var(--faint);text-decoration:line-through}.cliente-history-amount-col{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;flex-shrink:0}.cliente-history-amount{font-family:var(--font-mono);font-size:.9375rem;font-weight:700;color:var(--ink)}.cliente-payment-status{font-family:var(--font-ui);font-size:.6875rem;font-weight:700;padding:.15rem .45rem;border-radius:8px}.cliente-payment-paid{background:var(--st-avail-bg);color:var(--st-avail)}.cliente-payment-pending{background:var(--gold-soft);color:var(--gold)}.cliente-rdv-card{display:flex;align-items:center;gap:.875rem;padding:.875rem 1rem;text-decoration:none;border-bottom:1px solid var(--border);transition:background .1s}.cliente-rdv-card:last-child{border-bottom:none}.cliente-rdv-card:active{background:var(--surface)}.cliente-rdv-date{display:flex;flex-direction:column;align-items:center;width:44px;flex-shrink:0;gap:.1rem}.cliente-rdv-day{font-family:var(--font-ui);font-size:.875rem;font-weight:700;color:var(--ink);text-align:center;white-space:nowrap}.cliente-rdv-time{font-family:var(--font-mono);font-size:.75rem;color:var(--muted)}.cliente-rdv-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.cliente-rdv-motif{display:inline-block;font-family:var(--font-ui);font-size:.75rem;font-weight:700;padding:.15rem .5rem;border-radius:8px;width:fit-content}.cliente-rdv-robe{font-family:var(--font-ui);font-size:.8125rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cliente-detail-error-inline{background:var(--accent-soft);color:var(--accent);font-family:var(--font-ui);font-size:.875rem;padding:.875rem 1rem;border-radius:10px}.cliente-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#241a1880;display:flex;align-items:flex-end;justify-content:center;z-index:200;padding:0 0 env(safe-area-inset-bottom,0)}.cliente-modal{background:var(--card);border-radius:20px 20px 0 0;padding:1.5rem 1.25rem 2rem;width:100%;max-width:480px}.cliente-modal-msg{font-family:var(--font-ui);font-size:1rem;color:var(--ink);margin-bottom:1.25rem;line-height:1.5}.cliente-modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.btn-modal-cancel{padding:.875rem;border-radius:12px;border:1.5px solid var(--border-strong);background:var(--card);color:var(--ink);font-family:var(--font-ui);font-size:.9375rem;font-weight:600;cursor:pointer;min-height:52px}.btn-modal-confirm{padding:.875rem;border-radius:12px;border:none;background:var(--accent);color:#fff;font-family:var(--font-ui);font-size:.9375rem;font-weight:600;cursor:pointer;min-height:52px}.cliente-form-page{min-height:100vh;background:var(--bg);padding-bottom:2rem}.cliente-form-loading{text-align:center;padding:4rem 1rem;font-family:var(--font-ui);color:var(--muted)}.cliente-form-header{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem;position:sticky;top:0;background:var(--bg);z-index:10}.btn-back{width:40px;height:40px;border-radius:50%;border:1.5px solid var(--border-strong);background:var(--card);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer}.btn-back:disabled{opacity:.4;cursor:not-allowed}.cliente-form-title{font-family:var(--font-display);font-size:1.25rem;font-weight:600;color:var(--ink)}.cliente-form-body{padding:0 1rem;display:flex;flex-direction:column;gap:1.5rem}.cliente-form-photo-section{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding-top:.5rem}.cliente-form-avatar-wrap{position:relative}.cliente-form-avatar{width:96px;height:96px;border-radius:50%;object-fit:cover;border:3px solid var(--accent-soft)}.cliente-form-avatar.initiales{width:96px;height:96px;border-radius:50%;border:3px solid var(--accent-soft);background:var(--accent-soft);color:var(--accent);font-family:var(--font-ui);font-size:2rem;font-weight:700;display:flex;align-items:center;justify-content:center}.btn-change-photo{position:absolute;bottom:0;right:0;width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;border:2px solid var(--bg);display:flex;align-items:center;justify-content:center;cursor:pointer}.btn-change-photo:disabled{opacity:.4;cursor:not-allowed}.btn-remove-photo{font-family:var(--font-ui);font-size:.8125rem;color:var(--accent);background:none;border:none;cursor:pointer;text-decoration:underline;padding:0}.cliente-upload-progress{background:var(--canvas);border-radius:8px;height:28px;position:relative;overflow:hidden;border:1px solid var(--border)}.cliente-upload-bar{height:100%;background:var(--accent);transition:width .2s ease;border-radius:8px}.cliente-upload-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-family:var(--font-ui);font-size:.75rem;font-weight:700;color:var(--ink)}.cliente-form-fields{display:flex;flex-direction:column;gap:1rem}.form-field{display:flex;flex-direction:column;gap:.375rem}.form-label{font-family:var(--font-ui);font-size:.8125rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.form-input,.form-textarea{width:100%;padding:.875rem 1rem;border:1.5px solid var(--border-strong);border-radius:12px;background:var(--card);color:var(--ink);font-family:var(--font-ui);font-size:1rem;outline:none;-webkit-appearance:none;box-sizing:border-box;transition:border-color .15s}.form-input:focus,.form-textarea:focus{border-color:var(--accent)}.form-input::placeholder,.form-textarea::placeholder{color:var(--faint)}.form-input:disabled,.form-textarea:disabled{opacity:.6}.form-textarea{resize:vertical;min-height:100px;line-height:1.5}.cliente-form-error{background:var(--accent-soft);color:var(--accent);font-family:var(--font-ui);font-size:.875rem;padding:.875rem 1rem;border-radius:10px}.btn-submit{width:100%;padding:1rem;border-radius:14px;border:none;background:var(--accent);color:#fff;font-family:var(--font-ui);font-size:1rem;font-weight:700;cursor:pointer;min-height:56px;box-shadow:0 2px 14px #923c4e4d;transition:transform .1s,opacity .15s}.btn-submit:active{transform:scale(.98)}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.finance-page{min-height:100%;background:var(--bg);font-family:var(--font-ui);padding-bottom:5rem}.finance-header{padding:1.25rem 1rem 0;border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:10}.finance-title{font-family:var(--font-display);font-size:1.6rem;color:var(--ink);margin:0 0 .875rem;font-weight:400}.finance-tabs{display:flex;gap:0}.finance-tab{flex:1;padding:.6rem 0;background:transparent;border:none;border-bottom:2px solid transparent;font-family:var(--font-ui);font-size:.88rem;font-weight:600;color:var(--muted);cursor:pointer;transition:color .15s,border-color .15s}.finance-tab.is-active{color:var(--accent);border-bottom-color:var(--accent)}.finance-month-nav{display:flex;align-items:center;justify-content:center;gap:1rem;padding:.875rem 1rem}.finance-month-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border);background:var(--card);color:var(--ink-2);cursor:pointer}.finance-month-btn:active{background:var(--canvas)}.finance-month-label{font-size:.95rem;font-weight:600;color:var(--ink);text-transform:capitalize;min-width:130px;text-align:center}.finance-summary-card{margin:0 1rem 1rem;background:var(--card);border:1px solid var(--border);border-radius:14px;display:flex;overflow:hidden;box-shadow:0 1px 4px #0000000f}.finance-summary-item{flex:1;display:flex;flex-direction:column;align-items:center;padding:.875rem .5rem;gap:.3rem}.finance-summary-divider{width:1px;background:var(--border);align-self:stretch;margin:.75rem 0}.finance-summary-label{font-size:.65rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.finance-summary-value{font-family:var(--font-display);font-size:1rem;font-weight:600}.finance-summary-value.is-in{color:var(--st-avail)}.finance-summary-value.is-out{color:var(--accent)}.finance-summary-value.is-net.positive{color:var(--st-avail)}.finance-summary-value.is-net.negative{color:var(--accent)}.finance-filter-strip{display:flex;gap:.5rem;padding:0 1rem .875rem}.finance-filter-btn{padding:.4rem .875rem;border-radius:999px;border:1px solid var(--border-strong);background:var(--card);color:var(--muted);font-family:var(--font-ui);font-size:.8rem;font-weight:600;cursor:pointer;min-height:34px;transition:all .15s}.finance-filter-btn.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.finance-txn-list{display:flex;flex-direction:column;margin:0 1rem;background:var(--card);border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:0 1px 4px #0000000f}.finance-txn-row{display:flex;align-items:center;gap:.75rem;padding:.75rem .875rem;border-bottom:1px solid var(--border);background:transparent;min-height:56px}.finance-txn-row:last-child{border-bottom:none}.finance-txn-row.is-linked{background:var(--surface)}.finance-txn-icon{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.finance-txn-icon.is-in{background:var(--st-avail-bg);color:var(--st-avail)}.finance-txn-icon.is-out{background:var(--accent-soft);color:var(--accent)}.finance-txn-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.2rem}.finance-txn-label{font-size:.88rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.finance-txn-meta{display:flex;flex-wrap:wrap;gap:.35rem;align-items:center}.finance-txn-cat{font-size:.68rem;color:var(--muted);font-weight:500}.finance-txn-pm{font-size:.65rem;font-weight:600;color:var(--faint);text-transform:uppercase;letter-spacing:.04em}.finance-txn-badge{font-size:.6rem;font-weight:700;padding:.1rem .4rem;border-radius:999px;background:var(--gold-soft);color:var(--gold);text-transform:uppercase;letter-spacing:.04em}.finance-txn-right{display:flex;flex-direction:column;align-items:flex-end;gap:.15rem;flex-shrink:0}.finance-txn-amount{font-family:var(--font-mono);font-size:.9rem;font-weight:700}.finance-txn-amount.is-in{color:var(--st-avail)}.finance-txn-amount.is-out{color:var(--accent)}.finance-txn-date{font-size:.68rem;color:var(--muted);font-weight:500}.finance-txn-actions{display:flex;gap:.25rem;margin-top:.15rem}.finance-txn-action-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer}.finance-txn-action-btn.is-delete{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-soft-2)}.finance-loans-panel{padding:1rem;display:flex;flex-direction:column;gap:.75rem}.finance-loan-row{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:0 1px 4px #0000000f;cursor:pointer;text-align:left;width:100%}.finance-loan-row:active{background:var(--canvas)}.finance-loan-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.35rem}.finance-loan-top{display:flex;align-items:center;gap:.5rem}.finance-loan-lender{font-size:.95rem;font-weight:700;color:var(--ink)}.finance-loan-done-badge{font-size:.6rem;font-weight:700;padding:.1rem .4rem;border-radius:999px;background:var(--st-avail-bg);color:var(--st-avail);text-transform:uppercase;letter-spacing:.04em}.finance-loan-amounts{display:flex;gap:.5rem;align-items:baseline;flex-wrap:wrap}.finance-loan-initial{font-family:var(--font-mono);font-size:.82rem;color:var(--ink-2)}.finance-loan-remaining{font-family:var(--font-mono);font-size:.78rem;font-weight:700;color:var(--accent)}.finance-loan-track{height:6px;background:var(--accent-soft);border-radius:999px;overflow:hidden}.finance-loan-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .3s ease}.finance-empty{text-align:center;color:var(--muted);font-size:.9rem;padding:2.5rem 1rem}.finance-fab{position:fixed;bottom:calc(64px + 1.25rem);right:1.25rem;width:52px;height:52px;border-radius:50%;background:var(--accent);color:#fff;border:none;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #923c4e59;cursor:pointer;z-index:20;transition:transform .15s,box-shadow .15s}.finance-fab:active{transform:scale(.94);box-shadow:0 2px 8px #923c4e4d}.finance-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#241a1873;display:flex;align-items:flex-end;justify-content:center;z-index:100;padding:0 0 env(safe-area-inset-bottom,0)}.finance-modal{background:var(--card);border-radius:20px 20px 0 0;padding:1.5rem 1.25rem calc(1.5rem + env(safe-area-inset-bottom,0));width:100%;max-width:500px}.finance-modal-title{font-family:var(--font-display);font-size:1.15rem;font-weight:400;color:var(--ink);margin:0 0 1.25rem}.finance-modal-field{margin-bottom:1rem}.finance-modal-label{display:block;font-size:.78rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.4rem}.finance-modal-input{width:100%;height:48px;padding:0 .875rem;border:1px solid var(--border-strong);border-radius:10px;background:var(--bg);color:var(--ink);font-family:var(--font-ui);font-size:.95rem;box-sizing:border-box}.finance-modal-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.finance-modal-error{font-size:.82rem;color:var(--accent);margin:-.25rem 0 .75rem}.finance-modal-actions{display:flex;gap:.75rem;margin-top:1.25rem}.finance-modal-cancel{flex:1;height:48px;border-radius:10px;border:1px solid var(--border-strong);background:var(--bg);color:var(--muted);font-family:var(--font-ui);font-size:.9rem;font-weight:600;cursor:pointer}.finance-modal-save{flex:2;height:48px;border-radius:10px;border:none;background:var(--accent);color:#fff;font-family:var(--font-ui);font-size:.9rem;font-weight:600;cursor:pointer}.finance-modal-save:disabled{opacity:.5;cursor:default}.txn-form-page{min-height:100%;background:var(--bg);font-family:var(--font-ui);padding-bottom:2rem}.txn-form-loading{padding:3rem;text-align:center;color:var(--muted)}.txn-form-header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:10}.txn-form-back{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border);background:var(--card);color:var(--ink-2);cursor:pointer;flex-shrink:0}.txn-form-title{font-family:var(--font-display);font-size:1.05rem;color:var(--ink);margin:0;font-weight:400}.txn-form-body{padding:0 1rem}.txn-section{margin-top:1.5rem}.txn-section-label{display:block;font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.65rem}.txn-input{width:100%;height:48px;padding:0 .875rem;border:1px solid var(--border-strong);border-radius:10px;background:var(--card);color:var(--ink);font-family:var(--font-ui);font-size:.95rem;box-sizing:border-box;-moz-appearance:none;appearance:none;-webkit-appearance:none}.txn-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.txn-input-mono{font-family:var(--font-mono);font-size:1.05rem}.txn-select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23806C66' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;padding-right:2.5rem}.txn-toggle{display:flex;background:var(--canvas);border-radius:12px;padding:3px;gap:3px}.txn-toggle-btn{flex:1;height:44px;border-radius:9px;border:none;background:transparent;font-family:var(--font-ui);font-size:.9rem;font-weight:600;color:var(--muted);cursor:pointer;transition:all .15s}.txn-toggle-btn.is-in.active{background:var(--st-avail-bg);color:var(--st-avail)}.txn-toggle-btn.is-out.active{background:var(--accent-soft);color:var(--accent)}.txn-pills{display:flex;flex-wrap:wrap;gap:.5rem}.txn-pill{padding:.45rem .875rem;border-radius:999px;border:1px solid var(--border-strong);background:var(--card);color:var(--ink-2);font-family:var(--font-ui);font-size:.85rem;cursor:pointer;min-height:40px;transition:all .15s}.txn-pill.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.txn-error{margin:1.25rem 0 0;padding:.75rem .875rem;background:var(--accent-soft);color:var(--accent);border-radius:8px;font-size:.85rem}.txn-form-footer{margin-top:2rem;display:flex;flex-direction:column;gap:.75rem}.txn-btn-submit{width:100%;height:52px;background:var(--accent);color:#fff;border:none;border-radius:12px;font-family:var(--font-ui);font-size:1rem;font-weight:600;cursor:pointer;transition:background .15s,opacity .15s}.txn-btn-submit:disabled{opacity:.45;cursor:default}.txn-btn-submit:not(:disabled):active{background:var(--accent-2)}.txn-btn-delete{width:100%;height:48px;background:transparent;color:var(--accent);border:1px solid var(--accent-soft-2);border-radius:12px;font-family:var(--font-ui);font-size:.9rem;font-weight:600;cursor:pointer}:root{--bg: #F7EFEA;--canvas: #EEE2DA;--card: #FFFFFF;--surface: #FCF4EE;--bone: #EFE0D4;--ink: #241A18;--ink-2: #3F302D;--muted: #806C66;--faint: #B7A29A;--border: #EAD9CD;--border-strong: #D8C2B0;--accent: #923C4E;--accent-2: #6E2638;--accent-soft: #F4DFE2;--accent-soft-2: #E8C3C9;--gold: #C49A7F;--gold-soft: #EFE3D0;--st-avail: #6F8F6E;--st-avail-bg: #E4ECDF;--st-rented: #B8956A;--st-rented-bg: #F2E7D2;--st-cleaning: #6F7B86;--st-cleaning-bg: #E0E5EA;--st-retired: #A89D8D;--st-retired-bg: #EAE3D7;--font-display: "Playfair Display", serif;--font-ui: "Manrope", -apple-system, system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace}.loan-detail-page{min-height:100%;background:var(--bg);font-family:var(--font-ui);padding-bottom:3rem}.loan-detail-loading{padding:3rem;text-align:center;color:var(--muted)}.loan-detail-header{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:10}.loan-detail-back{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border);background:var(--card);color:var(--ink-2);cursor:pointer;flex-shrink:0}.loan-detail-title{font-family:var(--font-display);font-size:1.05rem;color:var(--ink);margin:0;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.loan-detail-error{padding:2rem 1rem;color:var(--accent);text-align:center}.loan-detail-body{padding:1rem;display:flex;flex-direction:column;gap:1rem}.loan-info-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1rem;box-shadow:0 1px 4px #0000000f}.loan-info-top{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1rem}.loan-info-row{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.loan-info-key{font-size:.82rem;color:var(--muted);font-weight:500}.loan-info-val{font-size:.9rem;font-weight:700;color:var(--ink)}.loan-info-val.mono{font-family:var(--font-mono)}.loan-info-val.is-remaining{color:var(--accent)}.loan-info-val.is-done{color:var(--st-avail)}.loan-progress-track{height:8px;background:var(--accent-soft);border-radius:999px;overflow:hidden;margin-bottom:.5rem}.loan-progress-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .4s ease}.loan-done-label{font-size:.78rem;font-weight:700;color:var(--st-avail);text-align:center;margin:.25rem 0 0}.loan-payments-section{display:flex;flex-direction:column;gap:.5rem}.loan-payments-title{font-family:var(--font-display);font-size:1rem;font-weight:400;color:var(--ink-2);margin:0}.loan-payments-empty{font-size:.85rem;color:var(--muted);text-align:center;padding:1rem 0}.loan-payments-list{background:var(--card);border:1px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:0 1px 4px #0000000f}.loan-payment-row{display:flex;align-items:center;gap:.75rem;padding:.75rem .875rem;border-bottom:1px solid var(--border);min-height:56px}.loan-payment-row:last-child{border-bottom:none}.loan-payment-body{flex:1;display:flex;flex-direction:column;gap:.15rem}.loan-payment-amount{font-family:var(--font-mono);font-size:.95rem;font-weight:700;color:var(--accent)}.loan-payment-date{font-size:.78rem;color:var(--muted)}.loan-payment-notes{font-size:.78rem;color:var(--ink-2);font-style:italic}.loan-payment-delete{width:34px;height:34px;display:flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--accent-soft-2);background:var(--accent-soft);color:var(--accent);cursor:pointer;flex-shrink:0}.loan-pay-form{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1rem;box-shadow:0 1px 4px #0000000f;display:flex;flex-direction:column;gap:0}.loan-pay-form-title{font-family:var(--font-display);font-size:.95rem;font-weight:400;color:var(--ink-2);margin:0 0 1rem}.loan-pay-field{margin-bottom:.875rem}.loan-pay-label{display:block;font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.4rem}.loan-pay-input{width:100%;height:48px;padding:0 .875rem;border:1px solid var(--border-strong);border-radius:10px;background:var(--bg);color:var(--ink);font-family:var(--font-ui);font-size:.95rem;box-sizing:border-box;-moz-appearance:none;appearance:none;-webkit-appearance:none}.loan-pay-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.loan-pay-input-mono{font-family:var(--font-mono);font-size:1.05rem}.loan-pay-error{font-size:.82rem;color:var(--accent);margin:0 0 .5rem}.loan-pay-actions{display:flex;gap:.75rem;margin-top:.25rem}.loan-pay-cancel{flex:1;height:48px;border-radius:10px;border:1px solid var(--border-strong);background:var(--bg);color:var(--muted);font-family:var(--font-ui);font-size:.9rem;font-weight:600;cursor:pointer}.loan-pay-save{flex:2;height:48px;border-radius:10px;border:none;background:var(--accent);color:#fff;font-family:var(--font-ui);font-size:.9rem;font-weight:600;cursor:pointer}.loan-pay-save:disabled{opacity:.45;cursor:default}.loan-add-payment-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;height:52px;border-radius:12px;border:1.5px dashed var(--border-strong);background:transparent;color:var(--accent);font-family:var(--font-ui);font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s}.loan-add-payment-btn:active{background:var(--accent-soft)}.loan-danger-zone{margin-top:.5rem;padding-top:1rem;border-top:1px solid var(--border)}.loan-delete-btn{width:100%;height:48px;border-radius:12px;border:1px solid var(--accent-soft-2);background:transparent;color:var(--accent);font-family:var(--font-ui);font-size:.9rem;font-weight:600;cursor:pointer}.loan-delete-btn:active{background:var(--accent-soft)}
