:root{--color-bg: #f7f7f8;--color-surface: #ffffff;--color-border: #e2e2e6;--color-text: #1c1c1f;--color-text-muted: #6b6b74;--color-primary: #2f5fda;--color-primary-hover: #2549ad;--color-danger: #c4392c;--color-danger-hover: #9c2d22;--color-badge-bg: #eef0ff;--color-badge-text: #33409e;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--radius: 6px;--radius-lg: 10px;--font-size-sm: 13px;--font-size-base: 14px;--font-size-lg: 16px;--font-size-xl: 20px;--sidebar-width: 220px;--topbar-height: 56px}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--color-text);background:var(--color-bg)}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit}ul{list-style:none;margin:0;padding:0}.app-shell{display:grid;grid-template-columns:var(--sidebar-width) 1fr;grid-template-rows:var(--topbar-height) 1fr;grid-template-areas:"sidebar topbar" "sidebar content";height:100vh}.app-sidebar{grid-area:sidebar;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;overflow-y:auto;padding:var(--space-4) 0}.app-sidebar__brand{padding:0 var(--space-4) var(--space-4);font-weight:600;font-size:var(--font-size-lg)}.app-topbar{grid-area:topbar;background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-5)}.app-content{grid-area:content;overflow-y:auto;padding:var(--space-5)}.centered-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--color-bg);padding:var(--space-5)}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4);gap:var(--space-4);flex-wrap:wrap}.page-header h1{font-size:var(--font-size-xl);margin:0}.toolbar{display:flex;align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-4)}.btn{display:inline-flex;align-items:center;gap:var(--space-2);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius);padding:var(--space-2) var(--space-3);font-size:var(--font-size-base);cursor:pointer;line-height:1.2}.btn:hover{border-color:var(--color-text-muted)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-danger{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.btn-danger:hover{background:var(--color-danger-hover);border-color:var(--color-danger-hover)}.btn-link{background:none;border:none;color:var(--color-primary);padding:0;cursor:pointer;text-decoration:underline}.field-group{display:flex;flex-direction:column;gap:var(--space-1)}.label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.input,.select,textarea.input{border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-2) var(--space-3);font-size:var(--font-size-base);background:var(--color-surface);color:var(--color-text);min-width:0}.input:focus,.select:focus{outline:2px solid var(--color-primary);outline-offset:-1px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5)}.table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}table.table{width:100%;border-collapse:collapse;font-size:var(--font-size-base)}table.table th,table.table td{text-align:left;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);white-space:nowrap}table.table th{color:var(--color-text-muted);font-weight:500;font-size:var(--font-size-sm)}table.table tbody tr{cursor:pointer}table.table tbody tr:hover{background:var(--color-bg)}table.table tbody tr:last-child td{border-bottom:none}.badge{display:inline-block;background:var(--color-badge-bg);color:var(--color-badge-text);border-radius:999px;padding:2px 10px;font-size:var(--font-size-sm)}.nav-link{display:block;padding:var(--space-2) var(--space-4);color:var(--color-text);text-decoration:none;font-size:var(--font-size-base);border-left:3px solid transparent}.nav-link:hover{background:var(--color-bg)}.nav-link.active{border-left-color:var(--color-primary);background:var(--color-bg);font-weight:500}.nav-section-label{font-size:var(--font-size-sm);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;padding:var(--space-4) var(--space-4) var(--space-1)}.error-text{color:var(--color-danger);font-size:var(--font-size-sm)}.muted{color:var(--color-text-muted)}.empty-state{color:var(--color-text-muted);padding:var(--space-6);text-align:center}.dropdown{position:relative}.dropdown-panel{position:absolute;right:0;top:calc(100% + var(--space-2));width:320px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 8px 24px #0000001f;z-index:10;max-height:400px;overflow-y:auto}.dropdown-item{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.dropdown-item:last-child{border-bottom:none}.bell-badge{position:relative}.dropdown-section-label{font-size:12px;text-transform:uppercase;color:var(--color-text-muted);letter-spacing:.03em}.dropdown-item-link{display:block;text-decoration:none;color:inherit}.bell-badge__count{position:absolute;top:-4px;right:-6px;background:var(--color-danger);color:#fff;border-radius:999px;font-size:11px;padding:0 5px;line-height:16px}
