*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body,h1,h2,h3,h4,p,ul,ol{margin:0}img,svg,canvas,video{display:block;max-width:100%}button,input,select,textarea{font:inherit}:focus-visible{outline:2px solid var(--k-focus);outline-offset:2px}:root{color-scheme:dark}:root{--k-font: Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--k-bg:#0b0c10;--k-surface:#0f1217;--k-panel:#14171d;--k-elev:#1b1f27;--k-text:#e7edf4;--k-muted:#9aa6b5;--k-border:#262c35;--k-primary:#5b8cfe;--k-primary-600:#3b74ff;--k-success:#22c55e;--k-warn:#f59e0b;--k-danger:#ef4444;--k-focus:#99c2ff;--k-radius:16px;--k-shadow:0 6px 24px rgba(0,0,0,.35);--k-fs-xs:12px;--k-fs-sm:13.5px;--k-fs-md:15px;--k-fs-lg:17px;--k-max:1100px}body{font-family:var(--k-font);font-size:var(--k-fs-md);color:var(--k-text);background:radial-gradient(1200px 600px at 50% -10%,#111419 0,transparent 60%),var(--k-bg);-webkit-tap-highlight-color:transparent}.k-shell{min-height:100dvh;display:grid;grid-template-rows:auto 1fr}.k-nav{position:sticky;top:0;z-index:100;display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:10px 14px;background:#0b0c10eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--k-border)}.k-brand{font-weight:900;letter-spacing:.3px}.k-nav a{color:var(--k-text);text-decoration:none;font-weight:700;font-size:var(--k-fs-sm);opacity:.9}.k-nav a:hover{opacity:1;color:var(--k-primary)}.k-grow{flex:1}.k-main{padding:16px 16px 90px}.k-container{width:100%;max-width:var(--k-max);margin-inline:auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 12px;border-radius:12px;border:1px solid var(--k-border);background:var(--k-elev);color:var(--k-text);font-weight:800;letter-spacing:.2px;transition:transform .06s ease,background .2s ease,border-color .2s ease}.btn:hover{transform:translateY(-1px)}.btn--sm{padding:8px 10px;border-radius:10px;font-size:var(--k-fs-sm)}.btn--primary{background:var(--k-primary);color:#fff;border-color:transparent}.btn--primary:hover{background:var(--k-primary-600)}.k-card{background:var(--k-panel);border:1px solid var(--k-border);border-radius:var(--k-radius);box-shadow:var(--k-shadow)}.k-card__body{padding:16px}.ring-panel{background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:18px;box-shadow:var(--k-shadow);padding:14px}.card.tile-link{border-radius:18px;box-shadow:0 10px 30px #00000059;background:radial-gradient(140% 120% at 0% 0%,#ffffff0f,#ffffff08 60%),#11161d;border:1px solid rgba(255,255,255,.06);padding:16px 16px 18px;color:var(--k-text);text-decoration:none}.card.tile-link h5{font-weight:800;font-size:16px;letter-spacing:.2px;margin:0 0 4px}.card.tile-link .sub{font-size:13.5px;color:#aeb7c6;line-height:1.35}.page-dashboard .k-hdr{display:flex;align-items:center;justify-content:space-between;margin:6px 0 12px}@media (max-width:420px){.k-nav{padding:8px 12px;gap:8px}.k-main{padding:12px 12px 80px}.card.kpi{min-width:200px;padding:14px}.card.kpi .pill{width:52px;height:52px}}.kpi-click{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;text-decoration:none;color:inherit}.kpi-click:active{transform:scale(.985)}html,body,.k-main{overflow-x:hidden}.kpi-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.top-right-logout{position:fixed;top:10px;right:14px;z-index:999}.btn--logout{background:#ef4444;color:#fff;font-weight:600;border:none;border-radius:8px;padding:6px 12px;box-shadow:0 2px 6px #00000040}.btn--logout:hover{background:#dc2626}.btn--logout:active{transform:scale(.96)}.kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:10px}.card.kpi{border-radius:18px;padding:16px;display:grid;grid-template-columns:56px 1fr;align-items:center;column-gap:12px;color:#fff;box-shadow:var(--k-shadow, 0 2px 6px rgba(0,0,0,.2));border:1px solid rgba(255,255,255,.08);transition:transform .15s ease,box-shadow .2s ease}.card.kpi:hover{transform:translateY(-2px);box-shadow:0 4px 10px #0000004d}.card.kpi .pill{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;font-size:26px;background:#00000026}.card.kpi .big{font-size:20px;font-weight:800;letter-spacing:.2px;line-height:1.2}.card.kpi .sub{opacity:.9;font-size:13px;margin-top:2px}.card.kpi.green{background:linear-gradient(180deg,#10b981,#0e8f67)}.card.kpi.purple{background:linear-gradient(180deg,#8b5cf6,#6d28d9)}.card.kpi.orange{background:linear-gradient(180deg,#f59e0b,#d97706)}.card.kpi.blue{background:linear-gradient(180deg,#3b82f6,#2563eb)}.kpi-grid .card.kpi{width:100%;min-width:unset!important;max-width:100%;overflow:hidden;border:1px solid rgba(255,255,255,.06);border-radius:18px;box-sizing:border-box}.card.kpi{position:relative;display:grid;grid-template-columns:56px 1fr;align-items:center;gap:12px;border-radius:18px;padding:16px;border:1px solid rgba(255,255,255,.08);overflow:hidden}.card.kpi:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(135deg,#0000001f,#0000002e);mix-blend-mode:multiply;pointer-events:none}.card.kpi .pill{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;font-size:26px;background:#00000038;border:1px solid rgba(255,255,255,.18);box-shadow:inset 0 0 0 2px #ffffff0f}.card.kpi .meta{display:grid;gap:4px;line-height:1.15}.card.kpi .big{color:#fff;font-weight:900;font-size:20px;letter-spacing:.2px;text-shadow:0 1px 0 rgba(0,0,0,.25)}.card.kpi .sub{color:#ffffffeb;font-size:13.5px;text-shadow:0 1px 0 rgba(0,0,0,.18);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width: 360px){.card.kpi{padding:14px;grid-template-columns:52px 1fr}.card.kpi .pill{width:52px;height:52px}.card.kpi .big{font-size:19px}}.kpi-grid .card.kpi{aspect-ratio:1 / 1;max-width:96px;min-width:86px;justify-self:center;align-self:start;padding:8px;border-radius:18px;border:1px solid rgba(255,255,255,.08);box-shadow:0 6px 16px #00000040;overflow:hidden;display:grid;grid-template-rows:auto auto 1fr;justify-items:center;text-align:center;row-gap:6px}.kpi-grid .card.kpi .pill{width:36px;height:36px;font-size:18px;border-radius:10px;background:#0003;border:1px solid rgba(255,255,255,.14)}.kpi-grid .card.kpi .big{font-size:15px;font-weight:900;letter-spacing:.2px}.kpi-grid .card.kpi .sub{font-size:10.5px;line-height:1.15;color:#fffffff2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.kpi-grid .card.kpi.green{background:#179566}.kpi-grid .card.kpi.purple{background:#6e5ae6}.kpi-grid .card.kpi.orange{background:#e38b13}.kpi-grid .card.kpi.blue{background:#2f7df4}.top-right-logout{position:fixed;top:calc(env(safe-area-inset-top,0px) + 10px);right:calc(env(safe-area-inset-right,0px) + 12px);z-index:999}.donut-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:8px 0 16px}.donut-grid-3 .card{background:linear-gradient(180deg,#1b1d22,#111215);border:1px solid rgba(255,255,255,.06);border-radius:16px;box-shadow:0 3px 6px #00000040;display:grid;grid-template-rows:auto 1fr;align-items:center;justify-items:center;padding:10px;min-height:160px}.donut-grid-3 .card h3{font-size:14px;font-weight:700;text-align:center;color:#fff;margin:4px 0 6px;letter-spacing:.2px}.donut-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:100%}.donut-slot{position:relative;width:85px;height:85px;display:grid;place-items:center}.donut-track{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:100%;height:100%;border-radius:50%;border:10px solid rgba(255,255,255,.08);box-sizing:border-box;z-index:0}.donut-slot>canvas,.donut-slot>svg,.donut-slot .ring,.donut-slot .chart{position:relative;z-index:1;width:100%!important;height:100%!important;border-radius:50%;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.donut-center-label{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-weight:700;font-size:13px;text-shadow:0 1px 3px rgba(0,0,0,.6);z-index:2}.donut-income .donut-center-label{color:#22c55e}.donut-expense .donut-center-label{color:#ef4444}.donut-profit .donut-center-label{color:#3b82f6}.donut-meta{display:flex;flex-direction:column;align-items:center;line-height:1.25;margin-top:4px}.donut-amount{font-size:13px;font-weight:600;color:#fff;margin-bottom:2px}.donut-month{font-size:12px;color:#aab3be;letter-spacing:.3px}.donut-skeleton{width:85px;height:85px;border-radius:50%;background:linear-gradient(90deg,#1e2126 25%,#272b31 37%,#1e2126 63%);background-size:400% 100%;animation:shimmer 1.2s infinite;border:10px solid rgba(255,255,255,.08)}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (max-width:380px){.donut-grid-3{gap:8px}.donut-grid-3 .card{min-height:150px;padding:8px}.donut-slot{width:70px;height:70px}.donut-center-label{font-size:12px}}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(94px,1fr));gap:12px;margin:12px 0 16px}.kpi-grid>.card.kpi{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:linear-gradient(180deg,#20242a,#15181b);border:1px solid rgba(255,255,255,.08);border-radius:14px;box-shadow:0 3px 5px #00000040;padding:10px;aspect-ratio:1 / 1;text-align:center;color:#fff;transition:transform .08s ease,box-shadow .08s ease,filter .12s ease}.kpi-grid>.card.kpi:active{transform:scale(.97);box-shadow:0 1px 3px #0006}.kpi-grid .pill{width:36px;height:36px;display:grid;place-items:center;border-radius:10px;background:#ffffff14;font-size:18px}.kpi-grid .meta{max-width:100%}.kpi-grid .big{font-size:15px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kpi-grid .sub{font-size:11px;color:#aab3be;line-height:1.2}.kpi-grid>.green{background:linear-gradient(180deg,#2bb673,#189f5a)}.kpi-grid>.purple{background:linear-gradient(180deg,#7a64f8,#5943e2)}.kpi-grid>.orange{background:linear-gradient(180deg,#f5a623,#e07e16)}.kpi-grid>.blue{background:linear-gradient(180deg,#4f8dfc,#2e6df2)}.kpi-green{background:linear-gradient(160deg,#22c55e,#15803d)}.kpi-purple{background:linear-gradient(160deg,#8b5cf6,#6d28d9)}.kpi-orange{background:linear-gradient(160deg,#f59e0b,#b45309)}.kpi-blue{background:linear-gradient(160deg,#3b82f6,#1d4ed8)}.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin:14px 0 18px}.dash-grid>.dash-item{aspect-ratio:1 / 1;border-radius:14px;padding:12px;box-shadow:0 3px 8px #00000040;border:1px solid rgba(255,255,255,.06);color:#fff;text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;transition:transform .08s ease,filter .12s ease}.dash-grid>.dash-item:active{transform:scale(.97);filter:brightness(1.08)}.kpi.green{background:linear-gradient(160deg,#26a76a,#1f8f59)}.kpi.purple{background:linear-gradient(160deg,#7d63d8,#6246c3)}.kpi.orange{background:linear-gradient(160deg,#e28a1c,#c46e0f)}.kpi.blue{background:linear-gradient(160deg,#4686eb,#2d67cc)}.tile-link{background:linear-gradient(180deg,#202225,#141517);color:#f2f4f8}.tile-link:hover{filter:brightness(1.1)}.dash-grid .big{font-weight:800;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dash-grid .sub{font-size:11.5px;line-height:1.25;color:#ffffffd9;max-width:90%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tile-link h5{font-size:13px;font-weight:700;margin:0 0 2px;color:#fff}.kpi .pill{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-size:18px;background:#ffffff26}@media (max-width: 380px){.dash-grid{gap:8px}.dash-grid>.dash-item{padding:10px}.dash-grid .big{font-size:14px}.dash-grid .sub,.tile-link h5{font-size:12px}}.board-grid>.board-item{box-sizing:border-box;width:100%;aspect-ratio:1 / 1;border-radius:14px;border:1px solid rgba(255,255,255,.06);box-shadow:0 3px 8px #00000040;padding:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff;background:linear-gradient(180deg,#1b1d22,#101114);transition:transform .08s ease,filter .12s ease;text-decoration:none}.board-grid>.board-item:active{transform:scale(.97);filter:brightness(1.06)}.board-item.is-kpi.is-green{background:linear-gradient(160deg,#26a76a,#1f8f59)}.board-item.is-kpi.is-purple{background:linear-gradient(160deg,#7d63d8,#6246c3)}.board-item.is-kpi.is-orange{background:linear-gradient(160deg,#e28a1c,#c46e0f)}.board-item.is-kpi.is-blue{background:linear-gradient(160deg,#4686eb,#2d67cc)}.board-item.is-kpi .pill{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-size:18px;background:#ffffff26;margin-bottom:4px}.board-item .sub{font-size:11.5px;line-height:1.2;color:#ffffffe0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.board-item.is-menu{background:linear-gradient(180deg,#202225,#141517)}.board-item.is-menu h5{margin:0 0 2px;font-weight:800;font-size:13px;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.board-item.is-menu .sub{color:#aab3be;font-size:11.5px;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media (max-width:380px){.board-grid{gap:10px}.board-grid>.board-item{padding:10px;border-radius:12px}.board-item .big{font-size:14px}.board-item.is-menu h5{font-size:12.5px}.board-item.is-menu .sub{font-size:10.8px}}.board-grid{display:grid;gap:12px;grid-auto-flow:column;grid-template-rows:repeat(3,1fr);grid-auto-columns:minmax(120px,1fr);margin:12px 0 18px}.board-grid>.board-item{height:110px;aspect-ratio:auto}@media (max-width: 560px){.board-grid{grid-auto-flow:row;grid-template-rows:none;grid-template-columns:repeat(2,1fr)}.board-grid>.board-item{height:95px}}@media (min-width: 561px) and (max-width: 900px){.board-grid>.board-item{height:105px}}.board-item.is-menu .icon{font-size:24px;line-height:1;margin-bottom:6px;opacity:.9}.board-item.is-menu{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;background:linear-gradient(180deg,#1c1d21,#131416);border:1px solid rgba(255,255,255,.06);border-radius:14px;box-shadow:0 2px 5px #00000040;padding:12px;transition:transform .1s ease,filter .12s ease}.board-item.is-menu:hover{transform:scale(1.03);filter:brightness(1.15)}.board-item.is-menu h5{font-size:13px;font-weight:700;margin:0;color:#fff}.board-item.is-menu p{font-size:11.5px;color:#a9b2bd;margin:0;line-height:1.3}.board-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-top:14px}.board-item{border-radius:14px;padding:14px;box-shadow:0 2px 6px #00000040;color:#fff;transition:transform .15s ease,filter .15s ease}.board-item:hover{transform:translateY(-2px);filter:brightness(1.1)}.board-item h5{font-size:13px;font-weight:700;margin:2px 0 4px}.board-item p{font-size:11.5px;color:#b4bcc6;margin:0;line-height:1.3}.board-item .icon{font-size:22px;margin-bottom:6px;opacity:.9}.board-item[data-type=tenants]{background:linear-gradient(160deg,#2563eb,#1e3a8a)}.board-item[data-type=income]{background:linear-gradient(160deg,#7c3aed,#5b21b6)}.board-item[data-type=dues]{background:linear-gradient(160deg,#f59e0b,#b45309)}.board-item[data-type=profit]{background:linear-gradient(160deg,#16a34a,#065f46)}.board-item[data-type=schedule]{background:linear-gradient(160deg,#0ea5e9,#0369a1)}.board-item[data-type=pending]{background:linear-gradient(160deg,#a855f7,#6d28d9)}.board-item[data-type=feedback]{background:linear-gradient(160deg,#f43f5e,#be123c)}.board-item[data-type=report]{background:linear-gradient(160deg,#3b82f6,#1d4ed8)}.board-item[data-type=archive]{background:linear-gradient(160deg,#64748b,#334155)}.board-item[data-type=inventory]{background:linear-gradient(160deg,#14b8a6,#0f766e)}.board-item[data-type=manage]{background:linear-gradient(160deg,#f97316,#c2410c)}.board-item[data-type=camera]{background:linear-gradient(160deg,#6366f1,#4338ca)}.board-item[data-type=utilities]{background:linear-gradient(160deg,#0891b2,#155e75)}.board-item[data-type=transactions]{background:linear-gradient(160deg,#4b5563,#1f2937)}@media (max-width: 380px){.board-grid{grid-template-columns:repeat(2,1fr);gap:8px}}.board-item{transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}.board-item:hover{transform:translateY(-2px);box-shadow:0 4px 10px #00000059;filter:brightness(1.1)}.board-item:active{transform:scale(.98);filter:brightness(.95)}.board-item .icon{text-shadow:0 0 6px rgba(255,255,255,.25);transition:text-shadow .2s ease}.board-item:hover .icon{text-shadow:0 0 10px rgba(255,255,255,.35)}.board-grid{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.k-container{padding-bottom:80px}@media (prefers-color-scheme: light){.board-item{color:#111;box-shadow:0 2px 4px #0000001a}}.board-grid>.board-item{--tint: #7aa2ff;background:linear-gradient(180deg,#15171b,#0f1115);border:1px solid rgba(255,255,255,.06);border-radius:14px;box-shadow:0 2px 6px #00000040,inset 0 0 0 .5px #ffffff0a;color:#fff;text-decoration:none;width:100%;aspect-ratio:1/1;padding:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease,border-color .15s ease}.board-grid>.board-item:after{content:"";position:absolute;inset:0 0 auto 0;height:3px;border-radius:14px 14px 0 0;background:color-mix(in srgb,var(--tint) 55%,transparent);opacity:.55}.board-grid>.board-item:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000059;border-color:color-mix(in srgb,var(--tint) 30%,rgba(255,255,255,.1));filter:brightness(1.05)}.board-item.is-kpi{background:linear-gradient(180deg,#181b21,#101216);box-shadow:0 3px 10px #00000059,inset 0 0 0 .5px #ffffff0d}.board-item.is-kpi .pill{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;font-size:18px;margin-bottom:6px;background:color-mix(in srgb,var(--tint) 20%,#ffffff08);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tint) 25%,transparent)}.board-item.is-menu h5{margin:0 0 2px;font-weight:700;font-size:13px;line-height:1.15}.board-item.is-menu p{margin:0;font-size:11.5px;color:#aab3be;line-height:1.25}.board-item .big{font:800 15px/1.1 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.board-item .sub{font-size:11.5px;color:#cdd6e0;opacity:.92}.board-item .icon{font-size:22px;margin-bottom:6px;opacity:.95}.board-item[data-type=tenants]{--tint:#6aa9ff}.board-item[data-type=income]{--tint:#a48bff}.board-item[data-type=dues]{--tint:#f4b35a}.board-item[data-type=profit]{--tint:#67d19a}.board-item[data-type=schedule]{--tint:#63c6ee}.board-item[data-type=pending]{--tint:#c1a6ff}.board-item[data-type=feedback]{--tint:#ff8ea1}.board-item[data-type=report]{--tint:#8fb3ff}.board-item[data-type=archive]{--tint:#9aa6b2}.board-item[data-type=inventory]{--tint:#6bd7c9}.board-item[data-type=manage]{--tint:#f2a370}.board-item[data-type=camera]{--tint:#98a0ff}.board-item[data-type=utilities]{--tint:#7cd0e0}.board-item[data-type=transactions]{--tint:#9ba4b0}.board-grid{display:grid;gap:12px;grid-template-columns:repeat(2,1fr);margin:12px 0 18px}@media (min-width:560px){.board-grid{grid-template-columns:repeat(3,1fr)}}@media (min-width:900px){.board-grid{grid-template-columns:repeat(4,1fr)}}@media (max-width:380px){.board-grid{gap:10px}.board-grid>.board-item{padding:10px;border-radius:12px}.board-item .big{font-size:14px}.board-item.is-menu h5{font-size:12.5px}.board-item.is-menu p{font-size:10.8px}}.board-item[data-type=tenants]{background:#1d2230;border-color:#2a3550}.board-item[data-type=income]{background:#242035;border-color:#3a3260}.board-item[data-type=dues]{background:#302820;border-color:#5a4730}.board-item[data-type=profit]{background:#1c2a24;border-color:#35594c}.board-item[data-type=schedule]{background:#1c2530;border-color:#314760}.board-item[data-type=pending]{background:#261f33;border-color:#3f3360}.board-item[data-type=feedback]{background:#2d1f25;border-color:#503541}.board-item[data-type=report]{background:#1f2433;border-color:#334160}.board-item[data-type=archive]{background:#23272c;border-color:#373d45}.board-item[data-type=inventory]{background:#1b2628;border-color:#2d4d52}.board-item[data-type=manage]{background:#2c221a;border-color:#50392b}.board-item[data-type=camera]{background:#222437;border-color:#34385f}.board-item[data-type=utilities]{background:#1b2b2f;border-color:#32545a}.board-item[data-type=transactions]{background:#23252a;border-color:#3a3e45}.board-item:hover{filter:brightness(1.08);transform:translateY(-2px);box-shadow:0 4px 10px #00000059}.board-item .icon{opacity:.95;text-shadow:0 0 6px rgba(255,255,255,.15)}.board-item:hover .icon{text-shadow:0 0 8px rgba(255,255,255,.25)}.board-grid{gap:12px}.board-grid>.board-item{min-height:112px;padding:12px 14px;border-radius:12px}.board-grid>.board-item:after{height:2px;opacity:.7}.board-item .icon,.board-item.is-kpi .pill{margin-bottom:8px}.board-item .icon{font-size:22px;opacity:.92}.board-item .big,.board-item.is-menu h5{font-weight:800;letter-spacing:.2px}.board-item .sub,.board-item.is-menu p{color:#b9c3cf}.board-grid>.board-item:hover{transform:translateY(-1px);box-shadow:0 3px 10px #00000052}.board-grid>.board-item:active{transform:scale(.99)}.board-item .sub,.board-item.is-menu h5,.board-item.is-menu p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.board-item.is-kpi{background:linear-gradient(180deg,#181b21,#111317)}.board-item.is-kpi .pill{background:color-mix(in srgb,var(--tint) 18%,#ffffff07);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tint) 22%,transparent)}@media (max-width: 380px){.board-grid>.board-item{min-height:104px;padding:10px 12px}.board-item .icon{font-size:20px}}.board-item[data-type=payments]{background:linear-gradient(160deg,#4b5563,#1f2937);min-height:96px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:16px 10px}.board-item[data-type=payments] .icon{font-size:22px;margin-bottom:6px;opacity:.9}.board-item[data-type=payments] h5{font-size:13.5px;font-weight:700;line-height:1.2;margin:2px 0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.board-item[data-type=payments] p{font-size:11.5px;color:#b4bcc6;line-height:1.3;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}@media (max-width: 400px){.board-item[data-type=payments]{min-height:110px;padding:18px 10px}.board-item[data-type=payments] h5{font-size:13px}.board-item[data-type=payments] p{font-size:10.5px}}.splash-ov{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:grid;place-items:center;background:radial-gradient(1200px 1200px at 50% 50%,#0a0a0a,#000 60%);opacity:0;transform:scale(.98) translateY(6px);transition:opacity .4s ease,transform .4s ease}.splash-ov.in{opacity:1;transform:scale(1) translateY(0)}.splash-ov.sweep .splash-logo{-webkit-mask-image:linear-gradient(110deg,rgba(0,0,0,.1) 30%,#000 50%,rgba(0,0,0,.1) 70%);mask-image:linear-gradient(110deg,#0000001a 30%,#000,#0000001a 70%);-webkit-mask-size:250% 100%;mask-size:250% 100%;-webkit-mask-position:120% 0%;mask-position:120% 0%;animation:logo-sweep .25s ease forwards}@keyframes logo-sweep{0%{-webkit-mask-position:-20% 0%;mask-position:-20% 0%}to{-webkit-mask-position:120% 0%;mask-position:120% 0%}}.splash-ov.out{opacity:0;transform:scale(.86) translateY(-8px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}.splash-logo-wrap{text-align:center;-webkit-user-select:none;user-select:none}.splash-logo{width:min(42vw,180px);height:auto;filter:drop-shadow(0 6px 24px rgba(0,0,0,.35));transition:filter .24s ease}.splash-sub{margin-top:10px;font-size:12px;letter-spacing:.06em;color:#bdbdbd}@media (prefers-reduced-motion: reduce){.splash-ov,.splash-ov.out{transition:none!important}.splash-ov.sweep .splash-logo{animation:none!important}}:root{--bg:#0f1115;--panel:#171a20;--txt:#e6e9ef;--muted:#8a93a6;--accent:#22c55e;--danger:#ef4444;--warn:#ffb020;--ring:#2a3140;--br:14px}html,body{background:var(--bg);color:var(--txt)}.container{max-width:960px;margin:0 auto;padding:12px 14px}.navbar{display:flex;flex-wrap:wrap;gap:10px;padding:10px 14px;border-bottom:1px solid #1f2430}.card{background:var(--panel);border-radius:var(--br);padding:12px;box-shadow:0 2px 10px #00000040}.grid-tiles{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.rings{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.sub{color:var(--muted);font-size:.85rem}*,*:before,*:after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{width:100%;font-size:16px;overflow-x:hidden!important}button{touch-action:manipulation;font-family:inherit}.kpHidden{display:none!important}.row{display:flex;align-items:center}.col{display:flex;flex-direction:column}.muted{color:#94a3b8}.small{font-size:.95rem}.tiny{font-size:.8rem}.mono{font-family:ui-monospace,Menlo,monospace;color:#e2e8f0}.centerPad{padding:10px 0;text-align:center}.fullBtn{grid-column:1 / -1}.linkBtn{padding:0;border:0;background:transparent;color:#93c5fd;cursor:pointer;text-align:left;font-weight:900}.linkBtn:hover{text-decoration:underline}.page-tenants{min-height:100vh;max-width:100%;overflow-x:hidden;padding:16px;padding-bottom:calc(92px + env(safe-area-inset-bottom));color:var(--text);background:radial-gradient(1400px 900px at 15% 5%,rgba(99,102,241,.2),transparent 55%),radial-gradient(1000px 700px at 80% 40%,rgba(16,185,129,.14),transparent 50%),radial-gradient(600px 500px at 50% 90%,rgba(245,158,11,.06),transparent 60%),linear-gradient(160deg,#020617,#080f28,#020617)}.kpHeader{max-width:860px;margin:0 auto;padding:20px 20px 16px;border-bottom:1px solid rgba(148,163,184,.12);border-radius:0 0 24px 24px;background:radial-gradient(600px 300px at 0% 0%,rgba(99,102,241,.18),transparent 60%),radial-gradient(500px 280px at 100% 0%,rgba(16,185,129,.12),transparent 60%),linear-gradient(180deg,#0f172af2,#070c1eeb);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 4px 24px #02061738,inset 0 1px #ffffff0a}.kpHeaderTop{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.kpTitle{margin:0;font-size:30px;line-height:1.05;font-weight:900;letter-spacing:-.03em;background:linear-gradient(135deg,#e0e7ff,#a5b4fc 40%,#34d399);-webkit-background-clip:text;background-clip:text;color:transparent}.kpSub{margin-top:6px;font-size:12px;font-weight:700;color:#94a3b8e6}.pageHeader{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;position:relative}.pageTitle{margin:0;font-size:1.4rem;font-weight:900;letter-spacing:.3px;color:#e5e7eb}.adminMenuWrap{position:relative}.adminBtn{font-weight:800}.adminMenuCard{position:absolute;right:0;top:48px;z-index:50;min-width:210px;padding:6px;border:1px solid rgba(148,163,184,.14);border-radius:18px;background:#070c1efa;box-shadow:0 20px 50px #0009,inset 0 1px #ffffff0a}.adminMenuItem{width:100%;text-align:left;padding:12px 14px;border:0;border-radius:12px;background:transparent;color:#e2e8f0;cursor:pointer;font-weight:700;font-size:.95rem;transition:background .15s ease}.adminMenuItem:hover{background:#ffffff0f;color:#fff}.kpStats{margin-top:16px;display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;-ms-overflow-style:none;scrollbar-width:none}.kpStats::-webkit-scrollbar{display:none}.kpStat{min-width:80px;flex:1;flex-shrink:0;padding:14px 12px;border-radius:18px;text-align:center;background:#0a101ee6;border:1px solid rgba(255,255,255,.06);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.kpStat:active{transform:scale(.96)}.kpStatValue{font-size:24px;font-weight:900;color:#e5e7eb;line-height:1.1;letter-spacing:-.03em}.kpStatLabel{margin-top:4px;font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.06em}.kpStat.ok{background:linear-gradient(135deg,#22c55e24,#10b98114);border-color:#22c55e47;box-shadow:0 8px 20px #22c55e14,inset 0 1px #22c55e1a}.kpStat.ok .kpStatValue{color:#4ade80}.kpStat.bad{background:linear-gradient(135deg,#ef444424,#dc262614);border-color:#ef444447;box-shadow:0 8px 20px #ef444414,inset 0 1px #ef44441a}.kpStat.bad .kpStatValue{color:#f87171}.kpStat.warn{background:linear-gradient(135deg,#eab30824,#ca8a0414);border-color:#eab30847;box-shadow:0 8px 20px #eab30814,inset 0 1px #eab3081a}.kpStat.warn .kpStatValue{color:#facc15}.kpFloor{margin-top:16px;display:flex;gap:6px;padding:6px;border-radius:18px;border:1px solid rgba(148,163,184,.12);background:#020617b3}.kpFloorBtn{flex:1;padding:11px 10px;border:0;border-radius:13px;background:transparent;color:#94a3b8bf;font-weight:800;font-size:13px;cursor:pointer;transition:all .2s ease;letter-spacing:.01em}.kpFloorBtn:hover{color:#e2e8f0;background:#ffffff0a}.kpFloorBtn.active{color:#fff;background:linear-gradient(135deg,#6366f1e6,#10b981cc);box-shadow:0 8px 20px #6366f140,inset 0 1px #ffffff1f}.roomSection{max-width:860px;margin:0 auto;padding:16px 18px 24px}.polishedRoomSection{padding-bottom:90px}.kpList,.roomList{display:flex;flex-direction:column;gap:12px}.kpRow{position:relative;width:100%;display:flex;flex-direction:column;gap:14px;padding:16px;border-radius:24px;border:1px solid rgba(148,163,184,.1);background:linear-gradient(145deg,#0f172aeb,#070c1ef5);box-shadow:0 4px 20px #02061733,inset 0 1px #ffffff08;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.kpRow:not(.empty){cursor:pointer}.kpRow:not(.empty):active{transform:scale(.983)}.kpRow:hover{border-color:#6366f14d;box-shadow:0 16px 40px #0206174d,0 0 0 1px #6366f114}.kpRow.paid,.kpRow.lunas{border-color:#10b98147;background:linear-gradient(145deg,#10b9810f,#070c1ef5 60%)}.kpRow.unpaid,.kpRow.belum{border-color:#f59e0b42;background:linear-gradient(145deg,#f59e0b0d,#070c1ef5 60%)}.kpRow.overdue{border-color:#ef444457;background:linear-gradient(145deg,#ef44440f,#070c1ef5 60%)}.kpRow.near,.kpRow.dueToday{border-color:#f973164d;background:linear-gradient(145deg,#f973160d,#070c1ef5 60%)}.kpRow.empty{border-color:#94a3b814;border-style:dashed;background:#070c1eb3;opacity:.75}.kpLeft{display:flex;flex-direction:column;gap:12px;min-width:0;width:100%}.kpRoomWrap{display:flex;align-items:center;justify-content:space-between;gap:10px}.kpRoom{font-size:22px;font-weight:900;letter-spacing:-.02em;color:#f8fafc;line-height:1}.kpRoomHash{font-size:17px;font-weight:900;color:#94a3b8;letter-spacing:.02em;font-feature-settings:"tnum"}.kpTenant{min-width:0;width:100%}.kpName{font-size:19px;font-weight:900;color:#f1f5f9;line-height:1.2;letter-spacing:-.02em}.kpMetaLine{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:6px;color:#94a3b8cc;font-size:12px}.kpPhone{opacity:.9;font-feature-settings:"tnum";letter-spacing:.01em}.kpDot{opacity:.3}.kpDuration{color:#a5b4fce6;font-weight:700}.kpRemainInline{display:inline-flex;align-items:center;gap:5px;margin-top:10px;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:800;width:fit-content;background:#0f172a99;border:1px solid rgba(148,163,184,.12);color:#e2e8f0}.kpRemainInline.overdue{color:#fca5a5;background:#ef44441a;border-color:#ef444433}.kpRemainInline.near,.kpRemainInline.dueToday{color:#fdba74;background:#f973161a;border-color:#f9731633}.kpRemainInline.ok,.kpRemainInline.paid{color:#86efac;background:#22c55e14;border-color:#22c55e2e}.kpEmptyText{font-size:15px;font-weight:700;color:#94a3b899}.kpEmptySub{margin-top:4px;color:#64748b80;font-size:12px}.kpBadge{padding:6px 12px;border-radius:999px;font-weight:800;font-size:11px;border:1px solid rgba(148,163,184,.14);background:#0f172ab3;color:#cbd5e1cc;white-space:nowrap;letter-spacing:.03em;transition:all .18s ease}.kpBadge:not(:disabled):hover{transform:translateY(-1px)}.kpBadge.paid,.kpBadge.lunas{border-color:#10b98166;background:#10b9811f;color:#6ee7b7;box-shadow:0 4px 12px #10b9811f}.kpBadge.unpaid,.kpBadge.belum{border-color:#f59e0b66;background:#f59e0b1f;color:#fcd34d;box-shadow:0 4px 12px #f59e0b1a}.kpBadge.overdue{border-color:#ef44446b;background:#ef44441f;color:#fca5a5;box-shadow:0 4px 12px #ef44441a}.kpBadge.near,.kpBadge.dueToday,.kpBadge.installment{border-color:#f9731661;background:#f973161f;color:#fdba74;box-shadow:0 4px 12px #f973161a}.kpBadge.empty{border-color:#94a3b81f;background:#0f172a4d;color:#64748bb3}.kpActionBar{display:grid;grid-template-columns:42px 1fr 1fr;gap:8px}.kpActionBar.compactActions{grid-template-columns:1fr 1fr}.kpActionBar.compactActions .kpGhostBtn,.kpActionBar.compactActions .kpPrimaryBtn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:0 14px;white-space:nowrap}.kpActionBar.compactActions .kpGhostBtn svg,.kpActionBar.compactActions .kpPrimaryBtn svg{flex:0 0 auto}.kpIconBtn,.kpGhostBtn,.kpPrimaryBtn{min-height:44px;border-radius:16px;border:1px solid rgba(148,163,184,.12);font-weight:800;font-size:12px;letter-spacing:.02em;transition:transform .18s ease,border-color .2s ease,background .2s ease,box-shadow .2s ease}.kpIconBtn{background:#0f172acc;color:#fcd34d;border-color:#fcd34d26}.kpGhostBtn{background:#0f172abf;color:#cbd5e1;border-color:#94a3b824}.kpGhostBtn:hover{background:#1e293be6;border-color:#94a3b840;color:#e2e8f0}.kpPrimaryBtn{color:#fff;border-color:#6366f147;background:linear-gradient(135deg,#4f46e5eb,#4338cae0);box-shadow:0 8px 20px #4f46e538,inset 0 1px #ffffff1a}.kpPrimaryBtn:hover{background:linear-gradient(135deg,#6366f1f5,#4f46e5eb);box-shadow:0 12px 28px #6366f147}.kpIconBtn:active,.kpGhostBtn:active,.kpPrimaryBtn:active{transform:scale(.97)}.skeletonList{gap:12px}.skeletonRow{min-height:112px;pointer-events:none}.skLine{border-radius:999px;background:linear-gradient(90deg,#94a3b82e,#e2e8f014,#94a3b82e);background-size:200% 100%;animation:skeletonMove 1.2s linear infinite}.skRoom{width:72px;height:20px}.skName{width:52%;height:18px}.skMeta{width:38%;height:14px}@keyframes skeletonMove{0%{background-position:200% 0}to{background-position:-200% 0}}.tenantFabAdd{position:fixed;right:16px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:55;display:none;align-items:center;gap:8px;border:none;border-radius:999px;padding:14px 20px;background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;font-weight:900;box-shadow:0 16px 40px #4f46e559,inset 0 1px #ffffff26;transition:transform .18s ease,box-shadow .18s ease}.tenantFabAdd:active{transform:scale(.96)}.tenantFabPlus{font-size:18px;line-height:1}.tenantFabText{font-size:13px;letter-spacing:.02em}.btn{padding:10px 14px;border:1px solid rgba(148,163,184,.16);border-radius:14px;background:#0f172acc;color:#e2e8f0;cursor:pointer;font-size:.95rem;font-weight:700;transition:background .15s ease,border-color .15s ease,transform .1s ease,box-shadow .15s ease}.btn:hover{border-color:#94a3b847;transform:translateY(-.5px);background:#141e37e6}.btn:active{transform:scale(.97)}.btn.sml{padding:8px 10px;font-size:.9rem;min-height:36px}.btn.full{width:100%;min-height:46px;font-size:15px;font-weight:800;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:16px}.btn.ghost{border-color:#94a3b824;color:#cbd5e1;background:#0f172a99}.btn.warn{border-color:#f59e0b4d;color:#fde68a;background:#f59e0b14}.btn.danger{border-color:#ef444466;color:#fecaca;background:linear-gradient(135deg,#b91c1ccc,#991b1b99)}.btn.danger:disabled{opacity:.6}.btn.primary{border-color:#6366f14d;color:#c7d2fe;background:linear-gradient(135deg,#4f46e5d9,#4338cabf);box-shadow:0 8px 20px #4f46e52e}.btn.strong{border-color:#22c55e4d;color:#bbf7d0;background:#22c55e14}.segmented{display:flex;gap:4px;padding:4px;border:1px solid rgba(51,65,85,.6);border-radius:16px;background:#070c1ecc}.segBtn{flex:1;border:0;border-radius:12px;background:transparent;color:#94a3b8cc;cursor:pointer;font-size:.92rem;font-weight:700;padding:9px 10px;transition:all .2s ease}.segBtn.active{background:linear-gradient(135deg,#6366f1e6,#4f46e5d9);color:#fff;font-weight:800;box-shadow:0 6px 14px #4f46e538}.input,.select{width:100%;padding:12px 14px;border:1px solid rgba(51,65,85,.8);border-radius:14px;background:#020617cc;color:#e2e8f0;font-size:1rem;outline:0;transition:border-color .18s ease,box-shadow .18s ease}.input:focus,.select:focus{border-color:#6366f173;box-shadow:0 0 0 3px #6366f11f}.input.big,.select.big{min-height:46px;padding:14px 16px;font-size:16px;border-radius:16px}.label{display:flex;flex-direction:column;gap:6px;font-size:1rem;font-weight:700;color:#94a3b8}textarea.input{resize:vertical;min-height:90px;line-height:1.4}.shortcutTitle{margin:0 2px 6px;font-weight:800;color:#cbd5e1;font-size:.95rem;letter-spacing:.2px}.shortcutRow{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:6px 0 10px;max-width:100%}.shortcutCol{overflow:hidden;max-width:100%;padding:8px;border:1px solid rgba(148,163,184,.2);border-radius:14px;background:#0f172a99}.roomStatusBar{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;padding:6px;border:1px solid rgba(148,163,184,.25);border-radius:14px;background:#0f172ae6}.roomStatusBtn{min-width:44px;height:44px;flex:0 0 auto;border:1px solid transparent;border-radius:14px;cursor:pointer;font-size:15px;font-weight:900;letter-spacing:.5px;transition:transform .1s ease,opacity .15s ease,border-color .15s ease,box-shadow .18s ease}.roomStatusBtn:active{transform:scale(.94)}.roomStatusBtn.occupied{background:radial-gradient(circle at top left,#15803d,#052e1a);border-color:#22c55eb3;color:#dcfce7;box-shadow:0 6px 16px #22c55e40}.roomStatusBtn.empty{background:radial-gradient(circle at top left,#dc2626,#270606);border-color:#ef4444bf;color:#fee2e2;box-shadow:0 6px 16px #ef444440}.roomStatusBtn.all{background:#070c1ecc;border:1px dashed rgba(51,65,85,.6);color:#64748b;box-shadow:none}.roomStatusBtn.active{outline:2px solid rgba(255,255,255,.6);outline-offset:1px;transform:translateY(-1px);box-shadow:0 0 0 4px #ffffff14,0 8px 20px #00000080}.infoGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.infoCell{padding:12px;border:1px solid rgba(148,163,184,.08);border-radius:14px;background:#050a17eb}.infoCell.full{grid-column:1 / -1}.infoCellIcon{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;margin-bottom:8px;background:#6366f11f;color:#a5b4fc;flex-shrink:0}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:800}.badge.payType.sewa{background:#6366f126;color:#a5b4fc;border:1px solid rgba(99,102,241,.3)}.badge.payType.lain{background:#22c55e1f;color:#86efac;border:1px solid rgba(34,197,94,.25)}.badge.payType.bayar{background:#94a3b81a;color:#94a3b8;border:1px solid rgba(148,163,184,.2)}.badge.payStatus.lunas{background:#22c55e1f;color:#86efac;border:1px solid rgba(34,197,94,.25)}.badge.payStatus.cicil{background:#f59e0b1f;color:#fcd34d;border:1px solid rgba(245,158,11,.25)}.badge.payDays{background:#94a3b81a;color:#94a3b8;border:1px solid rgba(148,163,184,.2)}.badge.payPack.bulanan{background:#6366f11a;color:#a5b4fc;border:1px solid rgba(99,102,241,.2)}.badge.payPack.mingguan{background:#38bdf81a;color:#7dd3fc;border:1px solid rgba(56,189,248,.2)}.badge.payPack.harian{background:#94a3b81a;color:#94a3b8;border:1px solid rgba(148,163,184,.2)}.badge.logType{background:#6366f11f;color:#a5b4fc;border:1px solid rgba(99,102,241,.2)}.toast{position:fixed;left:50%;bottom:22px;z-index:20000;transform:translate(-50%);padding:10px 14px;border:1px solid rgba(51,65,85,.6);border-radius:999px;background:#070c1ef5;color:#e2e8f0;box-shadow:0 10px 30px #0000008c;font-size:.95rem;font-weight:800;animation:toastIn .15s ease-out}.toast-success{border-color:#22c55e;color:#bbf7d0;background:#052e1a}.toast-error{border-color:#ef4444;color:#fecaca;background:#2a0707}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.histFilterBar{margin-bottom:12px}.histBody{display:flex;flex-direction:column}.histMonthWrap{display:flex;flex-direction:column;gap:8px}.histMonthGroup{display:flex;flex-direction:column}.histMonthHead{display:flex;align-items:center;gap:8px;padding:6px 0}.histMonthRailSpacer{width:var(--rail-w, 16px);flex-shrink:0}.histMonthTitle{position:sticky;top:0;z-index:3;display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0;padding:8px 12px 8px 26px;background:transparent;color:#64748b;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.historyTimeline{display:flex;flex-direction:column}.histPayItem{display:flex;gap:10px}.histPayRail{width:16px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;padding-top:14px}.railDot{width:8px;height:8px;border-radius:50%;background:#334155;flex-shrink:0}.railDot.sewa{background:#6366f1;box-shadow:0 0 6px #6366f166}.railDot.lain{background:#34d399;box-shadow:0 0 6px #34d39966}.railLine{flex:1;width:1px;background:#33415580;margin:4px 0}.histPayCard{flex:1 1 auto;min-width:0;margin-bottom:10px;padding:12px;border:1px solid rgba(51,65,85,.25);border-radius:16px;background:#060a18b3;display:flex;flex-direction:column;gap:6px}.histPayTop{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.histPayDate{display:flex;align-items:center;gap:6px;color:#475569}.dateMain{font-size:12px;font-weight:800;color:#94a3b8}.dateSub{font-size:10px;color:#475569;font-weight:600;margin-top:1px}.histPayAmountWrap{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex-shrink:0}.histPayAmountLine{display:flex;align-items:center;gap:4px}.histPayAmount{font-size:17px;font-weight:900;color:#f1f5f9;letter-spacing:-.02em;font-feature-settings:"tnum"}.histPayRight{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.histPaidBadge{padding:3px 8px;border:1px solid rgba(34,197,94,.3);border-radius:999px;background:#22c55e1a;color:#86efac;font-size:11px;font-weight:800}.histPayBadges{display:flex;flex-wrap:wrap;gap:5px}.histPayMetaRow{display:flex;flex-direction:column;gap:6px}.histPayDetails{display:flex;flex-direction:column;gap:3px}.histKV{display:grid;grid-template-columns:110px 1fr;gap:4px;font-size:12px;line-height:1.4;align-items:baseline}.histKVLabel{color:#475569;font-weight:700}.histKVValue{color:#cbd5e1;font-weight:700;word-break:break-word}.histPayNote{font-size:12px;color:#94a3b8;line-height:1.4;font-weight:700;margin-top:2px}.histPayExtra{display:flex;gap:5px;font-size:11px;color:#64748b}.extraLabel{font-weight:700;color:#475569;flex-shrink:0}.histPayPeriod{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;border:1px solid rgba(99,102,241,.2);border-radius:999px;background:#6366f112;color:#a5b4fc;font-size:11px;font-weight:700}.histSummaryCard{padding:14px;border:1px solid rgba(99,102,241,.15);border-radius:18px;background:linear-gradient(135deg,#6366f114,#060a18f2);margin-bottom:4px}.hsGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hsItem{min-height:72px;display:flex;flex-direction:column;justify-content:space-between;padding:10px 12px;border:1px solid rgba(51,65,85,.3);border-radius:14px;background:#060a18b3}.hsLabel{color:#475569;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.hsVal{color:#f1f5f9;font-size:15px;font-weight:900;line-height:1.2;margin-top:4px}.hsVal.small{font-size:13px}.histTabs{display:flex;gap:4px;padding:4px;border-bottom:1px solid rgba(51,65,85,.3);margin-bottom:12px}.histTabBtn{flex:1;padding:10px;border:0;border-radius:12px;background:transparent;color:#64748b;font-size:13px;font-weight:700;cursor:pointer;transition:all .18s ease}.histTabBtn.active{background:#6366f126;color:#a5b4fc;font-weight:800}.logsCards{display:flex;flex-direction:column;gap:10px}.logCard{border:1px solid rgba(15,23,42,.9);border-radius:12px;background:#070d1a;padding:10px 12px}.logCard-top{display:flex;justify-content:space-between;align-items:center}.logCard-time{font-weight:900;color:#e5e7eb}.logCard-msg{margin-top:6px;color:#cbd5e1;line-height:1.35}.histProofBtn{width:100%;display:flex;align-items:center;gap:10px;margin-top:4px;padding:8px;border:1px dashed rgba(51,65,85,.7);border-radius:12px;background:#070c1ecc;cursor:pointer;text-align:left;transition:transform .08s ease,border-color .15s ease,opacity .15s ease}.histProofBtn:hover{border-color:#38bdf8;transform:translateY(-1px)}.histProofBtn:active{transform:scale(.98)}.histProofThumb,.ktpThumb{width:74px;height:50px;flex:0 0 auto;display:grid;place-items:center;border:1px solid rgba(51,65,85,.6);border-radius:8px;overflow:hidden;background:#020617}.histProofThumb img,.ktpThumb img{width:100%;height:100%;object-fit:cover;display:block}.histProofThumb.noImage{display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 20%,rgba(56,189,248,.16),transparent 45%),#0f172ae6;border-style:dashed}.histProofIcon{display:inline-flex;align-items:center;justify-content:center;font-size:21px;line-height:1;opacity:.92}.ktpThumb.pdf{background:#050b17}.ktpPdfIcon{position:relative;width:100%;height:100%;display:grid;place-items:center;color:#e2e8f0;font-weight:900}.pdfBadge{position:absolute;top:6px;left:6px;padding:2px 6px;border:1px solid #f59e0b;border-radius:999px;background:#2a1603;color:#fde68a;font-size:.68rem}.pdfName{max-width:68px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 6px;color:#94a3b8;font-size:.7rem;text-align:center}.histProofText,.ktpText{flex:1 1 auto;display:flex;flex-direction:column;gap:2px;min-width:0}.histProofText .proofTitle,.ktpTitle{color:#e2e8f0;font-weight:900;font-size:.92rem;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.histProofText .proofSub,.ktpSub{color:#94a3b8;font-size:.78rem;font-weight:800}.histProofChevron,.ktpChevron{padding:0 4px;color:#64748b;font-size:1.6rem;font-weight:900}.buktiViewer{display:flex;justify-content:center;align-items:center;width:100%;max-height:70vh;overflow:auto;padding:6px;border:1px solid rgba(51,65,85,.6);border-radius:12px;background:#000}.buktiViewerImg{width:auto;height:auto;max-width:100%;max-height:68vh;object-fit:contain;border-radius:8px}.pdfViewer{width:100%;height:70vh;border:1px solid rgba(51,65,85,.6);border-radius:12px;overflow:hidden;background:#000}.ktpInputHidden{position:fixed;left:-9999px;top:0;opacity:0;width:1px;height:1px}.exCard{border:1px solid rgba(15,23,42,.9);border-radius:14px;background:#070d1a;padding:12px}.exCard-row{display:flex;justify-content:space-between;align-items:center}.exCard-name{font-weight:900;color:#e5e7eb}.exCard-room{padding:2px 8px;border:1px solid rgba(51,65,85,.6);border-radius:999px;background:#020617;font-size:.9rem;font-weight:800}.exCard-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.exCard-total{margin-top:8px;color:#e2e8f0;font-size:.95rem}.exActionBar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px;padding:8px;border:1px solid rgba(15,23,42,.9);border-radius:12px;background:#02061799}.exMonthHead{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:6px 2px 8px}.exMonthTitle{padding:6px 8px;border:1px solid rgba(15,23,42,.9);border-radius:10px;background:#020617b3;color:#e5e7eb;font-weight:900}.exSearchWrap{position:relative;display:flex;align-items:center;margin-bottom:10px}.exSearchIcon{position:absolute;left:12px;color:#64748b;pointer-events:none;flex-shrink:0}.exSearchInput{width:100%;padding:11px 40px 11px 38px;border:1px solid rgba(148,163,184,.18);border-radius:12px;background:#0f172ab3;color:#e2e8f0;font-size:14px;outline:0;transition:border-color .15s ease}.exSearchInput:focus{border-color:#60a5fa66}.exSearchInput::placeholder{color:#475569}.exSearchClear{position:absolute;right:10px;width:24px;height:24px;display:grid;place-items:center;border:0;border-radius:999px;background:#64748b40;color:#94a3b8;font-size:11px;cursor:pointer}.exStatsBar{display:flex;align-items:center;gap:8px;margin-bottom:14px;padding:10px 12px;border:1px solid rgba(148,163,184,.12);border-radius:12px;background:#0f172a80}.exStatItem{display:flex;flex-direction:column;align-items:center;gap:1px}.exStatVal{font-size:15px;font-weight:700;color:#e2e8f0;line-height:1}.exStatLabel{font-size:9px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.06em}.exStatDivider{width:1px;height:28px;background:#94a3b81a;flex-shrink:0}.exExportBtn{margin-left:auto;display:flex;align-items:center;gap:5px;padding:7px 12px;border:1px solid rgba(148,163,184,.18);border-radius:999px;background:#0f172a80;color:#94a3b8;font-size:12px;font-weight:700;cursor:pointer;transition:all .15s ease}.exExportBtn:hover{border-color:#94a3b84d;color:#e2e8f0}.exExportBtn:disabled{opacity:.4;cursor:not-allowed}.exMonthWrap{display:flex;flex-direction:column;gap:14px}.exMonthGroup{display:flex;flex-direction:column;gap:8px}.exMonthHead{display:flex;align-items:center;justify-content:space-between;gap:8px}.exMonthHeadLeft{display:flex;align-items:center;gap:8px}.exMonthDot{width:8px;height:8px;border-radius:50%;background:#6366f1;flex-shrink:0}.exMonthTitle{font-size:13px;font-weight:800;color:#e2e8f0}.exMonthCount{font-size:11px;color:#64748b}.exMonthExport{display:flex;align-items:center;gap:4px;padding:5px 10px;border:1px solid rgba(148,163,184,.18);border-radius:999px;background:transparent;color:#64748b;font-size:11px;font-weight:700;cursor:pointer;transition:all .15s ease}.exMonthExport:hover{color:#e2e8f0;border-color:#94a3b84d}.exCards{display:flex;flex-direction:column;gap:10px}.exCard2{border:1px solid rgba(51,65,85,.3);border-radius:18px;background:#060a18cc;padding:14px;display:flex;flex-direction:column;gap:10px}.exCard2Head{display:flex;align-items:center;justify-content:space-between;gap:12px}.exCard2HeadLeft{display:flex;align-items:center;gap:10px;min-width:0}.exCard2Avatar{width:38px;height:38px;border-radius:12px;background:#6366f126;border:1px solid rgba(99,102,241,.25);display:grid;place-items:center;font-size:16px;font-weight:900;color:#a5b4fc;flex-shrink:0}.exCard2Name{font-size:14px;font-weight:800;color:#f1f5f9}.exCard2Meta{display:flex;align-items:center;gap:5px;margin-top:2px}.exCard2Room{font-size:11px;font-weight:700;color:#a5b4fc}.exCard2Sep{color:#334155;font-size:10px}.exCard2Phone{font-size:11px;color:#64748b}.exCard2Total{font-size:15px;font-weight:900;color:#f1f5f9;white-space:nowrap}.exCard2Dates{display:flex;align-items:center;gap:8px}.exCard2DateItem{display:flex;flex-direction:column;gap:2px}.exCard2DateLabel{font-size:9px;font-weight:700;color:#475569;text-transform:uppercase;letter-spacing:.06em}.exCard2DateVal{font-size:12px;font-weight:700;color:#cbd5e1}.exCard2DateArrow{font-size:14px;color:#334155}.exCard2DaysBadge{margin-left:auto;padding:3px 8px;border:1px solid rgba(148,163,184,.18);border-radius:999px;background:#0f172a99;font-size:11px;font-weight:700;color:#94a3b8;white-space:nowrap}.exCard2Paket{display:flex;align-items:center;gap:5px;font-size:11px;color:#64748b;font-weight:700}.exCard2Detail{border-top:1px solid rgba(51,65,85,.3);padding-top:8px}.exCard2DetailToggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:4px 0;border:0;background:transparent;color:#64748b;font-size:12px;font-weight:700;cursor:pointer}.exPayList2{display:flex;flex-direction:column;gap:6px;margin-top:8px}.exPayRow2{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.exPayRow2Left{display:flex;align-items:flex-start;gap:8px}.exPayRow2Dot{width:6px;height:6px;border-radius:50%;background:#334155;margin-top:5px;flex-shrink:0}.exPayRow2Date{font-size:11px;color:#94a3b8;font-weight:600}.exPayRow2Paket{font-size:10px;color:#64748b;margin-top:2px}.exPayRow2Amt{font-size:12px;font-weight:700;color:#f1f5f9;white-space:nowrap}.exPayMore{font-size:11px;color:#475569;text-align:center;padding:4px}.exEmpty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:32px 16px}.exEmptyTitle{font-size:15px;font-weight:800;color:#e2e8f0}.exEmptySub{font-size:12px;color:#64748b;line-height:1.5;max-width:28ch}.proofGallery{display:flex;flex-direction:column;gap:16px}.proofMonth{display:flex;flex-direction:column;gap:8px}.proofMonthTitle{font-size:11px;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:.08em}.proofGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.proofTile{position:relative;aspect-ratio:1;border-radius:14px;overflow:hidden;border:1px solid rgba(51,65,85,.4);background:#070c1ecc;display:grid;place-items:center;cursor:pointer;transition:border-color .15s ease,transform .12s ease}.proofTile:active{transform:scale(.97)}.proofTile.noImage{background:radial-gradient(circle at 30% 20%,rgba(56,189,248,.1),transparent 55%),#070c1ee6;border-style:dashed;border-color:#33415599}.proofTileIcon{font-size:28px;line-height:1;opacity:.92;transform:translateY(-4px)}.proofTile.noImage:hover{border-color:#38bdf880}.proofTileBadge{position:absolute;left:6px;bottom:6px;padding:3px 8px;border-radius:999px;background:#000000a6;color:#fff;font-size:10px;font-weight:800;letter-spacing:.02em}.proofCenter{padding:40px 20px;text-align:center;opacity:.85;color:#64748b}.proofCenter.error{color:#fca5a5}.proofPreviewOverlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10080;display:grid;place-items:center;padding:16px;background:#000c}.proofPreviewCard{position:relative;width:min(96vw,480px);max-height:88vh;overflow-y:auto;border:1px solid rgba(148,163,184,.12);border-radius:22px;background:#080c1cfa;box-shadow:0 24px 60px #000000b3}.proofPreviewClose{position:absolute;top:10px;right:10px;width:32px;height:32px;display:grid;place-items:center;border:0;border-radius:999px;background:#ffffff1f;color:#e2e8f0;cursor:pointer;font-size:16px;z-index:2}.proofPreviewImgWrap{width:100%;max-height:55vh;display:grid;place-items:center;background:#000;border-radius:22px 22px 0 0;overflow:hidden}.proofPreviewImgWrap img{width:100%;height:auto;max-height:55vh;object-fit:contain;display:block}.proofPreviewMeta{padding:16px;display:flex;flex-direction:column;gap:10px;font-size:14px}.proofMetaName{font-size:17px;font-weight:900;color:#f1f5f9;margin-bottom:2px}.proofMetaRow{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid rgba(51,65,85,.3);color:#94a3b8;font-size:13px}.proofMetaRow:last-of-type{border-bottom:0}.proofMetaRow b{color:#e2e8f0;font-weight:800}.proofMetaNote{margin-top:4px;font-size:12px;color:#64748b;white-space:pre-wrap}.proofPreviewActions{padding:0 16px 16px}.proofPreviewImg{margin-top:8px;width:100%;max-height:180px;object-fit:cover;border:1px solid rgba(51,65,85,.4);border-radius:12px}.proofPreviewWrap{position:relative;border-radius:14px;overflow:hidden;border:1px solid rgba(51,65,85,.4)}.proofPreviewWrap img{width:100%;max-height:200px;object-fit:cover;display:block}.proofPreviewWrap .proofPreviewRemove{position:absolute;top:6px;right:6px;width:28px;height:28px;display:grid;place-items:center;border:0;border-radius:999px;background:#0009;color:#fff;cursor:pointer;font-size:14px}.tenantAvatarKtp{position:relative;width:58px;height:58px;display:grid;place-items:center;border:2px solid rgba(99,102,241,.25);border-radius:18px;overflow:hidden;background:#0a0f20cc;cursor:pointer;box-shadow:0 6px 16px #0000004d;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.tenantAvatarKtp:hover{border-color:#6366f180;box-shadow:0 8px 20px #6366f126}.tenantAvatarKtp .avatarInitial{color:#a5b4fc;font-size:22px;font-weight:900}.tenantAvatarKtp.hasKtp{border-color:#22c55e52;background:radial-gradient(circle at 30% 20%,rgba(34,197,94,.16),transparent 48%),#0a0f20e6}.tenantAvatarKtp.hasKtp:hover{border-color:#22c55e94;box-shadow:0 8px 20px #22c55e1f}.tenantAvatarKtp.pdf{background:radial-gradient(circle at 30% 20%,rgba(245,158,11,.14),transparent 48%),#0a0f20eb}.tenantAvatarKtp .avatarKtpBadge{width:100%;height:100%;display:grid;place-items:center;color:#bbf7d0;font-size:13px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.tenantAvatarKtp.pdf .avatarKtpBadge{color:#fde68a}.tenantAvatarKtp .avatarBadge{position:absolute;right:-3px;bottom:-3px;padding:3px 6px;border:1px solid rgba(245,158,11,.5);border-radius:999px;background:#020617d9;color:#fde68a;font-size:10px;font-weight:900}.tenantAvatarKtp.hasKtp .avatarBadge{border-color:#22c55e73;color:#bbf7d0}.tenantAvatarKtp.noKtp .avatarBadge{border-color:#6366f180;color:#a5b4fc}.tenantAvatarKtp.uploading{opacity:.7;pointer-events:none}.avatarChangeBtn{margin-left:6px;height:34px;padding:0 10px;border:1px solid rgba(148,163,184,.18);border-radius:10px;background:#02061759;color:#e2e8f0e6;font-weight:900}.avatarChangeBtn:active{transform:scale(.97)}.avatarChangeBtn:disabled{opacity:.6}@media (max-width: 520px){.kpRow{padding:12px;border-radius:18px;gap:12px}.kpRoomHash{font-size:17px}.kpName{font-size:16px}.kpMetaLine{gap:6px;font-size:11px}.kpRemainInline{font-size:11px}.kpBadge{padding:6px 9px;font-size:10px}.kpActionBar{grid-template-columns:40px 1fr 1fr}.kpIconBtn,.kpGhostBtn,.kpPrimaryBtn{min-height:38px;font-size:11px}.badge{font-size:11px}.hsGrid{gap:8px}.hsItem{min-height:68px}}@media (max-width: 480px){.infoGrid{grid-template-columns:1fr}}@media (max-width: 380px){.kpRoomHash{font-size:16px}.kpName{font-size:15px}.kpBadge{padding:5px 8px;font-size:9.5px}.kpActionBar{grid-template-columns:38px 1fr 1fr;gap:6px}}@media print{.btn,.exActionBar,.modalActions{display:none!important}body{background:#fff!important;color:#000!important}.exCard{break-inside:avoid}}.modalCard{background:#060a18fa}.modalMobile{width:100%;max-width:100%;height:100dvh;max-height:100dvh;border-radius:0;padding-bottom:env(safe-area-inset-bottom)}.modalScrollable{display:flex;flex-direction:column}.modalScroll{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;padding-bottom:84px}.modalActions{margin-top:8px;display:flex;flex-direction:column;gap:8px}.stickyActions{position:sticky;bottom:0;z-index:10;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#040714f7;border-top:1px solid rgba(51,65,85,.25);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modalCloseBtn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:#ffffff0f;color:#e5e7eb;cursor:pointer;transition:background .16s ease}.modalCloseBtn:hover{background:#ffffff1a}.modalCloseBtn:active{transform:scale(.95)}.modalSheet:has(.histTenantModal) .modalCloseBtn{display:none!important}.formSection{margin-bottom:12px;padding:16px;border:1px solid rgba(51,65,85,.3);border-radius:18px;background:#060a1899;display:flex;flex-direction:column;gap:14px}.sectionTitle{margin:0;padding-bottom:10px;border-bottom:1px solid rgba(51,65,85,.35);font-weight:900;color:#64748b;font-size:10px;letter-spacing:.1em;text-transform:uppercase}.infoHint{padding:10px 12px;border:1px solid rgba(51,65,85,.4);border-radius:12px;background:#070c1ecc;font-size:13px;color:#94a3b8;font-weight:700}.errorText{color:#fca5a5;font-size:13px;font-weight:700}.discPreview{margin-top:8px;padding:10px 12px;border:1px dashed rgba(51,65,85,.7);border-radius:12px;background:#070c1eb3;color:#e5e7eb;font-weight:800;font-size:.9rem}.fileBadge{margin-top:8px;padding:10px 12px;border:1px solid rgba(51,65,85,.5);border-radius:12px;background:#02061799;font-weight:800;color:#e2e8f0}.collapseHead{width:100%;display:flex;justify-content:space-between;align-items:center;border:0;background:transparent;color:inherit;cursor:pointer;font-weight:900;padding:0}.collapseIcon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(51,65,85,.5);border-radius:10px}.pickerBtn{width:100%;display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border:1px solid rgba(51,65,85,.7);border-radius:14px;background:#020617cc;color:#e2e8f0;cursor:pointer;text-align:left;transition:border-color .18s ease,background .18s ease}.pickerBtn:hover{border-color:#6366f166;background:#0a0f20e6}.pickerBtn-main{font-size:16px;font-weight:800;color:#f1f5f9}.pickerBtn-sub{font-size:12px;color:#64748b;font-weight:600;margin-top:2px}.dateRow{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.dateLabel{width:100%}.dateHint{padding:8px 12px;border-radius:10px;background:#6366f114;border:1px solid rgba(99,102,241,.15);color:#a5b4fc;font-size:12px;font-weight:700;letter-spacing:.01em}.nominalDisplay{display:flex;flex-direction:column;align-items:center;padding:14px 0 6px}.nominalLabel{font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}.nominalValue{font-size:32px;font-weight:900;color:#f1f5f9;letter-spacing:-.03em;line-height:1}.nominalValue.green{color:#4ade80}.methodChips{display:flex;gap:8px}.methodChip{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 8px;border:1px solid rgba(51,65,85,.5);border-radius:14px;background:#0a0f20b3;color:#64748b;font-size:11px;font-weight:700;cursor:pointer;transition:all .18s ease}.methodChip .methodIcon{font-size:20px;line-height:1}.methodChip.active{border-color:#6366f166;background:#6366f11f;color:#a5b4fc;box-shadow:0 4px 12px #6366f11f}.methodChip:disabled{opacity:.4;cursor:not-allowed}.uploadArea{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px;border:1px dashed rgba(99,102,241,.3);border-radius:14px;background:#6366f10d;cursor:pointer;transition:all .18s ease}.uploadArea:hover{border-color:#6366f180;background:#6366f117}.uploadIcon{font-size:24px;opacity:.8}.uploadText{font-size:13px;font-weight:800;color:#a5b4fc}.uploadSub{font-size:11px;color:#475569;font-weight:600}.uploadArea.uploading{opacity:.6;pointer-events:none}.addTenantForm{display:flex;flex-direction:column;gap:0;padding:0 16px 80px}.roomsGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:4px}.roomBtn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:14px 8px;border:1px solid rgba(51,65,85,.5);border-radius:16px;background:#070c1ecc;color:#e2e8f0;cursor:pointer;transition:all .18s ease}.roomBtn:hover{border-color:#6366f166;background:#6366f114}.roomBtn:active{transform:scale(.97)}.roomBtn.disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.payHeader{display:flex;align-items:center;gap:10px;padding:14px;margin-bottom:12px;border:1px solid rgba(51,65,85,.4);border-radius:18px;background:#070c1eeb}.payBackBtn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(51,65,85,.6);border-radius:999px;background:#020617b3;color:#e2e8f0;cursor:pointer;font-weight:900;transition:all .18s ease}.payBackBtn:hover{background:#0f172ae6;border-color:#6366f14d}.payTenant{flex:1;min-width:0}.payTenantName,.payTenantPhone{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.payTenantName{font-weight:900;color:#f1f5f9}.payTenantPhone{margin-top:2px;opacity:.7;font-size:12px}.payBadge{padding:7px 12px;border:1px solid rgba(51,65,85,.5);border-radius:999px;font-weight:800;font-size:11px;white-space:nowrap;color:#94a3b8;letter-spacing:.03em;transition:all .18s ease}.payBadge.extend{border-color:#6366f166;background:#6366f11a;color:#a5b4fc}.payBadge.other{border-color:#22c55e59;background:#22c55e14;color:#86efac}.payBadge.installment{border-color:#f59e0b59;background:#f59e0b14;color:#fcd34d}.payBadge.deposit{border-color:#38bdf859;background:#38bdf814;color:#7dd3fc}.btnSub{margin-top:4px;font-size:12px;opacity:.75;font-weight:600}.payMenuGrid{display:flex;flex-direction:column;gap:10px}.payMenuBtn{width:100%;display:flex;align-items:center;gap:14px;padding:16px;border-radius:18px;border:1px solid rgba(51,65,85,.4);background:#0a0f20b3;color:#e2e8f0;cursor:pointer;text-align:left;transition:border-color .2s ease,background .2s ease,transform .15s ease}.payMenuBtn:active{transform:scale(.98)}.payMenuBtn:hover{background:#0f172ae6}.payMenuBtn.primary{border-color:#6366f147;background:linear-gradient(135deg,#4f46e52e,#4338ca1f)}.payMenuBtn.primary:hover{border-color:#6366f173;background:linear-gradient(135deg,#4f46e547,#4338ca33)}.payMenuBtn.success{border-color:#22c55e38;background:#22c55e14}.payMenuBtn.success:hover{border-color:#22c55e61;background:#22c55e24}.payMenuBtn.warn{border-color:#f59e0b38;background:#f59e0b12}.payMenuBtn.warn:hover{border-color:#f59e0b61;background:#f59e0b1f}.payMenuBtn.ghost{border-color:#94a3b824;background:#0f172a80}.payMenuBtn.ghost:hover{border-color:#94a3b847}.payMenuIcon{width:42px;height:42px;flex-shrink:0;display:grid;place-items:center;border-radius:14px;font-size:20px}.payMenuBtn.primary .payMenuIcon{background:#6366f133;color:#a5b4fc}.payMenuBtn.success .payMenuIcon{background:#22c55e26;color:#86efac}.payMenuBtn.warn .payMenuIcon{background:#f59e0b24;color:#fcd34d}.payMenuBtn.ghost .payMenuIcon{background:#94a3b81a;color:#94a3b8}.payMenuText{flex:1;min-width:0}.payMenuLabel{font-size:15px;font-weight:800;color:#f1f5f9;line-height:1.2}.payMenuSub{margin-top:3px;font-size:12px;color:#64748b;font-weight:600}.payMenuArrow{color:#475569;font-size:18px;flex-shrink:0}.saldoBar{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border:1px solid rgba(51,65,85,.4);border-radius:16px;background:#070c1ecc}.saldoLabel{font-size:11px;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:.06em}.saldoValue{font-size:18px;font-weight:900;color:#f1f5f9;letter-spacing:-.02em}.quickPrice{display:flex;gap:8px;margin-top:4px}.quickPriceBtn{flex:1;padding:10px;border:1px solid rgba(51,65,85,.6);border-radius:14px;background:#070c1ecc;color:#94a3b8;font-size:13px;font-weight:700;transition:all .2s ease}.quickPriceBtn:active{transform:scale(.96)}.quickPriceBtn.active{border-color:transparent;background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;box-shadow:0 8px 16px #4f46e540}.tenantDetailModal{width:min(94vw,520px);height:100%;max-height:min(86dvh,760px);min-height:0;overflow:hidden;display:flex;flex-direction:column;border-radius:24px;border:1px solid rgba(148,163,184,.1);background:linear-gradient(170deg,#0c1228fc,#030818fc);box-shadow:0 20px 50px #0000008c;will-change:transform;transform:translateZ(0)}.tenantDetailModal,.tenantDetailModal *{max-width:100%}.tenantDetailHead{flex:0 0 auto;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid rgba(148,163,184,.1);background:#ffffff05}.tenantDetailRoom{min-width:0;color:#a5b4fc;font-size:15px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.tenantDetailHeadRight{display:flex;align-items:center;gap:10px;flex:0 0 auto}.tenantDetailClose{width:36px;height:36px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:#ffffff0f;color:#e5e7eb;cursor:pointer;transition:transform .14s ease,background .16s ease}.tenantDetailClose:hover{background:#ffffff1a}.tenantDetailClose:active{transform:scale(.95)}.tenantDetailIdentity{flex:0 0 auto;display:flex;align-items:center;gap:14px;min-width:0;padding:16px;border-bottom:1px solid rgba(148,163,184,.08);background:#ffffff05}.tenantIdentityText{display:flex;flex-direction:column;min-width:0;flex:1}.tenantIdName{display:flex;align-items:center;gap:7px;color:#f8fafc;font-size:17px;font-weight:900;line-height:1.15}.tenantIdPhoneRow{display:flex;align-items:center;gap:7px;margin-top:5px;color:#94a3b8}.tenantIdName svg,.tenantIdPhoneRow svg{flex:0 0 auto}.tenantIdPhone{font-weight:800;font-size:13px;opacity:.92}.copyBtn{width:32px;height:32px;flex:0 0 auto;display:grid;place-items:center;border:1px solid rgba(148,163,184,.15);border-radius:10px;background:#ffffff0d;color:#94a3b8;cursor:pointer;transition:background .15s ease,color .15s ease}.copyBtn:hover{background:#ffffff1a;color:#e2e8f0;border-color:#94a3b840}.copyBtn:active{transform:scale(.94)}.tenantDetailBody{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:14px 16px;padding-bottom:calc(16px + env(safe-area-inset-bottom));contain:layout style}.tenantDetailBody::-webkit-scrollbar{width:4px}.tenantDetailBody::-webkit-scrollbar-thumb{background:#94a3b82e;border-radius:999px}.tenantDetailModal .tenantInfo{padding:0;background:transparent;border:0;overflow-x:hidden}.tenantDetailModal .infoGrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tenantDetailModal .infoCell{padding:12px 14px;border-radius:14px;border:1px solid rgba(148,163,184,.08);background:#080c1cd9;transition:border-color .18s ease}.tenantDetailModal .infoCell:hover{border-color:#94a3b824}.tenantDetailModal .infoCell.full{grid-column:1 / -1}.tenantDetailModal .profileRow{display:grid;grid-template-columns:108px 1fr;gap:8px;align-items:center}.tenantDetailModal .profileKey,.tenantDetailModal .masaLabel{color:#64748b;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.tenantDetailModal .profileVal,.tenantDetailModal .masaValue{color:#f1f5f9;font-size:14px;font-weight:900;line-height:1.35;overflow-wrap:anywhere}.tenantDetailActions{flex:0 0 auto;display:flex;flex-direction:column;gap:8px;padding:14px 16px calc(14px + env(safe-area-inset-bottom));border-top:1px solid rgba(148,163,184,.08);background:#030818f2}.tenantDetailActions .btn.full{min-height:52px;border-radius:18px;font-weight:900;display:flex;align-items:center;justify-content:center;gap:8px;letter-spacing:.02em;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.tenantDetailActions .btn.full:active{transform:scale(.98)}.detailStatusPill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:800;border:1px solid rgba(148,163,184,.14);background:#0f172a99;color:#e2e8f0}.detailStatusPill.ok{border-color:#22c55e4d;background:#22c55e1a;color:#86efac}.detailStatusPill.overdue{border-color:#ef44444d;background:#ef44441a;color:#fca5a5}.detailStatusPill.near,.detailStatusPill.dueToday{border-color:#f973164d;background:#f973161a;color:#fdba74}.detailStatusPill.paid{border-color:#22c55e4d;background:#22c55e1a;color:#6ee7b7}.buktiModalWrap{display:flex;flex-direction:column;height:100%}.buktiHead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid rgba(148,163,184,.12);background:#020617e6}.buktiHeadTitle{color:#e5e7eb;font-weight:900}.buktiHeadActions{display:flex;gap:8px}.buktiBody{flex:1 1 auto;min-height:0;overflow:auto}.reminderModalShell{width:100%;max-width:100%}.reminderModalCard{display:flex;flex-direction:column;gap:14px;width:100%}.reminderHero{padding:16px;border:1px solid rgba(99,102,241,.2);border-radius:18px;background:linear-gradient(135deg,#141c38f2,#0a0f20eb)}.reminderHeroName{margin-bottom:3px;color:#f1f5f9;font-size:18px;font-weight:900;line-height:1.2;letter-spacing:-.02em}.reminderHeroMeta{color:#64748b;font-size:13px;font-weight:700;font-feature-settings:"tnum"}.reminderHeroPhone{color:#64748b;font-size:13px}.reminderHeroStatus{width:max-content;max-width:100%;min-height:30px;display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:6px 12px;border:1px solid rgba(148,163,184,.18);border-radius:999px;background:#0f172a99;color:#cbd5e1;font-size:12px;font-weight:800}.reminderHeroStatus.ok,.reminderHeroStatus.paid{border-color:#22c55e4d;background:#22c55e1a;color:#86efac}.reminderHeroStatus.near,.reminderHeroStatus.dueToday,.reminderHeroStatus.installment{border-color:#f59e0b4d;background:#f59e0b1a;color:#fcd34d}.reminderHeroStatus.overdue{border-color:#ef444452;background:#ef44441a;color:#fca5a5}.reminderFields{display:flex;flex-direction:column;gap:12px}.reminderField{display:flex;flex-direction:column;gap:6px}.reminderLabel{color:#94a3b8;font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.reminderInput,.reminderSelect,.reminderTextarea{width:100%;border:1px solid rgba(51,65,85,.7);border-radius:14px;background:#020617cc;color:#e2e8f0;outline:0;transition:border-color .18s ease,box-shadow .18s ease}.reminderInput,.reminderSelect{min-height:46px;padding:12px 14px;font-size:16px}.reminderTextarea{min-height:104px;padding:12px 14px;resize:vertical;line-height:1.45;font-size:15px}.reminderInput::placeholder,.reminderTextarea::placeholder{color:#94a3b880}.reminderInput:focus,.reminderSelect:focus,.reminderTextarea:focus{border-color:#6366f180;box-shadow:0 0 0 3px #6366f11f}.reminderQuickType{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.reminderChip{min-height:42px;padding:10px 12px;border:1px solid rgba(51,65,85,.6);border-radius:14px;background:#070c1ecc;color:#94a3b8;font-size:12px;font-weight:800;text-align:center;transition:all .18s ease}.reminderChip.active{border-color:#6366f166;background:linear-gradient(135deg,#6366f133,#4f46e526);color:#c7d2fe;box-shadow:0 6px 16px #4f46e524}.reminderError{padding:10px 12px;border:1px solid rgba(239,68,68,.2);border-radius:12px;background:#7f1d1d33;color:#fecaca;font-size:12px;font-weight:800;line-height:1.45}.reminderPreview{padding:12px 14px;border:1px solid rgba(148,163,184,.1);border-radius:14px;background:#070c1eb3}.reminderPreviewLabel{margin-bottom:6px;color:#64748b;font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.reminderPreviewText{color:#e2e8f0;font-size:13px;line-height:1.5;white-space:pre-wrap;word-break:break-word}.reminderHint{margin-top:2px;color:#64748b;font-size:12px;font-weight:700}.reminderDivider{width:100%;height:1px;background:linear-gradient(90deg,transparent,rgba(148,163,184,.18),transparent)}.reminderActions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}.reminderBtn{min-height:52px;border:0;border-radius:18px;font-size:14px;font-weight:900;transition:transform .15s ease,box-shadow .15s ease;letter-spacing:.02em}.reminderBtn:active{transform:scale(.97)}.reminderBtnGhost{border:1px solid rgba(148,163,184,.14);background:#ffffff0d;color:#94a3b8}.reminderBtnGhost:hover{background:#ffffff14;color:#e2e8f0}.reminderBtnPrimary{background:linear-gradient(135deg,#25d366,#128c7e);color:#fff;box-shadow:0 10px 24px #25d36633}.reminderBtnPrimary:hover{box-shadow:0 14px 30px #25d3664d}.reminderBtnPrimary:disabled,.reminderBtnGhost:disabled,.reminderBtn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.remJenisGrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.remJenisChip{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:12px;border:1px solid rgba(51,65,85,.45);border-radius:16px;background:#060a18bf;color:#94a3b8;cursor:pointer;text-align:left;transition:all .18s ease}.remJenisChip:active{transform:scale(.97)}.remJenisIcon{font-size:20px;line-height:1;margin-bottom:2px}.remJenisLabel{font-size:13px;font-weight:800;color:#e2e8f0;line-height:1.2}.remJenisSub{font-size:10px;color:#475569;font-weight:600;line-height:1.3}.remJenisChip.active{border-color:#6366f173;background:linear-gradient(135deg,#6366f129,#4f46e51a);color:#a5b4fc}.remJenisChip.active .remJenisLabel{color:#c7d2fe}.remJenisChip.active .remJenisSub{color:#818cf8}.histTenantModal,.histTenantNoFloat{display:flex;flex-direction:column}.histPayProof{position:relative;width:100%;min-height:72px;border:0;border-radius:12px;overflow:hidden;background:#020617cc;cursor:pointer}.histPayProof img{width:100%;height:100px;object-fit:cover;display:block}.proofOverlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:6px;background:#00000080;color:#e2e8f0;font-size:12px;font-weight:800;opacity:0;transition:opacity .15s ease}.histPayProof:hover .proofOverlay{opacity:1}.cdd-wrap{position:relative;width:100%}.cdd-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;min-height:48px;border:1px solid rgba(51,65,85,.8);border-radius:14px;background:#020617cc;color:#e2e8f0;font-size:1rem;cursor:pointer;text-align:left;transition:border-color .18s ease,box-shadow .18s ease}.cdd-trigger:hover{border-color:#6366f173}.cdd-trigger.open{border-color:#6366f18c;border-bottom-left-radius:0;border-bottom-right-radius:0;box-shadow:0 0 0 3px #6366f11f}.cdd-trigger.disabled{opacity:.5;cursor:not-allowed}.cdd-selected{flex:1;min-width:0}.cdd-placeholder{color:#94a3b880}.cdd-label{color:#e2e8f0;font-size:1rem}.cdd-row{display:flex;align-items:center;gap:10px}.cdd-arrow{font-size:10px;color:#64748b;flex-shrink:0;transition:transform .18s ease}.cdd-arrow.open{transform:rotate(180deg)}.cdd-list{position:absolute;top:100%;left:0;right:0;z-index:200;background:#070c1efa;border:1px solid rgba(99,102,241,.45);border-top:none;border-bottom-left-radius:14px;border-bottom-right-radius:14px;overflow-y:auto;max-height:240px;display:flex;flex-direction:column;box-shadow:0 16px 40px #00000080}.cdd-item{width:100%;display:flex;align-items:center;gap:12px;padding:11px 14px;border:none;border-bottom:1px solid rgba(51,65,85,.3);background:transparent;color:#e2e8f0;cursor:pointer;text-align:left;transition:background .12s ease}.cdd-item:last-child{border-bottom:none}.cdd-item:hover{background:#6366f11a}.cdd-item.selected{background:#6366f114}.cdd-item-text{display:flex;flex-direction:column;flex:1;min-width:0}.cdd-item-label{font-size:14px;font-weight:700;color:#f1f5f9}.cdd-item-sub{font-size:11px;color:#64748b;margin-top:1px}.cdd-check{margin-left:auto;font-size:13px;color:#818cf8;flex-shrink:0}.cdd-logo-img{width:42px;height:42px;object-fit:contain;border-radius:12px;background:#fff;padding:4px}@media (max-width: 520px){.tenantDetailModal{width:100vw;height:100dvh;max-height:100dvh;border-radius:22px 22px 0 0;border-left:0;border-right:0;border-bottom:0}.tenantDetailHead{padding:15px 14px 11px}.tenantDetailIdentity{padding:14px}.tenantDetailBody{padding:12px 14px 14px}.tenantDetailModal .infoGrid{grid-template-columns:1fr;gap:9px}.tenantDetailModal .profileRow{grid-template-columns:104px 1fr}.tenantDetailActions{padding:12px 14px calc(14px + env(safe-area-inset-bottom))}.reminderModalCard{gap:12px}.reminderHero{padding:12px 14px;border-radius:14px}.reminderHeroName{font-size:15px}.reminderHeroStatus{font-size:11px;padding:5px 9px}.reminderInput,.reminderSelect{min-height:48px;padding:12px}.reminderTextarea{min-height:96px;padding:11px 12px}.reminderPreview{padding:11px 12px}.reminderPreviewText{font-size:12px}.reminderBtn{min-height:44px;font-size:12px}}.page-dashboard{min-height:100vh;max-width:430px;margin:0 auto;padding:0 16px 120px;background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}.dash-hdr{position:sticky;top:0;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:20px 0 16px;background:linear-gradient(var(--bg) 75%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.hdr-left{display:flex;flex-direction:column;gap:2px}.hdr-title{font-size:18px;font-weight:600;letter-spacing:-.4px;line-height:1}.hdr-sub{font-size:11px;color:var(--sub)}.hdr-right{display:flex;gap:8px;align-items:center}.hdr-icon-btn{width:38px;height:38px;display:grid;place-items:center;border-radius:13px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;transition:transform .15s,border-color .15s,background .15s}.hdr-icon-btn:active{transform:scale(.96)}.hdr-icon-btn:hover{border-color:#60a5fa40;background:var(--lift)}.hdr-icon-btn.has-portal-badge{position:relative}.hdr-notif-badge{position:absolute;top:-5px;right:-5px;min-width:19px;height:19px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px;border-radius:999px;border:2px solid var(--bg);background:var(--red);color:#fff;font-size:10px;font-weight:700;line-height:1;box-shadow:0 8px 18px #fb718547}.alert-bar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin:0 0 12px;padding:13px 14px;border-radius:var(--r);border:1px solid var(--border);background:var(--surface)}.alert-bar.safe{background:var(--green-bg);border-color:var(--green-bd);color:var(--green)}.alert-bar.warn{background:var(--amber-bg);border-color:var(--amber-bd);color:var(--amber)}.alert-bar.danger{background:var(--red-bg);border-color:var(--red-bd);color:var(--red)}.alert-bar.neutral{background:var(--surface);border-color:var(--border);color:var(--text)}.alert-copy{min-width:0;display:flex;flex-direction:column;gap:2px}.alert-title{font-size:13px;font-weight:500}.alert-text{font-size:11.5px;opacity:.75;line-height:1.4}.alert-cta{flex:0 0 auto;border:1px solid currentColor;background:transparent;color:inherit;padding:6px 12px;border-radius:999px;font-size:11.5px;font-weight:500;cursor:pointer;font-family:var(--font);opacity:.8;transition:opacity .15s;white-space:nowrap}.alert-cta:hover{opacity:1}.dash-error{margin:0 0 12px;padding:12px 14px;border-radius:var(--r);border:1px solid var(--red-bd);background:var(--red-bg);display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dash-error-title{font-weight:500;color:var(--red);font-size:13px}.dash-error-msg{font-size:12px;color:var(--red);opacity:.7}.dash-error-btn{margin-left:auto;padding:5px 12px;border-radius:999px;background:transparent;border:1px solid var(--red-bd);color:var(--red);font-size:12px;font-weight:500;cursor:pointer;font-family:var(--font)}.block-card{margin:0 0 10px;padding:16px;border-radius:var(--r);border:1px solid var(--border);background:var(--surface)}.block-card.compact{padding:13px 16px}.block-hdr{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:16px}.block-hdr h3{font-size:13px;font-weight:500;letter-spacing:-.1px}.block-hdr-sub{font-size:11.5px;color:var(--sub);margin-top:2px}.chip-ghost{border:1px solid var(--border);padding:4px 9px;border-radius:999px;font-size:10.5px;color:var(--sub);background:var(--lift);font-family:var(--mono);white-space:nowrap;flex-shrink:0}.last-activity-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.last-activity-title{font-size:14px;font-weight:500;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.last-activity-amount{font-size:14px;font-weight:500;color:var(--green);white-space:nowrap;font-family:var(--mono);flex-shrink:0}.kpi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.kpi-card{border-radius:14px;background:var(--lift);border:1px solid var(--border);padding:14px;transition:border-color .2s}.kpi-card.ok{border-color:var(--green-bd)}.kpi-card.warn{border-color:var(--amber-bd)}.kpi-card.danger{border-color:var(--red-bd)}.kpi-card.soft-glow.ok{background:var(--green-bg)}.kpi-card.soft-glow.danger{background:var(--red-bg)}.kpi-link{text-decoration:none;color:inherit;display:block}.kpi-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--sub);margin-bottom:8px;font-weight:500}.kpi-main{font-size:22px;font-weight:500;color:var(--text);line-height:1;letter-spacing:-.5px}.kpi-main.money{font-size:15px;font-family:var(--mono);letter-spacing:-.2px}.kpi-sub{font-size:11px;color:var(--sub);margin-top:6px}.kpi-bar{margin-top:12px;height:2px;border-radius:999px;background:var(--divider);overflow:hidden}.kpi-barFill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--blue),var(--green));transition:width .7s cubic-bezier(.23,1,.32,1)}.kpi-badges{margin-top:10px;display:flex;gap:5px}.miniBadge{font-size:10px;font-weight:500;padding:3px 8px;border-radius:999px;border:1px solid var(--border);background:var(--surface)}.miniBadge.ok{border-color:var(--green-bd);color:var(--green)}.miniBadge.warn{border-color:var(--amber-bd);color:var(--amber)}.quick-actions{display:flex;gap:8px;margin-top:12px}.qa-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid var(--border);background:var(--lift);color:var(--text);padding:11px 14px;border-radius:12px;font-weight:500;cursor:pointer;font-size:13px;font-family:var(--font);transition:background .15s,border-color .15s;min-height:44px}.qa-btn.income{border-color:var(--green-bd);background:var(--green-bg);color:var(--green)}.qa-btn.expense{border-color:var(--red-bd);background:var(--red-bg);color:var(--red)}.qa-btn.income:active{background:#34d39924}.qa-btn.expense:active{background:#fb718524}.page-dashboard .segmented{display:flex;gap:2px;margin:14px 0;background:var(--lift);border:1px solid var(--border);border-radius:999px;padding:3px}.page-dashboard .seg-btn{flex:1;border:none;background:transparent;color:var(--sub);padding:7px 12px;border-radius:999px;font-size:12.5px;font-weight:500;font-family:var(--font);cursor:pointer;transition:background .15s,color .15s}.page-dashboard .seg-btn.active{background:var(--surface);color:var(--text)}.page-dashboard .seg-btn:hover:not(.active){color:var(--text)}.k-btn{padding:6px 13px;border:1px solid var(--border);background:var(--lift);border-radius:999px;font-size:12.5px;color:var(--sub);cursor:pointer;font-weight:500;font-family:var(--font);transition:color .15s,border-color .15s}.k-btn:hover{color:var(--text);border-color:#ffffff1f}.k-btn.ghost{background:transparent;color:var(--blue);border-color:#60a5fa40}.detail-accordion{margin:0 0 10px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);overflow:hidden}.detail-hdr{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:13px 16px;border-bottom:1px solid var(--divider)}.detail-hdr h3{font-size:13px;font-weight:500}.detail-body{padding:12px;background:var(--bg)}.board-section{margin-top:4px}.board-section-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;padding:0 2px}.board-section-hdr h3{font-size:13px;font-weight:500}.board-hint{font-size:11px;color:var(--dim, #343844)}.board-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.board-item.is-menu{position:relative;display:flex;gap:10px;align-items:center;border-radius:var(--r);padding:14px 12px;background:var(--surface);border:1px solid var(--border);text-decoration:none;color:var(--text);min-height:68px;overflow:hidden;transition:background .15s,border-color .15s;-webkit-tap-highlight-color:transparent}.board-item.is-menu:active{background:var(--lift);border-color:#ffffff1a}.menuIcon{width:34px;height:34px;border-radius:10px;background:var(--lift);display:grid;place-items:center;color:var(--sub);flex:0 0 auto;transition:color .15s}.board-item.is-menu:hover .menuIcon,.board-item.is-menu:active .menuIcon{color:var(--text)}.menuText{min-width:0}.board-item.is-menu h5{font-size:12.5px;font-weight:500;letter-spacing:-.1px;line-height:1.3;margin:0 0 1px}.board-item.is-menu p{font-size:11px;color:var(--sub);line-height:1.3;margin:0}.drag-handle{position:absolute;right:8px;top:50%;transform:translateY(-50%);border:none;background:none;padding:4px;color:var(--dim, #343844);cursor:grab;touch-action:none;z-index:2;border-radius:6px;display:flex;align-items:center;line-height:1}.drag-handle:active{cursor:grabbing;color:var(--sub)}.settings-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:flex-end;justify-content:center;padding:16px;background:#0000008c;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.settings-sheet{width:min(100%,430px);border-radius:24px 24px 18px 18px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#11141d,#080a0f);box-shadow:0 24px 70px #0000008c;overflow:hidden}.settings-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 18px 14px;border-bottom:1px solid var(--divider)}.settings-kicker{color:var(--blue);font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.settings-title{margin:3px 0 0;color:var(--text);font-size:17px;font-weight:600;letter-spacing:-.25px}.settings-close{width:34px;height:34px;display:grid;place-items:center;border-radius:12px;border:1px solid var(--border);background:var(--lift);color:var(--sub);cursor:pointer}.settings-list{display:flex;flex-direction:column;gap:9px;padding:14px}.settings-item,.settings-info{width:100%;min-height:66px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px;border-radius:16px;border:1px solid var(--border);background:#ffffff09;color:var(--text);text-align:left;font-family:var(--font)}.settings-item{cursor:pointer;transition:transform .15s,background .15s,border-color .15s}.settings-item:disabled{opacity:.6;cursor:not-allowed}.settings-item:active:not(:disabled){transform:scale(.985)}.settings-item:hover:not(:disabled){background:#ffffff0e;border-color:#ffffff1a}.settings-item-left{min-width:0;display:flex;align-items:center;gap:12px}.settings-item-right{display:flex;align-items:center;gap:8px;flex:0 0 auto}.settings-item-title{font-size:13px;font-weight:500;color:var(--text)}.settings-item-sub{margin-top:2px;color:var(--sub);font-size:11.5px;line-height:1.35}.settings-item.danger{border-color:var(--red-bd);background:var(--red-bg)}.settings-item.danger .settings-item-title{color:var(--red)}.settings-item.has-unread{border-color:#60a5fa38;background:#60a5fa12}.settings-icon{width:38px;height:38px;flex:0 0 auto;display:grid;place-items:center;border-radius:13px;background:var(--lift);border:1px solid var(--border)}.settings-icon.test{color:var(--amber)}.settings-icon.sync{color:var(--blue)}.settings-icon.logout{color:var(--red)}.settings-icon.inbox{color:var(--blue)}.settings-icon.system{color:var(--green)}.settings-badge{min-width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;padding:0 7px;border-radius:999px;background:var(--blue);color:#07111f;font-size:11px;font-weight:700;line-height:1}.inbox-backdrop{z-index:1100}.inbox-sheet{width:min(100%,430px);max-height:min(86vh,760px);display:flex;flex-direction:column;border-radius:24px 24px 18px 18px;border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,#11141d,#080a0f);box-shadow:0 24px 70px #0000008c;overflow:hidden}.inbox-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:14px 14px 0}.inbox-summary-card{min-height:58px;display:flex;flex-direction:column;justify-content:center;gap:3px;border:1px solid var(--border);border-radius:15px;background:#ffffff09;padding:10px}.inbox-summary-card span{color:var(--sub);font-size:10px;font-weight:500}.inbox-summary-card b{color:var(--text);font-size:18px;font-weight:600;line-height:1;font-family:var(--mono)}.inbox-actions{padding:10px 14px 0}.inbox-refresh{width:100%;border:1px solid rgba(96,165,250,.22);background:#60a5fa14;color:#bfdbfe;border-radius:14px;padding:10px 12px;font-size:12px;font-weight:500;cursor:pointer;font-family:var(--font)}.inbox-list{min-height:0;overflow:auto;display:flex;flex-direction:column;gap:10px;padding:14px}.inbox-empty{border:1px dashed var(--border);border-radius:16px;padding:18px;color:var(--sub);font-size:13px;text-align:center;background:#ffffff06}.inbox-empty.error{color:var(--red);border-color:var(--red-bd);background:var(--red-bg)}.inbox-item{border:1px solid var(--border);border-radius:18px;background:#ffffff09;padding:13px}.inbox-item.unread{border-color:#60a5fa3d;background:#60a5fa0e}.inbox-item-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}.inbox-type{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:600;border:1px solid var(--border);color:var(--sub);background:var(--lift)}.inbox-type.pay{color:var(--green);border-color:var(--green-bd);background:var(--green-bg)}.inbox-type.complaint{color:var(--amber);border-color:var(--amber-bd);background:var(--amber-bg)}.inbox-unread,.inbox-read{font-size:10.5px;font-weight:600;border-radius:999px;padding:4px 8px}.inbox-unread{background:#60a5fa1f;color:#bfdbfe;border:1px solid rgba(96,165,250,.25)}.inbox-read{background:#ffffff09;color:var(--sub);border:1px solid var(--border)}.inbox-title{color:var(--text);font-size:14px;font-weight:600;letter-spacing:-.15px}.inbox-subtitle{margin-top:2px;color:var(--sub);font-size:12px;font-weight:500}.inbox-message{margin-top:9px;display:flex;flex-direction:column;gap:2px;padding:10px;border-radius:14px;border:1px solid var(--border);background:#00000029;color:var(--text);font-size:12.5px;line-height:1.45;white-space:pre-wrap}.inbox-time{margin-top:8px;color:var(--dim, #343844);font-size:11px;font-family:var(--mono)}.inbox-buttons{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}.inbox-btn{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--border);background:var(--lift);color:var(--sub);border-radius:999px;padding:7px 10px;font-size:11.5px;font-weight:500;cursor:pointer;font-family:var(--font)}.inbox-btn:disabled{opacity:.55;cursor:not-allowed}.inbox-btn.view{color:#bfdbfe;border-color:#60a5fa3d;background:#60a5fa14}.inbox-btn.read{color:var(--green);border-color:var(--green-bd);background:var(--green-bg)}.inbox-btn.delete{color:var(--red);border-color:var(--red-bd);background:var(--red-bg)}.system-check-empty{border:1px dashed var(--border);border-radius:16px;padding:18px;color:var(--sub);font-size:13px;text-align:center;background:#ffffff06}.system-check-error{display:flex;align-items:center;gap:8px;border:1px solid var(--red-bd);border-radius:16px;padding:14px;color:var(--red);font-size:13px;background:var(--red-bg)}.system-check-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.system-check-card{min-height:64px;display:flex;flex-direction:column;justify-content:center;gap:5px;border:1px solid var(--border);border-radius:15px;background:#ffffff09;padding:12px}.system-check-card span{color:var(--sub);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.06em}.system-check-card b{color:var(--text);font-size:15px;font-weight:600;line-height:1.15;font-family:var(--mono);word-break:break-word}.system-check-list{display:flex;flex-direction:column;gap:8px}.system-row{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:11px 12px;border:1px solid var(--border);border-radius:14px;background:#ffffff08}.system-row span{color:var(--sub);font-size:12px}.system-row b{font-size:12px;font-weight:700;border-radius:999px;padding:4px 8px;border:1px solid var(--border)}.system-row b.ok{color:var(--green);border-color:var(--green-bd);background:var(--green-bg)}.system-row b.bad{color:var(--red);border-color:var(--red-bd);background:var(--red-bg)}.proof-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:16px;background:#000000b8;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.proof-card{width:min(100%,430px);max-height:88vh;overflow:hidden;border-radius:22px;border:1px solid rgba(255,255,255,.1);background:#080a0f;box-shadow:0 24px 70px #0009}.proof-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px;border-bottom:1px solid var(--divider);background:#101521}.proof-title{margin:3px 0 0;color:var(--text);font-size:15px;font-weight:600}.proof-body{display:grid;place-items:center;min-height:260px;max-height:76vh;background:#000}.proof-body img{width:100%;max-height:76vh;object-fit:contain;display:block}.proof-body iframe{width:100%;height:76vh;border:0;background:#fff}@media (min-width: 520px){.settings-backdrop{align-items:center}.settings-sheet,.inbox-sheet{border-radius:22px}.kpi-grid{grid-template-columns:repeat(4,1fr)}.board-grid{grid-template-columns:repeat(3,1fr)}}.m-page{min-height:100vh;max-width:480px;margin:0 auto;padding:0 16px 120px;background:radial-gradient(600px 260px at 10% -40px,rgba(99,102,241,.14),transparent 60%),radial-gradient(400px 200px at 88% 10%,rgba(34,211,153,.08),transparent 60%),var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:14px}.m-header{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 0 14px;background:linear-gradient(var(--bg) 72%,transparent)}.m-header__left{display:flex;align-items:center;gap:12px;min-width:0}.m-header__icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;flex:0 0 auto;color:#818cf8;background:#6366f11f;border:1px solid rgba(99,102,241,.22)}.m-header__title{margin:0;font-size:19px;font-weight:900;letter-spacing:-.04em;color:#f8fafc;line-height:1.1}.m-header__sub{margin:3px 0 0;color:var(--sub);font-size:11px;font-weight:600}.m-add-btn{flex:0 0 auto;min-height:40px;display:flex;align-items:center;gap:6px;padding:10px 16px;border:0;border-radius:14px;background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;font-family:inherit;font-size:13px;font-weight:900;white-space:nowrap;cursor:pointer;box-shadow:0 8px 22px #6366f147,inset 0 1px #ffffff1f;transition:transform .14s ease,box-shadow .14s ease}.m-add-btn:active{transform:scale(.96)}.m-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:16px}@media (min-width: 380px){.m-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}.m-stat{min-width:0;display:flex;align-items:center;gap:8px;padding:12px 10px;border-radius:16px;border:1px solid var(--border);background:#0c0e14e6}.m-stat__icon{width:32px;height:32px;flex:0 0 auto;display:grid;place-items:center;border-radius:10px}.m-stat--red .m-stat__icon{background:#fb71851a;color:#fb7185}.m-stat--amber .m-stat__icon{background:#fbbf241a;color:#fbbf24}.m-stat--green .m-stat__icon{background:#34d3991a;color:#34d399}.m-stat--blue .m-stat__icon{background:#6366f11f;color:#818cf8}.m-stat--cyan .m-stat__icon{background:#22d3ee1a;color:#22d3ee}.m-stat__body{min-width:0}.m-stat__value{font-size:15px;font-weight:900;color:#f1f5f9;letter-spacing:-.03em;white-space:nowrap}.m-stat__label{margin-top:2px;color:var(--sub);font-size:10px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-section{margin-top:16px}.m-section.history{margin-top:20px}.m-section.vendors{margin-top:14px}.m-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:0 2px 10px}.m-section-kicker{color:#6366f1;font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase}.m-section-title{margin:3px 0 0;color:#f1f5f9;font-size:16px;font-weight:900;letter-spacing:-.04em}.m-section-count{padding:4px 9px;border-radius:999px;background:#ffffff0d;border:1px solid rgba(255,255,255,.07);color:var(--sub);font-size:11px;font-weight:800}.m-vendor-list{display:flex;flex-direction:column;gap:8px}.m-vendor-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:18px;border:1px solid var(--border);background:#0c0e14eb}.m-vendor-main{display:flex;align-items:center;gap:10px;min-width:0}.m-vendor-avatar{width:40px;height:40px;flex:0 0 auto;display:grid;place-items:center;border-radius:14px;color:#c7d2fe;background:#6366f11f;border:1px solid rgba(99,102,241,.2);font-weight:900;font-size:15px}.m-vendor-info{min-width:0}.m-vendor-name{color:#f1f5f9;font-size:14px;font-weight:900;letter-spacing:-.02em}.m-vendor-job{margin-top:2px;color:var(--sub);font-size:11.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-vendor-phone{margin-top:4px;display:flex;align-items:center;gap:5px;color:var(--sub);font-size:11.5px;font-weight:700}.m-vendor-actions{display:flex;align-items:center;gap:7px;flex:0 0 auto}.m-mini-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:12px;border:1px solid var(--border);background:#ffffff0d;color:var(--sub);cursor:pointer;transition:transform .13s ease}.m-mini-icon.wa{color:#34d399;background:#34d39917;border-color:#34d3992e}.m-mini-icon:active{transform:scale(.94)}.m-room-list{display:flex;flex-direction:column;gap:10px}.m-room-card{padding:14px;border-radius:20px;border:1px solid var(--border);background:#0b0d13f5;will-change:transform}.m-room-card.ruko{border-color:#22d3ee24}.m-room-card__top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.m-room-main{display:flex;align-items:center;gap:10px;min-width:0}.m-room-icon{width:36px;height:36px;flex:0 0 auto;display:grid;place-items:center;border-radius:12px;color:var(--muted);background:#ffffff0d;border:1px solid var(--border)}.m-room-title{color:#f1f5f9;font-size:15px;font-weight:900;letter-spacing:-.03em;line-height:1.15}.m-room-sub{margin-top:3px;color:var(--sub);font-size:12px;font-weight:700;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-room-history-btn{width:100%;min-height:36px;display:flex;align-items:center;justify-content:center;gap:6px;margin:-2px 0 10px;border-radius:12px;border:1px solid var(--border);background:#ffffff0a;color:var(--sub);font-family:inherit;font-size:12px;font-weight:800;cursor:pointer;transition:color .13s ease,border-color .13s ease}.m-room-history-btn:hover{color:var(--muted);border-color:var(--border2)}.m-room-history-btn:active{transform:scale(.98)}.m-routine-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.m-routine-meta{min-width:0;display:flex;align-items:flex-start;gap:8px;padding:10px;border-radius:14px;background:#070910b3;border:1px solid var(--border)}.m-routine-meta__icon{width:26px;height:26px;flex:0 0 auto;display:grid;place-items:center;border-radius:8px;color:var(--sub);background:#ffffff0d}.m-routine-meta__text{min-width:0;display:flex;flex-direction:column}.m-routine-meta__text span{color:var(--sub);font-size:10px;font-weight:800}.m-routine-meta__text strong{margin-top:2px;color:#e2e8f0;font-size:12px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-routine-meta__text em{color:var(--sub);font-size:10px;font-style:normal;font-weight:700;line-height:1.3}.m-routine-meta__text small{margin-top:4px;color:#34d399;font-size:11px;font-weight:800}.m-routine-next{margin-top:5px;display:flex;flex-direction:column;gap:4px}.m-next-badge{display:inline-flex;align-items:center;width:max-content;max-width:100%;padding:2px 7px;border-radius:999px;border:1px solid var(--border);font-size:10px;font-weight:900;white-space:nowrap}.m-next-badge.safe{color:#34d399;background:#34d39917;border-color:#34d39933}.m-next-badge.soon{color:#fbbf24;background:#fbbf2417;border-color:#fbbf2433}.m-next-badge.late{color:#fb7185;background:#fb718517;border-color:#fb718533}.m-next-badge.empty{color:var(--sub);background:#ffffff0a;border-color:var(--border)}.m-room-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.m-routine-btn{min-height:42px;display:flex;align-items:center;justify-content:center;gap:6px;border-radius:13px;border:1px solid var(--border);cursor:pointer;font-family:inherit;font-size:12px;font-weight:900;transition:transform .13s ease}.m-routine-btn.ac{color:#818cf8;background:#6366f117;border-color:#6366f133}.m-routine-btn.room{color:#34d399;background:#34d39917;border-color:#34d39933}.m-routine-btn.water{color:#22d3ee;background:#22d3ee17;border-color:#22d3ee33}.m-routine-btn.battery{color:#fbbf24;background:#fbbf2417;border-color:#fbbf2433}.m-routine-btn:active{transform:scale(.97)}.m-list{display:flex;flex-direction:column;gap:8px}.m-card{border-radius:18px;background:#0b0d13f7;border:1px solid var(--border);overflow:hidden}.m-card--red{border-left:3px solid rgba(251,113,133,.5)}.m-card--amber{border-left:3px solid rgba(251,191,36,.5)}.m-card--green{border-left:3px solid rgba(52,211,153,.5)}.m-card__head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px 6px;cursor:pointer;color:var(--sub)}.m-card__head-left{display:flex;align-items:center;gap:8px;min-width:0}.m-card__head-right{display:flex;align-items:center;gap:8px;flex:0 0 auto}.m-card__kamar{color:var(--sub);font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.m-card__biaya{color:#34d399;font-size:12px;font-weight:900;white-space:nowrap}.m-card__judul{padding:4px 14px 12px;color:#e2e8f0;font-size:14px;font-weight:700;line-height:1.45}.m-card__detail{padding:12px 14px 14px;border-top:1px solid var(--divider);background:#07091040}.m-card__desc{margin:0 0 10px;color:var(--sub);font-size:13px;line-height:1.5}.m-card__meta{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.m-card__meta span{display:flex;align-items:center;gap:6px;color:var(--sub);font-size:11.5px;font-weight:650}.m-card__ledger{color:#34d399!important;font-weight:800!important}.m-card__actions{display:flex;gap:7px;flex-wrap:wrap}.m-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 9px;border-radius:999px;font-size:10.5px;font-weight:900;white-space:nowrap}.m-badge--red{background:#fb71851a;color:#fb7185;border:1px solid rgba(251,113,133,.2)}.m-badge--amber{background:#fbbf241a;color:#fbbf24;border:1px solid rgba(251,191,36,.2)}.m-badge--green{background:#34d3991a;color:#34d399;border:1px solid rgba(52,211,153,.2)}.m-proof-link{width:max-content;max-width:100%;display:inline-flex;align-items:center;gap:6px;margin-bottom:12px;padding:7px 11px;border-radius:10px;background:#6366f11a;border:1px solid rgba(99,102,241,.2);color:#a5b4fc;font-size:12px;font-weight:800;text-decoration:none;transition:background .13s ease}.m-proof-link.small{margin-top:9px;margin-bottom:0;padding:6px 9px;font-size:11.5px}.m-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:38px;padding:8px 14px;border-radius:12px;border:1px solid transparent;cursor:pointer;font-family:inherit;font-size:12.5px;font-weight:900;transition:transform .13s ease}.m-btn:disabled{opacity:.5;cursor:not-allowed}.m-btn:active:not(:disabled){transform:scale(.97)}.m-btn--primary{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;box-shadow:0 6px 16px #6366f140}.m-btn--green{background:#34d3991f;color:#34d399;border-color:#34d39938}.m-btn--amber{background:#fbbf241c;color:#fbbf24;border-color:#fbbf2438}.m-btn--ghost{background:#ffffff0d;color:var(--sub);border-color:var(--border)}.m-state{display:flex;flex-direction:column;align-items:center;gap:10px;padding:48px 16px;color:var(--sub);font-size:13px;font-weight:700;text-align:center}.m-state.compact{padding:28px 14px}.m-state--error{color:#fb7185}.m-room-history{display:flex;flex-direction:column;gap:12px}.m-room-history-hero{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px;border-radius:18px;border:1px solid rgba(99,102,241,.18);background:#6366f112}.m-room-history-room{color:#f1f5f9;font-size:18px;font-weight:900;letter-spacing:-.04em}.m-room-history-tenant{margin-top:3px;color:var(--sub);font-size:12px;font-weight:700}.m-room-history-summary{display:grid;grid-template-columns:1fr;gap:8px}.m-room-history-title{color:var(--sub);font-size:10px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;margin:2px 2px -2px}.m-room-history-list{display:flex;flex-direction:column;gap:8px}.m-room-history-item{padding:12px;border-radius:14px;border:1px solid var(--border);background:#070910b3}.m-room-history-item-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.m-room-history-item-title{color:#e2e8f0;font-size:14px;font-weight:800;line-height:1.25}.m-room-history-item-date{margin-top:3px;color:var(--sub);font-size:11.5px;font-weight:700}.m-room-history-price{flex:0 0 auto;color:#34d399;font-size:13px;font-weight:900;white-space:nowrap}.m-room-history-line{margin-top:7px;color:var(--sub);font-size:12px;font-weight:700;line-height:1.4;overflow-wrap:anywhere}.m-form{display:flex;flex-direction:column;gap:14px}.m-field{display:flex;flex-direction:column;gap:7px}.m-label{display:flex;align-items:center;gap:6px;color:var(--sub);font-size:10.5px;font-weight:900;text-transform:uppercase;letter-spacing:.07em}.m-optional{color:var(--sub);font-weight:600;text-transform:none;letter-spacing:0}.m-hint{color:#34d399;font-size:11px;font-weight:700}.m-input,.m-select,.m-textarea{width:100%;padding:12px 14px;border-radius:14px;border:1px solid var(--border2);background:#070910e6;color:var(--text);font-size:14px;font-family:inherit;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.m-input:focus,.m-select:focus,.m-textarea:focus{border-color:#6366f166;box-shadow:0 0 0 3px #6366f114}.m-select option{background:#0a0c12}.m-textarea{resize:vertical;line-height:1.5}.m-chips{display:flex;flex-wrap:wrap;gap:7px}.m-chip{padding:7px 13px;border-radius:999px;border:1px solid var(--border2);background:#0b0d13e6;color:var(--sub);font-size:12px;font-weight:800;cursor:pointer;font-family:inherit;transition:all .15s ease}.m-chip.active{color:#a5b4fc;background:#6366f124;border-color:#6366f152}.m-upload{min-height:52px;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:14px;border:1px dashed rgba(99,102,241,.3);background:#6366f10d;color:var(--sub);font-size:13px;font-weight:800;cursor:pointer;transition:border-color .15s ease,color .15s ease}.m-upload:hover{border-color:#6366f180;color:#a5b4fc}.m-proof-preview{position:relative;overflow:hidden;border-radius:14px;border:1px solid var(--border);background:#070910e6}.m-proof-preview img{width:100%;height:160px;object-fit:cover;display:block}.m-proof-preview button{position:absolute;top:8px;right:8px;width:30px;height:30px;display:grid;place-items:center;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:#070910cc;color:#e2e8f0;cursor:pointer}.m-proof-pdf{min-height:80px;display:flex;align-items:center;justify-content:center;gap:8px;padding:14px;color:#e2e8f0;font-size:13px;font-weight:800}.m-error{padding:10px 13px;border-radius:12px;color:#fb7185;background:#fb718517;border:1px solid rgba(251,113,133,.2);font-size:13px;font-weight:700;line-height:1.4}.m-modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:4px}.m-modal-actions .m-btn{min-height:46px;border-radius:14px;font-size:13px}.m-modal-actions .m-btn--primary{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;border:0;box-shadow:0 8px 20px #6366f140}.m-done-hero{display:flex;align-items:center;gap:12px;padding:14px;border-radius:18px;background:#0b0d13cc;border:1px solid var(--border)}.m-done-hero__icon{width:44px;height:44px;display:grid;place-items:center;flex:0 0 auto;border-radius:16px;color:var(--sub);background:#ffffff0d;border:1px solid var(--border)}.m-done-hero__icon.ac{color:#818cf8;background:#6366f11c;border-color:#6366f133}.m-done-hero__icon.room{color:#34d399;background:#34d3991c;border-color:#34d39933}.m-done-hero__icon.water{color:#22d3ee;background:#22d3ee1c;border-color:#22d3ee33}.m-done-hero__icon.battery{color:#fbbf24;background:#fbbf241c;border-color:#fbbf2433}.m-done-hero__room{color:var(--sub);font-size:10.5px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.m-done-hero__title{margin-top:3px;color:#f1f5f9;font-size:16px;font-weight:900;letter-spacing:-.03em}@media (max-width: 380px){.m-page{padding-left:12px;padding-right:12px}.m-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.m-routine-grid,.m-room-actions,.m-room-history-summary{grid-template-columns:1fr}}
