@import"https://fonts.googleapis.com/css2?family=Aleo:ital,wght@0,400;0,500;0,600;0,700;0,800&family=PT+Sans:ital,wght@0,400;0,700;1,400;1,700&family=Luckiest+Guy&display=swap";:root{--c-forest: #5B9A42;--c-forest-deep: #3F7A2B;--c-forest-tint: #EDF4E7;--c-brown: #422C18;--c-brown-soft: #6B4A30;--c-sand: #A5958C;--c-sand-soft: #D9D0CA;--c-sand-pale: #F2EDE9;--c-redsand: #C84B23;--c-redsand-deep: #9A3517;--c-redsand-tint: #F6E2D8;--c-white: #FFFFFF;--c-paper: #FBF9F6;--c-line: #E7DFD7;--c-ink: #1F140A;--c-muted: #8A7A6F;--c-success: #5B9A42;--c-warning: #D4912E;--c-danger: #B23A1F;--c-info: #3F7A88;--focus-ring: 0 0 0 3px rgba(91,154,66,.35);--font-display: "Luckiest Guy", "Bungee", "Anton", system-ui, sans-serif;--font-heading: "Aleo", "Source Serif Pro", Georgia, "Times New Roman", serif;--font-body: "PT Sans", "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", "Menlo", "Consolas", monospace;--tracking-eyebrow: .18em;--r-xs: 3px;--r-sm: 6px;--r-md: 10px;--r-lg: 16px;--r-pill: 999px;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-fast: .14s;--dur-base: .22s;--app-bg: #FBF9F6;--app-card: #FFFFFF;--app-panel: #F2EDE9;--app-text: #422C18;--app-text2: #6B4A30;--app-muted: #8A7A6F;--app-line: #E7DFD7;--app-band: #422C18;--app-nav: rgba(251,249,246,.92);--app-input: #FFFFFF;--app-shadow: 0 1px 2px rgba(31,20,10,.06), 0 1px 0 rgba(31,20,10,.04);--app-shadow2: 0 6px 18px rgba(31,20,10,.1), 0 1px 3px rgba(31,20,10,.06);--app-accent: var(--c-forest-deep)}.theme-dark{--app-bg: #18120C;--app-card: #241B12;--app-panel: #2C2117;--app-text: #F4EFE8;--app-text2: #D9CFC4;--app-muted: #A99A8C;--app-line: rgba(255,255,255,.1);--app-band: #0E0A06;--app-nav: rgba(20,15,10,.94);--app-input: #2C2117;--app-shadow: 0 1px 2px rgba(0,0,0,.4);--app-shadow2: 0 8px 22px rgba(0,0,0,.5);--app-accent: #8FCB74}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;height:100%}html{background:var(--app-bg)}body{background:var(--app-bg);color:var(--app-text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior-y:none}:root{--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}.numeric{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.app{min-height:100vh;background:var(--app-bg);color:var(--app-text);padding-bottom:calc(96px + var(--safe-bottom));transition:background var(--dur-base) var(--ease-out);overflow-x:clip}.content,.sheet-scroll{max-width:100%}.topbar{position:sticky;top:0;z-index:30;padding:calc(var(--safe-top) + 12px) 18px 10px;background:var(--app-nav);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--app-line);display:flex;align-items:center;justify-content:space-between;gap:12px}.topbar .brand{display:flex;align-items:center;gap:9px;min-width:0}.topbar .dish{width:26px;height:26px;color:var(--c-forest);flex:none}.topbar .brand-name{font-family:var(--font-display);font-size:19px;letter-spacing:.03em;color:var(--app-text);line-height:1;padding-top:4px;white-space:nowrap}.iconbtn{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:38px;height:38px;border-radius:var(--r-pill);background:var(--app-card);border:1px solid var(--app-line);color:var(--app-text);display:grid;place-items:center;box-shadow:var(--app-shadow);flex:none;transition:transform var(--dur-fast) var(--ease-out)}.iconbtn:active{transform:scale(.92)}.content{padding:14px 18px 20px}.tabbar{position:fixed;bottom:0;left:0;right:0;z-index:40;display:grid;grid-template-columns:repeat(4,1fr);background:var(--app-nav);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--app-line);padding-bottom:var(--safe-bottom)}.tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:none;color:var(--app-muted);padding:10px 0 9px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10px;font-weight:700;font-family:var(--font-body);transition:color var(--dur-fast) var(--ease-out)}.tab svg{width:23px;height:23px}.tab.active{color:var(--app-accent)}.section-label{font:700 11px/1 var(--font-body);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--app-accent);margin:22px 2px 10px}.section-label:first-child{margin-top:4px}.section-label.muted-eye{color:var(--app-muted)}.card{background:var(--app-card);border:1px solid var(--app-line);border-radius:var(--r-lg);box-shadow:var(--app-shadow);padding:16px}.card+.card{margin-top:14px}.row{display:flex;align-items:center;gap:10px}.spread{display:flex;align-items:center;justify-content:space-between;gap:10px}.muted,.faint{color:var(--app-muted)}.small{font-size:13px}.stats{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stat{background:var(--app-card);border:1px solid var(--app-line);border-radius:var(--r-lg);box-shadow:var(--app-shadow);padding:14px 15px}.stat .k{font:700 11px/1 var(--font-body);letter-spacing:.05em;text-transform:uppercase;color:var(--app-muted)}.stat .v{font-family:var(--font-heading);font-weight:700;font-size:27px;line-height:1;margin-top:8px;color:var(--app-text)}.stat .v.green{color:var(--app-accent)}.stat .v.amber{color:var(--c-warning)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:var(--app-card);color:var(--app-text);border-radius:var(--r-pill);padding:12px 16px;font:700 14px/1 var(--font-body);box-shadow:inset 0 0 0 1.5px var(--app-line);display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;transition:transform var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.btn:active{transform:scale(.97)}.btn.primary{background:var(--c-forest);color:#fff;box-shadow:var(--app-shadow)}.btn.primary:active{background:var(--c-forest-deep)}.btn.ghost{background:transparent}.btn.danger{color:var(--c-redsand-deep);box-shadow:inset 0 0 0 1.5px var(--c-redsand-tint);background:var(--c-redsand-tint)}.theme-dark .btn.danger{background:#c84b232e;color:#f0a480;box-shadow:none}.btn.block{width:100%}.btn.sm{padding:9px 13px;font-size:13px}.calview-seg{display:flex;gap:8px;margin-bottom:16px}.calview-seg button{flex:1;background:var(--app-card);border:1.5px solid var(--app-line);border-radius:var(--r-md);padding:11px 8px;font:700 13px/1 var(--font-body);color:var(--app-text2);cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}.calview-seg button.on{border-color:var(--c-forest);background:#5b9a421a;color:var(--c-forest-deep)}.theme-dark .calview-seg button.on{color:#8fcb74}.month-cal{background:var(--app-card);border:1px solid var(--app-line);border-radius:var(--r-lg);box-shadow:var(--app-shadow);overflow:hidden}.mc-weekdays{display:grid;grid-template-columns:repeat(7,1fr);background:var(--app-panel);border-bottom:1px solid var(--app-line)}.mc-wd{text-align:center;padding:8px 0;font:700 10px/1 var(--font-body);letter-spacing:.03em;text-transform:uppercase;color:var(--app-muted)}.mc-week{position:relative}.mc-week-cells{display:grid;grid-template-columns:repeat(7,1fr);height:100%}.mc-cell{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--app-card);border:0;border-right:1px solid var(--app-line);border-bottom:1px solid var(--app-line);padding:4px 0 0;display:flex;flex-direction:column;align-items:center;cursor:pointer}.mc-cell:nth-child(7n){border-right:0}.mc-num{font:700 13px/1 var(--font-heading);color:var(--app-text)}.mc-cell.out{background:var(--app-bg)}.mc-cell.out .mc-num{color:var(--app-muted);opacity:.5}.mc-cell.today{background:var(--c-forest-tint)}.theme-dark .mc-cell.today{background:#5b9a4229}.mc-cell.today .mc-num{color:var(--c-forest-deep)}.theme-dark .mc-cell.today .mc-num{color:#8fcb74}.mc-cell.sel{box-shadow:inset 0 0 0 2px var(--c-forest)}.mc-bars{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.mc-bar{position:absolute;border:0;border-radius:5px;padding:0 7px;display:flex;align-items:center;color:#fff;font:700 10.5px/1 var(--font-body);overflow:hidden;white-space:nowrap;box-shadow:inset 0 0 0 1px #ffffff38;pointer-events:auto;cursor:pointer}.mc-bar.cl{border-top-left-radius:0;border-bottom-left-radius:0;padding-left:5px}.mc-bar.cr{border-top-right-radius:0;border-bottom-right-radius:0}.mc-bar-label{overflow:hidden;text-overflow:ellipsis}.mc-day-detail{margin-top:2px}.mc-bk{display:flex;align-items:flex-start;gap:11px;background:var(--app-card);border:1px solid var(--app-line);border-radius:var(--r-md);padding:13px;margin-top:10px;box-shadow:var(--app-shadow);cursor:pointer}.mc-bk-dot{width:11px;height:11px;border-radius:50%;margin-top:3px;flex:none}.mc-bk-main{flex:1;min-width:0}.mc-bk-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.mc-bk-client{font:700 15px/1.1 var(--font-heading);color:var(--app-text)}.mc-bk-ant{font:700 12px/1 var(--font-body);color:var(--app-muted);white-space:nowrap}.mc-bk-sub{font-size:12.5px;color:var(--app-text2);margin-top:4px}.mc-bk-owing{color:var(--c-warning);font-weight:700}.mc-bk-settled{color:var(--app-muted)}.timeline-tools{display:flex;gap:8px;align-items:center;margin-bottom:14px}.timeline-tools .month{font-family:var(--font-heading);font-weight:700;font-size:17px;color:var(--app-text);flex:1}.timeline{border:1px solid var(--app-line);border-radius:var(--r-lg);overflow:hidden;background:var(--app-card);box-shadow:var(--app-shadow)}.tl-scroll{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.tl-scroll::-webkit-scrollbar{height:0}.tl-grid{position:relative}.tl-head{display:flex;position:sticky;top:0;z-index:5}.tl-corner{position:sticky;left:0;z-index:6;flex:none;background:var(--app-panel);border-right:1px solid var(--app-line);border-bottom:1px solid var(--app-line)}.tl-daycell{flex:none;border-right:1px solid var(--app-line);border-bottom:1px solid var(--app-line);background:var(--app-panel);text-align:center;padding:7px 0 6px;display:flex;flex-direction:column;gap:1px}.tl-daycell .dow{font:700 9.5px/1 var(--font-body);color:var(--app-muted);text-transform:uppercase}.tl-daycell .dom{font:700 13px/1 var(--font-heading);color:var(--app-text)}.tl-daycell.weekend{background:var(--c-sand-pale)}.theme-dark .tl-daycell.weekend{background:#322519}.tl-daycell.today{background:var(--c-forest-tint)}.theme-dark .tl-daycell.today{background:#5b9a4238}.tl-daycell.today .dom{color:var(--c-forest-deep)}.theme-dark .tl-daycell.today .dom{color:#8fcb74}.tl-daycell.first-of-month{border-left:2px solid var(--c-forest)}.tl-row{display:flex;position:relative}.tl-rowlabel{position:sticky;left:0;z-index:4;flex:none;background:var(--app-card);border-right:1px solid var(--app-line);border-bottom:1px solid var(--app-line);display:flex;align-items:center;gap:8px;padding:0 10px}.tl-rowlabel .dot{width:10px;height:10px;border-radius:3px;flex:none}.tl-rowlabel .nm{font:700 13px/1.1 var(--font-heading);color:var(--app-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-track{position:relative;border-bottom:1px solid var(--app-line);background-image:repeating-linear-gradient(90deg,transparent,transparent calc(var(--day) - 1px),var(--app-line) calc(var(--day) - 1px),var(--app-line) var(--day))}.tl-weekend-band{position:absolute;top:0;bottom:0;background:#a5958c1a;pointer-events:none}.tl-todayline{position:absolute;top:0;bottom:0;width:2px;background:var(--c-forest);opacity:.7;z-index:2;pointer-events:none}.tl-bar{position:absolute;top:5px;bottom:5px;border:0;border-radius:var(--r-sm);z-index:3;padding:0 9px;display:flex;align-items:center;color:#fff;font:700 11.5px/1 var(--font-body);overflow:hidden;white-space:nowrap;box-shadow:inset 0 0 0 1px #ffffff38,0 1px 2px #1f140a2e;cursor:pointer}.tl-empty{padding:34px 16px;text-align:center;color:var(--app-muted)}.legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:13px;padding:0 2px}.legend .item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--app-muted)}.legend .dot{width:10px;height:10px;border-radius:3px}.avail-result{margin-top:18px}.avail-pill{display:flex;align-items:center;gap:10px;border-radius:var(--r-md);padding:13px 14px;border:1px solid var(--app-line);margin-bottom:9px;background:var(--app-card);box-shadow:var(--app-shadow)}.avail-pill .dot{width:11px;height:11px;border-radius:50%;flex:none}.avail-pill .nm{font:700 15px/1.1 var(--font-heading);color:var(--app-text)}.avail-pill.free{border-color:#5b9a4266;background:var(--c-forest-tint)}.theme-dark .avail-pill.free{background:#5b9a4224;border-color:#5b9a424d}.avail-pill.busy{border-color:#c84b2359;background:var(--c-redsand-tint)}.theme-dark .avail-pill.busy{background:#c84b2324;border-color:#c84b234d}.avail-pill .tag{margin-left:auto;font:700 11px/1 var(--font-body);text-transform:uppercase;letter-spacing:.04em}.avail-pill.free .tag{color:var(--c-forest-deep)}.theme-dark .avail-pill.free .tag{color:#8fcb74}.avail-pill.busy .tag{color:var(--c-redsand-deep)}.theme-dark .avail-pill.busy .tag{color:#f0a480}.avail-conflict{font-size:12.5px;color:var(--app-text2);margin-top:5px;padding-left:21px}.summary-banner{border-radius:var(--r-lg);padding:15px;font:700 15px/1.35 var(--font-heading);margin-bottom:6px;border:1px solid var(--app-line);box-shadow:var(--app-shadow)}.summary-banner.good{background:var(--c-forest-tint);border-color:#5b9a4266;color:var(--c-forest-deep)}.theme-dark .summary-banner.good{background:#5b9a4224;color:#9fd68a}.summary-banner.bad{background:var(--c-redsand-tint);border-color:#c84b2359;color:var(--c-redsand-deep)}.theme-dark .summary-banner.bad{background:#c84b2324;color:#f0a480}.booking{border:1px solid var(--app-line);border-radius:var(--r-md);padding:13px;margin-top:11px;background:var(--app-panel);cursor:pointer}.booking .b-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.booking .client{font:700 16px/1.1 var(--font-heading);color:var(--app-text)}.booking .dates{font-size:13px;color:var(--app-text2);margin-top:3px}.booking .meta{display:flex;flex-wrap:wrap;gap:7px 14px;margin-top:11px;font-size:13px;align-items:center;color:var(--app-text)}.booking .meta .lbl{color:var(--app-muted)}.booking .contacts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.chip{display:inline-flex;align-items:center;gap:6px;font:700 12.5px/1 var(--font-body);border:1px solid var(--app-line);border-radius:var(--r-pill);padding:7px 12px;color:var(--app-text);text-decoration:none;background:var(--app-card);max-width:100%;min-width:0}.chip svg{flex:none}.chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.badge{font:700 11px/1 var(--font-body);padding:5px 9px;border-radius:var(--r-pill);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.badge.paid{background:#5b9a4229;color:var(--c-forest-deep)}.theme-dark .badge.paid{background:#5b9a4233;color:#8fcb74}.badge.partial{background:#faefd8;color:#9a6a14}.theme-dark .badge.partial{background:#d4912e38;color:#f2c572}.badge.unpaid{background:var(--c-redsand-tint);color:var(--c-redsand-deep)}.theme-dark .badge.unpaid{background:#c84b2338;color:#f0a480}.badge.balance{background:var(--app-panel);color:var(--app-text2);border:1px solid var(--app-line)}.badge.bond-held{background:#3f7a8829;color:var(--c-info)}.theme-dark .badge.bond-held{background:#3f7a8840;color:#8fc0cc}.antenna-head{display:flex;align-items:center;gap:10px}.antenna-head .dot{width:12px;height:12px;border-radius:4px;flex:none}.antenna-head .nm{font:700 19px/1 var(--font-heading);color:var(--app-text)}.antenna-head .count{margin-left:auto;font-size:12px;color:var(--app-muted)}.empty-mini{color:var(--app-muted);font-size:13px;padding:10px 2px 2px}.fab{position:fixed;left:50%;bottom:calc(30px + var(--safe-bottom));transform:translate(-50%);z-index:45;width:58px;height:58px;border-radius:50%;background:var(--c-forest);color:#fff;border:3px solid var(--app-bg);display:grid;place-items:center;box-shadow:0 8px 20px #3f7a2b73,0 2px 6px #1f140a33;transition:transform var(--dur-base) var(--ease-out)}.fab:active{transform:translate(-50%) scale(.94)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#0f0a066b;display:flex;align-items:flex-end;justify-content:center}.sheet{background:var(--app-bg);border-radius:24px 24px 0 0;width:100%;max-width:560px;max-height:92vh;display:flex;flex-direction:column;box-shadow:0 -10px 40px #00000040;transition:transform var(--dur-base) var(--ease-out);animation:sheet-up var(--dur-base) var(--ease-out);will-change:transform}@keyframes sheet-up{0%{transform:translateY(100%)}}.sheet-handle{flex:none;padding:11px 0 7px;touch-action:none;cursor:grab}.sheet-handle:active{cursor:grabbing}.grabber{width:42px;height:5px;border-radius:99px;background:var(--app-line);margin:0 auto}.sheet-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:2px 20px calc(28px + var(--safe-bottom))}.sheet-scroll::-webkit-scrollbar{width:0}.sheet h2{font-family:var(--font-heading);font-weight:700;font-size:21px;margin:0 0 4px;color:var(--app-text)}.field{margin-top:15px}.field label{display:block;font:700 11px/1 var(--font-body);letter-spacing:.04em;text-transform:uppercase;color:var(--app-muted);margin-bottom:7px}.field input,.field select,.field textarea{display:block;width:100%;max-width:100%;min-width:0;box-sizing:border-box;background:var(--app-input);border:1.5px solid var(--app-line);color:var(--app-text);border-radius:var(--r-md);padding:13px;font-size:16px;font-family:var(--font-body)}.field textarea{resize:vertical;min-height:64px;line-height:1.4}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--c-forest);box-shadow:var(--focus-ring)}.field-row{display:flex;gap:11px}.field-row .field{flex:1;min-width:0;margin-top:15px}@supports (-webkit-touch-callout: none){.field input[type=date],.field input[type=time]{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-height:50px}.field input[type=date]::-webkit-date-and-time-value{text-align:left;margin:0}.field input[type=date]::-webkit-datetime-edit{padding:0}}.avail-dates{display:flex;flex-direction:column;gap:6px}.avail-dates .field{min-width:0}.calc-box{background:var(--app-card);border:1px solid var(--app-line);border-radius:var(--r-md);padding:14px;margin-top:16px;box-shadow:var(--app-shadow)}.calc-line{display:flex;justify-content:space-between;font-size:14px;padding:4px 0;color:var(--app-text)}.calc-line .muted{color:var(--app-muted)}.calc-line.total{border-top:1px solid var(--app-line);margin-top:6px;padding-top:11px;font-family:var(--font-heading);font-weight:700;font-size:17px}.calc-line .green{color:var(--c-forest-deep)}.theme-dark .calc-line .green{color:#8fcb74}.calc-line .amber{color:var(--c-warning)}.toggle-row{display:flex;align-items:center;justify-content:space-between;background:var(--app-card);border:1px solid var(--app-line);border-radius:var(--r-md);padding:13px 14px;margin-top:12px;box-shadow:var(--app-shadow)}.toggle-row .t-label{font:700 14px/1.2 var(--font-body);color:var(--app-text)}.sheet-actions{display:flex;gap:10px;margin-top:24px}.sheet-actions .btn{flex:1;padding:15px}.color-picker{display:flex;gap:9px;flex-wrap:wrap;margin-top:4px}.color-swatch{width:36px;height:36px;border-radius:10px;border:2px solid transparent}.color-swatch.sel{border-color:var(--app-text)}.settings-item{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--app-line)}.settings-item:last-child{border-bottom:none}.settings-item .si-text{flex:1}.settings-item .si-title{font:700 14.5px/1.2 var(--font-body);color:var(--app-text)}.settings-item .si-desc{font-size:12.5px;color:var(--app-muted);margin-top:3px}.switch{position:relative;width:48px;height:28px;flex:none}.switch input{opacity:0;width:0;height:0}.switch .slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--app-line);border-radius:999px;transition:.18s}.switch .slider:before{content:"";position:absolute;height:22px;width:22px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.18s;box-shadow:0 1px 3px #0000004d}.switch input:checked+.slider{background:var(--c-forest)}.switch input:checked+.slider:before{transform:translate(20px)}.hidden-file{display:none}.sync-status{display:flex;align-items:flex-start;gap:11px;margin-bottom:10px}.sync-status .dot{width:10px;height:10px;border-radius:50%;margin-top:5px;flex:none}.sync-status.ok .dot{background:var(--c-forest);box-shadow:0 0 0 4px #5b9a422e}.sync-status .si-title{font:700 14.5px/1.2 var(--font-body);color:var(--app-text)}.sync-status .si-desc{font-size:12.5px;color:var(--app-muted);margin-top:3px}.sync-msg{background:var(--app-panel);border:1px solid var(--app-line);border-radius:var(--r-md);padding:10px 12px;color:var(--app-text2);line-height:1.4}
