:root{--color-primary: #111827;--color-primary-hover: #0f172a;--color-primary-soft: #f3f4f6;--color-primary-border: #d1d5db;--color-bg: #f8fafc;--color-surface: #ffffff;--color-surface-2: #f8fafc;--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--color-text: #0f172a;--color-text-muted: #64748b;--color-text-soft: #94a3b8;--color-success: #166534;--color-success-bg: #f0fdf4;--color-success-border: #bbf7d0;--color-warning: #c2410c;--color-warning-bg: #fff7ed;--color-warning-border: #fed7aa;--color-danger: #991b1b;--color-danger-bg: #fef2f2;--color-danger-border: #fecaca;--color-vacation: #6d28d9;--color-vacation-bg: #f5f3ff;--color-vacation-border: #ddd6fe;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 18px;--radius-pill: 999px;--shadow-sm: 0 2px 8px rgba(15, 23, 42, .04);--shadow-md: 0 6px 18px rgba(15, 23, 42, .06);--shadow-lg: 0 14px 28px rgba(15, 23, 42, .08);--content-width: 1240px}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}html{font-size:16px}body{font-family:Manrope,Arial,Helvetica,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.45;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}img{max-width:100%}a{color:inherit;text-decoration:none}input,select,button,textarea{font:inherit}h1,h2,h3,h4,h5,h6{margin:0 0 8px;line-height:1.2;color:var(--color-text);letter-spacing:-.02em}h1{font-size:32px;font-weight:800}h2{font-size:26px;font-weight:750}h3{font-size:20px;font-weight:700}p{margin:0 0 12px}.text-muted{color:var(--color-text-muted)}.text-soft{color:var(--color-text-soft)}.page,.container{max-width:var(--content-width);margin:0 auto;padding:20px}.section{margin-bottom:20px}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;gap:12px;flex-wrap:wrap}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:16px}.card-header{margin-bottom:14px}.card-subtitle{color:var(--color-text-muted);font-size:14px}button,.btn{appearance:none;border:1px solid var(--color-border-strong);background:#fff;color:var(--color-text);border-radius:12px;padding:10px 14px;font:inherit;font-weight:600;cursor:pointer;transition:.15s ease}button:hover,.btn:hover{background:var(--color-surface-2)}button:disabled,.btn:disabled{opacity:.55;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:#fff;color:var(--color-danger);border-color:var(--color-danger-border)}.btn-danger:hover{background:var(--color-danger-bg)}.btn-ghost{background:transparent;border-color:transparent}label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--color-text)}input,select,textarea{width:100%;padding:10px 12px;font:inherit;color:var(--color-text);background:#fff;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);transition:.15s ease}input::placeholder,textarea::placeholder{color:var(--color-text-soft)}input:focus,select:focus,textarea:focus{outline:none;border-color:#9ca3af;box-shadow:0 0 0 3px #11182714}.alert{padding:12px 14px;border-radius:12px;border:1px solid transparent;font-size:14px;font-weight:600}.alert-success{background:var(--color-success-bg);color:var(--color-success);border-color:var(--color-success-border)}.alert-warning{background:var(--color-warning-bg);color:var(--color-warning);border-color:var(--color-warning-border)}.alert-danger,.error{background:var(--color-danger-bg);color:var(--color-danger);border-color:var(--color-danger-border)}.badge,.pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:var(--radius-pill);font-size:12px;font-weight:700;border:1px solid var(--color-border);background:#fff}.badge-primary{color:#111827;background:var(--color-primary-soft);border-color:var(--color-primary-border)}.badge-success{color:var(--color-success);background:var(--color-success-bg);border-color:var(--color-success-border)}.badge-danger{color:var(--color-danger);background:var(--color-danger-bg);border-color:var(--color-danger-border)}.badge-warning{color:var(--color-warning);background:var(--color-warning-bg);border-color:var(--color-warning-border)}.badge-vacation{color:var(--color-vacation);background:var(--color-vacation-bg);border-color:var(--color-vacation-border)}.tableWrap,.table-wrap{overflow-x:auto;overflow-y:hidden;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff;box-shadow:var(--shadow-md);padding-bottom:10px;scrollbar-gutter:stable both-edges}table{width:max-content;min-width:100%;border-collapse:collapse;background:#fff}thead th{text-align:left;background:var(--color-surface-2);color:var(--color-text-muted);font-size:13px;font-weight:800;padding:12px 10px;border-bottom:1px solid var(--color-border);white-space:nowrap}tbody td{padding:12px 10px;border-bottom:1px solid #f1f5f9;white-space:nowrap}tbody tr:hover td,tbody tr:hover{background:#fafcff}.topbar,header.topbar{position:sticky;top:0;z-index:40;background:#fffffff5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--color-border)}.topbar-inner{max-width:var(--content-width);margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.nav-link{padding:7px 12px;border-radius:var(--radius-pill);border:1px solid transparent;color:var(--color-text-muted);font-weight:600;transition:.15s ease}.nav-link:hover{background:#fff;border-color:var(--color-border);color:var(--color-text)}.nav-link.active{background:var(--color-primary-soft);border-color:var(--color-primary-border);color:var(--color-text)}.w-full{width:100%}.right{text-align:right}.center{text-align:center}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}@media (max-width: 980px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 720px){.page,.container{padding:14px}.grid-2,.grid-3{grid-template-columns:1fr}h1{font-size:28px}h2{font-size:22px}.topbar-inner{padding:10px 14px}button,.btn{width:100%}}
