:root{--bg:#f4f6f5;--surface:#fff;--text:#17201e;--muted:#5f6f6b;--line:#dfe6e3;--primary:#0f766e;--primary-d:#0b5c56;--primary-l:#e1f3f1;--ok:#15803d;--ok-l:#e2f5e8;--warn:#b45309;--warn-l:#fdf0d9;--err:#b91c1c;--err-l:#fde8e8;--info:#1d4ed8;--info-l:#e5edff;--mute-l:#eceeed;--radius:12px;--shadow:0 1px 2px #1018160f, 0 4px 14px #1018160d;--touch:44px;--nav-h:64px;--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);--safe-t:env(safe-area-inset-top,0px);color:var(--text);background:var(--bg);-webkit-text-size-adjust:100%;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.45}*{box-sizing:border-box}html,body{overflow-x:hidden}body{margin:0}h1,h2,h3{margin:0;line-height:1.25}h1{font-size:1.45rem}h2{font-size:1.05rem}h3{margin:1rem 0 .5rem;font-size:.98rem}a{color:var(--primary)}small,.muted{color:var(--muted)}small{font-size:.8rem}.fine{color:var(--muted);font-size:.78rem}.pos{color:var(--ok)}.neg{color:var(--err)}.spacer{flex:1}.only-m,.bottombar,.sheet-backdrop{display:none}.shell{grid-template-columns:232px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#d6ebe8;background:#0c2e2b;flex-direction:column;gap:1rem;height:100vh;padding:1rem .75rem;display:flex;position:sticky;top:0}.brand{align-items:center;gap:.7rem;padding:.25rem .5rem;display:flex}.brand b{color:#fff;display:block}.brand small{color:#9cc3be}.logo{background:var(--primary);color:#fff;border-radius:14px;place-items:center;width:54px;height:54px;margin:0 auto .5rem;font-size:1.3rem;font-weight:800;display:grid}.logo.sm{width:38px;height:38px;margin:0;font-size:1rem}.sidebar nav{flex-direction:column;flex:1;gap:2px;display:flex}.sidebar nav a{min-height:var(--touch);color:#d6ebe8;border-radius:10px;align-items:center;gap:.65rem;padding:.62rem .75rem;font-weight:500;text-decoration:none;display:flex}.sidebar nav a:hover{background:#134642}.sidebar nav a.active{background:var(--primary);color:#fff}.user{border-top:1px solid #1f4a46;flex-direction:column;gap:.2rem;padding:.5rem;display:flex}.user small{color:#9cc3be;text-overflow:ellipsis;overflow:hidden}.user .link{color:#fff;text-align:left}.content{width:100%;min-width:0;max-width:1180px;padding:1.4rem clamp(1rem,3vw,2rem) 3rem}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.1rem;display:flex}.actions,.toolbar,.btn-row{flex-wrap:wrap;align-items:center;gap:.5rem;min-width:0;display:flex}.toolbar{margin-bottom:.9rem}.section{margin:1.4rem 0 .7rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;margin-bottom:1rem;padding:1rem 1.1rem}.card header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.card header h3{margin:0;font-size:1.1rem}.grid{gap:.85rem;margin-bottom:1rem;display:grid}.grid.cards{grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr))}.grid.rooms,.grid.contracts{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr))}.grid.two{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr))}.grid .card{margin:0}.stat{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:.15rem;min-width:0;padding:.85rem 1rem;display:flex}.stat span{color:var(--muted);font-size:.8rem}.stat b{overflow-wrap:anywhere;font-size:1.35rem}.stat small{font-size:.74rem}.stat.ok{border-left-color:var(--ok)}.stat.warn{border-left-color:var(--warn)}.stat.err{border-left-color:var(--err)}.stat.info{border-left-color:var(--info)}.room{cursor:pointer;flex-direction:column;gap:.3rem;display:flex}.room:hover,.room:focus-visible{border-color:var(--primary)}.room p{margin:0}.price{color:var(--primary-d);font-size:1.15rem}.price small{margin-left:2px;font-weight:400}.tags{flex-wrap:wrap;gap:.3rem;display:flex}.tags span{background:var(--primary-l);color:var(--primary-d);border-radius:99px;padding:.1rem .55rem;font-size:.75rem}.kv{grid-template-columns:auto minmax(0,1fr);gap:.25rem .9rem;margin:.6rem 0 0;display:grid}.kv dt{color:var(--muted);font-size:.88rem}.kv dd{text-align:right;overflow-wrap:anywhere;margin:0}.card-actions{flex-wrap:wrap;gap:.5rem;margin-top:.8rem;display:flex}.list{margin:.5rem 0;padding:0;list-style:none}.list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.6rem;padding:.55rem 0;display:flex}.list li:last-child{border:0}.list li>div{overflow-wrap:anywhere;flex-direction:column;min-width:0;display:flex}.list li.voided{opacity:.5;text-decoration:line-through}.summary{background:var(--primary-l);overflow-wrap:anywhere;border-radius:10px;margin:0 0 .9rem;padding:.6rem .9rem}.tabs{border-bottom:1px solid var(--line);gap:.25rem;margin-bottom:1rem;display:flex;overflow-x:auto}.tabs button{min-height:var(--touch);font:inherit;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000;padding:.6rem 1rem}.tabs button.on{color:var(--primary-d);border-color:var(--primary);font-weight:600}.empty{text-align:center;background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius);padding:2.5rem 1rem}.empty-icon{font-size:2.2rem}.empty p{color:var(--muted);max-width:42ch;margin:.4rem auto 1rem}.loading{text-align:center;color:var(--muted);padding:2rem}.alert{background:var(--info-l);color:#1e3a8a;overflow-wrap:anywhere;border-radius:10px;margin:0 0 .9rem;padding:.65rem .9rem}.alert.err{background:var(--err-l);color:#7f1d1d}.alert.warn{background:var(--warn-l);color:#78350f}.alert.ok{background:var(--ok-l);color:#14532d}.alert a,.alert .link,.empty a.btn{min-height:var(--touch);align-items:center;padding:0 .35rem;display:inline-flex}.btn{border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;min-height:var(--touch);border-radius:10px;justify-content:center;align-items:center;gap:.4rem;padding:.5rem .95rem;font-weight:500;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--primary)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover:not(:disabled){background:var(--primary-d)}.btn.danger{color:var(--err);border-color:#f1c0c0}.btn.warn{color:var(--warn);border-color:#ecd0a0}.btn.sm{min-height:36px;padding:.25rem .65rem;font-size:.85rem}.btn.google{background:#fff;border-color:#c9d1ce;width:100%;min-height:48px;margin-top:1rem}.link{color:var(--primary);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.icon-btn{cursor:pointer;min-width:var(--touch);min-height:var(--touch);color:var(--muted);background:0 0;border:0;border-radius:10px;flex-shrink:0;place-items:center;font-size:1.1rem;display:inline-grid}.icon-btn:hover{background:var(--mute-l)}input,select,textarea{font:inherit;color:var(--text);width:100%;min-width:0;min-height:var(--touch);background:#fff;border:1px solid #c9d1ce;border-radius:10px;padding:.5rem .65rem}input:focus-visible,select:focus-visible,textarea:focus-visible,.btn:focus-visible,a:focus-visible,button:focus-visible,tr:focus-visible,.card:focus-visible{outline-offset:1px;outline:3px solid #5eead4}input.bad{border-color:var(--err);background:var(--err-l)}.toolbar input.search,.actions input.search{width:min(280px,100%)}.toolbar select,.actions select{width:auto;max-width:100%}input[type=checkbox]{width:22px;height:22px;min-height:0;accent-color:var(--primary);flex-shrink:0}input[type=file]{padding:.55rem}.field{border:0;flex-direction:column;gap:.25rem;min-width:0;margin:0 0 .8rem;padding:0;display:flex}.field>span,.field legend{padding:0;font-size:.85rem;font-weight:600}.check{min-height:var(--touch);cursor:pointer;align-items:center;gap:.6rem;margin-bottom:.4rem;display:flex}.checks{flex-wrap:wrap;gap:0 1rem;display:flex}.row2,.row3,.row4{gap:0 .8rem;display:grid}.row2{grid-template-columns:1fr 1fr}.row3{grid-template-columns:repeat(3,1fr)}.row4{grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr))}.row2>*,.row3>*,.row4>*{min-width:0}.row-ded{grid-template-columns:minmax(0,1fr) 160px auto;align-items:center;gap:.5rem;margin-bottom:.5rem;display:grid}.form-actions{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.8rem;display:flex}.inline-form{margin:1rem 0}.month-picker{background:var(--surface);border:1px solid var(--line);border-radius:10px;align-items:center;gap:.25rem;max-width:100%;padding:2px;display:flex}.month-picker input{border:0;width:150px}.month-label{display:none}.badge{white-space:nowrap;border-radius:99px;padding:.12rem .6rem;font-size:.75rem;font-weight:600;display:inline-block}.b-ok{background:var(--ok-l);color:var(--ok)}.b-warn{background:var(--warn-l);color:var(--warn)}.b-err{background:var(--err-l);color:var(--err)}.b-info{background:var(--info-l);color:var(--info)}.b-mute{background:var(--mute-l);color:var(--muted)}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1rem;overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:.6rem .8rem}th{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);background:#f8faf9;font-size:.78rem}tr:last-child td{border-bottom:0}.num{text-align:right;font-variant-numeric:tabular-nums}tr.click{cursor:pointer}tr.click:hover td{background:#f3f9f8}.meters td input{min-width:90px}.meters tr.sub th{padding:.2rem .8rem}td.act{white-space:nowrap}.cellv{flex-direction:column;gap:.15rem;display:flex}table.lines{table-layout:auto;margin-top:.6rem}table.lines tfoot td{border-top:1px solid var(--line);border-bottom:0}table.lines td.desc{overflow-wrap:anywhere}.inv-head{flex-wrap:wrap;justify-content:space-between;align-items:start;gap:1rem;display:flex}.settle{background:var(--primary-l);border-radius:10px;margin-top:1rem;padding:1rem}.settle h3{margin-top:0}.backdrop{height:100dvh;padding:max(1rem, var(--safe-t)) max(1rem, var(--safe-r)) max(1rem, var(--safe-b)) max(1rem, var(--safe-l));z-index:50;background:#08141280;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.modal{background:var(--surface);border-radius:16px;flex-direction:column;width:min(560px,100%);max-height:calc(100dvh - 2rem);display:flex;box-shadow:0 20px 60px #0000004d}.modal.wide{width:min(760px,100%)}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .6rem .5rem 1.1rem;display:flex}.modal-head h2{overflow-wrap:anywhere}.modal-body{overscroll-behavior:contain;min-width:0;padding:1rem 1.1rem 1.2rem;overflow:hidden auto}.toasts{right:max(1rem, var(--safe-r));bottom:max(1rem, var(--safe-b));z-index:100;flex-direction:column;gap:.5rem;max-width:min(420px,100vw - 2rem);display:flex;position:fixed}.toast{color:#fff;box-shadow:var(--shadow);overflow-wrap:anywhere;background:#17201e;border-radius:10px;padding:.7rem 1rem}.toast.err{background:var(--err)}.restore-box{margin-top:1rem}.login{min-height:100dvh;padding:max(1rem, var(--safe-t)) max(1rem, var(--safe-r)) max(1rem, var(--safe-b)) max(1rem, var(--safe-l));background:linear-gradient(160deg,#0c2e2b,#0f766e);place-items:center;display:grid}.login-card{text-align:center;background:#fff;border-radius:20px;width:min(400px,100%);padding:2rem 1.6rem;box-shadow:0 20px 60px #0000004d}.login-card h1{margin-bottom:.25rem}.login-card .alert{text-align:left;margin-top:1rem}@media (width<=860px){.shell{padding-bottom:calc(var(--nav-h) + var(--safe-b));grid-template-columns:minmax(0,1fr)}.sidebar{display:none}.content{padding:1rem max(.9rem, var(--safe-r)) 2rem max(.9rem, var(--safe-l))}h1{font-size:1.25rem}input,select,textarea{font-size:16px}.btn.sm{min-height:var(--touch)}.page-head>.actions{width:100%}.page-head .actions .btn.primary{flex:auto}.toolbar input.search,.actions input.search{flex:100%;width:100%}.month-picker{width:100%}.month-picker input{text-align:center;flex:1;width:auto}.row2,.row3{grid-template-columns:minmax(0,1fr)}.row-ded{grid-template-columns:minmax(0,1fr) auto}.row-ded>:first-child{grid-column:1/-1}.card-actions .btn{flex:auto}.bottombar{z-index:40;padding:0 var(--safe-r) var(--safe-b) var(--safe-l);background:#0c2e2b;border-top:1px solid #1f4a46;grid-template-columns:repeat(5,minmax(0,1fr));display:grid;position:fixed;bottom:0;left:0;right:0}.bottombar a,.bottombar button{min-height:var(--nav-h);font:inherit;color:#b9d8d4;cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:.3rem 0;font-size:.7rem;font-weight:500;text-decoration:none;display:flex}.bottombar span{font-size:1.25rem;line-height:1}.bottombar .active{color:#fff;background:#134642;box-shadow:inset 0 3px #5eead4}.bottombar a:focus-visible,.bottombar button:focus-visible{outline-offset:-3px}.sheet-backdrop{z-index:60;background:#08141280;align-items:flex-end;height:100dvh;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-height:85dvh;padding:.4rem max(1rem, var(--safe-r)) calc(1rem + var(--safe-b)) max(1rem, var(--safe-l));border-radius:18px 18px 0 0;overflow-y:auto;box-shadow:0 -10px 40px #00000040}.sheet-head{min-height:var(--touch);justify-content:space-between;align-items:center;display:flex}.sheet ul{margin:0;padding:0;list-style:none}.sheet li a{min-height:52px;color:var(--text);border-bottom:1px solid var(--line);border-radius:10px;align-items:center;gap:.8rem;padding:0 .5rem;font-size:1.02rem;font-weight:500;text-decoration:none;display:flex}.sheet li a.active{background:var(--primary-l);color:var(--primary-d)}.sheet-user{border-top:1px solid var(--line);overflow-wrap:anywhere;flex-direction:column;gap:.6rem;margin-top:1rem;padding-top:.8rem;display:flex}.sheet-user .btn{width:100%}.backdrop{align-items:end;padding:0}.modal,.modal.wide{border-radius:18px 18px 0 0;width:100%;max-height:94dvh}.modal-body{padding:1rem max(1rem, var(--safe-r)) calc(1.2rem + var(--safe-b)) max(1rem, var(--safe-l))}.modal-head{padding-left:max(1.1rem, var(--safe-l))}.form-actions .btn{flex:auto}.table-wrap{box-shadow:none;background:0 0;border:0;overflow:visible}table:not(.lines) thead{display:none}table:not(.lines),table:not(.lines) tbody,table:not(.lines) tr,table:not(.lines) td{width:100%;display:block}table:not(.lines) tr{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:.7rem;padding:.5rem .8rem}table:not(.lines) td{text-align:right;overflow-wrap:anywhere;border:0;justify-content:space-between;align-items:center;gap:1rem;min-width:0;padding:.3rem 0;display:flex}table:not(.lines) td:before{content:attr(data-label);color:var(--muted);text-align:left;flex-shrink:0;font-size:.8rem}.meters td input{text-align:right;width:120px;min-width:0}.cellv{align-items:flex-end}td.act{justify-content:flex-end}td.act:before{content:none}table:not(.lines) td.act .btn{width:100%}.hide-m{display:none}.only-m{display:block}table.lines th,table.lines td{padding:.5rem .4rem}table.lines td.x{width:var(--touch);padding:0}table.lines td.foot-label{text-align:left}.stat b{font-size:1.2rem}.toasts{left:max(1rem, var(--safe-l));right:max(1rem, var(--safe-r));bottom:calc(var(--nav-h) + var(--safe-b) + .5rem);max-width:none}}@media (width<=380px){.grid.cards{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.6rem}.stat{padding:.7rem .75rem}.stat b{font-size:1.05rem}}@media print{.sidebar,.bottombar,.sheet-backdrop,.page-head,.toolbar,.tabs,.no-print,.inline-form,.icon-btn,.toasts{display:none!important}.backdrop{background:0 0;height:auto;padding:0;display:block;position:static}.modal{box-shadow:none;width:100%;max-height:none}.shell{padding:0;display:block}}
