:root{--bg:#f6f6f4;--surface:#fff;--text:#1c1c1c;--muted:#5f5f5f;--line:#dcdcd6;--line-strong:#8a8a84;--brand:#f27c08;--brand-ink:#1c1c1c;--brand-soft:#fff1e2;--focus:#245a9e;--ok:#1e6b37;--ok-soft:#e7f5ec;--warn:#7a4f00;--warn-soft:#fff4d6;--danger:#b3261e;--danger-soft:#fdeceb;--info:#245a9e;--info-soft:#e8f0fb;--radius:8px;--gap-s:8px;--gap:16px;--gap-l:24px;--topbar-h:56px;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--fs-s:.875rem;--fs-m:1rem;--fs-l:1.25rem;--fs-xl:1.5rem}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);font:var(--fs-m) / 1.45 var(--font);font-variant-numeric:tabular-nums;margin:0}a{color:inherit}h1{font-size:var(--fs-xl);margin:0 0 var(--gap);line-height:1.2}h2{font-size:var(--fs-l);margin:var(--gap-l) 0 var(--gap-s);line-height:1.25}p{margin:0 0 var(--gap-s)}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.muted{color:var(--muted)}.small{font-size:var(--fs-s)}.shell{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr);min-height:100dvh;display:grid}.topbar{z-index:10;min-height:var(--topbar-h);padding:0 var(--gap);background:var(--surface);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.brand{letter-spacing:.01em;font-weight:700}.topbar-actions{align-items:center;gap:4px;display:flex}details.row{display:block}details.row>summary{cursor:pointer;align-items:center;min-height:44px;display:flex}details.row[open]>summary{margin-bottom:var(--gap-s)}.content{width:100%;min-width:0;max-width:960px;padding:var(--gap) var(--gap) calc(80px + env(safe-area-inset-bottom))}.nav{z-index:10;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);display:flex;position:fixed;bottom:0;left:0;right:0}.nav-link{min-height:56px;font-size:var(--fs-s);color:var(--muted);flex:1;justify-content:center;align-items:center;padding:0 4px;text-decoration:none;display:flex}.nav-link.active{color:var(--text);box-shadow:inset 0 3px 0 var(--brand);font-weight:700}@media (min-width:900px){.shell{grid-template-columns:200px minmax(0,1fr)}.topbar{grid-column:1/-1}.nav{top:var(--topbar-h);height:calc(100dvh - var(--topbar-h));padding:var(--gap-s);border-top:0;border-right:1px solid var(--line);flex-direction:column;align-self:start;gap:2px;position:sticky}.nav-link{border-radius:var(--radius);min-height:44px;font-size:var(--fs-m);flex:none;justify-content:flex-start;padding:0 12px}.nav-link.active{background:var(--brand-soft);box-shadow:none}.content{padding-bottom:var(--gap-l)}}.page-head{justify-content:space-between;align-items:center;gap:var(--gap-s) var(--gap);margin-bottom:var(--gap);flex-wrap:wrap;display:flex}.page-head h1{margin:0}.btn{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);min-height:44px;color:var(--text);font:inherit;cursor:pointer;justify-content:center;align-items:center;padding:0 16px;font-weight:600;text-decoration:none;display:inline-flex}.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.btn.quiet{background:0 0;border-color:#0000}.btn:disabled{opacity:.6;cursor:default}.actions{gap:var(--gap-s);margin-top:var(--gap);flex-wrap:wrap;display:flex}.field{gap:4px;display:grid}.field-label{font-size:var(--fs-s);font-weight:600}.field-hint{font-size:var(--fs-s);color:var(--muted)}input,select,textarea{border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--surface);width:100%;min-height:44px;color:var(--text);font:inherit;padding:8px 12px}textarea{resize:vertical;min-height:96px}.form{gap:var(--gap);display:grid}.form-grid{gap:var(--gap);grid-template-columns:1fr;display:grid}.form-grid.two{grid-template-columns:1fr 1fr}.form fieldset{padding:var(--gap);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);gap:var(--gap);margin:0;display:grid}.form legend{padding:0 6px;font-weight:700}.search{gap:var(--gap-s);margin-bottom:var(--gap);display:flex}.list{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.row{align-items:start;gap:2px var(--gap);border-top:1px solid var(--line);color:inherit;grid-template-columns:1fr auto;padding:12px 14px;text-decoration:none;display:grid}.row:first-child{border-top:0}a.row:hover{background:var(--bg)}.row-title{font-weight:600}.row-meta{font-size:var(--fs-s);color:var(--muted);grid-column:1}.row-end{text-align:right;grid-area:1/2/span 2;font-weight:600}.row.is-cancelled .row-title{color:var(--muted);text-decoration:line-through}.empty{padding:var(--gap);color:var(--muted)}.chips{gap:var(--gap-s);margin-bottom:var(--gap);flex-wrap:wrap;display:flex}.chip{border:1px solid var(--line-strong);background:var(--surface);min-height:36px;font-size:var(--fs-s);border-radius:999px;align-items:center;padding:0 12px;text-decoration:none;display:inline-flex}.chip.active{background:var(--text);border-color:var(--text);color:var(--surface);font-weight:600}.badge{font-size:var(--fs-s);white-space:nowrap;background:var(--line);color:var(--text);border-radius:999px;padding:2px 10px;font-weight:600;display:inline-block}.badge.info{background:var(--info-soft);color:var(--info)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.ok{background:var(--ok-soft);color:var(--ok)}.notice{margin:0 0 var(--gap);border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);padding:10px 14px}.notice.error{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.notice.warn{background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}.notice.ok{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:var(--fs-s)}.table th,.table td{border-top:1px solid var(--line);text-align:right;white-space:nowrap;padding:10px 12px}.table thead th{color:var(--muted);border-top:0;font-weight:600}.table th:first-child,.table td:first-child{text-align:left;background:var(--surface);position:sticky;left:0}.table tfoot td{font-weight:700}.neg{color:var(--danger)}.facts{gap:var(--gap);margin:0 0 var(--gap);padding:var(--gap);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);grid-template-columns:repeat(auto-fit,minmax(140px,1fr));display:grid}.facts dt{font-size:var(--fs-s);color:var(--muted)}.facts dd{margin:0;font-weight:700}.inline-form{align-items:end;gap:var(--gap-s);margin-bottom:var(--gap);flex-wrap:wrap;display:flex}.inline-form .field{flex:200px}.login{max-width:360px;padding:64px var(--gap);margin:0 auto}.suggest{justify-content:space-between;align-items:center;gap:var(--gap-s) var(--gap);border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:var(--radius);background:var(--brand-soft);flex-wrap:wrap;padding:10px 14px;display:flex}.row-button{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0}.row-button:hover{background:var(--bg)}.rental-item+.rental-item{border-top:1px solid var(--line)}.rental-item .row{border-top:0}.rental-item.is-open{box-shadow:inset 4px 0 0 var(--brand)}.row-panel{gap:var(--gap-s);background:var(--bg);border-top:1px solid var(--line);padding:12px 14px 14px;display:grid}.row-panel .inline-form{margin-bottom:0}.sms-quick{gap:var(--gap-s);margin:0;padding:0;list-style:none;display:grid}.sms-quick li{justify-content:space-between;align-items:center;gap:var(--gap-s);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex-wrap:wrap;padding:8px 10px;display:flex}.sms-quick-name{font-weight:600}.sms-quick-actions{gap:var(--gap-s);display:flex}.price-slider{gap:var(--gap);padding:var(--gap);border:1px solid var(--line);border-left:4px solid var(--brand);border-radius:var(--radius);background:var(--surface);display:grid}.slider-row{align-items:center;gap:var(--gap-s);grid-template-columns:44px 1fr 44px;display:grid}.slider-row .btn{font-size:var(--fs-l);justify-content:center;padding:0}.slider-row input[type=range]{width:100%;min-height:44px;accent-color:var(--brand);cursor:pointer}.slider-result{gap:var(--gap);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.slider-result>div{gap:2px;display:grid}.slider-label{font-size:var(--fs-s);color:var(--muted)}.slider-value{font-size:var(--fs-xl);line-height:1.2}.summary{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow:hidden}.summary-row{gap:var(--gap-s) var(--gap);border-top:1px solid var(--line);grid-template-columns:1fr 1fr;grid-template-areas:"period balance""income costs";padding:12px 14px;display:grid}.summary>div:first-child>.summary-row:first-child{border-top:0}.summary-row.year{background:var(--brand-soft);border-top:2px solid var(--line-strong)}.summary-period{text-transform:capitalize;grid-area:period;align-self:center;font-weight:600}.summary-row.year .summary-period{font-size:var(--fs-l);font-weight:700}.cell-balance{text-align:right;grid-area:balance}.cell-income{grid-area:income}.cell-costs{grid-area:costs}.summary-cell{align-content:start;gap:1px;display:grid}.cell-label{font-size:var(--fs-s);color:var(--muted)}.summary-cell .agg{font-size:var(--fs-m);font-variant-numeric:tabular-nums;font-weight:700}.summary-row.year .summary-cell .agg{font-size:var(--fs-l)}.summary-cell .sub{font-size:var(--fs-s);color:var(--muted);font-variant-numeric:tabular-nums}.summary-cell.neg .agg{color:var(--danger)}@media (min-width:700px){.summary-row{grid-template-columns:150px 1fr 1fr 1fr;grid-template-areas:"period balance income costs"}.cell-balance{text-align:left}}.period{margin-bottom:var(--gap-l)}.period-head{justify-content:space-between;align-items:baseline;gap:var(--gap);margin:var(--gap-l) 0 var(--gap-s);border-bottom:2px solid var(--brand);padding-bottom:4px;display:flex}.period-head span:last-child{font-variant-numeric:tabular-nums}.period-month{margin-bottom:var(--gap)}.period-subhead{justify-content:space-between;gap:var(--gap);background:var(--bg);border-bottom:1px solid var(--line);text-transform:capitalize;padding:10px 14px;font-weight:700;display:flex}.period-subhead span:last-child{font-variant-numeric:tabular-nums}.period-month .period-subhead+.row{border-top:0}.gantt-wrap{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);overflow-x:auto}.gantt{--label-w:88px;--lane-h:44px;min-width:calc(var(--label-w) + var(--days) * var(--col))}.gantt-row{grid-template-columns:var(--label-w) calc(var(--days) * var(--col));border-top:1px solid var(--line);display:grid}.gantt-head{background:var(--bg);border-top:0}.gantt-label,.gantt-corner{z-index:3;background:var(--surface);border-right:1px solid var(--line);font-size:var(--fs-s);padding:8px 10px;line-height:1.3;position:sticky;left:0}.gantt-corner{background:var(--bg)}.gantt-label strong{display:block}.gantt-months,.gantt-daynums,.gantt-cells{grid-template-columns:repeat(var(--days), var(--col));display:grid}.gantt-month{border-left:1px solid var(--line-strong);font-size:var(--fs-s);text-transform:capitalize;white-space:nowrap;padding:4px 6px;font-weight:700;overflow:hidden}.gantt-daynum{border-left:1px solid var(--line);font-size:var(--fs-s);justify-items:center;padding:4px 0;line-height:1.25;display:grid}.gantt-daynum b{font-size:var(--fs-m)}.gantt-daynum.weekend,.gantt-cell.weekend{background:#efefea}.gantt-daynum.today,.gantt-cell.today{background:var(--brand-soft)}.gantt-daynum.today b{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--brand);text-decoration-color:var(--brand);text-decoration-thickness:3px}.gantt-track{min-height:calc(var(--lanes) * var(--lane-h) + 8px);position:relative}.gantt-cells{position:absolute;inset:0}.gantt-cell{border-left:1px solid var(--line)}.gantt-now{z-index:2;background:var(--brand);pointer-events:none;width:2px;position:absolute;top:0;bottom:0}.bar{z-index:1;height:calc(var(--lane-h) - 6px);min-width:28px;font-size:var(--fs-s);white-space:nowrap;border:1px solid;border-radius:6px;align-content:center;padding:0 8px;line-height:1.25;text-decoration:none;display:grid;position:absolute;overflow:hidden}.bar-title{text-overflow:ellipsis;font-weight:700;overflow:hidden}.bar-time{text-overflow:ellipsis;opacity:.85;overflow:hidden}.bar.info{background:var(--info-soft);border-color:var(--info);color:var(--info)}.bar.warn{background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}.bar.ok{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}.bar.neutral{background:repeating-linear-gradient(135deg, var(--surface), var(--surface) 6px, #f0f0ec 6px, #f0f0ec 12px);border:1px dashed var(--line-strong);color:var(--text)}.bar.clash{border:2px solid var(--danger)}.bar.cut-l{border-left-style:dotted;border-top-left-radius:0;border-bottom-left-radius:0}.bar.cut-r{border-right-style:dotted;border-top-right-radius:0;border-bottom-right-radius:0}.gantt-legend{gap:var(--gap-s) var(--gap);margin:var(--gap-s) 0 0;font-size:var(--fs-s);color:var(--muted);flex-wrap:wrap;padding:0;list-style:none;display:flex}.gantt-legend li{align-items:center;gap:6px;display:flex}.gantt-legend .bar{width:28px;min-width:0;height:16px;padding:0;position:static}.quick-client{gap:var(--gap-s);padding:var(--gap);border:1px dashed var(--line-strong);border-radius:var(--radius);background:var(--bg);display:grid}
