:root{--color-bg: #10151e;--color-sidebar: #131a25;--color-surface: #192231;--color-surface-raised: #202c3e;--color-input: #141d2a;--color-text: #edf2f8;--color-muted: #a6b3c5;--color-subtle: #8291a7;--color-border: #2b384c;--color-border-strong: #41536d;--color-primary: #3879db;--color-primary-hover: #4789eb;--color-primary-soft: #1c304d;--color-success: #73d8a2;--color-success-soft: #17372d;--color-warning: #efc46a;--color-warning-soft: #3b3020;--color-danger: #f39398;--color-danger-soft: #3b252e;--color-focus: #8bbaff;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--font-sans: "Segoe UI", Inter, ui-sans-serif, system-ui, -apple-system, sans-serif;--font-xs: .75rem;--font-sm: .8125rem;--font-base: .875rem;--font-lg: 1rem;--font-title: 1.375rem;--line-height: 1.5;--control-height: 38px;--control-small: 32px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--shadow-panel: 0 2px 8px #00000018;--shadow-dialog: 0 16px 48px #00000045;--sidebar-width: 248px;--sidebar-width-collapsed: 72px;--content-max: 1600px;--bg-dark: var(--color-bg);--bg-card: var(--color-surface);--bg-sidebar: var(--color-sidebar);--bg-input: var(--color-input);--text-main: var(--color-text);--text-muted: var(--color-muted);--accent-blue: var(--color-primary);--accent-green: #22c55e;--accent-red: #ef4444;--accent-yellow: #f59e0b;--accent-purple: #8b5cf6;--border-color: var(--color-border);--border-light: var(--color-border-strong)}@media screen{.modal-overlay{position:fixed;inset:0;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{width:90%;max-width:500px;position:relative;padding:25px;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text)}.toast-region{position:fixed;right:24px;bottom:24px;z-index:3000;display:flex;flex-direction:column;gap:10px;width:min(380px,calc(100vw - 32px))}.toast{display:flex;align-items:center;gap:10px;padding:13px 14px;border:1px solid var(--color-border);color:var(--color-text);animation:toast-in .2s ease-out}.toast span{flex:1;font-size:var(--font-sm)}.toast button{display:inline-flex;padding:3px;border:0;background:transparent;color:var(--color-muted);cursor:pointer}.toast-success{border-color:#3d745e}.toast-success>svg{color:var(--color-success)}.toast-error{border-color:#70414b}.toast-error>svg{color:var(--color-danger)}.toast-info>svg{color:#b8d5ff}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}}@media screen{html,body,#root{margin:0;width:100%;height:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-base);line-height:var(--line-height);-webkit-font-smoothing:antialiased;overflow:hidden;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}button,input,select,textarea{font-family:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}:where(a,button,input,select,textarea,[tabindex]):not(main):focus-visible{outline:2px solid var(--color-focus)!important;outline-offset:3px}button:disabled{cursor:not-allowed}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:fixed;left:16px;top:8px;padding:10px 16px;z-index:5000;color:#fff;background:var(--color-primary);border-radius:var(--radius-sm);transform:translateY(-160%)}.skip-link:focus{transform:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}}@media screen{.ui-button,.ui-icon-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--control-height);padding:0 14px;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-text);font:inherit;font-weight:600;font-size:var(--font-sm);cursor:pointer;box-shadow:none;transition:background-color .12s,border-color .12s}.ui-button:hover:not(:disabled){transform:none;box-shadow:none}.ui-button:disabled,.ui-icon-button:disabled{opacity:.5}.ui-button-primary{background:var(--color-primary);color:#fff}.ui-button-primary:hover:not(:disabled){background:var(--color-primary-hover)}.ui-button-secondary,.ui-icon-button{background:var(--color-surface-raised);border-color:var(--color-border-strong)}.ui-button-secondary:hover:not(:disabled),.ui-icon-button:hover:not(:disabled){background:#29384e}.ui-button-danger{background:var(--color-danger-soft);color:var(--color-danger);border-color:#70414b}.ui-button-danger:hover:not(:disabled){background:#4c2d38}.ui-button-ghost{background:transparent;color:var(--color-muted);border-color:var(--color-border)}.ui-button-ghost:hover:not(:disabled){background:var(--color-surface);color:var(--color-text)}.ui-icon-button{width:36px;min-width:36px;padding:0}.ui-badge{display:inline-flex;align-items:center;gap:4px;min-height:24px;padding:2px 8px;border-radius:var(--radius-sm);font-size:.6875rem;line-height:1.4;font-weight:600}.ui-badge-info{color:#b8d5ff;background:var(--color-primary-soft)}.ui-badge-success{color:var(--color-success);background:var(--color-success-soft)}.ui-badge-warning{color:var(--color-warning);background:var(--color-warning-soft)}.ui-badge-danger{color:var(--color-danger);background:var(--color-danger-soft)}.ui-badge-neutral{color:var(--color-muted);background:var(--color-surface-raised)}.ui-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);box-shadow:var(--shadow-panel)}.ui-form-field{display:flex;flex-direction:column;gap:6px;position:relative;min-width:0;width:100%}.ui-form-field>label{color:var(--color-muted);font-size:var(--font-xs);font-weight:500}.ui-field{width:100%;min-height:var(--control-height);padding:8px 12px;color:var(--color-text);background:var(--color-input);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font:inherit;font-size:var(--font-base);box-shadow:none}.ui-field::placeholder{color:var(--color-subtle)}.ui-field:focus{border-color:var(--color-focus);box-shadow:none}.ui-field[aria-invalid=true]{border-color:var(--color-danger)}.ui-textarea{min-height:96px;resize:vertical}.ui-field-hint{color:var(--color-muted);font-size:var(--font-xs)}.ui-field-error{color:var(--color-danger);font-size:var(--font-xs)}.ui-table-scroll{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.ui-table{border-collapse:collapse;width:100%;text-align:left;font-size:var(--font-base)}.ui-table th{padding:10px 16px;color:var(--color-muted);font-weight:600;background:var(--color-surface-raised);white-space:nowrap}.ui-table td{padding:12px 16px;border-top:1px solid var(--color-border)}.ui-table tbody tr:hover{background:var(--color-surface)}.ui-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:32px;text-align:center;color:var(--color-muted)}.ui-state h2,.ui-state p{margin:0}.ui-state h2{color:var(--color-text);font-size:var(--font-lg)}.ui-state[role=alert]>svg{color:var(--color-danger)}.modal-overlay{background:#060b13b8;-webkit-backdrop-filter:none;backdrop-filter:none;padding:16px}.modal-content{max-height:calc(100dvh - 32px);overflow-y:auto;border-radius:var(--radius-lg);box-shadow:var(--shadow-dialog)}.ui-modal{width:min(640px,100%);max-width:640px;padding:0;background:var(--color-surface);overflow:auto}.ui-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px 24px;border-bottom:1px solid var(--color-border)}.ui-modal-header h2{margin:0;font-size:1.125rem;font-weight:600}.ui-modal-header p{margin:6px 0 0;color:var(--color-muted);font-size:var(--font-sm)}.ui-modal-body{padding:20px 24px}.ui-modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid var(--color-border)}.ui-confirm{max-width:440px}.ui-confirm-message{margin:0;color:var(--color-muted)}.toast{border-radius:var(--radius-md);background:var(--color-surface-raised);box-shadow:var(--shadow-dialog)}@media(max-width:560px){.ui-modal-header,.ui-modal-body{padding:16px}.ui-modal-footer{padding:12px 16px}}}@media screen{.app-shell{display:flex;width:100%;height:100dvh;overflow:hidden;background:var(--color-bg)}.workshop-sidebar{display:flex;flex-direction:column;flex:0 0 var(--sidebar-width);width:var(--sidebar-width);height:100%;padding:24px 14px 12px;background:var(--color-sidebar);border-right:1px solid var(--color-border);overflow-y:auto}.workshop-sidebar.is-collapsed{flex-basis:var(--sidebar-width-collapsed);width:var(--sidebar-width-collapsed);padding-inline:10px}.shell-brand{display:flex;gap:10px;align-items:center;min-height:36px;margin:0 6px 32px}.shell-brand-icon{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:var(--radius-md);color:#b8d5ff;background:var(--color-primary-soft);border:1px solid #344c6b}.shell-brand-text{min-width:0;display:flex;flex-direction:column;gap:2px}.shell-brand-text strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:var(--font-lg);font-weight:650;letter-spacing:-.015em}.shell-brand-text>span{font-size:var(--font-xs);color:var(--color-subtle)}.shell-nav{display:flex;flex-direction:column;gap:4px}.shell-nav-caption{color:var(--color-subtle);font-size:.66rem;font-weight:650;letter-spacing:.09em;text-transform:uppercase;padding:0 12px 10px}.shell-nav-item{position:relative;display:flex;align-items:center;gap:12px;min-height:42px;width:100%;padding:10px 12px;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--color-muted);background:transparent;text-decoration:none;font:inherit;font-weight:500;text-align:left;cursor:pointer}.shell-nav-item>svg{flex-shrink:0}.shell-nav-item:hover:not(:disabled){color:var(--color-text);background:var(--color-surface)}.shell-nav-item.is-active{color:#c6ddff;background:var(--color-primary-soft);border-color:#304966}.shell-nav-item.is-active:before{content:"";position:absolute;left:-1px;height:18px;width:3px;background:#78acfa;border-radius:2px}.shell-nav-label{min-width:0}.shell-nav-label small{display:block;margin-top:2px;font-size:.66rem;font-weight:400}.shell-sidebar-lower{margin-top:auto;padding-top:32px}.shell-dev-tools{font-size:var(--font-xs);margin-top:8px}.shell-profile{display:flex;align-items:center;gap:10px;padding:20px 4px 14px;margin-top:20px;border-top:1px solid var(--color-border)}.shell-avatar{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;border-radius:50%;border:1px solid var(--color-border-strong);background:var(--color-surface-raised);color:#c6ddff;font-size:.7rem;font-weight:650;overflow:hidden}.shell-avatar img{width:100%;height:100%;object-fit:cover}.shell-profile-text{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}.shell-profile-text strong{font-size:var(--font-xs);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shell-profile-text>span{font-size:.68rem;color:var(--color-subtle)}.shell-profile .ui-icon-button{width:30px;min-width:30px;height:32px;background:transparent;border-color:transparent}.shell-collapse{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:32px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-subtle);font-size:.7rem;cursor:pointer}.shell-collapse:hover{background:var(--color-surface);color:var(--color-text)}.is-collapsed .shell-brand{margin-inline:auto}.is-collapsed .shell-brand-text,.is-collapsed .shell-nav-caption,.is-collapsed .shell-profile-text,.is-collapsed .shell-collapse span{display:none}.is-collapsed .shell-nav-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.is-collapsed .shell-nav-item{padding-inline:0;justify-content:center}.is-collapsed .shell-profile{flex-direction:column;padding-inline:0}.shell-workspace{flex:1;display:flex;flex-direction:column;min-width:0;height:100%}.shell-topbar{display:flex;align-items:center;gap:14px;min-height:98px;padding:20px 28px;background:var(--color-bg);border-bottom:1px solid var(--color-border);flex-shrink:0}.shell-page-header{display:flex;flex:1;align-items:center;justify-content:space-between;gap:16px;min-width:0}.shell-page-header h1{margin:3px 0 0;font-size:var(--font-title);line-height:1.3;font-weight:650;letter-spacing:-.025em}.shell-eyebrow{font-size:.68rem;color:var(--color-subtle);letter-spacing:.04em}.shell-header-actions{display:flex;align-items:center;gap:16px}.shell-breadcrumbs{font-size:var(--font-xs);color:var(--color-muted)}.shell-breadcrumbs ol{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0}.shell-breadcrumbs li{display:flex;align-items:center;gap:6px}.shell-breadcrumbs a{color:inherit;text-decoration:none}.shell-breadcrumbs a:hover{color:var(--color-text);text-decoration:underline}.app-main{flex:1;min-height:0;min-width:0;overflow:auto;padding:24px 28px;scroll-padding:16px}.app-main:focus{outline:none}.shell-page{display:flex;flex-direction:column;width:100%;min-height:100%;max-width:var(--content-max);margin:0 auto}.shell-page>*{flex-shrink:0;min-width:0}.shell-page-calendar{height:100%;min-height:640px}.shell-page-calendar>*{flex-shrink:1}.shell-drawer-overlay{position:fixed;inset:0;z-index:1100;background:#060b13a6;display:flex}.shell-drawer-overlay .workshop-sidebar{width:min(296px,calc(100vw - 48px));flex-basis:min(296px,calc(100vw - 48px));box-shadow:var(--shadow-dialog)}.shell-drawer-overlay .shell-brand{margin-bottom:28px}.shell-drawer-overlay .shell-brand .ui-icon-button{margin-left:auto}@media(min-width:1800px){.shell-topbar,.app-main{padding-inline:36px}}@media(max-width:1100px){.shell-topbar{padding-inline:20px}.app-main{padding:20px}}@media(max-width:900px){.shell-topbar{min-height:84px;padding:16px 20px}.shell-role{display:none}}@media(max-width:560px){.shell-topbar{padding:14px 16px;gap:12px}.shell-page-header h1{font-size:1.125rem}.shell-header-actions{gap:8px}.shell-header-actions .ui-button{padding-inline:10px;font-size:.75rem}.app-main{padding:16px}}}@media screen{.overview-page,.settings-page,.settings-section{display:flex;flex-direction:column;gap:24px;min-width:0}.page-intro{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.page-intro h2{margin:0 0 4px;font-size:var(--font-lg)}.page-intro p,.login-description{margin:0;color:var(--color-muted)}.overview-page a{color:#b8d5ff;text-decoration:none}.overview-page a:hover{text-decoration:underline}.overview-page a.ui-button-primary{color:#fff}.overview-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.overview-metric{display:flex;flex-direction:column;gap:10px;min-width:0;padding:16px}.overview-metric:hover{border-color:var(--color-focus);text-decoration:none!important}.overview-metric>span{display:flex;align-items:center;gap:8px;font-size:var(--font-xs);color:var(--color-muted)}.overview-metric svg{flex-shrink:0}.overview-metric strong{font-size:2rem;line-height:1.1;color:var(--color-text)}.overview-metric small{color:var(--color-muted);font-size:var(--font-xs)}.overview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;align-items:start}.overview-grid>.ui-card{min-width:0;scroll-margin-top:16px}.overview-grid header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:14px}.overview-grid h2{margin:0;font-size:1rem}.attention-list{list-style:none;padding:0;margin:12px 0}.attention-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--color-border);overflow-wrap:anywhere}.attention-list li:last-child{border-bottom:0}.attention-list li>div{min-width:0;flex:1}.attention-list li>a{font-size:var(--font-xs)}.attention-list small{display:block;color:var(--color-muted);margin-top:4px;font-size:var(--font-xs)}.panel-empty{padding:16px 0;color:var(--color-muted)}.settings-page{max-width:1000px}.settings-section h2{font-size:var(--font-lg);margin:0}.settings-section h3{font-size:1rem;margin:0 0 16px}.settings-section .records-note{margin-bottom:16px}.form-fieldset{margin:0;padding:0;border:0;min-width:0}.account-profile{display:flex;gap:16px;align-items:center;margin-bottom:16px}.account-profile p{margin:8px 0 0}.account-picture{width:64px;height:64px;border-radius:12px;object-fit:cover}.users-page .ui-table{min-width:740px}.login-page{min-height:100dvh;height:100%;overflow-y:auto;display:grid;place-items:center;padding:32px 20px;background:var(--color-bg)}.login-card{width:100%;max-width:420px;padding:32px}.login-brand{display:flex;gap:14px;align-items:center;margin-bottom:32px}.login-brand h1{font-size:1.4rem;margin:0}.login-brand p{margin:3px 0 0;color:var(--color-muted)}.login-card h2{font-size:1.125rem;margin:0 0 8px}.login-form{display:flex;flex-direction:column;gap:20px;margin-top:24px}.login-error{margin:0;color:var(--color-danger);background:var(--color-danger-soft);padding:12px;border-radius:var(--radius-sm)}@media(max-width:1150px){.overview-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:680px){.overview-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-grid{grid-template-columns:1fr}.overview-metric{padding:12px}.overview-metric>span{align-items:flex-start}.attention-list li{flex-wrap:wrap}.login-card{padding:24px}.users-page .ui-table{min-width:0}}}
