:root{--bg-base: #ffffff;--bg-subtle: #f7f8fa;--bg-elevated: #ffffff;--bg-hover: #f0f3f7;--text-primary: #1a1a1a;--text-secondary: #4a5568;--text-muted: #718096;--text-inverse: #ffffff;--border-subtle: #e2e8f0;--border-default: #cbd5e1;--border-strong: #94a3b8;--navy: #1B2A4A;--navy-hover: #2a3d5f;--navy-light: #e8ebf2;--teal: #2A7F8E;--teal-hover: #226a77;--teal-light: #e6f1f3;--success: #15803d;--success-bg: #dcfce7;--warning: #b45309;--warning-bg: #fef3c7;--danger: #b91c1c;--danger-bg: #fee2e2;--info: #1e40af;--info-bg: #dbeafe;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--topbar-height: 56px;--statusbar-height: 32px;--sidebar-width: 220px;--radius-sm: 3px;--radius-md: 6px;--radius-lg: 8px;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .04);--shadow-md: 0 1px 3px rgba(15, 23, 42, .08), 0 1px 2px rgba(15, 23, 42, .04)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:14px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--bg-base);color:var(--text-primary);font-family:var(--font-sans);line-height:1.5;min-height:100vh}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-subtle)}::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}*{scrollbar-width:thin;scrollbar-color:var(--border-default) var(--bg-subtle)}a{color:var(--navy);text-decoration:none;transition:color .15s ease}a:hover{color:var(--teal);text-decoration:underline}::selection{background:var(--navy-light);color:var(--navy)}h1,h2,h3,h4,h5,h6{color:var(--text-primary);font-weight:600;line-height:1.3;letter-spacing:-.01em}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}table{border-collapse:collapse;width:100%}.text-muted{color:var(--text-muted)}.text-secondary{color:var(--text-secondary)}.text-navy{color:var(--navy)}.text-teal{color:var(--teal)}.text-success{color:var(--success)}.text-warning{color:var(--warning)}.text-danger{color:var(--danger)}.mono{font-family:var(--font-mono)}.layout{background:var(--bg-base);min-height:100vh}.layout-topbar{display:flex;align-items:center;justify-content:space-between;background:var(--navy);color:var(--text-inverse);padding:0 24px;height:var(--topbar-height);position:fixed;top:0;left:0;right:0;z-index:100;box-shadow:var(--shadow-md)}.layout-topbar-left{display:flex;align-items:baseline;gap:14px}.layout-topbar-title{font-size:.95rem;font-weight:700;color:var(--text-inverse);letter-spacing:-.005em;white-space:nowrap}.layout-topbar-subtitle{font-size:.78rem;color:#ffffffb3;font-weight:400}.layout-topbar-right{display:flex;align-items:center;gap:12px}.layout-body{display:flex;margin-top:var(--topbar-height);min-height:calc(100vh - var(--topbar-height) - var(--statusbar-height))}.layout-sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-subtle);border-right:1px solid var(--border-subtle);padding:16px 0;position:fixed;top:var(--topbar-height);left:0;bottom:var(--statusbar-height);overflow-y:auto;z-index:90}.layout-sidebar-label{font-size:.7rem;color:var(--text-muted);letter-spacing:.04em;text-transform:uppercase;font-weight:600;padding:8px 20px 6px;margin-top:4px}.layout-nav{list-style:none;padding:0;margin:0}.layout-nav-item{margin:0}.layout-nav-link{display:block;padding:9px 20px;color:var(--text-secondary);font-size:.85rem;font-weight:500;transition:all .15s ease;border-left:3px solid transparent;text-decoration:none}.layout-nav-link:hover{color:var(--navy);background:var(--bg-hover);text-decoration:none}.layout-nav-link.active{color:var(--navy);background:var(--navy-light);border-left-color:var(--navy);font-weight:600}.layout-main{flex:1;margin-left:var(--sidebar-width);padding:28px 32px;min-height:calc(100vh - var(--topbar-height) - var(--statusbar-height));background:var(--bg-base)}.layout-statusbar{display:flex;align-items:center;justify-content:space-between;background:var(--bg-subtle);border-top:1px solid var(--border-subtle);padding:6px 24px;height:var(--statusbar-height);position:fixed;bottom:0;left:0;right:0;z-index:100;font-size:.75rem}.layout-statusbar-left,.layout-statusbar-right{display:flex;align-items:center;gap:16px;color:var(--text-secondary)}.layout-status-indicator{display:flex;align-items:center;gap:6px;color:var(--text-secondary)}.layout-status-dot{width:7px;height:7px;border-radius:50%;background:var(--success)}.layout-status-text-dim{color:var(--text-muted)}.panel{background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:16px;box-shadow:var(--shadow-sm)}.panel-header{display:flex;align-items:center;background:var(--bg-subtle);border-bottom:1px solid var(--border-subtle);border-radius:var(--radius-md) var(--radius-md) 0 0;padding:10px 16px}.panel-header-title{color:var(--text-primary);font-size:.85rem;font-weight:600;letter-spacing:0}.panel-content{padding:16px}.datatable-wrapper{overflow-x:auto}.datatable{width:100%;border-collapse:collapse;font-size:.875rem}.datatable-th{text-align:left;padding:10px 14px;color:var(--text-secondary);font-weight:600;font-size:.75rem;letter-spacing:.03em;text-transform:uppercase;background:var(--bg-subtle);border-bottom:1px solid var(--border-default);white-space:nowrap;-webkit-user-select:none;user-select:none}.datatable-th.sortable{cursor:pointer;transition:background .15s ease}.datatable-th.sortable:hover{background:var(--bg-hover);color:var(--navy)}.datatable-sort-indicator{margin-left:6px;font-size:.6rem}.datatable-sort-indicator.dimmed{opacity:.3}.datatable-sort-indicator.active{color:var(--navy);opacity:1}.datatable-row{border-bottom:1px solid var(--border-subtle);transition:background .1s ease}.datatable-row:hover{background:var(--bg-hover)}.datatable-row.clickable{cursor:pointer}.datatable-td{padding:12px 14px;color:var(--text-primary);vertical-align:middle}.datatable-empty{display:flex;align-items:center;justify-content:center;padding:40px 20px;color:var(--text-muted);font-size:.875rem}.searchbar{margin-bottom:16px}.searchbar-input-group{display:flex;align-items:center;background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);transition:border-color .15s ease,box-shadow .15s ease;overflow:hidden}.searchbar-input-group:focus-within{border-color:var(--navy);box-shadow:0 0 0 3px var(--navy-light)}.searchbar-prompt{display:none}.searchbar-input{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:.9rem;padding:9px 14px}.searchbar-input::placeholder{color:var(--text-muted)}.searchbar-button{background:var(--navy);border:none;color:var(--text-inverse);padding:9px 18px;font-size:.8rem;font-weight:600;cursor:pointer;transition:background .15s ease}.searchbar-button:hover{background:var(--navy-hover)}.searchbar-filters{display:flex;align-items:center;gap:16px;margin-top:12px;flex-wrap:wrap}.searchbar-filter{display:flex;align-items:center;gap:6px}.searchbar-filter-label{color:var(--text-secondary);font-size:.75rem;font-weight:500;white-space:nowrap}.searchbar-select{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-primary);padding:5px 8px;font-size:.825rem;outline:none;cursor:pointer;transition:border-color .15s ease}.searchbar-select:focus{border-color:var(--navy)}.pagination{display:flex;align-items:center;justify-content:center;gap:16px;padding:20px 0;font-size:.85rem;color:var(--text-secondary)}.pagination-btn{background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--navy);padding:6px 14px;font-size:.825rem;font-weight:500;cursor:pointer;transition:all .15s ease}.pagination-btn:hover:not(.disabled){background:var(--navy-light);border-color:var(--navy)}.pagination-btn.disabled{color:var(--text-muted);background:var(--bg-subtle);border-color:var(--border-subtle);cursor:not-allowed}.pagination-info{color:var(--text-secondary)}.pagination-current{color:var(--navy);font-weight:700}.pagination-total{color:var(--text-secondary);font-weight:500}
