:root{color-scheme:light;--color-bg: #f4f6fb;--color-surface: #ffffff;--color-surface-alt: #f2f5ff;--color-text: #1a1f36;--color-muted: #5c6378;--color-border: #d9deea;--color-border-strong: #b8c1d9;--color-primary: #0058ff;--color-primary-soft: rgba(0, 88, 255, .12);--color-accent: #8c54ff;--color-danger: #dc395b;--color-success: #0b8a46;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 24px;--shadow-xs: 0 1px 3px rgba(15, 23, 42, .08);--shadow-sm: 0 8px 20px rgba(15, 23, 42, .08);--shadow-md: 0 18px 45px rgba(15, 23, 42, .12);font-family:Inter,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,Helvetica Neue,sans-serif;line-height:1.4;font-weight:400;background-color:var(--color-bg);color:var(--color-text);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at top left,rgba(140,84,255,.18),transparent 45%),radial-gradient(circle at bottom right,rgba(0,88,255,.12),transparent 55%),var(--color-bg);color:var(--color-text)}body.modal-open{overflow:hidden;touch-action:none}#root{min-height:100vh}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font-family:inherit;font-size:.95rem;color:var(--color-text)}button{border:none;border-radius:var(--radius-sm);padding:.55rem 1.1rem;font-weight:600;background:var(--color-primary);color:#fff;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,background .2s ease;box-shadow:var(--shadow-xs)}button:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}button:active{transform:translateY(0);box-shadow:var(--shadow-xs)}button:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}input,select,textarea{width:100%;padding:.6rem .75rem;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:#fff;transition:border .2s ease,box-shadow .2s ease;line-height:1.4}input:focus,select:focus,textarea:focus{outline:2px solid rgba(0,88,255,.2);border-color:var(--color-primary);box-shadow:0 0 0 3px #0058ff1f}textarea{min-height:124px;resize:vertical}fieldset{border:none;margin:0;padding:0}h1,h2,h3,h4,h5{font-weight:600;margin:0;color:var(--color-text)}p{margin:0;color:var(--color-muted)}ul,ol{margin:0;padding:0;list-style:none}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:.65rem .75rem;font-size:.95rem}th{font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;color:var(--color-muted)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#1a1f3633;border-radius:999px}::-webkit-scrollbar-track{background:transparent}:focus-visible{outline:3px solid rgba(0,88,255,.35);outline-offset:2px}@media (max-width: 720px){:root{font-size:15px}}.app-shell{min-height:100vh;height:100vh;padding:.75rem;display:flex;justify-content:center;overflow:hidden}.app-container{width:100%;max-width:1400px;display:flex;flex-direction:column;gap:.75rem;height:100%;overflow:hidden}.app-header{display:flex;gap:1rem;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#0058ff1f,#8c54ff2e);border-radius:var(--radius-md);padding:1rem 1.25rem;box-shadow:var(--shadow-sm);flex-shrink:0}.brand{display:flex;align-items:center;gap:1rem}.brand-logo{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;background:#ffffffe0;box-shadow:var(--shadow-xs);flex-shrink:0}.brand-logo img{display:block;width:80%;height:auto}.brand-copy{display:grid;gap:.25rem}.brand__title{font-size:1.5rem;font-weight:700;letter-spacing:-.01em;line-height:1.2}.brand__subtitle{color:#1a1f36b8;font-size:.85rem;line-height:1.3}.app-header__meta{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.user-chip{display:inline-flex;align-items:center;gap:.5rem;background:#ffffffe6;border-radius:999px;padding:.35rem .9rem;box-shadow:var(--shadow-xs);color:var(--color-muted);font-size:.85rem}.badge{display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .5rem;font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;background:#0058ff24;color:var(--color-primary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.5rem 1rem;font-weight:600;font-size:.9rem;border-radius:var(--radius-sm);transition:all .2s ease;cursor:pointer;white-space:nowrap}.btn--ghost{background:transparent;color:var(--color-primary);box-shadow:none}.btn--ghost:hover{background:var(--color-primary-soft);transform:none;box-shadow:none}.btn--danger{background:var(--color-danger)}.btn--danger:hover{background:#c02d4a}.btn--secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn--secondary:hover{background:var(--color-surface-alt);transform:none;box-shadow:var(--shadow-xs)}.tab-bar{display:flex;gap:.5rem;background:var(--color-surface);border-radius:var(--radius-md);padding:.5rem;box-shadow:var(--shadow-sm);flex-shrink:0}.tab,.tab-button{flex:1;padding:.6rem 1rem;border-radius:var(--radius-sm);font-weight:600;font-size:.9rem;text-align:center;cursor:pointer;transition:all .2s ease;background:transparent;color:var(--color-muted);border:none}.tab:hover,.tab-button:hover{background:var(--color-primary-soft);color:var(--color-primary)}.tab[aria-selected=true],.tab-button[aria-selected=true]{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-xs)}.workspace{display:flex;flex-direction:column;gap:.75rem;flex:1;min-height:0;overflow:hidden;max-height:100%}.card{background:var(--color-surface);border-radius:var(--radius-md);padding:1rem;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:.75rem;position:relative;flex:1;min-height:0;overflow:hidden}.card-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-shrink:0}.card-header__meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.card-subtitle{font-size:.85rem;color:var(--color-muted);margin:0}.toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;flex-shrink:0}.toolbar-group{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.chip{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .6rem;border-radius:999px;background:var(--color-primary-soft);color:var(--color-primary);font-weight:600;font-size:.75rem}.filters{display:flex;align-items:flex-end;gap:.5rem;flex-wrap:wrap;padding:.75rem;background:var(--color-surface-alt);border-radius:var(--radius-sm);border:1px solid var(--color-border);flex-shrink:0;transition:max-height .3s ease,opacity .3s ease,padding .3s ease;overflow:hidden}.filters-toggle{display:none;width:100%;justify-content:space-between;align-items:center;margin-bottom:.5rem}.filters-toggle span:first-child{font-size:.8rem;margin-right:.5rem}.filters--collapsed{max-height:0;padding-top:0;padding-bottom:0;opacity:0;margin:0;border:none}.filters--expanded{max-height:500px;opacity:1}.filters .field{flex:1;min-width:120px;max-width:180px;gap:.25rem}.filters .field-label-text{font-size:.65rem;margin-bottom:.15rem}.filters .input{padding:.5rem .65rem;font-size:.85rem}.filters__actions{display:flex;gap:.5rem;margin-left:auto;flex-shrink:0}.filters__actions .btn{padding:.5rem 1rem;font-size:.85rem;white-space:nowrap}.field{display:grid;gap:.35rem;align-content:start}.field-label-text{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted)}.field-required{color:var(--color-danger);margin-left:.15rem}.table-wrapper{flex:1;min-height:0;overflow:auto;border-radius:var(--radius-sm);-webkit-overflow-scrolling:touch}.table-wrapper table{width:100%;table-layout:fixed}.table-wrapper th,.table-wrapper td{overflow:hidden;text-overflow:ellipsis;padding:.5rem .65rem;font-size:.875rem}.table-wrapper th{font-size:.75rem;letter-spacing:.05em;text-transform:uppercase;color:var(--color-muted);font-weight:600;position:sticky;top:0;background:#f4f6fbfa;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border);z-index:1}.table-wrapper th.sortable:hover{background:#f4f6fbf2;color:var(--color-primary)}.table-wrapper th:nth-child(1),.table-wrapper td:nth-child(1){width:5%}.table-wrapper th:nth-child(2),.table-wrapper td:nth-child(2){width:12%}.table-wrapper th:nth-child(3),.table-wrapper td:nth-child(3){width:20%;max-width:250px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-wrapper th:nth-child(4),.table-wrapper td:nth-child(4){width:25%;max-width:350px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-wrapper th:nth-child(5),.table-wrapper td:nth-child(5){width:8%}.table-wrapper th:nth-child(6),.table-wrapper td:nth-child(6){width:8%}.table-wrapper th:nth-child(7),.table-wrapper td:nth-child(7){width:22%;white-space:nowrap}.table-wrapper table tr+tr{border-top:1px solid rgba(26,31,54,.06)}.table-actions{display:flex;align-items:center;gap:.5rem}.actions{display:flex;gap:.35rem;flex-wrap:wrap}.actions .btn,.actions button,.table-actions .btn{padding:.4rem .75rem;font-size:.8rem}.status-bar{display:flex;justify-content:space-between;align-items:center;gap:.75rem;font-size:.8rem;color:var(--color-muted);flex-shrink:0}.status-bar strong{color:var(--color-text);font-weight:600}.status-message{display:inline-flex;align-items:center;gap:.5rem;border-radius:var(--radius-sm);padding:.5rem .75rem;font-size:.8rem;font-weight:500}.status-message--info{background:#0058ff1a;color:var(--color-primary)}.status-message--success{background:#0b8a461a;color:var(--color-success)}.status-message--error{background:#dc395b1a;color:var(--color-danger)}.alert{padding:.75rem 1rem;border-radius:var(--radius-sm);background:#dc395b1a;color:var(--color-danger);font-size:.85rem;font-weight:500}.empty-state{text-align:center;padding:2rem 1rem;color:var(--color-muted)}.empty-state strong{display:block;margin-bottom:.5rem;color:var(--color-text)}.modal-backdrop{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:1000;padding:1rem;overflow-y:auto}.modal-card{background:var(--color-surface);border-radius:var(--radius-md);padding:0;box-shadow:var(--shadow-md);display:flex;flex-direction:column;width:100%;max-width:600px;max-height:90vh;overflow:hidden}.modal-card--confirm{max-width:420px;padding:1.25rem;display:grid;gap:1rem}.modal-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.5rem 1.5rem 1rem;flex-shrink:0}.modal-title{font-size:1.25rem;font-weight:700;margin:0}.modal-close{background:transparent;border:none;color:var(--color-muted);cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all .2s ease}.modal-close:hover{background:var(--color-primary-soft);color:var(--color-primary)}.modal-card form{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.modal-form-body{flex:1;overflow-y:auto;padding:0 2rem 0 1.5rem}.modal-form-body .form-grid{display:grid;gap:.75rem;padding-bottom:1rem}.modal-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem 1.5rem;border-top:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0;position:sticky;bottom:0;z-index:10}.login-shell{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{width:100%;max-width:420px;background:var(--color-surface);border-radius:var(--radius-md);padding:2rem;box-shadow:var(--shadow-md);display:grid;gap:1.25rem}.login-card header{display:grid;gap:.5rem;justify-items:center}.login-logo{width:64px;height:64px;display:grid;place-items:center;border-radius:16px;background:#0058ff14;box-shadow:var(--shadow-xs)}.login-logo img{width:50px;height:auto}.login-card header h2{font-size:1.5rem}.login-card form{display:grid;gap:.75rem}.login-card .field{min-width:auto}.login-card button{width:100%;padding:.65rem 1rem}.login-footer{font-size:.8rem;color:var(--color-muted);text-align:center}.help-text{font-size:.75rem;color:var(--color-muted);display:block;min-height:1rem}@media (max-width: 1024px){.app-shell{padding:.5rem}.app-header{padding:.75rem 1rem}.brand__title{font-size:1.25rem}.card{padding:.75rem}}@media (min-width: 769px) and (max-width: 1024px){.filters-toggle{display:none}.filters{max-height:none!important;padding:.75rem!important;margin-bottom:.5rem!important;border:1px solid var(--color-border)!important;opacity:1!important}.filters .field{min-width:140px;max-width:200px}}@media (max-width: 768px){.app-shell{padding:.5rem;height:100vh;height:100dvh}.app-header{flex-direction:column;align-items:flex-start;gap:.75rem;padding:.75rem}.app-header__meta{width:100%;justify-content:space-between}.brand{gap:.75rem}.brand-logo{width:40px;height:40px}.brand__title{font-size:1.1rem}.brand__subtitle{font-size:.8rem}.tab-bar{padding:.35rem;gap:.35rem}.tab{padding:.5rem .75rem;font-size:.85rem}.card{padding:.75rem;gap:.5rem}.card-header{flex-direction:column;align-items:flex-start;gap:.5rem}.card-header__meta{width:100%;justify-content:stretch}.card-header__meta .btn,.card-header__meta .chip{flex:1}.toolbar{flex-direction:column;align-items:stretch;gap:.5rem}.toolbar-group{justify-content:stretch}.toolbar-group .btn{flex:1}.filters-toggle{display:flex}.filters{flex-direction:column;align-items:stretch;gap:.5rem;max-height:0;padding:0;margin:0;border:none;overflow:hidden}.filters--expanded{max-height:600px;padding:.75rem;margin-bottom:.5rem;border:1px solid var(--color-border)}.filters--collapsed{max-height:0;padding:0;margin:0;border:none}.filters .field{max-width:100%}.filters__actions{margin-left:0;width:100%;flex-direction:row}.filters__actions .btn{flex:1}.card{max-height:100%;overflow:hidden;display:flex;flex-direction:column}.workspace{max-height:calc(100dvh - 180px)}.table-wrapper{max-height:calc(100dvh - 380px);min-height:200px}.card--filters-expanded .table-wrapper{max-height:calc(100dvh - 500px)}.card--filters-collapsed .table-wrapper{max-height:calc(100dvh - 380px)}.table-wrapper th,.table-wrapper td{padding:.4rem .5rem;font-size:.8rem}.table-wrapper th{font-size:.7rem}.actions{flex-direction:column;width:100%}.actions .btn{width:100%;justify-content:center}.status-bar{flex-direction:column;align-items:flex-start;gap:.5rem}.modal-card{padding:1rem;max-height:95vh}.login-card{padding:1.5rem}}@media (max-width: 480px){.app-shell{padding:.35rem}.app-header{padding:.6rem}.brand-logo{width:36px;height:36px}.brand__title{font-size:1rem}.card{padding:.6rem}.table-wrapper th,.table-wrapper td{padding:.35rem .4rem;font-size:.75rem}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;max-height:calc(100dvh - 480px);min-height:150px}.table-wrapper table{min-width:800px}.card{max-height:100%;overflow:hidden;display:flex;flex-direction:column}.workspace{max-height:calc(100dvh - 200px)}.modal-card{padding:.75rem;margin:.5rem}.login-card{padding:1.25rem}}.loader-dots{display:inline-flex;gap:.3rem;align-items:center}.loader-dot{width:6px;height:6px;border-radius:50%;background:currentColor;animation:pulse 1.4s ease-in-out infinite}.loader-dot:nth-child(2){animation-delay:.2s}.loader-dot:nth-child(3){animation-delay:.4s}@keyframes pulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}
