:root{--green-900: #283a6c;--green-800: #3a4b79;--green-700: #4b5a84;--green-600: #3e6b35;--green-500: #4a7d40;--green-100: #e9f0e4;--blue-600: #2563eb;--ink-900: #111827;--ink-800: #1f2937;--ink-600: #4b5563;--ink-500: #6b7280;--ink-400: #9ca3af;--border: #d8d4dc;--border-strong: #b8b2c0;--surface: #ffffff;--surface-muted: #f7f7f9;--danger-600: #b42318;--danger-100: #fef3f2;--danger-border: #fda29b;--success-700: #027a48;--success-100: #ecfdf3;--success-border: #a6f4c5;--radius-input: 10px;--radius-card: 20px;--card-border: #e4e8e4;--card-shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 10px 28px rgba(16, 24, 40, .05);--brand-bar: var(--green-900);--brand-bar-text: #ffffff;--nav-active: #eef2f0;--accent: #cbd784;--accent-hover: #bdca6c;--accent-ink: #111f3d;--highlight: #ccd8f7;--highlight-ink: #111f3d;--rail-top: #2f4072;--rail-bottom: #141d36;--rail-text: #ffffff;--page-bg: #f2f5f1;--table-head: #ebf0e9;--topbar-h: 64px;--page-max: 1440px;--page-pad-x: 36px;--page-pad-top: 6px;--page-pad-bottom: 40px;--rail-w: 48px;--rail-w-expanded: 212px;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--focus-ring: 0 0 0 3px rgba(29, 64, 52, .16);--field-border: #e2e4ea;--field-border-hover: #cfd4de;--field-focus: #b7c7ef;--field-ring: 0 0 0 3px rgba(204, 216, 247, .6);--field-placeholder: #9aa0ab;--field-fill: #f3f5f9;--text: #0c1f3f;--text-muted: #5b6678}*,*:before,*:after{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font-sans);font-size:16px;line-height:1.5;letter-spacing:.005em;color:var(--ink-800);background:var(--surface);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,p{margin:0}.field{display:block;margin-bottom:22px}.field__label{display:block;margin-bottom:6px;font-size:13px;font-weight:600;color:var(--text)}.field__required{color:var(--danger-600)}.field__control{position:relative;display:flex;align-items:center}.input{width:100%;height:44px;padding:0 14px;font-family:inherit;font-size:13px;color:var(--text);background:var(--surface);border:1px solid var(--field-border);border-radius:var(--radius-input);transition:border-color .15s ease,box-shadow .15s ease}.input::placeholder{color:var(--field-placeholder)}.input:hover:not(:disabled){border-color:var(--field-border-hover)}.input:focus{outline:none;border-color:var(--field-focus);box-shadow:var(--field-ring)}.input:disabled{background:var(--surface-muted);color:var(--ink-500);cursor:not-allowed}.input--has-affix{padding-right:44px}.input--invalid,.input--invalid:hover{border-color:var(--danger-border)}.input--invalid:focus{border-color:var(--danger-600);box-shadow:0 0 0 3px #b4231824}.input-affix{position:absolute;right:8px;display:grid;place-items:center;width:32px;height:32px;padding:0;color:var(--ink-500);background:none;border:0;border-radius:8px;cursor:pointer}.input-affix:hover{color:var(--ink-800);background:var(--surface-muted)}.input-affix:focus-visible{outline:2px solid var(--green-700);outline-offset:1px}.field__error{margin-top:6px;font-size:12px;color:var(--danger-600)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;height:62px;font-family:inherit;font-size:14px;font-weight:600;color:var(--accent-ink);background:var(--accent);border:0;border-radius:var(--radius-input);cursor:pointer;transition:background-color .15s ease,transform .05s ease}.btn:hover:not(:disabled){background:var(--accent-hover)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:focus-visible{outline:none;box-shadow:0 0 0 3px #fff,0 0 0 5px var(--green-700)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn--ghost{color:var(--green-600);background:transparent;border:1px solid var(--border)}.btn--ghost:hover:not(:disabled){background:var(--surface-muted)}.link{color:var(--green-600);font-weight:600;text-decoration:none}.link:hover{text-decoration:underline}.link:focus-visible{outline:2px solid var(--green-700);outline-offset:2px;border-radius:3px}.btn-gradient{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;gap:7px;height:38px;padding:0 16px;font-family:inherit;font-size:13px;font-weight:600;color:var(--accent-ink);text-decoration:none;white-space:nowrap;background:var(--accent);border:0;border-radius:11px;box-shadow:0 4px 12px color-mix(in srgb,var(--accent) 45%,transparent);cursor:pointer;transition:background-color .15s ease,box-shadow .2s ease,transform .05s ease}.btn-gradient:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 55%,transparent)}.btn-gradient:active:not(:disabled){transform:translateY(1px)}.btn-gradient:focus-visible{outline:none;box-shadow:0 0 0 3px #fff,0 0 0 5px var(--accent-ink)}.btn-gradient:disabled{opacity:.55;cursor:not-allowed}.btn-gradient--sm{height:36px;padding:0 14px;font-size:12.5px}.bar-btn{height:38px;padding:0 16px;font-size:13px;border-radius:11px}.bar-ghost{display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 14px;font-family:inherit;font-size:13px;font-weight:600;color:var(--ink-800);background:var(--surface);border:1px solid var(--border);border-radius:12px;cursor:pointer}.bar-ghost:hover:not(:disabled){background:var(--page-bg)}.bar-ghost:disabled{opacity:.5;cursor:not-allowed}.filter{position:relative;display:flex;flex-direction:column;justify-content:center;min-width:150px;height:52px;padding:0 14px;background:var(--surface);border:1px solid var(--border);border-radius:12px;transition:border-color .15s ease,box-shadow .15s ease}.filter:focus-within{border-color:var(--green-700);box-shadow:var(--focus-ring)}.filter__label{font-size:10.5px;font-weight:700;letter-spacing:.08em;color:var(--green-700);text-transform:uppercase}.filter__control{width:100%;padding:0;font-family:inherit;font-size:13px;font-weight:500;color:var(--ink-900);background:transparent;border:0;outline:none;appearance:none}select.filter__control{padding-right:22px;cursor:pointer;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23374151' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right center}.filter__control::placeholder{color:var(--ink-400)}.filter--wide{min-width:240px}.alert{display:flex;gap:10px;padding:12px 14px;margin-bottom:20px;font-size:15px;border:1px solid;border-radius:var(--radius-input)}.alert--error{color:var(--danger-600);background:var(--danger-100);border-color:var(--danger-border)}.alert--success{color:var(--success-700);background:var(--success-100);border-color:var(--success-border)}.alert--warn{align-items:flex-start;margin-bottom:14px;font-size:13px;line-height:1.45;color:#92400e;background:#fffbeb;border-color:#f5d77a}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes spin{to{transform:rotate(360deg)}}.spinner{width:20px;height:20px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}.auth{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:40px 24px;background:var(--surface)}.auth__panel{width:100%;max-width:460px}.auth__title{font-size:34px;font-weight:700;letter-spacing:-.02em;color:var(--ink-900)}.auth__subtitle{margin-top:6px;margin-bottom:34px;font-size:17px;color:var(--ink-500)}.auth__row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:4px 0 26px}.checkbox{display:inline-flex;align-items:center;gap:10px;font-size:16px;color:var(--ink-800);cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox input{width:20px;height:20px;margin:0;accent-color:var(--blue-600);cursor:pointer}.checkbox input:focus-visible{outline:2px solid var(--green-700);outline-offset:2px}.auth__divider{margin:30px 0 20px;border:0;border-top:1px solid #ececf0}.auth__footer{display:flex;align-items:center;justify-content:space-between;gap:16px}.auth__footer-text{font-size:16px;color:var(--ink-500)}.auth__back{margin-top:24px;text-align:center}@media(max-width:520px){.auth{padding:28px 20px}.auth__title{font-size:30px}.auth__footer{flex-direction:column;align-items:flex-start}}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.searchbox{position:relative;display:flex;align-items:center}.searchbox>input{width:100%;padding-right:40px}.searchbox__clear{position:absolute;right:6px;display:grid;place-items:center;width:28px;height:28px;padding:0;font-family:inherit;font-size:14px;line-height:1;color:var(--ink-500);background:none;border:0;border-radius:50%;cursor:pointer}.searchbox__clear:hover{color:var(--ink-900);background:var(--surface-muted)}.searchbox__clear:focus-visible{outline:2px solid var(--green-700);outline-offset:1px}@media(max-width:899px){:root{--page-pad-x: 16px}}.dlg{width:min(600px,calc(100vw - 32px));max-height:calc(100dvh - 48px);padding:0;overflow:auto;color:inherit;background:var(--surface);border:0;border-radius:22px;box-shadow:0 30px 80px #030e0959,0 2px 8px #030e091f}.dlg[open]{animation:dlg-in .22s cubic-bezier(.22,1,.36,1)}.dlg::backdrop{background:#08140e6b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:dlg-fade .22s ease}@keyframes dlg-in{0%{opacity:0;transform:translateY(10px) scale(.98)}}@keyframes dlg-fade{0%{opacity:0}}.dlg__panel{padding:24px 26px 22px}.dlg__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.dlg__title{font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--ink-900)}.dlg__sub{margin-top:3px;font-size:13px;color:var(--ink-500)}.dlg__close{display:grid;place-items:center;flex-shrink:0;width:34px;height:34px;color:var(--ink-500);background:transparent;border:0;border-radius:10px;cursor:pointer}.dlg__close:hover:not(:disabled){color:var(--ink-900);background:var(--surface-muted)}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}@media(max-width:560px){.fields{grid-template-columns:1fr}}.fld{display:flex;flex-direction:column;gap:5px;min-width:0}.fld--wide{grid-column:1 / -1}.fld__label{font-size:13px;font-weight:600;color:var(--text)}.fld__req{margin-left:2px;color:var(--danger-600)}.fld__input{width:100%;height:38px;padding:0 12px;font-family:inherit;font-size:13px;color:var(--text);background:var(--surface);border:1px solid var(--field-border);border-radius:10px;transition:border-color .15s ease,box-shadow .15s ease}textarea.fld__input{height:auto;min-height:64px;padding:9px 12px;line-height:1.45;resize:vertical}.fld__input::placeholder{color:var(--field-placeholder)}.fld__input:hover:not(:disabled):not(:focus){border-color:var(--field-border-hover)}.fld__input:disabled{color:var(--ink-500);background:var(--surface-muted);cursor:not-allowed}.fld__input:focus{outline:none;border-color:var(--field-focus);box-shadow:var(--field-ring)}.fld__hint{font-size:12px;color:var(--text-muted)}.sel{position:relative;display:inline-flex;min-width:0;vertical-align:middle}.sel__btn{display:flex;align-items:center;gap:10px;width:100%;height:38px;padding:0 12px;font-family:inherit;font-size:13px;color:var(--text);text-align:left;background:var(--surface);border:1px solid var(--field-border);border-radius:10px;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.sel__btn:hover:not(:disabled){border-color:var(--field-border-hover)}.sel--open .sel__btn,.sel__btn:focus-visible{outline:none;border-color:var(--field-focus);box-shadow:var(--field-ring)}.sel__btn:disabled{color:var(--ink-500);background:var(--surface-muted);cursor:not-allowed}.sel__btn--empty .sel__value{color:var(--text-muted)}.sel__value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sel__caret{flex-shrink:0;width:0;height:0;border-top:6px solid #3d4656;border-right:5px solid transparent;border-left:5px solid transparent;transition:transform .15s ease}.sel--open .sel__caret{transform:rotate(180deg)}.sel__list{position:fixed;z-index:1000;max-height:332px;margin:0;padding:6px;overflow-y:auto;list-style:none;background:var(--surface);border:1px solid var(--field-border);border-radius:12px;box-shadow:0 12px 32px #1018281f,0 2px 6px #1018280f}.sel__opt{padding:9px 12px;font-size:13px;font-weight:500;white-space:nowrap;color:var(--text);border-radius:8px;cursor:pointer}.sel__opt[aria-selected=true]{font-weight:600}.sel__opt--active{background:#f5f7e8}.sel--sm .sel__btn{height:32px;padding:0 10px;border-radius:8px}.search,.dt__find{display:flex;align-items:center;gap:10px;height:38px;padding:0 12px;color:var(--text-muted);background:var(--field-fill);border:1px solid transparent;border-radius:10px;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}.search:focus-within,.dt__find:focus-within{background:var(--surface);border-color:var(--field-focus);box-shadow:var(--field-ring)}.search input,.dt__find input{flex:1;min-width:0;height:100%;padding:0;font:inherit;font-size:13px;color:var(--text);background:transparent;border:0;outline:none}.search input::placeholder,.dt__find input::placeholder{color:var(--text-muted)}.dlg__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.dlg__ghost{height:38px;padding:0 16px;font-family:inherit;font-size:13px;font-weight:600;color:var(--ink-800);background:var(--surface);border:1px solid var(--border);border-radius:10px;cursor:pointer}.dlg__ghost:hover:not(:disabled){background:var(--surface-muted)}@media(prefers-reduced-motion:reduce){.dlg[open],.dlg::backdrop{animation:none}}.dt{overflow:hidden;background:var(--surface);border:1px solid var(--card-border);border-radius:16px;box-shadow:var(--card-shadow)}.dt__bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px}.dt__title{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:13px;font-weight:600;color:var(--text)}.dt__count{display:inline-grid;place-items:center;min-width:24px;height:24px;padding:0 7px;font-size:12px;font-weight:600;color:#2a4f9c;background:#eef2fb;border-radius:999px}.dt__find{flex:0 1 280px;min-width:180px}.dt__spacer{flex:1}.dt__soft{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 14px;font-family:inherit;font-size:13px;font-weight:600;color:var(--text);text-decoration:none;background:#eef2fb;border:0;border-radius:10px;cursor:pointer}.dt__soft:hover:not(:disabled){background:#e2e9f8}.dt__wrap{overflow-x:auto}.dt__table{width:100%;border-collapse:collapse}.dt__table th{height:38px;padding:0 16px;font-size:13px;font-weight:500;text-align:left;white-space:nowrap;color:#3d4a5c;background:#f5f7fb;border-top:1px solid #edf0f5;border-bottom:1px solid #edf0f5}.dt__table td{padding:10px 16px;font-size:13px;color:var(--text);vertical-align:middle;border-bottom:1px solid #edf0f5}.dt__table tbody tr{transition:background-color .12s ease}.dt__table tbody tr:hover{background:#fafbfd}.dt__table .dt__num{font-variant-numeric:tabular-nums}.dt__table .dt__end{width:1%;text-align:right;white-space:nowrap}.dt__muted{color:var(--text-muted)}.dt__who{display:inline-flex;align-items:center;gap:10px;font-weight:600}.dt__avatar{display:inline-grid;place-items:center;flex-shrink:0;width:28px;height:28px;font-size:11px;font-weight:600;color:#2a4f9c;background:#eef2fb;border-radius:50%}.dt__link{color:#2a4f9c;text-decoration:underline;text-underline-offset:2px}.dt__none{padding:28px 16px;font-size:13px;color:var(--text-muted);text-align:center}.dt__foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:12px;padding:10px 16px}.pgr{display:flex;flex-wrap:wrap;align-items:center;gap:12px;font-size:13px;color:var(--text-muted)}.pgr .sel{width:72px}.pgr__range{margin:0 8px;color:var(--text);font-variant-numeric:tabular-nums}.pgr__btns{display:flex;gap:4px}.pgr__btn{display:grid;place-items:center;width:32px;height:32px;padding:0;color:var(--ink-600);background:transparent;border:0;border-radius:8px;cursor:pointer}.pgr__btn:hover:not(:disabled){color:var(--text);background:#f1f3f8}.pgr__btn:disabled{color:#c4c9d2;cursor:default}.dt__icon{display:inline-grid;place-items:center;width:32px;height:32px;padding:0;color:var(--text);background:transparent;border:0;border-radius:8px;cursor:pointer;transition:color .15s ease,background-color .15s ease}.dt__icon:hover:not(:disabled){background:#f1f3f8}.dt__icon--danger:hover:not(:disabled){color:var(--danger-600);background:#fdecea}.dt__icon:disabled{opacity:.45;cursor:default}.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;font-size:12px;font-weight:500;white-space:nowrap;border-radius:6px}.pill--ok{color:#4d5a14;background:#f3f6e1}.pill--warn{color:#9a5b0b;background:#fff3dc}.pill--off{color:var(--danger-600);background:#fdecea}.pill--info{color:#2f4a8f;background:#e7edfb}.pill--plain{color:var(--ink-600);background:#f1f2f5}.fld .sel{width:100%}
