:root{
 --bg:#eef2f7;--panel:#ffffff;--panel-soft:#f7f9fc;--panel-strong:#eef2f7;--text:#1d2433;--muted:#738099;--line:#e3e8f0;
 --primary:#335eea;--primary-2:#5578f0;--primary-soft:rgba(51,94,234,.11);--ok:#1f9d67;--warn:#e59a16;--danger:#d84d5d;--info:#3d7af2;
 --sidebar:#152b4d;--sidebar-2:#1c3b68;--sidebar-text:#dbe7fb;--sidebar-muted:#97aecf;--sidebar-active:#2d4f81;
 --shadow:0 18px 46px rgba(27,39,72,.08);--shadow-lg:0 24px 80px rgba(19,31,53,.18);--radius:18px;--radius-sm:12px;
 --topbar-height:74px;--sidebar-width:278px
}
html[data-theme="dark"]{
 --bg:#111722;--panel:#1b2330;--panel-soft:#232d3b;--panel-strong:#273240;--text:#f4f7fb;--muted:#94a2b7;--line:#2f3a4a;
 --primary:#7b91ff;--primary-2:#9bacff;--primary-soft:rgba(123,145,255,.12);--shadow:0 16px 40px rgba(0,0,0,.28);--shadow-lg:0 28px 85px rgba(0,0,0,.42)
}
*{box-sizing:border-box}html,body{min-height:100%}body{margin:0;font-family:Inter,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}
.app-shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);flex:0 0 var(--sidebar-width);background:linear-gradient(180deg,var(--sidebar),var(--sidebar-2));color:var(--sidebar-text);padding:18px 16px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh;box-shadow:8px 0 30px rgba(11,22,41,.18);z-index:80}.app-main{flex:1;min-width:0;display:flex;flex-direction:column}
.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:46px;height:46px;border-radius:16px;background:linear-gradient(145deg,#2f7bd1,#63a0ff);display:grid;place-items:center;color:#fff;font-weight:900;font-size:15px;letter-spacing:-.3px;box-shadow:0 10px 24px rgba(47,123,209,.35)}.brand strong{display:block;font-size:15px}.brand small,.user-chip small,.sidebar-user small{display:block;margin-top:3px;color:var(--sidebar-muted);font-size:11px}.brand-side{padding:8px 6px 14px;border-bottom:1px solid rgba(255,255,255,.08)}
.sidebar-user{display:flex;align-items:center;gap:12px;padding:8px 6px 4px}.avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#4b7df0,#7ba0ff);color:#fff;font-weight:900;font-size:12px;box-shadow:0 8px 22px rgba(75,125,240,.28)}.avatar.lg{width:48px;height:48px;font-size:14px}.sidebar-user b{display:block;font-size:13px}
.side-nav{display:grid;gap:8px;overflow:auto;padding-right:4px}.side-nav>a,.side-nav .nav-drop>button,.side-logout,.install-chip{height:44px;border:0;border-radius:14px;background:transparent;color:var(--sidebar-text);padding:0 14px;display:flex;align-items:center;gap:11px;font-weight:700;font-size:13px;cursor:pointer;transition:.18s background,.18s transform,.18s color;width:100%}.side-nav svg,.side-logout svg,.install-chip svg,.icon-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.side-nav .chev{width:14px;height:14px;margin-left:auto}.side-nav>a:hover,.side-nav .nav-drop>button:hover,.side-nav>a.active,.side-nav .nav-drop>button.active,.side-logout:hover,.install-chip:hover{background:var(--sidebar-active);transform:translateX(2px)}.side-nav .nav-drop{position:relative}.side-nav .drop-menu{display:none;position:static;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.06);border-radius:14px;padding:8px;margin-top:8px}.side-nav .nav-drop.open .drop-menu{display:block}.side-nav .drop-menu a{display:block;padding:10px 12px;border-radius:10px;font-size:12px;color:var(--sidebar-text)}.side-nav .drop-menu a:hover{background:rgba(255,255,255,.08)}.sidebar-footer{margin-top:auto;display:grid;gap:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}.install-chip{background:rgba(255,255,255,.08)}
.topbar{position:sticky;top:0;z-index:50;height:var(--topbar-height);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;background:color-mix(in srgb,var(--panel) 92%,transparent);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.topbar-left{display:flex;align-items:center;gap:12px;min-width:0}.topbar-copy strong{display:block;font-size:16px;letter-spacing:-.02em}.top-actions{display:flex;align-items:center;gap:10px}.icon-btn{width:42px;height:42px;border:1px solid var(--line);background:var(--panel);border-radius:14px;color:var(--muted);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow)}.icon-btn:hover{color:var(--primary);border-color:color-mix(in srgb,var(--primary) 30%,var(--line))}.menu-btn{display:none}.user-menu{display:flex;align-items:center;gap:9px;padding:4px 4px 4px 2px}.user-chip b{font-size:12px}.user-chip small{color:var(--muted)}
.page{padding:24px;max-width:1580px;width:100%;margin:0 auto}.footer{text-align:center;padding:16px 24px 24px;color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.page-title{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}.page-title h1{margin:0;font-size:29px;letter-spacing:-.7px}.page-title p{margin:6px 0 0;color:var(--muted);font-size:13px}.eyebrow{display:block;color:var(--primary);font-size:10px;font-weight:900;letter-spacing:.13em;text-transform:uppercase;margin-bottom:6px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:22px 0 12px}.section-title h2{margin:0;font-size:18px}.section-title p{margin:3px 0 0;color:var(--muted);font-size:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;border:0;border-radius:12px;padding:9px 15px;background:var(--primary);color:#fff;font-weight:800;font-size:13px;cursor:pointer;box-shadow:0 8px 18px rgba(51,94,234,.16);transition:.16s transform,.16s filter}.btn:hover{filter:brightness(1.04);transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn.secondary{background:var(--panel);color:var(--text);border:1px solid var(--line);box-shadow:none}.btn.success{background:var(--ok)}.btn.warning{background:var(--warn)}.btn.danger{background:var(--danger)}.btn.sm{min-height:32px;padding:6px 10px;font-size:11px;border-radius:9px}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.grid{display:grid;gap:16px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.kpis{grid-template-columns:repeat(5,minmax(150px,1fr));margin-bottom:18px}.kpi{min-height:130px;position:relative;overflow:hidden}.kpi:after{content:"";position:absolute;width:92px;height:92px;border-radius:50%;right:-28px;bottom:-38px;background:var(--primary-soft)}.kpi .kpi-icon{width:38px;height:38px;border-radius:12px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;margin-bottom:12px;font-weight:900}.kpi small{display:block;color:var(--muted);font-size:11px;font-weight:700}.kpi b{display:block;margin-top:5px;font-size:25px;letter-spacing:-.7px}.kpi em{font-style:normal;color:var(--muted);font-size:10px}.dashboard-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}.chart-card{min-height:315px}.chart-head{display:flex;align-items:start;justify-content:space-between;gap:10px}.chart-head h3{margin:0;font-size:16px}.chart-head p{margin:4px 0 0;color:var(--muted);font-size:11px}.bars{height:205px;display:flex;align-items:end;gap:12px;padding:22px 4px 0}.bar-col{flex:1;min-width:0;text-align:center}.bar-track{height:155px;display:flex;align-items:end;justify-content:center;background:linear-gradient(to top,var(--panel-soft),transparent);border-radius:10px;padding:0 8px}.bar{width:min(38px,70%);min-height:4px;border-radius:9px 9px 4px 4px;background:linear-gradient(180deg,var(--primary-2),var(--primary));box-shadow:0 6px 14px rgba(88,101,232,.18)}.bar-col b{display:block;margin-top:8px;font-size:10px}.bar-col small{display:block;color:var(--muted);font-size:9px;margin-top:2px}.donut-wrap{display:grid;grid-template-columns:160px 1fr;align-items:center;gap:22px;padding:22px 4px}.donut{width:145px;height:145px;border-radius:50%;display:grid;place-items:center;position:relative}.donut:after{content:"";width:96px;height:96px;border-radius:50%;background:var(--panel);position:absolute}.donut-center{position:relative;z-index:1;text-align:center}.donut-center b{display:block;font-size:19px}.donut-center small{color:var(--muted);font-size:9px}.legend{display:grid;gap:12px}.legend-row{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;font-size:11px}.dot{width:9px;height:9px;border-radius:50%}.dot.cash{background:var(--primary)}.dot.pix{background:var(--ok)}.dot.card{background:var(--warn)}
.rooms{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.room-card{position:relative;min-height:168px;transition:.18s transform,.18s border-color,.18s box-shadow;overflow:hidden;padding:18px}.room-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--primary) 45%,var(--line));box-shadow:0 16px 34px rgba(37,45,73,.12)}.room-visual{position:absolute;top:14px;right:14px;width:62px;height:62px;border-radius:18px;background:linear-gradient(145deg,var(--primary-soft),rgba(87,120,240,.18));display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--primary) 18%,var(--line))}.room-visual svg{width:32px;height:32px;color:var(--primary);fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.room-card h3{font-size:23px;margin:16px 0 4px}.room-card p{margin:5px 0;color:var(--muted);font-size:12px;max-width:74%}.room-price{margin-top:14px;font-weight:900;color:var(--primary);font-size:13px}.room-status{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.st-free{background:rgba(31,157,103,.12);color:var(--ok)}.st-occupied{background:rgba(216,77,93,.12);color:var(--danger)}.st-clean{background:rgba(229,154,22,.14);color:var(--warn)}.st-maint{background:var(--panel-strong);color:var(--muted)}
.table-wrap{overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 15px;border-bottom:1px solid var(--line);font-size:12px;vertical-align:middle}th{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em;background:var(--panel-soft);font-weight:900}tbody tr:hover{background:color-mix(in srgb,var(--panel-soft) 72%,transparent)}tr:last-child td{border-bottom:0}.table-title{font-weight:800}.subtext{display:block;color:var(--muted);font-size:10px;margin-top:3px}.right{text-align:right}.center{text-align:center}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field label{display:block;font-size:10px;font-weight:900;margin-bottom:6px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.field small{display:block;margin-top:5px}.span2{grid-column:1/-1}input,select,textarea{width:100%;padding:11px 12px;border-radius:12px;border:1px solid var(--line);background:var(--panel);color:var(--text);outline:none;transition:.14s border,.14s box-shadow}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 14%,transparent)}input[type="checkbox"]{accent-color:var(--primary)}.mt{margin-top:14px}.note{color:var(--muted);font-size:11px}.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 10px;background:var(--panel-strong);font-size:10px;font-weight:800}.pill.primary{background:var(--primary-soft);color:var(--primary)}.pill.ok{background:rgba(31,157,103,.12);color:var(--ok)}.pill.bad{background:rgba(216,77,93,.12);color:var(--danger)}.danger-text{color:var(--danger)!important}.ok-text{color:var(--ok)!important}.warn-text{color:var(--warn)!important}
.summary{background:var(--panel-soft);border:1px solid var(--line);padding:14px;border-radius:14px}.summary-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:12px}.summary-row:last-child{border:0}.summary-row.total{font-size:16px;font-weight:900;color:var(--primary)}.split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:18px}.callout{display:flex;gap:11px;align-items:flex-start;padding:13px 14px;border-radius:14px;background:var(--primary-soft);color:var(--text);border:1px solid color-mix(in srgb,var(--primary) 18%,var(--line));font-size:11px}.callout b{display:block;color:var(--primary);margin-bottom:3px}.cash-diff{padding:12px 14px;border-radius:12px;font-weight:900;text-align:center;margin-top:12px}.cash-diff.ok{background:rgba(31,157,103,.12);color:var(--ok)}.cash-diff.warn{background:rgba(229,154,22,.14);color:var(--warn)}.cash-diff.bad{background:rgba(216,77,93,.12);color:var(--danger)}
.modal{position:fixed;inset:0;background:rgba(17,20,29,.62);display:none;align-items:center;justify-content:center;padding:22px;z-index:120;backdrop-filter:blur(5px)}.modal.show{display:flex}.modal-box{width:min(720px,100%);max-height:91vh;overflow:auto;background:var(--panel);border-radius:22px;border:1px solid var(--line);box-shadow:var(--shadow-lg);padding:20px;animation:modalIn .16s ease-out}.modal-box.wide{width:min(1120px,calc(100vw - 42px))}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:16px}.modal-head h2{margin:0;font-size:21px}.modal-head small{color:var(--muted)}.close{border:1px solid var(--line);background:var(--panel-soft);color:var(--muted);width:40px;height:40px;border-radius:12px;display:grid;place-items:center}.confirm-box{width:min(470px,100%);text-align:center;padding:28px}.confirm-symbol{width:58px;height:58px;border-radius:18px;background:rgba(229,154,22,.14);color:var(--warn);display:grid;place-items:center;margin:0 auto 16px}.confirm-symbol svg{width:28px;height:28px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.confirm-copy h2{margin:0;font-size:21px}.confirm-copy p{margin:9px auto 0;color:var(--muted);font-size:12px;max-width:360px;line-height:1.55}.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}@keyframes modalIn{from{transform:translateY(8px) scale(.985);opacity:.65}to{transform:none;opacity:1}}
.toast-stack{position:fixed;top:86px;right:18px;z-index:160;display:grid;gap:10px;width:min(390px,calc(100vw - 36px))}.toast{display:grid;grid-template-columns:42px 1fr 26px;gap:10px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:12px;box-shadow:var(--shadow-lg);animation:toastIn .2s ease-out}.toast-icon{width:40px;height:40px;border-radius:12px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center}.toast.success .toast-icon{background:rgba(31,157,103,.12);color:var(--ok)}.toast.error .toast-icon{background:rgba(216,77,93,.12);color:var(--danger)}.toast-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.toast b{font-size:11px}.toast p{margin:3px 0 0;color:var(--muted);font-size:10px;line-height:1.4}.toast>button{border:0;background:transparent;color:var(--muted);font-size:18px;cursor:pointer}.toast-out{opacity:0;transform:translateX(15px);transition:.25s}.toast.success{border-left:3px solid var(--ok)}.toast.error{border-left:3px solid var(--danger)}@keyframes toastIn{from{transform:translateX(18px);opacity:0}to{transform:none;opacity:1}}
.login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 15% 12%,rgba(51,94,234,.16),transparent 31%),radial-gradient(circle at 83% 84%,rgba(87,120,240,.13),transparent 30%),var(--bg)}.login-card{width:min(430px,100%);background:var(--panel);border:1px solid var(--line);border-radius:24px;padding:31px;box-shadow:var(--shadow-lg)}.login-logo{display:flex;align-items:center;gap:12px;margin-bottom:24px}.login-logo .brand-mark{width:55px;height:55px;border-radius:17px}.login-card h1{margin:0;font-size:23px}.login-card p{color:var(--muted);margin:5px 0 0;font-size:12px}.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.filters .field{min-width:150px}.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.permission-card{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--line);border-radius:13px;padding:12px;background:var(--panel-soft);cursor:pointer}.permission-card input{width:auto;margin-top:2px}.permission-card b{font-size:11px;display:block}.permission-card small{display:block;color:var(--muted);font-size:9px;margin-top:3px;line-height:1.4}.metric-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.metric-mini{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:13px}.metric-mini small{color:var(--muted);font-size:9px;text-transform:uppercase;font-weight:900}.metric-mini b{display:block;margin-top:5px;font-size:17px}.report-stack{display:grid;gap:16px}
.mobile-backdrop{display:none}
.install-banner{position:fixed;left:18px;bottom:18px;z-index:180;background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lg);padding:14px 16px;display:none;align-items:center;gap:12px;max-width:360px}.install-banner.show{display:flex}.install-banner .brand-mark{width:40px;height:40px;border-radius:14px}.install-banner b{display:block;font-size:13px}.install-banner small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.install-banner .btn{min-height:34px;padding:8px 12px;font-size:11px;box-shadow:none}
@media(max-width:1280px){.kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:980px){.sidebar{position:fixed;left:0;top:0;transform:translateX(-105%);transition:.22s transform;box-shadow:16px 0 40px rgba(5,12,24,.32)}body.sidebar-open .sidebar{transform:none}.mobile-backdrop{position:fixed;inset:0;background:rgba(8,16,29,.44);z-index:70}.menu-btn{display:grid}.topbar{padding:14px 18px}.page{padding:18px}.dashboard-grid,.split{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,1fr)}.metric-strip{grid-template-columns:repeat(2,1fr)}.modal-box.wide{width:min(100%,calc(100vw - 24px));max-height:94vh}}
@media(max-width:700px){.user-chip{display:none}.kpis,.metric-strip{grid-template-columns:1fr 1fr}.rooms{grid-template-columns:1fr 1fr}.page-title{align-items:flex-start;flex-direction:column}.page-title h1{font-size:24px}.form-grid,.permission-grid,.filters{grid-template-columns:1fr}.confirm-actions{grid-template-columns:1fr}.toast-stack{right:12px;top:78px;width:min(360px,calc(100vw - 24px))}.modal{padding:12px}.modal-box,.modal-box.wide{padding:16px;width:100%;border-radius:18px}}
@media(max-width:520px){.page{padding:14px}.kpis,.metric-strip,.rooms{grid-template-columns:1fr}.donut-wrap{grid-template-columns:1fr;justify-items:center}.filters .field{min-width:0}.sidebar{width:min(86vw,310px);flex-basis:min(86vw,310px)}.table-wrap{border-radius:14px}th,td{padding:11px}.install-banner{left:12px;right:12px;bottom:12px;max-width:none}}
@media print{.sidebar,.topbar,.footer,.page-title .btn,.filters,.toast-stack,.no-print,.install-banner{display:none!important}.page{padding:0;max-width:none}.card,.table-wrap{box-shadow:none;border-color:#ddd}body{background:#fff;color:#000}th{background:#f3f3f3;color:#333}}
.alert{padding:12px 14px;border-radius:12px;margin-bottom:14px;border:1px solid var(--line);font-size:12px}.alert.success{background:rgba(31,157,103,.12);color:var(--ok);border-color:rgba(31,157,103,.2)}.alert.error{background:rgba(216,77,93,.12);color:var(--danger);border-color:rgba(216,77,93,.2)}.alert.info{background:var(--primary-soft);color:var(--primary)}

/* Identidade visual / logo configurável */
.brand-logo-wrap{width:48px;height:48px;border-radius:15px;background:#fff;display:grid;place-items:center;overflow:hidden;box-shadow:0 10px 24px rgba(0,0,0,.18);flex:0 0 48px}.brand-logo-wrap img{width:100%;height:100%;object-fit:contain;padding:4px}.bottom-user{padding:4px 4px 12px;margin-bottom:2px;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar-footer{border-top:0;padding-top:0}.login-brand-image{width:60px;height:60px;border-radius:18px;background:var(--panel-soft);border:1px solid var(--line);display:grid;place-items:center;overflow:hidden;flex:0 0 60px}.login-brand-image img{width:100%;height:100%;object-fit:contain;padding:4px}.logo-config-row{display:grid;grid-template-columns:110px 1fr;gap:16px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--panel-soft)}.logo-preview{width:100px;height:100px;border-radius:18px;background:var(--panel);border:1px solid var(--line);display:grid;place-items:center;overflow:hidden}.logo-preview img{width:100%;height:100%;object-fit:contain;padding:7px}.logo-config-fields{display:grid;gap:8px}.remove-logo{display:flex!important;align-items:center;gap:8px;text-transform:none!important;letter-spacing:0!important;color:var(--danger)!important;font-size:11px!important}.remove-logo input{width:auto}.sidebar-footer .sidebar-user small{color:var(--sidebar-muted)}
@media(max-width:520px){.logo-config-row{grid-template-columns:1fr}.logo-preview{width:88px;height:88px}.brand-logo-wrap{width:44px;height:44px;flex-basis:44px}}
