:root{--color-bg: #f6f7f9;--color-surface: #fff;--color-text: #171923;--color-muted: #667085;--color-border: #e4e7ec;--color-accent: #7c3aed;--color-accent-hover: #6d28d9;--color-accent-active: #5b21b6;--color-accent-soft: #f3e8ff;--color-error: #b42318;--color-error-soft: #fef3f2;--color-success: #067647;--color-success-soft: #ecfdf3;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-sm: 10px;--radius-md: 12px;--radius-lg: 14px;--shadow-sm: 0 1px 2px rgb(16 24 40 / 5%);--shadow-md: 0 12px 32px rgb(16 24 40 / 8%);--sidebar-width: 244px;--content-max: 1180px;--font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;color:var(--color-text);background:var(--color-bg);font-family:var(--font-sans);font-size:16px;line-height:1.5;font-synthesis:none}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid #a78bfa;outline-offset:2px}.sr-only{clip:rect(0,0,0,0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.button{align-items:center;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;font-weight:650;gap:var(--space-2);justify-content:center;min-height:44px;padding:10px 18px;transition:background-color .15s,transform .15s}.button--primary{background:var(--color-accent);color:#fff;box-shadow:var(--shadow-sm)}.button--primary:hover{background:var(--color-accent-hover)}.button--primary:active{background:var(--color-accent-active);transform:translateY(1px)}.button--secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text)}.button--ghost{background:transparent;color:#475467}.button--ghost:hover{background:#f2f4f7}.button:disabled{cursor:not-allowed;opacity:.58;transform:none}.spinner{animation:spin .75s linear infinite;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:inline-block;height:18px;width:18px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.eyebrow{color:var(--color-accent);font-size:.75rem;font-weight:750;letter-spacing:.09em;margin:0 0 var(--space-2);text-transform:uppercase}.field{margin-top:var(--space-6)}.field label{display:block;font-size:.875rem;font-weight:650;margin-bottom:var(--space-2)}.field-control{align-items:stretch;background:#fff;border:1px solid #cfd4dc;border-radius:var(--radius-sm);display:flex;overflow:hidden;transition:border-color .15s,box-shadow .15s}.field-control:focus-within{border-color:var(--color-accent);box-shadow:0 0 0 3px #7c3aed24}.field-control input{border:0;color:var(--color-text);min-height:48px;min-width:0;outline:0;padding:0 14px;width:100%}.field-control input:disabled{background:#f9fafb;color:var(--color-muted)}.field-action{background:transparent;border:0;color:var(--color-accent);cursor:pointer;font-size:.8125rem;font-weight:650;min-height:44px;padding:0 14px}.inline-error{background:var(--color-error-soft);border:1px solid #fecdca;border-radius:var(--radius-sm);color:var(--color-error);font-size:.875rem;margin:var(--space-4) 0;padding:var(--space-3) var(--space-4)}.login-page{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:100vh;padding:var(--space-6);background:radial-gradient(circle at 50% 10%,#f5f0ff,transparent 38%),var(--color-bg)}.login-brand{align-items:center;background:var(--color-accent);border-radius:13px;box-shadow:0 8px 20px #7c3aed38;color:#fff;display:flex;font-weight:800;height:48px;justify-content:center;margin-bottom:var(--space-6);width:48px}.login-card{max-width:440px;padding:var(--space-10);width:100%}.login-card h1{font-size:2rem;letter-spacing:-.03em;line-height:1.2;margin:0 0 var(--space-3)}.login-intro{color:var(--color-muted);margin:0}.login-submit{margin-top:var(--space-6);width:100%}.login-footer{color:var(--color-muted);font-size:.75rem;margin:var(--space-6) 0 0;text-align:center}.shell{min-height:100vh}.sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);bottom:0;display:flex;flex-direction:column;left:0;padding:var(--space-6) var(--space-4);position:fixed;top:0;width:var(--sidebar-width);z-index:5}.brand{align-items:center;display:flex;gap:var(--space-3);padding:0 var(--space-2) var(--space-8)}.brand-mark,.mobile-mark{align-items:center;background:var(--color-accent);border-radius:10px;color:#fff;display:flex;flex:0 0 auto;font-size:.8125rem;font-weight:800;height:38px;justify-content:center;width:38px}.brand strong,.brand small{display:block}.brand strong{font-size:.9375rem}.brand small{color:var(--color-muted);font-size:.6875rem;margin-top:1px}.nav-label{color:#98a2b3;font-size:.6875rem;font-weight:700;letter-spacing:.08em;margin:0 var(--space-3) var(--space-2);text-transform:uppercase}.sidebar nav,.drawer nav{display:flex;flex-direction:column;gap:2px}.sidebar nav a,.drawer nav a{align-items:center;border-radius:var(--radius-sm);color:#475467;display:flex;font-size:.875rem;font-weight:580;gap:var(--space-3);min-height:44px;padding:9px 12px;text-decoration:none}.sidebar nav a span,.drawer nav a span{color:#667085;font-size:1.1rem;text-align:center;width:20px}.sidebar nav a:hover,.drawer nav a:hover{background:#f9fafb}.sidebar nav a.active,.drawer nav a.active{background:var(--color-accent-soft);color:#5b21b6}.sidebar nav a.active span,.drawer nav a.active span{color:var(--color-accent)}.logout{justify-content:flex-start;margin-top:auto;width:100%}.workspace{margin-left:var(--sidebar-width);min-height:100vh}.page-container{margin:0 auto;max-width:var(--content-max);padding:var(--space-12) var(--space-10)}.page-header{margin-bottom:var(--space-8)}.page-header h1{font-size:clamp(1.75rem,3vw,2.25rem);letter-spacing:-.035em;line-height:1.2;margin:0 0 var(--space-2)}.page-header>p:last-child{color:var(--color-muted);margin:0}.content-card{min-height:410px;padding:var(--space-8)}.state{align-items:center;color:var(--color-muted);display:flex;flex-direction:column;justify-content:center;min-height:340px;text-align:center}.state--full{min-height:100vh}.state h2{color:var(--color-text);font-size:1.125rem;margin:var(--space-4) 0 var(--space-2)}.state p{margin:0 0 var(--space-5)}.state-icon{align-items:center;background:var(--color-accent-soft);border-radius:50%;color:var(--color-accent);display:flex;font-size:1.5rem;height:52px;justify-content:center;width:52px}.state-icon--error{background:var(--color-error-soft);color:var(--color-error)}.skeleton-stack{display:grid;gap:var(--space-3)}.skeleton-stack span{animation:pulse 1.4s ease-in-out infinite;background:#eaecf0;border-radius:6px;display:block;height:16px}.skeleton-stack span:nth-child(2){width:78%}.skeleton-stack span:nth-child(3){width:55%}.toast{background:var(--color-success-soft);border:1px solid #abefc6;border-radius:var(--radius-sm);color:var(--color-success);padding:var(--space-3) var(--space-4)}.toast--error{background:var(--color-error-soft);border-color:#fecdca;color:var(--color-error)}.mobile-header,.drawer,.overlay{display:none}.route-error{min-height:100vh}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.45}}@media (max-width: 900px){.sidebar{display:none}.mobile-header{align-items:center;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;height:64px;justify-content:space-between;padding:0 var(--space-4);position:sticky;top:0;z-index:4}.menu-button{align-items:center;background:transparent;border:0;border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:5px;height:44px;justify-content:center;padding:0;width:44px}.menu-button span{background:#344054;border-radius:2px;display:block;height:2px;width:20px}.mobile-mark{height:34px;width:34px}.workspace{margin-left:0}.page-container{padding:var(--space-8) var(--space-6)}.drawer{background:var(--color-surface);bottom:0;display:flex;flex-direction:column;left:0;max-width:calc(100vw - 48px);padding:var(--space-6) var(--space-4);position:fixed;top:0;transform:translate(-101%);transition:transform .2s ease;width:300px;z-index:20}.drawer--open{box-shadow:var(--shadow-md);transform:translate(0)}.overlay{background:#10182875;display:block;top:0;right:0;bottom:0;left:0;position:fixed;z-index:19}.drawer-open{overflow:hidden}}@media (max-width: 480px){.login-page{padding:var(--space-4)}.login-card{padding:var(--space-8) var(--space-6)}.page-container{padding:var(--space-6) var(--space-4)}.page-header{margin-bottom:var(--space-6)}.content-card{min-height:360px;padding:var(--space-5)}.state{min-height:310px}.mobile-header>strong{font-size:.9375rem}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.filters,.toolbar,.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;align-items:end;margin-bottom:24px}.toolbar{grid-template-columns:1fr auto}.filters label,.toolbar label,.form-card label,.compact-form label{display:grid;gap:7px;font-size:.875rem;font-weight:650}.filters input,.filters select,.toolbar input,.form-card input,.form-card select,.form-card textarea,.compact-form input,.compact-form textarea{border:1px solid #cfd4dc;border-radius:10px;min-height:44px;padding:9px 12px;width:100%;background:#fff}.form-card{padding:32px}.form-card form,.compact-form{display:grid;gap:22px}.form-card fieldset{border:1px solid var(--color-border);border-radius:12px;padding:20px;display:grid;gap:16px}.form-card legend{font-weight:700;padding:0 8px}.item-row{display:grid;grid-template-columns:minmax(220px,2fr) minmax(120px,1fr) auto auto;gap:12px;align-items:end;border-bottom:1px solid var(--color-border);padding-bottom:16px}.available{color:var(--color-muted);font-size:.875rem;padding-bottom:11px}.field-error{color:var(--color-error);font-weight:500;min-height:1em}.table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:12px}table{border-collapse:collapse;min-width:720px;width:100%}th,td{border-bottom:1px solid var(--color-border);padding:14px 16px;text-align:left;vertical-align:top}th{background:#f9fafb;color:#475467;font-size:.8rem}tbody tr:last-child td{border-bottom:0}.pager{display:flex;align-items:center;justify-content:flex-end;gap:16px;margin-top:20px}.row-actions,.actions{display:flex;flex-wrap:wrap;gap:8px}.compact-form{background:#fafafa;border:1px solid var(--color-border);border-radius:12px;padding:20px;margin-bottom:24px;grid-template-columns:repeat(2,minmax(0,1fr))}.compact-form .inline-error,.compact-form .actions{grid-column:1/-1}.history-list{display:grid;gap:14px}.operation-card{border:1px solid var(--color-border);border-radius:12px;padding:18px}.operation-card header,.operation-card header div,.operation-card li{display:flex;justify-content:space-between;gap:16px}.operation-card header div{flex-direction:column;gap:2px}.operation-card time,.operation-card header>span,.operation-card p{color:var(--color-muted);font-size:.875rem}.operation-card ul{list-style:none;margin:12px 0;padding:0}.operation-card li{border-top:1px solid var(--color-border);padding:10px 0}.operation-card .comment{background:#f9fafb;border-radius:8px;padding:10px}.history-filters{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}@media (max-width:650px){.form-card{padding:20px}.item-row{grid-template-columns:1fr}.available{padding:0}.compact-form,.toolbar{grid-template-columns:1fr}.toolbar .button{width:100%}.pager{justify-content:space-between}.pager span{font-size:.8rem}.operation-card li{flex-direction:column;gap:3px}.content-card{padding:16px}}.combobox{position:relative;display:grid;gap:7px}.combobox-options{position:absolute;z-index:10;top:100%;width:100%;max-height:260px;overflow:auto;background:#fff;border:1px solid var(--color-border);border-radius:10px;box-shadow:var(--shadow-md);padding:6px}.combobox-options p{padding:12px;margin:0;color:var(--color-muted)}.combobox-options button{display:grid;width:100%;min-height:54px;text-align:left;border:0;border-radius:8px;background:#fff;padding:8px 10px;cursor:pointer}.combobox-options button:hover,.combobox-options button.active{background:var(--color-accent-soft)}.combobox-options span{font-size:.8rem;color:var(--color-muted)}
