:root{--color-body-bg:#f5f3f0;--color-text:#1c1c1c;--color-text-muted:#1c1c1c99;--color-text-subtle:#1c1c1c66;--color-surface:#fff;--color-surface-muted:#ede9e3;--color-surface-alt:#eae7f2;--color-border:#1c1c1c0f;--color-border-strong:#1c1c1c1a;--color-accent:#3a7d44;--color-accent-strong:#2d6335;--color-accent-contrast:#fff;--color-accent-subtle:#3a7d4414;--color-success:#3a7d44;--color-success-bg:#e9f2ed;--color-success-border:#3a7d4433;--color-success-text:#2d6335;--color-warning:#b8860b;--color-warning-bg:#fdf6e3;--color-warning-border:#b8860b33;--color-warning-text:#92400e;--color-error:#c53030;--color-error-bg:#f9f1f1;--color-error-border:#c5303033;--color-error-text:#9b2c2c;--color-danger:#e53e3e;--color-lavender-wash:#eae7f2;--color-mint-wash:#e9f2ed;--color-amber-wash:#fdf6e3;--color-rose-wash:#f9f1f1;--gradient-hero:linear-gradient(135deg, #3a7d44, #2d6335);--gradient-brand:linear-gradient(135deg, #3a7d44 0%, #5ba868 100%);--font-headline:"Sora", sans-serif;--font-body:"Inter", sans-serif;--radius-sm:6px;--radius-md:8px;--radius-lg:10px;--radius-xl:12px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a;--transition-fast:.15s;--transition-normal:.2s;--transition-slow:.3s;--easing-default:cubic-bezier(.4, 0, .2, 1);--z-dropdown:100;--z-sticky:200;--z-sidebar:300;--z-overlay:400;--z-modal:1000;--sidebar-width:260px;color-scheme:light}:root.dark{--color-body-bg:#141413;--color-text:#e8e6e3;--color-text-muted:#e8e6e399;--color-text-subtle:#e8e6e366;--color-surface:#1e1e1c;--color-surface-muted:#1a1a18;--color-surface-alt:#1e1d2a;--color-border:#e8e6e314;--color-border-strong:#e8e6e31f;--color-accent:#5ba868;--color-accent-strong:#6fbf7b;--color-accent-contrast:#141413;--color-danger:#fc8181;--gradient-hero:linear-gradient(135deg, #3a7d44, #2d6335);--gradient-brand:linear-gradient(135deg, #3a7d44 0%, #5ba868 100%);--color-lavender-wash:#1e1d2a;--color-mint-wash:#151f19;--color-amber-wash:#1f1c12;--color-rose-wash:#1f1515;--color-success-bg:#3a7d4426;--color-success-border:#3a7d444d;--color-success-text:#5ba868;--color-warning-bg:#b8860b26;--color-warning-border:#b8860b4d;--color-warning-text:#d4a017;--color-error-bg:#c5303026;--color-error-border:#c530304d;--color-error-text:#fc8181;color-scheme:dark}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--color-body-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}#app{min-height:100vh}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn-primary{background:var(--color-accent);color:var(--color-accent-contrast);border-radius:var(--radius-lg);font-family:var(--font-body);cursor:pointer;transition:all var(--transition-normal) var(--easing-default);border:none;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-size:.9375rem;font-weight:500;display:inline-flex}.btn-primary:hover:not(:disabled){opacity:.9}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary{color:var(--color-accent);border:1px solid var(--color-accent);border-radius:var(--radius-lg);font-family:var(--font-body);cursor:pointer;transition:all var(--transition-normal) var(--easing-default);background:0 0;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-size:.9375rem;font-weight:500;display:inline-flex}.btn-secondary:hover:not(:disabled){background:var(--color-accent-subtle)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.btn-danger{background:var(--color-error);color:#fff;border-radius:var(--radius-lg);font-family:var(--font-body);cursor:pointer;transition:all var(--transition-normal) var(--easing-default);border:none;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-size:.9375rem;font-weight:500;display:inline-flex}.btn-danger:hover:not(:disabled){background:var(--color-error-text)}.btn-cancel{background:var(--color-surface-muted);color:var(--color-text-muted);border:1px solid var(--color-border-strong);border-radius:var(--radius-lg);font-family:var(--font-body);cursor:pointer;transition:all var(--transition-normal) var(--easing-default);justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-size:.9375rem;font-weight:500;display:inline-flex}.btn-cancel:hover:not(:disabled){background:var(--color-border-strong)}.form-group{margin-bottom:1rem}.form-group .form-field-label{font-family:var(--font-body);color:var(--color-text-muted);margin-bottom:.375rem;font-size:.875rem;font-weight:500;display:block}.form-group .form-field-body>input:not([type=checkbox]):not([type=radio]),.form-group .form-field-body>select,.form-group .form-field-body>textarea,.form-group>input:not([type=checkbox]):not([type=radio]),.form-group>select,.form-group>textarea{border:1.5px solid var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface);width:100%;color:var(--color-text);transition:border-color var(--transition-normal), box-shadow var(--transition-normal);padding:.75rem;font-size:1rem}.form-group .form-field-body>input:not([type=checkbox]):not([type=radio]):focus,.form-group .form-field-body>select:focus,.form-group .form-field-body>textarea:focus,.form-group>input:not([type=checkbox]):not([type=radio]):focus,.form-group>select:focus,.form-group>textarea:focus{border-color:var(--color-accent);outline:none;box-shadow:0 0 0 3px #3a7d441a}.form-group .form-field-body>input:not([type=checkbox]):not([type=radio]):disabled,.form-group .form-field-body>select:disabled,.form-group>input:not([type=checkbox]):not([type=radio]):disabled,.form-group>select:disabled{background:var(--color-surface-muted);cursor:not-allowed;color:var(--color-text-subtle)}.form-group .form-field-body>input:not([type=checkbox]):not([type=radio])::placeholder,.form-group>input:not([type=checkbox]):not([type=radio])::placeholder{color:var(--color-text-subtle)}.form-group .module-access-grid .level-select{border-radius:var(--radius-sm);width:auto;min-width:7.5rem;max-width:10rem;padding:.25rem .5rem;font-size:.8125rem}.form-error{background:var(--color-error-bg);border:1px solid var(--color-error-border);color:var(--color-error-text);border-radius:var(--radius-md);margin-bottom:1rem;padding:.75rem 1rem;font-size:.875rem}.field-error{color:var(--color-error);margin-top:.25rem;font-size:.8125rem;display:block}.form-help{color:var(--color-text-subtle);margin-top:.25rem;font-size:.8125rem;display:block}.form-group .required{color:var(--color-error)}.modal-overlay{z-index:var(--z-modal);background:#1c1c1c66;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border-radius:var(--radius-xl);width:100%;max-width:420px;box-shadow:var(--shadow-xl);max-height:calc(100vh - 2rem);overflow-y:auto}.modal.modal-sm{max-width:320px}.modal.modal-lg{max-width:560px}.modal.modal-xl{max-width:720px}.modal-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.modal-header h3{font-family:var(--font-headline);margin:0;font-size:1.1rem;font-weight:400}.modal-body{padding:1.5rem}.modal-actions{justify-content:flex-end;gap:.75rem;padding:0 1.5rem 1.5rem;display:flex}.btn-close{color:var(--color-text-subtle);cursor:pointer;transition:color var(--transition-normal) var(--easing-default);background:0 0;border:none;font-size:1.5rem;line-height:1}.btn-close:hover{color:var(--color-text)}.spinner{border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}.spinner-small{border-width:2px;width:16px;height:16px}.spinner-large{border-width:4px;width:48px;height:48px}@keyframes spin{to{transform:rotate(360deg)}}.status-badge{border-radius:var(--radius-full);text-transform:capitalize;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-block}.status-badge.status-active,.status-badge.status-success{background:var(--color-success-bg);color:var(--color-success-text)}.status-badge.status-pending,.status-badge.status-warning{background:var(--color-warning-bg);color:var(--color-warning-text)}.status-badge.status-inactive,.status-badge.status-error{background:var(--color-error-bg);color:var(--color-error-text)}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=768px){.modal{max-width:calc(100% - 2rem)}.modal-actions{flex-direction:column-reverse}.modal-actions button{width:100%}}.console-shell{min-height:100vh;padding-top:5rem}body.is-portal nav{display:none}body.is-portal .console-shell{padding-top:0}
