:root{--color-primary: #2563EB;--color-primary-hover: #1D4ED8;--color-primary-light: #EFF6FF;--color-surface: #FFFFFF;--color-bg: #F8FAFC;--color-bg-hover: #F1F5F9;--color-border: #E2E8F0;--color-navy: #1E293B;--color-navy-light: #475569;--color-navy-text: #CBD5E1;--color-text: #0F172A;--color-text-secondary: #64748B;--color-muted: #94A3B8;--color-success: #16A34A;--color-success-dark: #166534;--color-warning: #F59E0B;--color-danger: #DC2626;--color-danger-light: #FEF2F2;--color-danger-hover: #FEE2E2;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-pill: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .1);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "Courier New", Courier, monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font-sans);font-size:14px;background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{display:grid;grid-template-rows:48px 1fr 28px;grid-template-columns:220px 1fr;grid-template-areas:"topbar  topbar" "sidenav main" "status  status";height:100vh;overflow:hidden}.topbar{grid-area:topbar;background:var(--color-navy);color:var(--color-navy-text);padding:0 16px;display:flex;align-items:center;gap:12px;font-size:13px}.topbar strong{color:#fff;font-size:14px;font-weight:600}.topbar .env-badge,.env-badge-dev{font-size:11px;font-weight:600;padding:2px 8px;border-radius:var(--radius-pill);letter-spacing:.02em}.topbar .env-badge{background:var(--color-danger);color:#fff}.env-badge-dev{background:var(--color-success);color:#fff}.topbar .connected-indicator{display:flex;align-items:center;gap:6px;color:var(--color-muted);font-size:12px}.topbar .connected-indicator:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--color-success);flex-shrink:0}.topbar .user{margin-left:auto;display:flex;align-items:center;gap:8px;color:var(--color-muted);font-size:13px}.topbar .user button{background:none;border:1px solid var(--color-navy-light);color:var(--color-muted);cursor:pointer;font-family:var(--font-sans);font-size:12px;padding:4px 10px;border-radius:var(--radius-sm);transition:all .15s ease}.topbar .user button:hover{background:#ffffff1a;color:#fff;border-color:var(--color-text-secondary)}.sidenav{grid-area:sidenav;background:var(--color-surface);border-right:1px solid var(--color-border);overflow-y:auto;padding:8px 0}.sidenav a{display:flex;align-items:center;gap:10px;padding:9px 16px;color:var(--color-text-secondary);text-decoration:none;font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:3px solid transparent;transition:all .15s ease}.sidenav a svg{flex-shrink:0;width:16px;height:16px}.sidenav a:hover{background:var(--color-bg);color:var(--color-text)}.sidenav a.active{background:var(--color-primary-light);color:var(--color-primary);border-left-color:var(--color-primary);font-weight:600}.sidenav .nav-section{padding:12px 16px 4px;font-size:11px;color:var(--color-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600;border-top:1px solid var(--color-border);margin-top:4px}.main-area{grid-area:main;display:flex;flex-direction:column;overflow:hidden;background:var(--color-bg)}.breadcrumb{padding:8px 20px;background:var(--color-surface);border-bottom:1px solid var(--color-border);font-size:13px;color:var(--color-text-secondary);flex-shrink:0}.breadcrumb a{color:var(--color-primary);text-decoration:none;font-weight:500}.breadcrumb a:hover{text-decoration:underline}.toolbar{padding:8px 20px;border-bottom:1px solid var(--color-border);background:var(--color-surface);display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex-shrink:0}.toolbar label{color:var(--color-text-secondary);font-size:13px;font-weight:500}.toolbar input[type=text],.toolbar select{border:1px solid var(--color-border);padding:6px 10px;font-size:13px;font-family:var(--font-sans);background:var(--color-surface);border-radius:var(--radius-sm);height:36px;color:var(--color-text);transition:border-color .15s ease}.toolbar input[type=text]:focus,.toolbar select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.toolbar input[type=text]{width:220px}.toolbar .count{margin-left:auto;color:var(--color-text-secondary);font-size:13px;background:var(--color-bg);padding:4px 10px;border-radius:var(--radius-pill);font-weight:500}.statusbar{grid-area:status;padding:4px 16px;background:var(--color-surface);border-top:1px solid var(--color-border);font-size:11px;color:var(--color-text-secondary);display:flex;gap:16px;align-items:center}.statusbar span:first-child:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--color-success);margin-right:6px;vertical-align:middle}.table-wrap{flex:1;overflow:auto}table{width:100%;border-collapse:collapse}thead th{background:var(--color-bg);border-bottom:1px solid var(--color-border);padding:10px 12px;text-align:left;font-weight:600;white-space:nowrap;position:sticky;top:0;z-index:1;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.clickable-rows tr{cursor:pointer}tbody tr{transition:background .15s ease}tbody tr:hover{background:var(--color-bg-hover)}tbody tr.selected{background:var(--color-primary-light)}td{padding:8px 12px;border-bottom:1px solid var(--color-border);white-space:nowrap;vertical-align:middle;font-size:13px}td.id{font-size:11px;color:var(--color-muted);font-family:var(--font-mono)}td.money{color:var(--color-success-dark);font-weight:600}.btn{padding:6px 14px;font-size:13px;font-family:var(--font-sans);font-weight:500;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);cursor:pointer;border-radius:var(--radius-sm);min-height:36px;transition:all .15s ease;display:inline-flex;align-items:center;gap:6px}.btn:hover{background:var(--color-bg);box-shadow:var(--shadow-sm)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover{background:var(--color-primary-hover);box-shadow:var(--shadow-sm)}.btn-danger{background:var(--color-danger-light);color:var(--color-danger);border-color:var(--color-danger)}.btn-danger:hover{background:var(--color-danger-hover)}.btn-sm{padding:4px 8px;font-size:12px;min-height:28px}.badge{font-size:11px;padding:2px 8px;border-radius:var(--radius-pill);font-weight:600;display:inline-block}.badge-active{background:#dcfce7;color:var(--color-success-dark)}.badge-inactive{background:var(--color-bg-hover);color:var(--color-text-secondary)}.badge-paid{background:#dbeafe;color:#1e40af}.badge-overdue{background:var(--color-danger-hover);color:#991b1b}.badge-pending{background:#fef9c3;color:#854d0e}.detail-panel{width:380px;border-left:1px solid var(--color-border);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;background:var(--color-surface);box-shadow:-4px 0 12px #0000000f;animation:slide-in .2s ease}@keyframes slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.detail-panel-header{padding:10px 16px;background:var(--color-navy);color:#fff;font-weight:600;font-size:14px;display:flex;justify-content:space-between;align-items:center;flex-shrink:0}.detail-panel-header button{background:none;border:none;color:var(--color-muted);cursor:pointer;font-size:18px;line-height:1;padding:4px;border-radius:var(--radius-sm);transition:all .15s ease}.detail-panel-header button:hover{color:#fff;background:#ffffff1a}.detail-panel-ops{padding:8px 16px;border-bottom:1px solid var(--color-border);background:var(--color-bg);display:flex;gap:6px;flex-wrap:wrap;flex-shrink:0}.detail-panel-body{flex:1;overflow-y:auto}.detail-section{padding:12px 16px;border-bottom:1px solid var(--color-border)}.detail-section h4{font-size:11px;text-transform:uppercase;color:var(--color-muted);letter-spacing:.06em;margin-bottom:8px;font-weight:600}.kv-row{display:flex;gap:8px;margin-bottom:6px;font-size:13px}.kv-key{color:var(--color-text-secondary);min-width:110px;flex-shrink:0;font-weight:500}.kv-val{color:var(--color-text);word-break:break-all}.kv-val.money{color:var(--color-success-dark);font-weight:600}.kv-val.id{font-size:11px;color:var(--color-muted);font-family:var(--font-mono)}.mini-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:6px}.mini-table th{background:var(--color-bg);padding:4px 8px;text-align:left;font-weight:600;font-size:11px;color:var(--color-text-secondary)}.mini-table td{padding:4px 8px;border-bottom:1px solid var(--color-border);font-size:12px}.form-field{margin-bottom:12px}.form-field label{display:block;font-size:12px;color:var(--color-text-secondary);margin-bottom:4px;font-weight:500}.form-field input,.form-field select,.form-field textarea{width:100%;border:1px solid var(--color-border);padding:6px 10px;font-size:13px;font-family:var(--font-sans);background:var(--color-surface);border-radius:var(--radius-sm);height:36px;color:var(--color-text);transition:border-color .15s ease}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-primary-light)}.form-field textarea{resize:vertical;height:80px;font-family:var(--font-mono);font-size:12px}.form-error{color:var(--color-danger);font-size:12px;margin-top:4px}.page-content{flex:1;overflow:auto;padding:20px}.split-layout{display:flex;flex:1;overflow:hidden}.login-page{display:flex;align-items:center;justify-content:center;height:100vh;flex-direction:column;gap:20px;background:var(--color-bg)}.login-page>*{background:var(--color-surface);padding:32px;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);text-align:center}.login-page button{font-family:var(--font-sans);font-size:14px;font-weight:500;padding:10px 24px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s ease}.login-page button:hover{background:var(--color-primary-hover)}dialog{border:none;padding:24px;min-width:340px;font-family:var(--font-sans);font-size:14px;border-radius:var(--radius-md);box-shadow:0 8px 24px #00000026;color:var(--color-text)}dialog::backdrop{background:#0006}dialog h3{margin-bottom:12px;font-size:16px;font-weight:600}dialog p{margin-bottom:20px;color:var(--color-text-secondary);line-height:1.5}dialog .dialog-actions{display:flex;gap:10px;justify-content:flex-end}.text-muted{color:var(--color-text-secondary)}.text-danger{color:var(--color-danger)}.text-success{color:var(--color-success-dark)}.mt-8{margin-top:8px}@media(max-width:1024px){#root{grid-template-columns:1fr;grid-template-areas:"topbar" "main" "status"}.sidenav{display:none}.detail-panel{position:fixed;top:48px;right:0;bottom:28px;z-index:10;box-shadow:-8px 0 24px #00000026}}
