@font-face{font-family:Roboto Flex;src:url(/fonts/roboto-flex.woff2)format("woff2");font-weight:100 1000;font-style:normal;font-display:swap}@font-face{font-family:Plex Mono;src:url(/fonts/ibm-plex-mono-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Plex Mono;src:url(/fonts/ibm-plex-mono-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Material Symbols Rounded;src:url(/fonts/material-symbols-rounded.woff2)format("woff2");font-weight:100 700;font-style:normal;font-display:block}:root{--primary:#2b62d9;--on-primary:#fff;--primary-container:#dce2ff;--on-primary-container:#001849;--secondary:#45618a;--on-secondary:#fff;--secondary-container:#d6e3ff;--on-secondary-container:#0c1c33;--tertiary:#00696e;--on-tertiary:#fff;--tertiary-container:#9cf1f6;--on-tertiary-container:#002022;--surface:#faf9fd;--surface-container-lowest:#fff;--surface-container-low:#f5f6fb;--surface-container:#eff1f8;--surface-container-high:#e9edf6;--surface-container-highest:#e2e7f2;--on-surface:#111c2e;--on-surface-variant:#48566e;--outline:#75849b;--outline-variant:#d5ddec;--error:#b3261e;--on-error:#fff;--error-container:#f9dedc;--on-error-container:#410e0b;--success:#16694a;--success-container:#c7efdc;--warning:#7a5900;--warning-container:#ffe6a6;--inverse-surface:#26313f;--inverse-on-surface:#eef1f9;--shape-xs:4px;--shape-sm:8px;--shape-md:12px;--shape-lg:16px;--shape-xl:24px;--shape-2xl:28px;--shape-full:999px;--motion-emphasized:cubic-bezier(.2, 0, 0, 1);--motion-emphasized-decelerate:cubic-bezier(.05, .7, .1, 1);--motion-emphasized-accelerate:cubic-bezier(.3, 0, .8, .15);--motion-spring:cubic-bezier(.34, 1.32, .64, 1);--motion-standard:cubic-bezier(.2, 0, 0, 1);--dur-short:.16s;--dur-med:.24s;--dur-long:.38s;--dur-exit:.15s;--elev-1:0 1px 2px #111c2e0f, 0 2px 6px #111c2e0d;--elev-2:0 2px 6px #111c2e14, 0 10px 24px -12px #111c2e2e;--elev-3:0 10px 32px -10px #111c2e42, 0 28px 64px -32px #111c2e61;--ink:var(--on-surface);--ink-2:#1d2c44;--ink-3:#2c4162;--teal:var(--primary);--water:var(--primary);--water-deep:#1b47b0;--water-soft:var(--primary-container);--brass:var(--warning);--brass-soft:var(--warning-container);--danger:var(--error);--danger-soft:var(--error-container);--ok:var(--success);--ok-soft:var(--success-container);--paper:var(--surface);--card:var(--surface-container-lowest);--line:var(--outline-variant);--line-strong:#bcc7da;--muted:var(--on-surface-variant);--muted-2:#66738a;--font-display:"Roboto Flex", Roboto, system-ui, -apple-system, sans-serif;--font-body:"Roboto Flex", Roboto, system-ui, -apple-system, sans-serif;--font-mono:"Plex Mono", ui-monospace, "SF Mono", monospace;--radius:var(--shape-xl);--radius-sm:var(--shape-md);--shadow:var(--elev-1);--shadow-lg:var(--elev-3)}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--surface);color:var(--on-surface);font-family:var(--font-body);font-variation-settings:"wght" 400;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:14px;line-height:1.5}h1,h2,h3,h4{font-family:var(--font-display);font-variation-settings:"wght" 560;letter-spacing:-.02em;margin:0;font-weight:560;line-height:1.15}p{margin:0}a{color:var(--primary);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}::selection{background:var(--primary-container);color:var(--on-primary-container)}:focus-visible{outline:3px solid color-mix(in srgb, var(--primary) 60%, transparent);outline-offset:2px;border-radius:var(--shape-sm)}.icon{letter-spacing:normal;text-transform:none;white-space:nowrap;-webkit-font-feature-settings:"liga";-webkit-font-smoothing:antialiased;font-variation-settings:"FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;transition:font-variation-settings var(--dur-short) var(--motion-standard);direction:ltr;flex:none;font-family:Material Symbols Rounded;font-style:normal;font-weight:400;line-height:1;display:inline-block}.icon.filled{font-variation-settings:"FILL" 1, "wght" 500, "GRAD" 0, "opsz" 24}.shell{grid-template-columns:252px minmax(0,1fr);align-content:start;min-height:100vh;display:grid}.rail{background:var(--surface-container-low);border-right:1px solid var(--outline-variant);height:100vh;color:var(--on-surface-variant);z-index:30;flex-direction:column;align-self:start;padding:16px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{color:inherit;align-items:center;gap:12px;padding:10px 10px 20px;text-decoration:none;display:flex}.brand-mark{border-radius:var(--shape-md);background:var(--primary);width:40px;height:40px;color:var(--on-primary);flex:none;place-items:center;display:grid}.brand-mark .icon{font-variation-settings:"FILL" 1, "wght" 500}.brand-name{font-family:var(--font-display);font-variation-settings:"wght" 620;letter-spacing:-.02em;color:var(--on-surface);font-size:16px;font-weight:620;line-height:1.05;display:block}.brand-sub{letter-spacing:.01em;color:var(--on-surface-variant);margin-top:3px;font-size:12px;font-weight:500;display:block}.nav-group{letter-spacing:.04em;color:var(--muted-2);padding:16px 14px 6px;font-size:12px;font-weight:600}.nav-item{border-radius:var(--shape-full);height:48px;color:var(--on-surface-variant);transition:background var(--dur-short) var(--motion-standard), color var(--dur-short) var(--motion-standard);align-items:center;gap:12px;padding:0 16px;font-size:14px;font-weight:500;text-decoration:none;display:flex;position:relative}.nav-item+.nav-item{margin-top:2px}.nav-item:hover{background:var(--surface-container-high);color:var(--on-surface)}.nav-item.active{background:var(--secondary-container);color:var(--on-secondary-container);font-weight:600}.nav-item.active .icon{font-variation-settings:"FILL" 1, "wght" 500, "GRAD" 0, "opsz" 24;color:var(--on-secondary-container)}.nav-item .icon{color:var(--on-surface-variant)}.nav-item:hover .icon{color:var(--on-surface)}.nav-dot{background:var(--error);width:9px;height:9px;box-shadow:0 0 0 3px var(--surface-container-low);border-radius:50%;flex:none;margin-left:auto}.bottom-nav{display:none}.bottom-icon{display:inline-flex;position:relative}.bottom-icon .bottom-dot{width:8px;height:8px;box-shadow:0 0 0 2px var(--surface-container);margin:0;position:absolute;top:-1px;right:-4px}.sheet-overlay{z-index:120;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade var(--dur-med) var(--motion-standard) both;background:#111c2e6b;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface-container-low);border-radius:var(--shape-2xl) var(--shape-2xl) 0 0;width:100%;max-height:85vh;padding:10px 18px calc(18px + env(safe-area-inset-bottom));box-shadow:var(--elev-3);animation:sheetIn .32s var(--motion-emphasized-decelerate) both;overflow-y:auto}.sheet-overlay.closing{animation:fadeOut var(--dur-exit) var(--motion-standard) both;pointer-events:none}.sheet.closing{animation:sheetOut .2s var(--motion-emphasized-accelerate) both}.sheet:before{content:"";border-radius:var(--shape-full);background:var(--outline-variant);width:32px;height:4px;margin:0 auto 14px;display:block}@keyframes sheetIn{0%{opacity:.7;transform:translateY(32px)}}@keyframes sheetOut{to{opacity:0;transform:translateY(48px)}}.sheet-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.sheet-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.sheet-item{border-radius:var(--shape-lg);color:var(--on-surface);background:var(--surface-container-lowest);transition:transform var(--dur-short) var(--motion-spring), background var(--dur-short) var(--motion-standard);border:none;align-items:center;gap:12px;padding:14px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.sheet-item:active{background:var(--surface-container-high);transform:scale(.98)}.sheet-count{background:var(--error-container);color:var(--on-error-container);border-radius:var(--shape-full);margin-left:auto;padding:2px 7px;font-size:12px;font-weight:600}.sheet-logout{border-radius:var(--shape-full);background:var(--surface-container-lowest);width:100%;height:52px;color:var(--error);border:none;justify-content:center;align-items:center;gap:10px;margin-top:12px;font-weight:600;display:flex}.rail-foot{border-top:1px solid var(--outline-variant);margin-top:auto;padding-top:14px}.user-chip{align-items:center;gap:10px;padding:10px 8px;display:flex}.avatar{background:var(--primary-container);width:36px;height:36px;color:var(--on-primary-container);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:600;display:grid}.user-name{color:var(--on-surface);font-size:14px;font-weight:600;line-height:1.2}.user-role{color:var(--on-surface-variant);font-size:12px;font-weight:500}.main{background:var(--surface);min-width:0;padding:28px 32px 72px}.page{max-width:1280px;animation:rise var(--dur-long) var(--motion-emphasized) both;margin:0 auto}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:24px;display:flex}.eyebrow{letter-spacing:.02em;color:var(--primary);align-items:center;gap:8px;font-size:12px;font-weight:600;display:flex}.eyebrow:after{content:"";background:var(--outline-variant);width:32px;height:1px}.page-title{font-variation-settings:"wght" 540;margin-top:6px;font-size:clamp(30px,3.2vw,36px)}.page-sub{color:var(--on-surface-variant);max-width:68ch;margin-top:8px;font-size:14px}.head-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.mobile-bar,.mobile-only{display:none}.card{background:var(--surface-container-lowest);border:1px solid var(--outline-variant);border-radius:var(--shape-xl);box-shadow:var(--elev-1);min-width:0;overflow:hidden}.card-pad{padding:20px}.card-head{justify-content:space-between;align-items:center;gap:12px;padding:18px 20px 16px;display:flex}.card-head+*{border-top:1px solid var(--outline-variant)}.card-title{letter-spacing:-.01em;font-size:16px;font-weight:600}.card-hint{color:var(--on-surface-variant);margin-top:2px;font-size:12px}.grid{gap:16px;display:grid}.grid-kpi{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-kpi-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-main{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}.stack{flex-direction:column;gap:16px;min-width:0;display:flex}.row{align-items:center;gap:10px;display:flex}.row-wrap{flex-wrap:wrap}.spacer{flex:1}.kpi{padding:18px 20px;position:relative;overflow:hidden}.kpi-label{color:var(--on-surface-variant);font-size:12px;font-weight:550}.kpi-value{font-family:var(--font-display);font-variation-settings:"wght" 540;letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-top:8px;font-size:clamp(24px,2.2vw,28px);font-weight:540}.kpi-value.compact{font-size:clamp(22px,2vw,24px)}.kpi-foot{color:var(--on-surface-variant);align-items:center;gap:6px;margin-top:8px;font-size:12px;display:flex}.kpi-mark{border-radius:var(--shape-full);width:40px;height:40px;color:var(--on-primary-container);background:var(--primary-container);place-items:center;display:grid;position:absolute;top:14px;right:14px}.kpi.brass .kpi-mark{color:#4a3700;background:var(--warning-container)}.kpi.danger .kpi-mark{color:var(--on-error-container);background:var(--error-container)}.waterline{background:var(--primary);color:#fff;border-radius:var(--shape-2xl);box-shadow:var(--elev-2);padding:22px;position:relative;overflow:hidden}.waterline:after{content:"";aspect-ratio:1;pointer-events:none;background:radial-gradient(circle,#ffffff42,#0000 68%);border-radius:50%;width:70%;position:absolute;inset:auto -20% -70% auto}.waterline-top{z-index:1;justify-content:space-between;align-items:baseline;gap:16px;display:flex;position:relative}.waterline-label{letter-spacing:.02em;color:#ffffffd1;font-size:12px;font-weight:550}.waterline-value{font-family:var(--font-display);font-variation-settings:"wght" 560;letter-spacing:-.03em;font-size:clamp(28px,3.2vw,36px);font-weight:560}.waterline-value small{color:#ffffffc7;letter-spacing:0;margin-left:12px;font-size:.42em;font-weight:500}.waterline-track{border-radius:var(--shape-full);z-index:1;background:#ffffff38;height:10px;margin-top:16px;position:relative;overflow:hidden}.waterline-fill{border-radius:var(--shape-full);height:100%;transition:width var(--dur-long) var(--motion-emphasized);background:#fff;position:relative}.waterline-meta{color:#fffc;z-index:1;justify-content:space-between;margin-top:10px;font-size:12px;display:flex;position:relative}.btn{border-radius:var(--shape-full);background:var(--primary);height:40px;color:var(--on-primary);white-space:nowrap;transition:background var(--dur-short) var(--motion-standard), transform var(--dur-short) var(--motion-spring), box-shadow var(--dur-short) var(--motion-standard);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:14px;font-weight:550;text-decoration:none;display:inline-flex}.btn:hover{background:color-mix(in srgb, var(--on-primary) 10%, var(--primary));box-shadow:var(--elev-1)}.btn:active{transform:scale(.97)}.btn .icon{font-size:18px}.btn.ghost{border-color:var(--outline);color:var(--primary);background:0 0}.btn.ghost:hover{background:color-mix(in srgb, var(--primary) 8%, transparent);box-shadow:none}.btn.soft{background:var(--secondary-container);color:var(--on-secondary-container)}.btn.soft:hover{background:color-mix(in srgb, var(--on-secondary-container) 12%, var(--secondary-container));box-shadow:none}.btn.danger{background:var(--error);color:var(--on-error)}.btn.danger:hover{background:#99201a}.btn.sm{height:32px;padding:0 14px;font-size:13px}.btn.icon{width:40px;padding:0}.btn.sm.icon{width:32px}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.btn.link{color:var(--primary);background:0 0;height:auto;padding:0 4px;font-weight:600}.btn.link:hover{box-shadow:none;background:0 0;text-decoration:underline}.field{flex-direction:column;gap:6px;display:flex}.field-label{color:var(--on-surface-variant);font-size:12px;font-weight:550}.field-hint{color:var(--on-surface-variant);font-size:12px}.input,.select,.textarea{border-radius:var(--shape-md);border:1px solid var(--outline);background:var(--surface-container-lowest);width:100%;height:48px;transition:border-color var(--dur-short) var(--motion-standard), box-shadow var(--dur-short) var(--motion-standard);padding:0 14px;font-size:16px}.select{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%2348566e' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:40px}.textarea{resize:vertical;height:auto;min-height:96px;padding:12px 14px;line-height:1.5}.input:focus,.select:focus,.textarea:focus{border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary);outline:none}.input.mono{font-variant-numeric:tabular-nums;letter-spacing:.01em}.file-field{flex-wrap:wrap;align-items:center;gap:10px;min-height:48px;display:flex}.file-field .btn{flex:none}.file-field .small{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}input[type=file].input{height:auto;min-height:48px;color:var(--on-surface-variant);padding:7px 8px;font-size:13px;line-height:1.4}input[type=file].input::file-selector-button{border-radius:var(--shape-full);background:var(--secondary-container);color:var(--on-secondary-container);font-family:var(--font-body);cursor:pointer;transition:background var(--dur-short) var(--motion-standard);border:none;margin-right:12px;padding:9px 16px;font-size:13px;font-weight:550}input[type=file].input::file-selector-button:hover{background:color-mix(in srgb, var(--on-secondary-container) 12%, var(--secondary-container))}input[type=checkbox],input[type=radio]{width:20px;height:20px;accent-color:var(--primary);margin:0}.form-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.form-grid .full{grid-column:1/-1}.search{min-width:220px;position:relative}.search .icon{color:var(--on-surface-variant);pointer-events:none;font-size:20px;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search .input{padding-left:44px}.row.form-row .btn{height:48px}.row.form-row .btn.icon{width:48px}.row.form-row .btn.sm{height:40px}.check{align-items:center;gap:10px;font-size:14px;display:flex}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}table.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;letter-spacing:.01em;color:var(--on-surface-variant);background:var(--surface-container-low);border-bottom:1px solid var(--outline-variant);white-space:nowrap;padding:12px 14px;font-size:12px;font-weight:550}.table th:first-child{border-top-left-radius:var(--shape-lg)}.table th:last-child{border-top-right-radius:var(--shape-lg)}.table td{border-bottom:1px solid var(--outline-variant);vertical-align:middle;padding:12px 14px;font-size:14px}.table tbody tr:last-child td{border-bottom:none}.table tbody tr{transition:background var(--dur-short) var(--motion-standard)}.table tbody tr:hover{background:var(--surface-container-low)}.table tbody tr.clickable{cursor:pointer}.table .num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-size:14px}.table .mono,.table .tight{white-space:nowrap}.table .strong{font-weight:600}.table .sub{color:var(--on-surface-variant);font-size:12px}.table td.tiny{font-size:14px}.table td .tiny{font-size:12px}.code-badge{font-variant-numeric:tabular-nums;background:var(--surface-container-high);border-radius:var(--shape-sm);padding:3px 8px;font-size:12px;font-weight:500;display:inline-block}.thumb{border-radius:var(--shape-md);object-fit:cover;border:1px solid var(--outline-variant);background:var(--surface-container);cursor:zoom-in;width:40px;height:40px;transition:transform var(--dur-short) var(--motion-spring)}.thumb:hover{transform:scale(1.04)}.chip{border-radius:var(--shape-sm);background:var(--surface-container-high);height:32px;color:var(--on-surface-variant);white-space:nowrap;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:550;line-height:1;display:inline-flex}.chip.ok:before,.chip.warn:before,.chip.danger:before{content:"";background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.chip.ok{background:var(--success-container);color:#0c3f2c}.chip.warn{background:var(--warning-container);color:#4a3700}.chip.danger{background:var(--error-container);color:var(--on-error-container)}.chip.water{background:var(--primary-container);color:var(--on-primary-container)}.flag{border-radius:var(--shape-xs);background:var(--error-container);height:24px;color:var(--on-error-container);align-items:center;margin-right:4px;padding:0 8px;font-size:12px;font-weight:550;display:inline-flex}.tabs{border-radius:var(--shape-full);background:var(--surface-container);scrollbar-width:none;gap:4px;max-width:100%;padding:4px;display:inline-flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{height:40px;color:var(--on-surface-variant);border-radius:var(--shape-full);white-space:nowrap;transition:background var(--dur-med) var(--motion-emphasized), color var(--dur-short) var(--motion-standard);background:0 0;border:none;align-items:center;gap:6px;padding:0 18px;font-size:14px;font-weight:500;display:inline-flex}.tab:hover{color:var(--on-surface);background:color-mix(in srgb, var(--on-surface) 6%, transparent)}.tab.active{background:var(--primary-container);color:var(--on-primary-container);font-weight:600}.tab .count{background:var(--surface-container-highest);border-radius:var(--shape-full);padding:1px 7px;font-size:12px;font-weight:600}.tab.active .count{background:var(--surface-container-lowest)}.overlay{z-index:80;animation:fade .2s var(--motion-standard) both;background:#00000052;justify-content:center;align-items:flex-start;padding:6vh 16px 24px;display:flex;position:fixed;inset:0;overflow-y:auto}.overlay.top{z-index:110}@keyframes fade{0%{opacity:0}}.modal{background:var(--surface-container-low);border-radius:var(--shape-2xl);width:min(640px,100%);max-height:88vh;box-shadow:var(--elev-3);transform-origin:50%;animation:dialogIn .25s var(--motion-emphasized-decelerate) both;flex-direction:column;display:flex;overflow:hidden}.modal.wide{width:min(860px,100%)}@keyframes dialogIn{0%{opacity:0;transform:scale(.92)}}.overlay.closing{animation:fadeOut var(--dur-exit) var(--motion-standard) both;pointer-events:none}.modal.closing{animation:dialogOut var(--dur-exit) var(--motion-emphasized-accelerate) both}@keyframes fadeOut{to{opacity:0}}@keyframes dialogOut{to{opacity:0;transform:scale(.94)}}.modal-head{flex:none;justify-content:space-between;align-items:flex-start;gap:12px;padding:22px 24px 14px;display:flex}.modal-head h3{font-variation-settings:"wght" 560;font-size:22px}.modal-body{overscroll-behavior:contain;padding:4px 24px 20px;overflow-y:auto}.modal-foot{flex-wrap:wrap;flex:none;justify-content:flex-end;gap:10px;padding:14px 24px 22px;display:flex}.x-btn{color:var(--on-surface-variant);width:40px;height:40px;transition:background var(--dur-short) var(--motion-standard);background:0 0;border:none;border-radius:50%;place-items:center;margin:-4px -4px 0 0;display:grid}.x-btn:hover{background:var(--surface-container-high);color:var(--on-surface)}.empty{text-align:center;color:var(--on-surface-variant);padding:32px 20px}.empty-icon{border-radius:var(--shape-lg);background:var(--primary-container);width:56px;height:56px;color:var(--on-primary-container);place-items:center;margin:0 auto 12px;display:grid}.empty-icon .icon{font-size:26px}.empty-title{color:var(--on-surface);margin-bottom:4px;font-size:16px;font-weight:600}.notice{background:var(--primary-container);color:var(--on-primary-container);border-radius:var(--shape-md);padding:14px 16px;font-size:14px;line-height:1.5}.notice.warn{background:var(--warning-container);color:#3f2f00}.toast-wrap{z-index:140;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:18px;right:18px}.toast{background:var(--inverse-surface);color:var(--inverse-on-surface);border-radius:var(--shape-sm);box-shadow:var(--elev-3);animation:toastIn .24s var(--motion-emphasized-decelerate) both;align-items:center;gap:10px;padding:14px 18px;font-size:14px;font-weight:500;display:flex}.toast.error{background:var(--error);color:var(--on-error)}.toast.leaving{animation:toastOut .18s var(--motion-emphasized-accelerate) both}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)scale(.98)}}@keyframes toastOut{to{opacity:0;transform:translateY(8px)scale(.98)}}.loading{color:var(--on-surface-variant);justify-content:center;align-items:center;gap:10px;padding:32px;font-size:14px;display:flex}.spin{border:2.5px solid var(--surface-container-highest);border-top-color:var(--primary);border-radius:50%;width:18px;height:18px;animation:.75s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.progress-track{border-radius:var(--shape-full);background:var(--surface-container-high);height:8px;overflow:hidden}.progress-fill{border-radius:var(--shape-full);background:var(--primary);height:100%;transition:width var(--dur-long) var(--motion-emphasized)}.meter-strip{align-items:center;gap:10px;display:flex}.meter-track{background:var(--surface-container-high);border-radius:var(--shape-full);flex:1;height:8px;position:relative;overflow:hidden}.meter-fill{background:var(--primary);border-radius:var(--shape-full);position:absolute;inset:0 auto 0 0}.meter-ticks{color:var(--on-surface-variant);justify-content:space-between;margin-top:4px;font-size:12px;display:flex}.section-title{color:var(--on-surface-variant);margin-bottom:10px;font-size:12px;font-weight:600}.hero-ledger{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;display:grid}.detail-list{grid-template-columns:1fr 1fr;gap:14px 20px;display:grid}.detail-list .full{grid-column:1/-1}.detail-key{color:var(--on-surface-variant);font-size:12px;font-weight:550}.detail-val{margin-top:3px;font-size:14px}.detail-val.mono{font-variant-numeric:tabular-nums;font-size:14px}.money{font-variant-numeric:tabular-nums}.money-lg{font-family:var(--font-display);font-variation-settings:"wght" 540;letter-spacing:-.03em;font-size:28px;font-weight:540}.muted{color:var(--on-surface-variant)}.small{font-size:13px}.tiny{font-size:12px}.mono{font-variant-numeric:tabular-nums;letter-spacing:.01em}.right{text-align:right}.nowrap{white-space:nowrap}.mt-2{margin-top:8px}.mt-3{margin-top:14px}.mt-4{margin-top:22px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:14px}.audit-table .mono{font-family:var(--font-mono);letter-spacing:0;font-size:12px}.chart{align-items:flex-end;gap:14px;height:156px;padding:8px 4px 0;display:flex}.chart-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:8px;height:100%;display:flex}.chart-bars{justify-content:center;align-items:flex-end;gap:4px;width:100%;height:100%;display:flex}.chart-bar{border-radius:var(--shape-full) var(--shape-full) var(--shape-xs) var(--shape-xs);background:var(--surface-container-highest);width:12px;min-height:2px;transition:height var(--dur-long) var(--motion-emphasized)}.chart-bar.paid{background:var(--primary)}.chart-label{color:var(--on-surface-variant);font-size:12px;font-weight:500}.chart-bar:hover{filter:brightness(1.06)}.login-wrap{grid-template-columns:1.05fr 1fr;min-height:100vh;display:grid}.login-art{background:var(--primary);color:#fff;flex-direction:column;justify-content:space-between;padding:48px;display:flex;position:relative;overflow:hidden}.login-art:before{content:"";aspect-ratio:1;background:radial-gradient(circle,#ffffff2e,#0000 66%);border-radius:50%;width:78%;position:absolute;inset:auto -25% -18% auto}.login-art .brand-mark{color:#fff;background:#ffffff29}.login-art .brand-name{color:#fff}.login-art .brand-sub{color:#ffffffb8}.login-quote{letter-spacing:-.03em;z-index:1;font-variation-settings:"wght" 480;max-width:16ch;font-size:clamp(28px,3vw,36px);line-height:1.12;position:relative}.login-quote em{color:var(--primary-container);font-style:normal}.login-art-foot{z-index:1;color:#ffffffb3;font-size:12px;position:relative}.login-panel{background:var(--surface);place-items:center;padding:34px;display:grid}.login-card{width:min(400px,100%)}.login-steps{color:var(--primary);margin-bottom:10px;font-size:12px;font-weight:600}.otp{letter-spacing:.42em;font-variant-numeric:tabular-nums;text-align:center;height:60px;font-size:24px}@media (width<=1080px){.grid-kpi{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-main{grid-template-columns:minmax(0,1fr)}.hero-ledger{grid-template-columns:1fr}}@media (width<=860px){.shell{grid-template-columns:1fr}.rail{scrollbar-width:none;border-right:none;border-bottom:1px solid var(--outline-variant);background:var(--surface-container-low);-webkit-backdrop-filter:saturate(140%)blur(12px);backdrop-filter:saturate(140%)blur(12px);flex-flow:wrap;align-items:center;gap:6px;height:auto;padding:10px 16px;position:sticky;overflow-x:auto}.rail::-webkit-scrollbar{display:none}.brand{flex:none;padding:0 8px 0 0}.brand-sub{display:none}.brand-name{font-size:16px}.brand-mark{width:36px;height:36px}.rail nav{flex-flow:wrap;gap:2px;display:flex}.rail nav>div{display:contents}.nav-group,.rail-foot{display:none}.nav-item{flex:none;height:40px;padding:0 12px;font-size:14px}.mobile-only{display:flex}.main{padding:20px 18px 64px}.form-grid,.detail-list,.login-wrap{grid-template-columns:1fr}.login-art{display:none}}@media (width<=640px){.rail nav{display:none}.rail{padding:8px 14px}.main{padding-top:16px;padding-bottom:calc(100px + env(safe-area-inset-bottom))}.page-head{margin-bottom:16px}.page-title{font-size:30px}.grid,.stack{gap:12px}.card-pad{padding:16px}.card-head{padding:14px 16px 12px}.modal-head{padding:20px 18px 10px}.modal-body{padding:2px 18px 18px}.modal-foot{padding:12px 18px 20px}.kpi{padding:14px 16px}.kpi-value{margin-top:4px;font-size:clamp(22px,6.2vw,28px)}.kpi-foot{margin-top:6px}.waterline-top{display:block}.waterline-top>.right{text-align:right;margin-top:2px}.waterline-value{font-size:30px}.waterline-value small{white-space:nowrap}.dash>.hero-ledger{display:contents}.dash>.hero-ledger>.waterline{order:1}.dash>.grid-kpi{order:2}.dash>.hero-ledger>.chart-card{order:3}.dash>.grid-main{order:4}.kpi-mark{width:36px;height:36px;top:12px;right:12px}.grid-kpi>.kpi,.grid-kpi-3>.kpi{grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:12px;padding:12px 14px;display:grid}.grid-kpi>.kpi>.kpi-label,.grid-kpi-3>.kpi>.kpi-label{grid-area:1/1}.grid-kpi>.kpi>.kpi-value,.grid-kpi-3>.kpi>.kpi-value{text-align:right;grid-area:1/2/span 2;margin:0;font-size:clamp(22px,6vw,26px)}.grid-kpi>.kpi>.kpi-foot,.grid-kpi-3>.kpi>.kpi-foot{grid-area:2/1;margin-top:2px}.grid-kpi>.kpi>.kpi-mark,.grid-kpi-3>.kpi>.kpi-mark,.grid-kpi>.kpi>.kpi-foot .chip,.kpi-note{display:none}.empty{padding:22px 16px}.empty-icon{width:48px;height:48px;margin-bottom:10px}.tabs{background:0 0;border-radius:0;flex-wrap:wrap;gap:8px;width:100%;padding:0;display:flex}.card-head .tabs{width:auto}.tab{background:var(--surface-container);flex:none;justify-content:center;height:36px;padding:0 14px;font-size:13px}.tab.active{background:var(--primary-container)}.tab .count{background:var(--surface-container-highest)}.thumb{width:36px;height:36px}.table-cards thead{display:none}.table-cards,.table-cards tbody{width:100%;display:block}.table-cards tr{border-bottom:1px solid var(--outline-variant);padding:10px 16px;display:block;position:relative}.table-cards tr:last-child{border-bottom:none}.table-cards td{text-align:right;white-space:nowrap;text-overflow:ellipsis;border:none;min-height:20px;padding:2px 0 2px 96px;font-size:14px;line-height:1.45;display:block;position:relative;overflow:hidden}.table-cards td .small{font-size:inherit}.table-cards td:before{content:attr(data-label);text-align:left;width:88px;color:var(--on-surface-variant);font-size:12px;font-weight:550;line-height:1.45;position:absolute;top:3px;left:0}.table-cards td[data-label=""]{min-height:0;padding:0}.table-cards td[data-label=""]:has(>.icon:only-child){width:auto;padding:0;position:absolute;top:12px;right:16px}.table-cards tr:has(td[data-label=""]>.icon)>td:first-child{padding-right:44px}.table-cards td[data-label=""]:has(>.btn){flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-top:8px;padding:0;display:flex}.table-cards td[data-label=Rumah],.table-cards td[data-label=Periode],.table-cards td[data-label=Catatan\ sistem],.table-cards td[data-label=Detail]{white-space:normal}.table-cards td .sub{margin-left:6px;font-size:12px;display:inline}.table-cards td .sub:before{content:"· "}.table-cards td.is-empty{display:none}:is(.table-cards td:has(>.input),.table-cards td:has(>.select)){min-height:44px}.table-cards td:has(>.input):before{top:50%;transform:translateY(-50%)}.table-cards td:has(>.select):before{top:50%;transform:translateY(-50%)}.table-cards td[data-label=""]{padding-left:0}.table-cards td[data-label=""]:before{display:none}.table-cards td.num{text-align:right}.table-cards .thumb{width:32px;height:32px;margin-left:auto;display:block}.table-cards .audit-detail{display:none}.table-wrap:has(.table-cards){overflow-x:visible}.bottom-nav{z-index:70;background:var(--surface-container);border-top:1px solid var(--outline-variant);padding:8px 6px calc(8px + env(safe-area-inset-bottom));gap:2px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 28px -20px #111c2e80}.bottom-item{color:var(--on-surface-variant);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:4px;padding:0;font-size:12px;font-weight:550;text-decoration:none;display:flex;position:relative}.bottom-item .bottom-icon{border-radius:var(--shape-full);width:60px;height:32px;transition:background var(--dur-med) var(--motion-emphasized);place-items:center;display:grid}.bottom-item .icon{font-size:22px}.bottom-item.active{color:var(--on-surface)}.bottom-item.active .bottom-icon{background:var(--secondary-container)}.bottom-item.active .icon{font-variation-settings:"FILL" 1, "wght" 500, "GRAD" 0, "opsz" 24;color:var(--on-secondary-container)}}@media (width<=560px){.grid-kpi,.grid-kpi-3,.grid-2,.grid-3{grid-template-columns:1fr}.overlay{align-items:flex-end;padding:0}.modal{border-radius:var(--shape-2xl) var(--shape-2xl) 0 0;transform-origin:bottom;width:100%;max-height:92vh;animation:sheetIn .32s var(--motion-emphasized-decelerate) both}.modal.closing{animation:sheetOut .2s var(--motion-emphasized-accelerate) both}.modal:before{content:"";border-radius:var(--shape-full);background:var(--outline-variant);flex:none;width:32px;height:4px;margin:10px auto 0;display:block}.modal-head{padding:12px 18px 10px}.modal-foot{gap:8px}.modal-foot .btn,.modal-foot .btn.sm{flex:auto;height:40px;padding:0 14px;font-size:13.5px}.modal-foot:has(.btn:nth-child(3)) .btn:last-child{flex:100%;font-size:14px}.page-head{align-items:flex-start}.head-actions{width:100%}.head-actions .btn:not(.icon),.head-actions .select{flex:auto}.search{width:100%;min-width:0}.nav-item span{display:none}.nav-item{padding:0 10px}.toast-wrap{left:12px;right:12px;bottom:calc(96px + env(safe-area-inset-bottom))}.toast{justify-content:center}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
