:root{--blue-25: #f5f9ff;--blue-50: #eff8ff;--blue-100: #dbeafe;--blue-200: #c9e2fa;--blue-300: #a3cdf2;--blue-400: #2c7dd6;--blue-500: #1f72c4;--blue-600: #1864ab;--blue-700: #1760a3;--blue-800: #145494;--blue-900: #103f70;--blue-950: #0f2a4a;--gray-25: #fcfcfd;--gray-50: #f8f9fb;--gray-100: #f0f2f5;--gray-200: #e4e7ec;--gray-300: #d0d5dd;--gray-400: #a8b0bf;--gray-450: #b0b8c8;--gray-500: #8a94a6;--gray-550: #667085;--gray-600: #475467;--gray-700: #344054;--gray-800: #1d2433;--gray-900: #101828;--green-bg: #ecfdf3;--green-text: #067647;--green-border: #abefc6;--yellow-bg: #fffaeb;--yellow-text: #b54708;--yellow-border: #fedf89;--red-bg: #fef3f2;--red-text: #b42318;--red-border: #fecdca;--purple-bg: #f4f3ff;--purple-text: #5925dc;--purple-border: #d9d6fe;--color-bg: var(--gray-100);--color-surface: #ffffff;--color-surface-muted: var(--gray-50);--color-overlay: rgba(0, 0, 0, .45);--color-text: var(--gray-800);--color-text-secondary:var(--gray-550);--color-text-muted: var(--gray-500);--color-text-placeholder: var(--gray-400);--color-text-on-brand: #ffffff;--color-border: var(--gray-200);--color-border-strong: var(--gray-300);--color-border-subtle: var(--gray-100);--color-border-hover: var(--gray-450);--color-brand: var(--blue-600);--color-brand-hover: var(--blue-800);--color-brand-ink: var(--blue-950);--color-brand-subtle: var(--blue-100);--color-brand-subtle-hover: var(--blue-50);--color-focus-ring: rgba(24, 100, 171, .14);--color-link: var(--blue-600);--status-neutral-bg: var(--gray-100);--status-neutral-text: var(--gray-550);--status-neutral-border: var(--gray-200);--status-info-bg: var(--blue-50);--status-info-text: var(--blue-700);--status-info-border: var(--blue-200);--status-success-bg: var(--green-bg);--status-success-text: var(--green-text);--status-success-border: var(--green-border);--status-warning-bg: var(--yellow-bg);--status-warning-text: var(--yellow-text);--status-warning-border: var(--yellow-border);--status-danger-bg: var(--red-bg);--status-danger-text: var(--red-text);--status-danger-border: var(--red-border);--status-special-bg: var(--purple-bg);--status-special-text: var(--purple-text);--status-special-border: var(--purple-border);--status-archive-bg: var(--gray-700);--status-archive-text: #ffffff;--status-archive-border: var(--gray-700);--state-draft-bg: var(--status-neutral-bg);--state-draft-text: var(--status-neutral-text);--state-draft-border: var(--status-neutral-border);--state-in_review-bg: var(--status-warning-bg);--state-in_review-text: var(--status-warning-text);--state-in_review-border: var(--status-warning-border);--state-released-bg: var(--status-success-bg);--state-released-text: var(--status-success-text);--state-released-border: var(--status-success-border);--state-obsolete-bg: var(--status-archive-bg);--state-obsolete-text: var(--status-archive-text);--state-obsolete-border: var(--status-archive-border);--job-pending: var(--status-neutral-text);--job-processing: var(--status-info-text);--job-done: var(--status-success-text);--job-failed: var(--status-danger-text);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono: ui-monospace, "SF Mono", "Cascadia Code", Consolas, monospace;--text-2xs: 10px;--text-xs: 11px;--text-sm: 12px;--text-base: 13px;--text-md: 14px;--text-lg: 16px;--text-xl: 18px;--text-2xl: 22px;--leading-tight: 1.2;--leading-normal: 1.55;--font-regular: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--tracking-label: .07em;--space-0: 0;--space-1: 2px;--space-2: 4px;--space-3: 6px;--space-4: 8px;--space-5: 10px;--space-6: 12px;--space-7: 14px;--space-8: 16px;--space-9: 18px;--space-10: 20px;--space-12: 24px;--space-16: 32px;--space-20: 40px;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-pill: 9999px;--shadow-card: 0 1px 4px rgba(16, 24, 40, .06);--shadow-modal: 0 20px 60px rgba(0, 0, 0, .2);--shadow-pop: 0 24px 64px rgba(0, 0, 0, .22);--shadow-focus: 0 0 0 3px var(--color-focus-ring);--sidebar-width: 232px;--transition-fast: .12s;--transition-base: .15s}[data-theme=dark]{--color-bg: #0e1420;--color-surface: #161e2e;--color-surface-muted: #1d2738;--color-overlay: rgba(0, 0, 0, .6);--color-text: #e6e9ef;--color-text-secondary:#aab2c0;--color-text-muted: #8a94a6;--color-text-placeholder: #5d6779;--color-text-on-brand: #ffffff;--color-border: #2a3446;--color-border-strong: #3a4759;--color-border-subtle: #1f2937;--color-border-hover: #46566c;--color-brand: var(--blue-400);--color-brand-hover: var(--blue-300);--color-brand-ink: var(--blue-950);--color-brand-subtle: #15314f;--color-brand-subtle-hover: #1a3a5e;--color-focus-ring: rgba(44, 125, 214, .28);--color-link: var(--blue-400);--status-neutral-bg: #232d3e;--status-neutral-text: #aab2c0;--status-neutral-border: #313c50;--status-info-bg: #13243a;--status-info-text: #8cc0f0;--status-info-border: #1d3a5c;--status-success-bg: #0f2a1d;--status-success-text: #6ee7a8;--status-success-border: #1c4733;--status-warning-bg: #2c220c;--status-warning-text: #f5c451;--status-warning-border: #4a3a13;--status-danger-bg: #2c1414;--status-danger-text: #f59b94;--status-danger-border: #4a1f1c;--status-special-bg: #1f1b3a;--status-special-text: #b8adf5;--status-special-border: #322b5c;--status-archive-bg: #cbd2dd;--status-archive-text: #0e1420;--status-archive-border: #cbd2dd;--shadow-card: 0 1px 4px rgba(0, 0, 0, .4);--shadow-modal: 0 20px 60px rgba(0, 0, 0, .6);--shadow-pop: 0 24px 64px rgba(0, 0, 0, .65)}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.center-screen{min-height:100%;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted)}.login-bg{min-height:100%;display:flex;align-items:center;justify-content:center;padding:var(--space-8);background:linear-gradient(145deg,var(--blue-950) 0%,var(--blue-600) 60%,var(--blue-400) 100%)}.login-card{width:100%;max-width:400px;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-pop);padding:var(--space-12) var(--space-10)}.login-title{margin:0 0 var(--space-2);font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--color-brand-ink)}.login-sub{margin:0 0 var(--space-10);font-size:var(--text-sm);color:var(--color-text-muted)}.field{margin-bottom:var(--space-6)}.form-label{display:block;margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--gray-700)}.input{display:block;width:100%;padding:var(--space-3) var(--space-5);font:inherit;font-size:var(--text-base);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);outline:none;transition:border-color var(--transition-base),box-shadow var(--transition-base)}.input:focus{border-color:var(--color-brand);box-shadow:var(--shadow-focus)}.input::placeholder{color:var(--color-text-placeholder)}.form-error{margin:0 0 var(--space-4);min-height:1.2em;font-size:var(--text-sm);color:var(--status-danger-text)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-3) var(--space-8);font:inherit;font-size:var(--text-base);font-weight:var(--font-medium);color:var(--color-text-on-brand);background:var(--color-brand);border:1px solid var(--color-brand);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-base)}.btn-primary:hover:not(:disabled){background:var(--color-brand-hover)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-block{width:100%}.btn-secondary{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);font:inherit;font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--gray-700);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-base),border-color var(--transition-base)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-muted);border-color:var(--color-border-hover)}.btn-secondary:disabled{opacity:.55;cursor:not-allowed}.link-btn{padding:0;font:inherit;background:none;border:none;color:var(--color-link);cursor:pointer}.link-btn:hover{text-decoration:underline}.app-shell{display:flex;height:100%}.sidebar{width:var(--sidebar-width);flex-shrink:0;display:flex;flex-direction:column;background:var(--color-surface);border-right:1px solid var(--color-border)}.sidebar-brand{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--color-border-subtle)}.sidebar-brand-title{font-size:var(--text-sm);font-weight:var(--font-bold);color:var(--color-brand-ink)}.sidebar-brand-sub{font-size:var(--text-2xs);font-weight:var(--font-semibold);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--color-text-muted)}.sidebar-nav{flex:1;padding:var(--space-3);overflow-y:auto}.nav-item{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);font:inherit;font-size:var(--text-base);font-weight:var(--font-medium);color:var(--gray-600);background:none;border:none;border-radius:var(--radius-sm);text-align:left;text-decoration:none;cursor:pointer}.nav-item:hover{background:var(--color-brand-subtle-hover);color:var(--color-brand)}.nav-item.active{background:var(--color-brand-subtle);color:var(--color-brand);font-weight:var(--font-semibold)}.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden}.topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-8);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.topbar-title{font-size:var(--text-md);font-weight:var(--font-semibold)}.topbar-user{display:flex;align-items:center;gap:var(--space-4);font-size:var(--text-sm);color:var(--color-text-secondary)}.content{flex:1;overflow-y:auto;padding:var(--space-10)}.lock-bar{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--text-base)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-10);box-shadow:var(--shadow-card)}.badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-4);border-radius:var(--radius-xs);font-size:var(--text-xs);font-weight:var(--font-semibold);text-transform:capitalize}.role-badge{background:var(--status-info-bg);color:var(--status-info-text);border:1px solid var(--status-info-border)}.badge--pending{background:var(--status-neutral-bg);color:var(--status-neutral-text);border:1px solid var(--status-neutral-border)}.badge--processing{background:var(--status-info-bg);color:var(--status-info-text);border:1px solid var(--status-info-border)}.badge--done{background:var(--status-success-bg);color:var(--status-success-text);border:1px solid var(--status-success-border)}.badge--failed{background:var(--status-danger-bg);color:var(--status-danger-text);border:1px solid var(--status-danger-border)}.badge--draft{background:var(--state-draft-bg);color:var(--state-draft-text);border:1px solid var(--state-draft-border)}.badge--in_review{background:var(--state-in_review-bg);color:var(--state-in_review-text);border:1px solid var(--state-in_review-border)}.badge--released{background:var(--state-released-bg);color:var(--state-released-text);border:1px solid var(--state-released-border)}.badge--obsolete{background:var(--state-obsolete-bg);color:var(--state-obsolete-text);border:1px solid var(--state-obsolete-border);text-decoration:line-through}.badge--active{background:var(--status-success-bg);color:var(--status-success-text);border:1px solid var(--status-success-border)}.badge--archived{background:var(--status-neutral-bg);color:var(--status-neutral-text);border:1px solid var(--status-neutral-border)}.table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden}.data-table{width:100%;border-collapse:collapse;font-size:var(--text-base)}.data-table thead tr{background:var(--color-surface-muted)}.data-table th{padding:var(--space-5) var(--space-7);text-align:left;font-size:var(--text-xs);font-weight:var(--font-bold);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--color-text-muted);border-bottom:1px solid var(--color-border);white-space:nowrap}.data-table td{padding:var(--space-5) var(--space-7);border-bottom:1px solid var(--color-border-subtle)}.data-table tbody tr:hover{background:var(--color-surface-muted);cursor:pointer}.data-table tbody tr:last-child td{border-bottom:none}
