:root{--color-primary: #0066cc;--color-primary-focus: #0071e3;--color-primary-on-dark: #2997ff;--color-ink: #1d1d1f;--color-body-on-dark: #ffffff;--color-body-muted-dark: #cccccc;--color-ink-muted-80: #333333;--color-ink-muted-48: #7a7a7a;--color-divider-soft: #f0f0f0;--color-hairline: #e0e0e0;--color-canvas: #ffffff;--color-canvas-parchment: #f5f5f7;--color-surface-pearl: #fafafc;--color-surface-tile-1: #272729;--color-surface-tile-2: #2a2a2c;--color-surface-chip: rgba(210, 210, 215, .64);--color-nav-black: #000000;--color-on-primary: #ffffff;--tf-page: var(--color-canvas-parchment);--tf-panel: var(--color-canvas);--tf-border: var(--color-hairline);--tf-text: var(--color-ink);--tf-muted: var(--color-ink-muted-48);--tf-subhead: var(--color-ink-muted-80);--tf-pearl: var(--color-surface-pearl);--tf-nav: var(--color-nav-black);--status-success: #248a3d;--status-success-bg: rgba(36, 138, 61, .08);--status-warning: #b45309;--status-warning-bg: rgba(180, 83, 9, .08);--status-danger: #c41e3a;--status-danger-bg: rgba(196, 30, 58, .08);--status-info: var(--color-primary);--status-info-bg: rgba(0, 102, 204, .08);--bg: var(--tf-page);--surface: var(--tf-pearl);--card: var(--tf-panel);--raised: var(--color-surface-pearl);--line: var(--tf-border);--line-2: rgba(0, 0, 0, .08);--line-3: var(--color-divider-soft);--t1: var(--tf-text);--t2: var(--tf-muted);--t3: rgba(122, 122, 122, .55);--green: var(--status-success);--green-bg: var(--status-success-bg);--yellow: var(--status-warning);--yellow-bg: var(--status-warning-bg);--red: var(--status-danger);--red-bg: var(--status-danger-bg);--indigo: var(--color-primary);--indigo-bg: var(--status-info-bg);--r: 8px;--r-lg: 11px;--r-xl: 18px;--r-pill: 9999px;--t: .12s ease;--font-display: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-ui: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%}body{min-height:100%;background:var(--tf-page);color:var(--tf-text);font-family:var(--font-ui);font-size:17px;font-weight:400;line-height:1.47;letter-spacing:-.022em;-webkit-font-smoothing:antialiased}#root{min-height:100vh;display:flex;flex-direction:column}h1{font-family:var(--font-display);font-size:28px;font-weight:600;line-height:1.14;letter-spacing:-.02em;color:var(--tf-text)}h2{font-family:var(--font-display);font-size:21px;font-weight:600;line-height:1.19;letter-spacing:.01em;color:var(--tf-text)}h3{font-size:14px;font-weight:600;line-height:1.29;letter-spacing:-.016em;color:var(--tf-text)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-hairline);border-radius:3px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 22px;border-radius:var(--r-pill);font-size:17px;font-weight:400;font-family:inherit;letter-spacing:-.022em;line-height:1;cursor:pointer;transition:transform var(--t),opacity var(--t),border-color var(--t),background var(--t);border:1px solid transparent;white-space:nowrap}.btn:active:not(:disabled){transform:scale(.97)}.btn:focus-visible{outline:2px solid var(--color-primary-focus);outline-offset:2px}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-focus);border-color:var(--color-primary-focus)}.btn-ghost{background:var(--tf-panel);color:var(--color-primary);border:1px solid rgba(0,0,0,.08)}.btn-ghost:hover:not(:disabled){background:var(--tf-pearl);border-color:var(--tf-border);color:var(--color-primary-focus)}.btn-danger{background:var(--status-danger-bg);color:var(--status-danger);border-color:#c41e3a33}.btn-danger:hover:not(:disabled){background:#c41e3a1f}.btn-sm{padding:8px 16px;font-size:14px;letter-spacing:-.016em}.btn-lg{padding:14px 28px;font-size:18px;font-weight:300}.btn-icon{padding:8px;border-radius:var(--r-lg)}.input,.select,textarea.input{width:100%;background:var(--tf-panel);color:var(--tf-text);border:1px solid rgba(0,0,0,.08);border-radius:var(--r-pill);padding:12px 20px;min-height:44px;font-size:17px;font-family:inherit;letter-spacing:-.022em;line-height:1.2;transition:border-color var(--t),box-shadow var(--t);outline:none}.input::placeholder{color:var(--tf-muted)}.input:focus,.select:focus,textarea.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #0066cc26}.select{cursor:pointer;border-radius:var(--r-lg);padding-inline:16px}.select option{background:var(--tf-panel);color:var(--tf-text)}textarea.input{resize:vertical;border-radius:var(--r-lg);line-height:1.47;min-height:100px}.card{background:var(--tf-panel);border:1px solid var(--tf-border);border-radius:var(--r-xl)}.tf-panel{background:var(--tf-panel);border:1px solid var(--tf-border);border-radius:var(--r-xl);overflow:hidden}.tf-panel-head{padding:13px 16px;border-bottom:1px solid var(--tf-border);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}.tf-panel-body{padding:16px}.tf-stat-mini{padding:12px 14px;border:1px solid var(--tf-border);border-radius:var(--r-lg);background:var(--tf-panel);min-width:0}.badge{display:inline-flex;align-items:center;gap:3px;padding:4px 10px;border-radius:var(--r-pill);font-size:12px;font-weight:400;letter-spacing:-.01em}.badge-green{background:var(--green-bg);color:var(--green);border:1px solid rgba(36,138,61,.2)}.badge-yellow{background:var(--yellow-bg);color:var(--yellow);border:1px solid rgba(180,83,9,.2)}.badge-red{background:var(--red-bg);color:var(--red);border:1px solid rgba(196,30,58,.2)}.badge-indigo{background:var(--indigo-bg);color:var(--indigo);border:1px solid rgba(0,102,204,.22)}.badge-muted{background:var(--tf-pearl);color:var(--tf-muted);border:1px solid var(--tf-border)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#00000073;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn var(--t)}.modal{background:var(--tf-panel);border:1px solid var(--tf-border);border-radius:var(--r-xl);width:100%;max-width:460px;padding:24px;animation:modalIn .18s cubic-bezier(.2,0,0,1)}.tf-date-field .input-date,.tf-date-field .input-time,input.input-date[type=date],input.input-time[type=time]{color-scheme:light}input.input-date::-webkit-calendar-picker-indicator,input.input-time::-webkit-calendar-picker-indicator{opacity:.72;cursor:pointer}input.input-date::-webkit-calendar-picker-indicator:hover,input.input-time::-webkit-calendar-picker-indicator:hover{opacity:1}.divider{border:none;border-top:1px solid var(--tf-border);margin:0}.spinner{width:16px;height:16px;border-radius:50%;border:2px solid rgba(0,102,204,.2);border-top-color:var(--color-primary);animation:spin .6s linear infinite}.form-group{display:flex;flex-direction:column;gap:6px}.form-label{font-size:12px;font-weight:600;color:var(--tf-subhead);letter-spacing:-.01em}.form-error{font-size:14px;color:var(--status-danger)}.empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:52px 20px;color:var(--tf-muted);text-align:center}.tf-fab{position:fixed;bottom:28px;right:28px;z-index:40;width:52px;height:52px;border-radius:50%;background:var(--color-primary);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform var(--t);box-shadow:none}.tf-fab:active{transform:scale(.95)}.tf-fab:focus-visible{outline:2px solid var(--color-primary-focus);outline-offset:3px}.tf-stat-row>div:last-child{border-right:none}.tf-nav-global{height:44px;background:var(--tf-nav);border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:space-between;padding:0 22px;flex-shrink:0}.tf-subnav{min-height:52px;background:#ffffffb8;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid rgba(0,0,0,.06);display:flex;align-items:center;justify-content:space-between;padding:0 24px;flex-shrink:0;flex-wrap:wrap;gap:12px}.tf-table thead{background:var(--tf-pearl)}.tf-table th{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--tf-muted);text-align:left;padding:10px 14px;border-bottom:1px solid var(--tf-border)}.tf-table td{padding:11px 14px;font-size:14px;border-bottom:1px solid var(--color-divider-soft)}.tf-row-hover:focus-within,.tf-row-hover:hover{background:var(--tf-pearl)}.tf-select-inline{background:var(--tf-pearl);border:1px solid var(--tf-border);color:var(--tf-text);border-radius:var(--r-lg);padding:6px 12px;font-size:13px;font-family:inherit;outline:none;cursor:pointer}.tf-select-inline:focus{border-color:var(--color-primary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalIn{0%{opacity:0;transform:scale(.96) translateY(4px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}
