@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/plus-jakarta-sans-latin-400-normal-Dhut76fR.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-400-normal-BDKaGhyp.woff)format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/plus-jakarta-sans-latin-600-normal-DLTa1BUW.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-600-normal-BR_Ojra4.woff)format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/plus-jakarta-sans-latin-700-normal-CfpNZvy6.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-700-normal-DqEcQeE5.woff)format("woff")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/plus-jakarta-sans-latin-800-normal-CusIZhrK.woff2)format("woff2"),url(/assets/plus-jakarta-sans-latin-800-normal-BRNHt2w0.woff)format("woff")}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/jetbrains-mono-latin-500-normal-BWZEU5yA.woff2)format("woff2"),url(/assets/jetbrains-mono-latin-500-normal-CJOVTJB7.woff)format("woff")}:root[data-mode=night]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#0a0f1f;--color-surface:#111933;--color-surface-2:#18224a;--color-sidebar:#0d1429;--color-text:#eef2fb;--color-text-muted:#98a4c3;--color-border:#ffffff17;--color-action:#6e93ff;--color-on-action:#0a0f1f;--color-action-soft:#6e93ff29;--color-accent:#f2a93b;--color-on-accent:#1a1206;--color-focus:#6e93ff29;--color-wa:#128c4a;--color-wa-soft:#25d36629;--status-monthly-bg:#6e93ff29;--status-monthly-fg:#afc4ff;--status-daily-bg:#a78bfa2e;--status-daily-fg:#cdbdff;--status-kostmart-bg:#f2a93b29;--status-kostmart-fg:#f6c177;--status-due-soon-bg:#facc1524;--status-due-soon-fg:#f3d36b;--status-paid-bg:#4ade9b24;--status-paid-fg:#6ee7b7;--status-late-bg:#f8717129;--status-late-fg:#fca5a5;--status-neutral-bg:#ffffff12;--status-neutral-fg:#c3cce2;--status-empty-bg:#ffffff12;--status-empty-fg:#c3cce2;--status-due:#e5534b}:root,:root[data-mode=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#f5f6fa;--color-surface:#fff;--color-surface-2:#f1f3f8;--color-sidebar:#fff;--color-text:#14213d;--color-text-muted:#5a6480;--color-border:#e3e7f0;--color-action:#1e4fb8;--color-on-action:#fff;--color-action-soft:#eaf0fc;--color-accent:#f2a93b;--color-on-accent:#14213d;--color-focus:#eaf0fc;--color-wa:#128c4a;--color-wa-soft:#e7f8ee;--status-monthly-bg:#eaf0fc;--status-monthly-fg:#1e4fb8;--status-daily-bg:#f0ebfd;--status-daily-fg:#5b3fc4;--status-kostmart-bg:#fff1e2;--status-kostmart-fg:#9a4a06;--status-due-soon-bg:#fff6db;--status-due-soon-fg:#7a5a00;--status-paid-bg:#e5f7ec;--status-paid-fg:#0b7354;--status-late-bg:#fdede5;--status-late-fg:#b4441a;--status-neutral-bg:#eef1f7;--status-neutral-fg:#4a5572;--status-empty-bg:#eef1f7;--status-empty-fg:#4a5572;--status-due:#d64535}:root[data-mode=warm]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#fbf5ec;--color-surface:#fff;--color-surface-2:#f6ede0;--color-sidebar:#fffdf9;--color-text:#2b1d14;--color-text-muted:#7a6352;--color-border:#eadcc8;--color-action:#c2410c;--color-on-action:#fff;--color-action-soft:#fce9df;--color-accent:#0f766e;--color-on-accent:#fff;--color-focus:#fce9df;--color-wa:#128c4a;--color-wa-soft:#e7f8ee;--status-monthly-bg:#eaf0fc;--status-monthly-fg:#1e4fb8;--status-daily-bg:#f0ebfd;--status-daily-fg:#5b3fc4;--status-kostmart-bg:#fff1e2;--status-kostmart-fg:#9a4a06;--status-due-soon-bg:#fff6db;--status-due-soon-fg:#7a5a00;--status-paid-bg:#e5f7ec;--status-paid-fg:#0b7354;--status-late-bg:#fdede5;--status-late-fg:#b4441a;--status-neutral-bg:#eef1f7;--status-neutral-fg:#4a5572;--status-empty-bg:#eef1f7;--status-empty-fg:#4a5572;--status-due:#d64535}:root[data-mode=ocean]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:#071a1c;--color-surface:#0d2a2d;--color-surface-2:#133a3d;--color-sidebar:#0a2224;--color-text:#e6f5f3;--color-text-muted:#94bdb7;--color-border:#ffffff17;--color-action:#2dd4bf;--color-on-action:#04201d;--color-action-soft:#2dd4bf26;--color-accent:#f2a93b;--color-on-accent:#1a1206;--color-focus:#2dd4bf26;--color-wa:#128c4a;--color-wa-soft:#25d36629;--status-monthly-bg:#6e93ff29;--status-monthly-fg:#afc4ff;--status-daily-bg:#a78bfa2e;--status-daily-fg:#cdbdff;--status-kostmart-bg:#f2a93b29;--status-kostmart-fg:#f6c177;--status-due-soon-bg:#facc1524;--status-due-soon-fg:#f3d36b;--status-paid-bg:#4ade9b24;--status-paid-fg:#6ee7b7;--status-late-bg:#f8717129;--status-late-fg:#fca5a5;--status-neutral-bg:#ffffff12;--status-neutral-fg:#c3cce2;--status-empty-bg:#ffffff12;--status-empty-fg:#c3cce2;--status-due:#e5534b}:root[data-mode=minimal]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#fafafa;--color-surface:#fff;--color-surface-2:#f4f4f5;--color-sidebar:#fff;--color-text:#111113;--color-text-muted:#6b6b76;--color-border:#e4e4e7;--color-action:#111113;--color-on-action:#fff;--color-action-soft:#f0f0f2;--color-accent:#2563eb;--color-on-accent:#fff;--color-focus:#f0f0f2;--color-wa:#128c4a;--color-wa-soft:#e7f8ee;--status-monthly-bg:#eaf0fc;--status-monthly-fg:#1e4fb8;--status-daily-bg:#f0ebfd;--status-daily-fg:#5b3fc4;--status-kostmart-bg:#fff1e2;--status-kostmart-fg:#9a4a06;--status-due-soon-bg:#fff6db;--status-due-soon-fg:#7a5a00;--status-paid-bg:#e5f7ec;--status-paid-fg:#0b7354;--status-late-bg:#fdede5;--status-late-fg:#b4441a;--status-neutral-bg:#eef1f7;--status-neutral-fg:#4a5572;--status-empty-bg:#eef1f7;--status-empty-fg:#4a5572;--status-due:#d64535}:root[data-accent=indigo]:is(:not([data-mode]),[data-mode=light],[data-mode=warm],[data-mode=minimal]){--color-action:#3b5bfd;--color-on-action:#fff;--color-action-soft:#ecefff;--color-focus:#ecefff}:root[data-accent=ocean]:is(:not([data-mode]),[data-mode=light],[data-mode=warm],[data-mode=minimal]){--color-action:#0369a1;--color-on-action:#fff;--color-action-soft:#e3f2fb;--color-focus:#e3f2fb}:root[data-accent=teal]:is(:not([data-mode]),[data-mode=light],[data-mode=warm],[data-mode=minimal]){--color-action:#0f766e;--color-on-action:#fff;--color-action-soft:#e1f5f2;--color-focus:#e1f5f2}:root[data-accent=leaf]:is(:not([data-mode]),[data-mode=light],[data-mode=warm],[data-mode=minimal]){--color-action:#15803d;--color-on-action:#fff;--color-action-soft:#e5f6ea;--color-focus:#e5f6ea}:root[data-accent=olive]:is(:not([data-mode]),[data-mode=light],[data-mode=warm],[data-mode=minimal]){--color-action:#4d7c0f;--color-on-action:#fff;--color-action-soft:#eef5e1;--color-focus:#eef5e1}:root[data-accent=terracotta]:is(:not([data-mode]),[data-mode=light],[data-mode=warm],[data-mode=minimal]){--color-action:#c2410c;--color-on-action:#fff;--color-action-soft:#fdeee6;--color-focus:#fdeee6}:root[data-accent=brick]:is(:not([data-mode]),[data-mode=light],[data-mode=warm],[data-mode=minimal]){--color-action:#b91c1c;--color-on-action:#fff;--color-action-soft:#fce8e8;--color-focus:#fce8e8}:root[data-accent=magenta]:is(:not([data-mode]),[data-mode=light],[data-mode=warm],[data-mode=minimal]){--color-action:#be185d;--color-on-action:#fff;--color-action-soft:#fce7f1;--color-focus:#fce7f1}:root[data-accent=purple]:is(:not([data-mode]),[data-mode=light],[data-mode=warm],[data-mode=minimal]){--color-action:#6d28d9;--color-on-action:#fff;--color-action-soft:#f0eafd;--color-focus:#f0eafd}:root[data-accent=charcoal]:is(:not([data-mode]),[data-mode=light],[data-mode=warm],[data-mode=minimal]){--color-action:#334155;--color-on-action:#fff;--color-action-soft:#eaedf1;--color-focus:#eaedf1}:root:not([data-ui-theme]),:root[data-ui-theme=bank]{--font-sans:"Plus Jakarta Sans", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--font-display:var(--font-sans);--text-xs:12px;--text-sm:13px;--text-md:14px;--text-lead:15px;--text-base:16px;--text-lg:17px;--text-xl:18px;--text-2xl:20px;--text-3xl:22px;--text-4xl:26px;--text-5xl:44px;--leading-tight:1.1;--leading-snug:1.2;--leading-normal:1.5;--weight-regular:400;--weight-medium:600;--weight-bold:700;--weight-heavy:800;--tracking-tight:-.02em;--tracking-tighter:-.03em;--tracking-normal:0;--radius-2xs:5px;--radius-xs:7px;--radius-sm:8px;--radius-md:10px;--radius-lg:12px;--radius-input:14px;--radius-btn:16px;--radius-card:20px;--radius-pill:999px;--radius-round:50%;--shadow-1:0 1px 2px #14213d0a, 0 8px 24px #14213d0d;--shadow-2:0 8px 24px #14213d14;--shadow-3:0 -6px 24px #14213d0f;--shadow-focus:0 0 0 3px var(--color-focus);--shadow-nav-bubble:0 0 0 6px var(--color-surface), 0 8px 20px #1e4fb84d;--border-width:1.5px;--border-width-thin:1px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--touch:48px;--density:1;--icon-stroke:2;--icon-size-sm:18px;--icon-size-md:22px;--icon-size-lg:28px;--duration-fast:.12s;--duration-base:.2s;--easing:cubic-bezier(.2, 0, 0, 1);--color-brand-from:#14306f;--color-brand-to:#0b1220;--color-on-brand:#eef2fb;--color-on-brand-muted:#a9b6d3;--color-on-brand-soft:#c9d3ea;--color-brand-mark:#f2a93b;--color-on-brand-mark:#14213d;--color-brand-mark-soft:#f2a93b2e;--color-scrim:#0a0f1f73;--color-overlay:#ffffff24;--btn-radius:var(--radius-btn);--btn-height:54px;--card-radius:var(--radius-card);--card-padding:var(--space-4);--card-shadow:var(--shadow-1);--input-radius:var(--radius-input);--input-height:54px;--tab-radius:var(--radius-pill);--chip-radius:var(--radius-lg);--nav-height:54px}:root[data-ui-theme=modern]{--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, monospace;--font-display:var(--font-sans);--text-xs:12px;--text-sm:13px;--text-md:14px;--text-lead:15px;--text-base:16px;--text-lg:17px;--text-xl:19px;--text-2xl:21px;--text-3xl:24px;--text-4xl:28px;--text-5xl:46px;--leading-tight:1.1;--leading-snug:1.25;--leading-normal:1.55;--weight-regular:400;--weight-medium:500;--weight-bold:600;--weight-heavy:700;--tracking-tight:-.01em;--tracking-tighter:-.02em;--tracking-normal:0;--radius-2xs:6px;--radius-xs:8px;--radius-sm:10px;--radius-md:12px;--radius-lg:14px;--radius-input:18px;--radius-btn:999px;--radius-card:28px;--radius-pill:999px;--radius-round:50%;--shadow-1:0 2px 12px #110c2e0f;--shadow-2:0 12px 32px #110c2e1a;--shadow-3:0 -4px 20px #110c2e0f;--shadow-focus:0 0 0 4px var(--color-focus);--shadow-nav-bubble:0 0 0 6px var(--color-surface), 0 10px 24px #6d28d94d;--border-width:1px;--border-width-thin:1px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:28px;--space-8:32px;--touch:48px;--density:1;--icon-stroke:1.6;--icon-size-sm:18px;--icon-size-md:22px;--icon-size-lg:28px;--duration-fast:.15s;--duration-base:.24s;--easing:cubic-bezier(.3, 0, 0, 1);--color-brand-from:#4c1d95;--color-brand-to:#1e1b4b;--color-on-brand:#f5f3ff;--color-on-brand-muted:#c4b5fd;--color-on-brand-soft:#ddd6fe;--color-brand-mark:#f472b6;--color-on-brand-mark:#1e1b4b;--color-brand-mark-soft:#f472b633;--color-scrim:#110c2e73;--color-overlay:#ffffff29;--btn-radius:var(--radius-btn);--btn-height:52px;--card-radius:var(--radius-card);--card-padding:var(--space-5);--card-shadow:var(--shadow-1);--input-radius:var(--radius-input);--input-height:52px;--tab-radius:var(--radius-pill);--chip-radius:var(--radius-pill);--nav-height:56px}:root[data-ui-theme=modern]:not([data-accent]):is(:not([data-mode]),[data-mode=light]){--color-bg:#f7f7fb;--color-action:#6d28d9;--color-on-action:#fff;--color-action-soft:#f0eafd;--color-focus:#e4d8fb}.t-display{font-family:var(--font-display);font-size:var(--text-5xl);font-weight:var(--weight-heavy);line-height:var(--leading-tight);letter-spacing:var(--tracking-tighter)}.t-title{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:var(--weight-heavy);line-height:var(--leading-snug);letter-spacing:var(--tracking-tight)}.t-heading{font-size:var(--text-xl);font-weight:var(--weight-heavy);line-height:var(--leading-snug)}.t-body{font-size:var(--text-base);line-height:var(--leading-normal)}.t-label{font-size:var(--text-md);font-weight:var(--weight-bold)}.t-caption{font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-normal)}.t-number{font-weight:var(--weight-heavy);font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-tight)}.t-code{font-family:var(--font-mono)}.btn{min-height:var(--btn-height);border-radius:var(--btn-radius);padding:0 var(--space-5);font-size:var(--text-base);font-weight:var(--weight-heavy);justify-content:center;align-items:center;gap:var(--space-2);transition:filter var(--duration-fast) var(--easing);border:0;text-decoration:none;display:inline-flex}.btn--block{width:100%}.btn--primary{background:var(--color-action);color:var(--color-on-action)}.btn--ghost{background:var(--color-surface);color:var(--color-text);border:var(--border-width) solid var(--color-border)}.btn--soft{background:var(--color-action-soft);color:var(--color-action)}.btn:disabled{opacity:.45;cursor:default}.btn:focus-visible,.chip:focus-visible{box-shadow:var(--shadow-focus);outline:none}.card--pad{padding:var(--card-padding)}.chip{border-radius:var(--tab-radius);background:var(--color-surface-2);min-height:40px;color:var(--color-text-muted);font-size:var(--text-md);font-weight:var(--weight-bold);border:0;align-items:center;padding:0 18px;text-decoration:none;display:inline-flex}.chip.is-active{background:var(--color-action);color:var(--color-on-action)}.badge--paid{background:var(--status-paid-bg);color:var(--status-paid-fg)}.badge--late{background:var(--status-late-bg);color:var(--status-late-fg)}.badge--due-soon{background:var(--status-due-soon-bg);color:var(--status-due-soon-fg)}.badge--monthly{background:var(--status-monthly-bg);color:var(--status-monthly-fg)}.badge--daily{background:var(--status-daily-bg);color:var(--status-daily-fg)}.badge--kostmart{background:var(--status-kostmart-bg);color:var(--status-kostmart-fg)}.badge--neutral,.badge--empty{background:var(--status-neutral-bg);color:var(--status-neutral-fg)}.input{min-height:var(--input-height);border-radius:var(--input-radius);border:var(--border-width) solid var(--color-border);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:var(--text-base);padding:0 14px}.input:focus{border-color:var(--color-action);box-shadow:var(--shadow-focus);outline:none}*,:before,:after{box-sizing:border-box}html,body{font-family:var(--font-sans);font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;margin:0}button{font:inherit;color:inherit;cursor:pointer}.mono{font-family:var(--font-mono)}.card{background:var(--color-surface);border-radius:var(--card-radius);box-shadow:var(--card-shadow)}.status{font-size:var(--text-xs);font-weight:var(--weight-bold);border-radius:var(--chip-radius);white-space:nowrap;align-items:center;gap:4px;padding:5px 10px;display:inline-flex}.icon{stroke-width:var(--icon-stroke)}.app{background:var(--color-bg);flex-direction:column;max-width:560px;min-height:100dvh;margin:0 auto;display:flex}.hdr{align-items:center;gap:8px;padding:12px 16px 10px;display:flex}.hdr .spacer{flex:1}.hdr button{min-height:var(--touch);min-width:var(--touch);border-radius:var(--radius-pill);color:var(--color-text);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.hdr .avatar{background:var(--color-action-soft);color:var(--color-action)}.hdr .prop{background:var(--color-surface);gap:6px;padding:0 12px;font-weight:700}.tabs{scrollbar-width:none;gap:8px;padding:2px 16px 14px;display:flex;overflow-x:auto}.tabs a{border-radius:var(--radius-card);background:var(--color-surface-2);min-height:40px;font-size:var(--text-md);color:var(--color-text-muted);flex:none;align-items:center;padding:0 18px;font-weight:700;text-decoration:none;display:flex}.tabs a.on{background:var(--color-action);color:var(--color-on-action)}.content{flex:1;padding:0 16px 24px}.placeholder{color:var(--color-text-muted);padding:20px}.nav{background:var(--color-surface);padding:6px 6px calc(14px + env(safe-area-inset-bottom));box-shadow:var(--shadow-3);grid-template-columns:repeat(5,minmax(0,1fr));align-items:end;display:grid;position:sticky;bottom:0}.nav a{min-height:54px;font-size:var(--text-xs);color:var(--color-text-muted);flex-direction:column;justify-content:center;align-items:center;gap:4px;font-weight:700;text-decoration:none;display:flex}.nav a.on{color:var(--color-action)}.nav .flatb{justify-content:center;align-items:center;height:24px;display:flex}.nav .mid .bub{border-radius:var(--radius-pill);background:var(--color-action);width:56px;height:56px;color:var(--color-on-action);box-shadow:var(--shadow-nav-bubble);justify-content:center;align-items:center;margin-top:-30px;display:flex}.acct{position:relative}.acct-menu{z-index:10;flex-direction:column;gap:4px;min-width:240px;padding:14px;display:flex;position:absolute;top:calc(100% + 6px);left:0}.acct-menu p{overflow-wrap:anywhere;margin:0}.acct-item{min-height:var(--touch);border-radius:var(--radius-lg);color:var(--color-text);background:0 0;border:0;align-items:center;gap:10px;padding:0 8px;font-weight:700;text-decoration:none;display:flex}.acct-item:hover{background:var(--color-surface-2)}.strong{font-weight:800}.muted{color:var(--color-text-muted);font-size:var(--text-md)}.hint{color:var(--color-text-muted);font-size:var(--text-sm);line-height:1.45}.splash{min-height:100dvh;color:var(--color-text-muted);justify-content:center;align-items:center;margin:0;display:flex}.auth{background:var(--color-bg);min-height:100dvh;display:flex}.auth-brand{display:none}.auth-pane{flex-direction:column;flex:1;padding:20px 22px 32px;display:flex}.auth-form{flex-direction:column;width:100%;max-width:432px;margin:0 auto;display:flex}.auth-logo{font-size:var(--text-xl);letter-spacing:-.02em;align-items:center;gap:10px;font-weight:800;display:flex}.auth-logo i{border-radius:var(--radius-md);background:var(--color-action);width:32px;height:32px;color:var(--color-on-action);font-style:normal;font-size:var(--text-lead);justify-content:center;align-items:center;display:flex}.auth-logo-mob{width:100%;max-width:432px;margin:0 auto 28px}@media (width>=960px){.auth-brand{background:linear-gradient(160deg, var(--color-brand-from) 0%, var(--color-brand-to) 70%);color:var(--color-on-brand);flex-direction:column;flex:1;justify-content:space-between;padding:56px;display:flex}.auth-brand h2{font-size:var(--text-5xl);letter-spacing:-.03em;margin:0 0 16px;font-weight:800;line-height:1.1}.auth-brand p{font-size:var(--text-lg);color:var(--color-on-brand-muted);margin:0 0 24px;line-height:1.55}.auth-brand ul{color:var(--color-on-brand-soft);flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.auth-brand li:before{content:"✓";border-radius:var(--radius-sm);background:var(--color-brand-mark-soft);width:26px;height:26px;color:var(--color-brand-mark);justify-content:center;align-items:center;margin-right:12px;font-weight:800;display:inline-flex}.auth-brand .auth-logo i{background:var(--color-brand-mark);color:var(--color-on-brand-mark)}.auth-pane{flex:none;justify-content:center;width:560px;padding:48px 64px}.auth-logo-mob{display:none}}.h{font-size:var(--text-4xl);letter-spacing:-.02em;margin:0 0 6px;font-weight:800;line-height:1.2}.sub{font-size:var(--text-lead);color:var(--color-text-muted);margin:0 0 20px;line-height:1.55}.fl{flex-direction:column;gap:8px;min-width:0;margin-bottom:16px;display:flex}.fl label,.req-reject label{font-size:var(--text-md);font-weight:700}.box{border-radius:var(--radius-input);border:1.5px solid var(--color-border);background:var(--color-surface);align-items:center;min-height:54px;display:flex;overflow:hidden}.box.bad{border-color:var(--status-late-fg)}.box:focus-within{border-color:var(--color-action);box-shadow:var(--shadow-focus)}.in{min-width:0;min-height:52px;font:inherit;font-size:var(--text-base);color:var(--color-text);background:0 0;border:0;outline:none;flex:1;padding:0 14px}.eye{width:52px;color:var(--color-text-muted);background:0 0;border:0;justify-content:center;align-self:stretch;align-items:center;display:flex}.two{grid-template-columns:1fr 1fr;gap:12px;display:grid}.rules{font-size:var(--text-md);color:var(--color-text-muted);flex-direction:column;gap:6px;margin:-4px 0 18px;padding:0;list-style:none;display:flex}.rules li{align-items:center;gap:8px;display:flex}.rules li.ok{color:var(--status-paid-fg);font-weight:700}.go,.gh{border-radius:var(--radius-btn);min-height:54px;font-size:var(--text-base);justify-content:center;align-items:center;gap:8px;width:100%;font-weight:800;text-decoration:none;display:flex}.go{background:var(--color-action);color:var(--color-on-action);border:0}.go.danger{background:var(--status-late-fg)}.gh{border:1.5px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.go:disabled,.gh:disabled{opacity:.45;cursor:default}.lnk{font-size:var(--text-lead);color:var(--color-action);background:0 0;border:0;padding:0;font-weight:700;text-decoration:none}.lnk.back{min-height:var(--touch);align-self:flex-start;align-items:center;gap:6px;margin-bottom:8px;display:inline-flex}.alert{border-radius:var(--radius-input);font-size:var(--text-md);background:var(--status-late-bg);color:var(--status-late-fg);margin-bottom:16px;padding:12px 14px;font-weight:600;line-height:1.5}.alert.ok{background:var(--status-paid-bg);color:var(--status-paid-fg)}.reg{border-top:1px solid var(--color-border);font-size:var(--text-lead);color:var(--color-text-muted);text-align:center;flex-direction:column;gap:10px;margin-top:24px;padding-top:18px;display:flex}.done{text-align:center;align-items:center;padding-top:32px}.done-mark{border-radius:var(--radius-pill);background:var(--status-paid-bg);width:64px;height:64px;color:var(--status-paid-fg);justify-content:center;align-items:center;margin-bottom:16px;display:flex}.crumb{font-size:var(--text-lead);margin:0;padding:0 16px 10px;font-weight:800}.tabs button{border-radius:var(--radius-card);background:var(--color-surface-2);min-height:40px;font-size:var(--text-md);color:var(--color-text-muted);border:0;flex:none;padding:0 18px;font-weight:700}.tabs button.on{background:var(--color-action);color:var(--color-on-action)}.stack{flex-direction:column;gap:12px;display:flex}.status.role{background:var(--color-action-soft);color:var(--color-action);margin-left:4px}.req{flex-direction:column;gap:10px;padding:16px;display:flex}.req h2{font-size:var(--text-lg);margin:0 0 2px}.req p{margin:0}.req-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.wa{width:var(--touch);height:var(--touch);border-radius:var(--radius-pill);color:var(--color-wa);background:var(--color-wa-soft);flex:none;justify-content:center;align-items:center;display:flex}.req-meta{font-size:var(--text-md);color:var(--color-text-muted);overflow-wrap:anywhere;flex-wrap:wrap;gap:4px 14px;display:flex}.req-note{font-size:var(--text-md);background:var(--color-surface-2);border-radius:var(--radius-lg);padding:10px 12px;line-height:1.5}.req-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.req-reject{flex-direction:column;gap:8px;display:flex}.req-reject textarea{font:inherit;font-size:var(--text-base);border-radius:var(--radius-input);border:1.5px solid var(--color-border);resize:vertical;background:var(--color-surface);color:var(--color-text);padding:12px 14px}.status.unverified{background:var(--status-late-bg);color:var(--status-late-fg);margin-left:8px}.rowx{justify-content:flex-end;margin:-6px 0 18px;display:flex}.rowx .lnk{min-height:var(--touch);align-items:center;display:inline-flex}.in.code{font-family:var(--font-mono);font-size:var(--text-3xl);letter-spacing:.4em}.hint .lnk{font-size:var(--text-sm)}.picker{position:relative}.picker-list{z-index:10;min-width:240px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);left:0}.picker-list li{min-height:var(--touch);border-radius:var(--radius-lg);cursor:pointer;flex-direction:column;justify-content:center;padding:6px 12px;display:flex}.picker-list li.on,.picker-list li:hover{background:var(--color-action-soft)}.dev-card{color:var(--color-text);align-items:center;gap:14px;min-height:76px;padding:16px;text-decoration:none;display:flex}.dev-ic{border-radius:var(--radius-input);background:var(--color-action-soft);width:48px;height:48px;color:var(--color-action);flex:none;justify-content:center;align-items:center;display:flex}.dev-txt{flex-direction:column;flex:1;gap:2px;display:flex}nav.crumb{color:var(--color-text-muted);align-items:center;gap:6px;display:flex}nav.crumb a{color:var(--color-action);align-items:center;min-height:32px;font-weight:700;text-decoration:none;display:inline-flex}nav.crumb h1{font-size:var(--text-lead);color:var(--color-text);margin:0}.pg-bar{background:var(--color-text);color:var(--color-bg);font-size:var(--text-sm);align-items:center;gap:8px;padding:8px 12px;font-weight:700;display:flex}.pg-label{flex:1}.pg-btn{border-radius:var(--radius-card);background:var(--color-overlay);min-height:40px;color:inherit;align-items:center;gap:6px;padding:0 12px;text-decoration:none;display:inline-flex}.pg-btn.icon{justify-content:center;width:40px;padding:0}.pg-bar .spacer{flex:1}.gallery-axis{flex-direction:column;gap:8px;display:flex}.gallery-row{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.gallery-icons{color:var(--color-text);grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:8px;display:grid}.plan-page{background:var(--color-bg);flex-direction:column;height:100dvh;display:flex}.plan-scroll{overscroll-behavior:contain;scroll-behavior:smooth;flex:1;overflow-y:auto}.plan-inner{max-width:760px;margin:0 auto;padding:16px 16px 48px}.plan-sum{font-weight:var(--weight-bold);margin:0 0 12px}.plan-jump{z-index:2;background:var(--color-bg);scrollbar-width:none;gap:8px;padding:10px 0;display:flex;position:sticky;top:0;overflow-x:auto}.plan-jump .chip{flex:none}.plan-sec{scroll-margin-top:64px}.plan-sec h2{font-size:var(--text-3xl);border-bottom:var(--border-width) solid var(--color-border);justify-content:space-between;align-items:baseline;gap:12px;margin:28px 0 12px;padding-bottom:8px;scroll-margin-top:64px;display:flex}.plan-sec h2 .muted{font-weight:var(--weight-medium);white-space:nowrap}.plan-item{margin:0 0 20px;scroll-margin-top:72px}.plan-item figcaption{font-size:var(--text-md);justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.plan-cap{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.plan-open{cursor:zoom-in;background:0 0;border:0;width:100%;padding:0;display:block}.plan-open img{border-radius:var(--card-radius);width:100%;height:auto;box-shadow:var(--shadow-2);background:var(--color-surface-2);display:block}.plan-done{background:var(--status-paid-bg);color:var(--status-paid-fg)}.plan-partial{background:var(--status-due-soon-bg);color:var(--status-due-soon-fg)}.plan-todo{background:var(--color-surface-2);color:var(--color-text-muted)}.plan-full{z-index:60;background:var(--color-text);flex-direction:column;display:flex;position:fixed;inset:0}.plan-full-bar{color:var(--color-bg);align-items:center;gap:8px;padding:8px 10px;display:flex}.plan-full-title{min-width:0;font-size:var(--text-md);font-weight:var(--weight-bold);flex-wrap:wrap;flex:1;align-items:center;gap:8px;display:flex}.plan-full-body{flex:1;justify-content:center;align-items:flex-start;display:flex;overflow:auto}.plan-full-body img{width:100%;max-width:1440px;height:auto}.app--wide{max-width:none;margin:0}.wide{flex:1;min-height:0;display:flex}.side{background:var(--color-sidebar);border-right:var(--border-width-thin) solid var(--color-border);flex-direction:column;flex:none;gap:12px;width:256px;height:100dvh;padding:16px 12px;display:flex;position:sticky;top:0}.side-brand{font-size:var(--text-xl);font-weight:var(--weight-heavy);letter-spacing:var(--tracking-tight);align-items:center;gap:10px;padding:4px 8px 8px;display:flex}.side-brand i{border-radius:var(--radius-md);background:var(--color-action);width:32px;height:32px;color:var(--color-on-action);font-style:normal;font-size:var(--text-lead);justify-content:center;align-items:center;display:flex}.side .prop{width:100%;min-height:var(--touch);border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-surface);font-weight:var(--weight-bold);justify-content:space-between;align-items:center;padding:0 14px;display:flex}.side .picker{width:100%}.side-nav{flex-direction:column;gap:2px;display:flex}.side-nav a{border-radius:var(--radius-lg);min-height:44px;color:var(--color-text);font-weight:var(--weight-bold);align-items:center;gap:12px;padding:0 12px;text-decoration:none;display:flex}.side-nav a:hover{background:var(--color-surface-2)}.side-nav a.on{background:var(--color-action-soft);color:var(--color-action)}.side .spacer{flex:1}.acct--side .acct-menu{top:auto;bottom:calc(100% + 6px)}.acct-me{border:var(--border-width-thin) solid var(--color-border);border-radius:var(--radius-input);background:var(--color-surface);text-align:left;align-items:center;gap:10px;width:100%;min-height:56px;padding:6px 8px;display:flex}.avatar-dot{border-radius:var(--radius-pill);background:var(--color-action-soft);width:36px;height:36px;color:var(--color-action);flex:none;justify-content:center;align-items:center;display:flex}.acct-me-txt{flex-direction:column;min-width:0;display:flex}.wide-main{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{border-bottom:var(--border-width-thin) solid var(--color-border);background:var(--color-surface);align-items:center;gap:8px;min-height:60px;padding:8px 24px;display:flex}.topbar .spacer{flex:1}.topbar button{min-height:var(--touch);min-width:var(--touch);border-radius:var(--radius-pill);color:var(--color-text);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.crumbs{color:var(--color-text-muted);align-items:center;gap:6px;display:flex}.crumbs .strong{color:var(--color-text)}.app--wide .tabs{padding:16px 24px 4px}.app--wide .content{padding:16px 24px 32px}.phases h2,.plan-screens-title{font-size:var(--text-3xl);margin:20px 0 6px}.phase-group{background:var(--color-surface);border-radius:var(--card-radius);box-shadow:var(--card-shadow);margin:10px 0}.phase-group summary{min-height:var(--touch);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;display:flex}.phase-list{margin:0;padding:0 16px 12px;list-style:none}.phase{border-top:var(--border-width-thin) solid var(--color-border);gap:12px;padding:10px 0;display:flex}.phase-box{border-radius:var(--radius-xs);border:2px solid var(--color-text-muted);flex:none;justify-content:center;align-items:center;width:22px;height:22px;margin-top:2px;display:flex}.phase-done .phase-box{background:var(--status-paid-fg);border-color:var(--status-paid-fg);color:var(--color-surface)}.phase-partial .phase-box{border-color:var(--status-due-soon-fg);color:var(--status-due-soon-fg)}.phase-body{flex:1;min-width:0}.phase-head{align-items:center;gap:8px;display:flex}.phase-text{font-size:var(--text-md);line-height:var(--leading-normal);margin:4px 0 0}.phase-todo .phase-text{color:var(--color-text-muted)}.phase-note{font-size:var(--text-sm);color:var(--color-text-muted);margin:4px 0 0}.phase-screens{font-size:var(--text-sm);flex-wrap:wrap;gap:6px;margin:4px 0 0;display:flex}.phase-screens a{color:var(--color-action);font-weight:var(--weight-bold)}.picker-list ul{margin:0;padding:0;list-style:none}.picker-add{width:100%;min-height:var(--touch);border:0;border-top:var(--border-width-thin) solid var(--color-border);color:var(--color-action);font-weight:var(--weight-bold);background:0 0;align-items:center;gap:8px;margin-top:4px;padding:0 12px;display:flex}.page-form{width:100%;max-width:560px;margin:0 auto;padding-top:16px}.empty{align-items:flex-start}.empty .go{width:auto;padding:0 20px}.filters{gap:10px;display:flex}.filter{border-radius:var(--radius-input);background:var(--color-surface);min-height:56px;box-shadow:var(--card-shadow);flex-direction:column;flex:1;gap:2px;padding:6px 12px;display:flex}.filter select{font:inherit;font-weight:var(--weight-bold);color:var(--color-text);background:0 0;border:0;min-height:28px}.list-head{justify-content:space-between;align-items:center;display:flex}.list-head .btn{min-height:40px;font-size:var(--text-md)}.floor-title{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);margin:8px 4px}.room-list{margin:0;padding:0;list-style:none}.room-row{border-top:var(--border-width-thin) solid var(--color-border);align-items:center;gap:12px;min-height:64px;padding:10px 16px;display:flex}.room-row:first-child{border-top:0}.room-no{border-radius:var(--radius-lg);background:var(--color-action-soft);width:48px;height:40px;color:var(--color-action);font-size:var(--text-sm);font-weight:var(--weight-bold);flex:none;justify-content:center;align-items:center;display:flex}.room-main{flex-direction:column;flex:1;min-width:0;display:flex}.room-status{display:inline-flex;position:relative}.room-status select{opacity:0;cursor:pointer;position:absolute;inset:0}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.room-open{text-align:left;min-width:0;color:var(--color-text);background:0 0;border:0;flex:1;align-items:center;gap:12px;padding:0;display:flex}.sheet-wrap{z-index:40;background:var(--color-scrim);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{border-radius:var(--card-radius) var(--card-radius) 0 0;flex-direction:column;gap:12px;width:100%;max-width:560px;max-height:92dvh;padding:16px 16px 24px;display:flex;overflow-y:auto}@media (width>=1024px){.sheet-wrap{align-items:center}.sheet{border-radius:var(--card-radius)}}.sheet-top{align-items:center;gap:12px;display:flex}.sheet-top h2{font-size:var(--text-3xl);margin:0}.sheet .status{align-self:flex-start}.link-box{border-radius:var(--radius-input);background:var(--color-surface-2);flex-direction:column;gap:6px;padding:12px;display:flex}.link-url{overflow-wrap:anywhere;font-size:var(--text-md)}.link-box .btn{align-self:flex-start;min-height:44px}.qr-box{text-align:center;flex-direction:column;align-items:center;gap:8px;margin:0;display:flex}.qr-box img{border-radius:var(--radius-lg);width:240px;height:240px}.menu-list{padding:4px 0}.menu-item{min-height:64px;color:var(--color-text);border-top:var(--border-width-thin) solid var(--color-border);align-items:center;gap:12px;padding:10px 16px;text-decoration:none;display:flex}.menu-item:first-child{border-top:0}.menu-ico{border-radius:var(--radius-lg);background:var(--color-action-soft);width:40px;height:40px;color:var(--color-action);flex:none;justify-content:center;align-items:center;display:flex}.menu-txt{flex-direction:column;flex:1;min-width:0;display:flex}.side-short{margin-top:16px}.side-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;padding:0 12px 4px}.page-wide{width:100%;max-width:960px;margin:0 auto;padding-top:16px}.row-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.stk-floor{border:0;margin:0;padding:0}.stk-floor-head{justify-content:space-between;align-items:center;width:100%;padding:4px 0;display:flex}.stk-floor-head .lnk{min-height:44px;font:inherit;font-weight:var(--weight-bold);background:0 0;border:0}.stk-rooms{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;display:grid}.stk-room{border-radius:var(--radius-input);background:var(--color-surface-2);cursor:pointer;align-items:center;gap:8px;min-height:48px;padding:6px 10px;display:flex}.stk-room input{width:22px;height:22px;accent-color:var(--color-action)}.stk-room .mono{white-space:nowrap;font-weight:var(--weight-bold);flex:1}.stk-floor .filters,.card--pad .filters{flex-wrap:wrap}.card--pad .filter{background:var(--color-surface-2);min-width:140px;box-shadow:none}.stk-out{justify-items:center;gap:16px;display:grid}@media (width>=720px){.stk-out{grid-template-columns:auto 1fr;place-items:start stretch}}.stk-history{margin:0;padding:0;list-style:none}.stk-history li{border-top:var(--border-width-thin) solid var(--color-border);flex-direction:column;gap:2px;padding:10px 0;display:flex}.stk-history li:first-child{border-top:0}.stk-codes{font-size:var(--text-xs);overflow-wrap:anywhere}.stk{aspect-ratio:10/14;box-sizing:border-box;text-align:center;border-radius:var(--radius-card);background:var(--color-surface);width:250px;color:var(--color-text);box-shadow:var(--shadow-1);font-family:var(--font-sans);break-inside:avoid;flex-direction:column;align-items:center;display:flex;overflow:hidden}.stk p{margin:0}.stk-bar{background:var(--color-accent);flex:none;width:100%;height:8px}.stk-name{font-weight:var(--weight-heavy);line-height:var(--leading-tight);letter-spacing:var(--tracking-tight);color:var(--color-action);overflow-wrap:anywhere;padding:14px 14px 0}.stk-name--30{font-size:var(--text-3xl)}.stk-name--26{font-size:var(--text-2xl)}.stk-name--22{font-size:var(--text-xl)}.stk-name--18{font-size:var(--text-lg)}.stk-name--16{font-size:var(--text-base)}.stk-kamar{font-size:var(--text-xs);font-weight:var(--weight-heavy);letter-spacing:.14em;text-transform:uppercase;color:var(--color-text-muted);margin-top:8px!important}.stk-code{font-size:var(--text-3xl);font-weight:var(--weight-bold);line-height:var(--leading-tight)}.stk-qr{aspect-ratio:1;border-radius:var(--radius-md);border:var(--border-width) solid var(--color-border);background:var(--color-surface);width:52%;margin-top:10px;padding:6px}.stk-qr img{width:100%;height:100%;display:block}.stk-scan{font-size:var(--text-sm);font-weight:var(--weight-bold);margin-top:10px!important}.stk-uses{font-size:var(--text-xs);line-height:var(--leading-snug);color:var(--color-text-muted);padding:2px 16px 0}.stk-foot{font-size:var(--text-xs);color:var(--color-text-muted);padding:8px 10px 10px;margin-top:auto!important}.print-sheets{display:none}@media print{@page{size:A4;margin:10mm}html,body{background:0 0}body *{visibility:hidden}.print-sheets,.print-sheets *{visibility:visible}.print-sheets{width:100%;display:block;position:absolute;inset:0 auto auto 0}.print-sheet{break-after:page;justify-content:center;gap:6mm;display:grid}.print-sheet:last-child{break-after:auto}.print-sheets .stk{box-shadow:none;border:var(--border-width-thin) solid var(--color-border);-webkit-print-color-adjust:exact;print-color-adjust:exact}.print-sheets--single .stk{zoom:1.5}.print-sheets--a4_4 .print-sheet{grid-template-columns:repeat(2,auto)}.print-sheets--a4_4 .stk{zoom:1.33}.print-sheets--a4_8 .print-sheet{grid-template-columns:repeat(4,auto)}.print-sheets--a4_8 .stk{zoom:.64}}
