:root{--color-surface:#eaebe4;--color-white:#fff;--color-accent:#f7931e;--color-accent-hover:#d9790b;--color-accent-light:#fff4e6;--color-gold-2:#f8bd3b;--color-gold-3:#f9d550;--color-gold-4:#eed88a;--color-text:#000;--color-text-dense:#333;--color-text-secondary:#666;--color-text-muted:#999;--color-border:#0003;--color-border-light:#ccc;--color-dark:#262626;--color-blue:#0055b8;--color-info:#256781;--color-info-bg:#f2faff;--color-error:#c62828;--color-error-bg:#ffebee;--color-badge-bg:#ddecf5;--fs-xl:1.375rem;--fs-lg:1.125rem;--fs-base:1rem;--fs-sm:.8125rem;--fs-xs:.75rem;--sp-xs:4px;--sp-sm:8px;--sp-md:16px;--sp-lg:24px;--sp-xl:32px;--radius:10px;--radius-sm:6px;--radius-pill:9999px;--shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-md:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--shadow-focus:0 0 0 2px #f7931e26;--shadow-glow:0 0 12px #f7931e40, 0 0 0 1px #f7931e26;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-size:var(--fs-base);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-synthesis:none}*,:before,:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-dark);min-height:100svh}#root{flex-direction:column;height:100svh;display:flex}h1,h2,h3,h4{color:var(--color-text);margin:0;font-weight:600}p{margin:0}a{color:var(--color-blue);text-decoration:none}a:hover{text-decoration:underline}button{font-family:inherit}input,select,textarea{font-family:inherit;font-size:var(--fs-sm)}.material-icons{vertical-align:middle;-webkit-user-select:none;user-select:none;font-size:18px;line-height:1}.shell{background:var(--color-dark);flex-direction:column;height:100svh;display:flex}.shell-body{flex:1;min-height:0;display:flex}.shell-sidebar{background:var(--color-dark);width:220px;color:var(--color-white);padding:var(--sp-lg) var(--sp-md);gap:var(--sp-md);flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.shell-module-name{padding:0 var(--sp-sm);color:#ffffff8c;letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:600}.shell-lockup{flex-shrink:0;height:22px;display:block}.shell-module-tabs{align-items:center;gap:var(--sp-xs);margin-left:var(--sp-lg);flex:1;min-width:0;display:flex;overflow-x:auto}.shell-module-tab{border-radius:var(--radius-sm);color:#ffffffbf;font-size:var(--fs-sm);white-space:nowrap;padding:6px 14px;font-weight:600;transition:background-color .15s,color .15s}.shell-module-tab:hover{color:var(--color-white);background:#ffffff14;text-decoration:none}.shell-module-tab.active{background:var(--color-accent);color:var(--color-white)}.shell-nav{flex-direction:column;gap:2px;display:flex}.shell-nav-link{align-items:center;gap:var(--sp-sm);padding:10px var(--sp-sm);border-radius:var(--radius-sm);color:#ffffffbf;font-size:var(--fs-sm);font-weight:500;transition:background-color .15s,color .15s;display:flex}.shell-nav-link:hover{color:var(--color-white);background:#ffffff14;text-decoration:none}.shell-nav-link.active{background:var(--color-accent);color:var(--color-white)}.shell-topbar{background:var(--color-dark);color:var(--color-white);padding:var(--sp-md) var(--sp-lg);align-items:center;gap:var(--sp-sm);border-bottom:1px solid #ffffff14;flex-shrink:0;display:flex}.shell-user{align-items:center;gap:var(--sp-xs);font-size:var(--fs-xs);color:#ffffffbf;white-space:nowrap;margin-left:auto;display:flex}.shell-content{background:var(--color-surface);min-width:0;padding:var(--sp-lg);border-radius:16px 0 0;flex-direction:column;flex:1;display:flex;overflow-y:auto}.shell-content>*{flex-shrink:0}.page-fill{flex-direction:column;flex:1;min-height:0;display:flex}.page-fill>*{flex-shrink:0}.page-header{justify-content:space-between;align-items:center;gap:var(--sp-md);margin-bottom:var(--sp-lg);flex-wrap:wrap;display:flex}.page-title{font-size:var(--fs-xl);font-weight:600}.page-subtitle{font-size:var(--fs-sm);color:var(--color-text-secondary);margin-top:2px}.card{background:var(--color-white);border:1px solid var(--color-border-light);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 20px}.card-title{font-size:var(--fs-sm);color:var(--color-text-dense);margin-bottom:var(--sp-sm);font-weight:600}.card.clickable{cursor:pointer;transition:border-color .15s,box-shadow .15s}.card.clickable:hover{border-color:var(--color-accent);box-shadow:var(--shadow-glow)}.card-grid{gap:var(--sp-md);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.btn{font-size:var(--fs-sm);border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:10px 20px;font-weight:500;transition:background-color .15s,border-color .15s,box-shadow .15s,transform .15s,color .15s;display:inline-flex}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:var(--color-white)}.btn-primary:hover:not(:disabled){background:var(--color-accent-hover);box-shadow:var(--shadow-glow);transform:translateY(-1px)}.btn-secondary{border-color:var(--color-border-light);color:var(--color-text-dense);background:0 0}.btn-secondary:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.btn-danger{border-color:var(--color-error);color:var(--color-error);background:0 0}.btn-danger:hover:not(:disabled){background:var(--color-error);color:var(--color-white)}.btn-sm{font-size:var(--fs-xs);padding:6px 12px}.btn-icon{border-radius:var(--radius-pill);border:1px solid var(--color-border-light);color:var(--color-text-secondary);background:0 0;padding:6px}.btn-icon:hover:not(:disabled){border-color:var(--color-accent);color:var(--color-accent)}.btn-link{color:var(--color-blue);font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0}.btn-link:hover{text-decoration:underline}.badge{border-radius:var(--radius-pill);white-space:nowrap;align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-neutral{color:var(--color-text-secondary);background:#f0f0ec}.badge-info{background:var(--color-badge-bg);color:var(--color-info)}.badge-success{color:#1e7a3e;background:#e4f3e9}.badge-warning{color:#9a5b00;background:#fff4e0}.badge-error{background:var(--color-error-bg);color:var(--color-error)}.badge-accent{background:var(--color-accent-light);color:var(--color-accent-hover)}.status-msg{align-items:center;gap:var(--sp-sm);border-radius:var(--radius-sm);font-size:var(--fs-sm);border-left:3px solid var(--color-info);background:var(--color-info-bg);color:var(--color-text-dense);padding:12px 16px;display:flex}.status-msg.error{border-left-color:var(--color-error);background:var(--color-error-bg)}.status-msg.empty{border-left-color:var(--color-border-light);background:var(--color-white);color:var(--color-text-secondary)}.field{flex-direction:column;gap:4px;display:flex}.field-label{font-size:var(--fs-xs);color:var(--color-text-dense);font-weight:600}.field-required:after{content:" *";color:var(--color-error)}.field-error{font-size:var(--fs-xs);color:var(--color-error)}.field-row{gap:var(--sp-md);flex-wrap:wrap;display:flex}.input,.select,textarea.input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--fs-sm);color:var(--color-text);min-height:38px;padding:8px 12px}.input:focus,.select:focus,textarea.input:focus{border-color:var(--color-accent);box-shadow:var(--shadow-focus);outline:none}.checkbox{width:16px;height:16px;accent-color:var(--color-accent);cursor:pointer}.table-wrap{border:1px solid var(--color-border-light);border-radius:var(--radius-sm);background:var(--color-white);overflow-x:auto}table.sb-table{border-collapse:separate;border-spacing:0;width:100%;font-size:var(--fs-sm)}table.sb-table thead th{background:var(--color-surface);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);text-align:left;white-space:nowrap;padding:10px 12px;font-size:10px;font-weight:600}table.sb-table tbody td{border-bottom:1px solid var(--color-border-light);vertical-align:middle;padding:10px 12px}table.sb-table tbody tr:last-child td{border-bottom:none}table.sb-table tbody tr:hover{background:#00000005}table.sb-table tbody tr.row-clickable{cursor:pointer}.table-viewport{border:1px solid var(--color-border-light);border-radius:var(--radius-sm);background:var(--color-white);flex:auto;min-height:0;overflow:auto}.table-scrollbox{border:1px solid var(--color-border-light);border-radius:var(--radius-sm);background:var(--color-white);max-height:60vh;overflow:auto}.table-viewport thead th,.table-scrollbox thead th{z-index:2;box-shadow:0 1px 0 var(--color-border-light);position:sticky;top:0}.th-sort{cursor:pointer;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;white-space:nowrap;background:0 0;border:none;align-items:center;gap:2px;padding:0;display:inline-flex}.th-sort:hover{color:var(--color-text)}.th-sort .sort-arrow{color:var(--color-accent);font-size:14px;line-height:1}.stack{gap:var(--sp-md);flex-direction:column;display:flex}.stack-sm{gap:var(--sp-sm);flex-direction:column;display:flex}.row{align-items:center;gap:var(--sp-sm);display:flex}.row-between{justify-content:space-between;align-items:center;gap:var(--sp-sm);display:flex}.row-wrap{align-items:center;gap:var(--sp-sm);flex-wrap:wrap;display:flex}.spacer{flex:1}.muted{color:var(--color-text-secondary)}.text-xs{font-size:var(--fs-xs)}.text-sm{font-size:var(--fs-sm)}.mono-num{font-variant-numeric:tabular-nums}.divider{border:none;border-top:1px solid var(--color-border-light);margin:var(--sp-md) 0}.count-pill{border-radius:var(--radius-pill);background:var(--color-accent);min-width:22px;height:22px;color:var(--color-white);justify-content:center;align-items:center;padding:0 6px;font-size:11px;font-weight:700;display:inline-flex}.page-tabs{gap:var(--sp-sm);margin-bottom:var(--sp-md);border-bottom:1px solid var(--color-border);display:flex}.page-tab{appearance:none;font:inherit;font-size:var(--fs-sm);color:var(--color-text-secondary,#666);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 14px;font-weight:600;transition:color .15s,border-color .15s}.page-tab:hover{color:var(--color-text)}.page-tab.active{color:var(--color-text);border-bottom-color:var(--color-accent)}.filter-chip{border:1px solid var(--color-border);border-radius:var(--radius-pill);background:var(--color-white);font:inherit;font-size:var(--fs-xs);cursor:pointer;align-items:center;gap:6px;padding:4px 12px;font-weight:600;transition:border-color .15s,background-color .15s,box-shadow .15s;display:inline-flex}.filter-chip:hover{border-color:var(--color-accent)}.filter-chip.active{border-color:var(--color-accent);background:var(--color-accent-light);box-shadow:0 0 0 1px #f7931e26}.filter-chip-count{border-radius:var(--radius-pill);background:var(--color-surface);justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:700;display:inline-flex}.filter-chip.active .filter-chip-count{background:var(--color-accent);color:var(--color-white)}.picker-row{justify-content:space-between;align-items:center;gap:var(--sp-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-white);width:100%;font:inherit;font-size:var(--fs-sm);text-align:left;cursor:pointer;padding:6px 10px;transition:border-color .15s,background-color .15s;display:flex}.picker-row:hover{border-color:var(--color-accent)}.picker-row.selected{border-color:var(--color-accent);background:var(--color-accent-light)}.split-pane{gap:var(--sp-md);align-items:flex-start;display:flex}.split-pane-left{flex:0 0 380px;min-width:0}.split-pane-right{flex:1;min-width:0}.modal-overlay{padding:var(--sp-lg);z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-white);border-radius:var(--radius);box-shadow:var(--shadow-md);flex-direction:column;width:100%;max-width:520px;max-height:85vh;display:flex}.modal-header{padding:var(--sp-md) var(--sp-lg);border-bottom:1px solid var(--color-border-light);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--fs-lg);font-weight:600}.modal-body{padding:var(--sp-lg);overflow-y:auto}.modal-footer{justify-content:flex-end;gap:var(--sp-sm);padding:var(--sp-md) var(--sp-lg);border-top:1px solid var(--color-border-light);display:flex}.toast{bottom:var(--sp-lg);right:var(--sp-lg);background:var(--color-dark);color:var(--color-white);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);font-size:var(--fs-sm);z-index:200;align-items:center;gap:var(--sp-sm);border-left:3px solid var(--color-accent);padding:14px 20px;display:flex;position:fixed}.toast.toast-error{border-left-color:var(--color-error)}@media (width<=768px){.shell-body{flex-direction:column}.shell-sidebar{width:100%;padding:var(--sp-sm) var(--sp-md);align-items:center;gap:var(--sp-sm);flex-direction:row;flex-shrink:0;overflow:auto hidden}.shell-module-name{display:none}.shell-nav{flex-direction:row}.shell-user{display:none}.shell-content{padding:var(--sp-md);border-radius:0}.table-scrollbox{max-height:none}.split-pane{flex-direction:column}.split-pane-left{flex:auto;width:100%}.btn{min-height:44px}}.signin-viewport{background:var(--color-surface);min-height:100vh;padding:var(--sp-lg);justify-content:center;align-items:center;display:flex}.signin-card{align-items:center;gap:var(--sp-md);width:100%;max-width:380px;padding:var(--sp-xl);text-align:center;flex-direction:column;display:flex}.signin-logo-band{width:calc(100% + 2 * var(--sp-xl));margin:calc(-1 * var(--sp-xl)) calc(-1 * var(--sp-xl)) 0;background:var(--color-dark);border-radius:var(--radius) var(--radius) 0 0;align-items:center;gap:var(--sp-sm);padding:var(--sp-xl) var(--sp-lg);flex-direction:column;display:flex}.signin-lockup{width:240px;max-width:100%;display:block}.signin-logo-sub{color:#fff9;letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:600}.signin-hint{font-size:var(--fs-sm);color:var(--color-text-secondary)}.signin-btn{width:220px}.signin-error{text-align:left;width:100%}.shell-signout{cursor:pointer;color:#ffffff8c;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;padding:2px;transition:color .15s;display:inline-flex}.shell-signout:hover{color:var(--color-accent)}.split-pane-fill{flex:1;align-items:stretch;min-height:0}.split-pane-fill .split-pane-left{flex-direction:column;min-height:0;display:flex}.split-pane-fill .split-pane-right{min-height:0;overflow-y:auto}.matrix-sticky-th{z-index:3;background:var(--color-surface);position:sticky;left:0}
