:root[data-theme=light]{--bg: #f6f7f9;--bg-grad: radial-gradient(1200px 600px at 85% -10%, #eef1ff 0%, transparent 60%);--surface: #ffffff;--surface-2: #fafbfc;--surface-3: #f2f4f7;--border: #e6e8ec;--border-strong: #d5d9e0;--text: #0d1220;--text-2: #5b6478;--text-3: #8b94a6;--brand: #4f46e5;--brand-hover: #4338ca;--brand-press: #3730a3;--brand-soft: #eef0ff;--brand-soft-2: #e0e3ff;--success: #15803d;--success-soft: #e8f7ee;--warn: #b45309;--warn-soft: #fdf3e3;--danger: #c2263c;--danger-soft: #fdecef;--info: #0369a1;--info-soft: #e6f3fb;--neutral-soft: #f0f2f5;--sidebar-bg: #0e1220;--sidebar-bg-2: #151a2b;--sidebar-text: #a5adc0;--sidebar-text-active: #ffffff;--sidebar-border: #232a3d;--shadow-xs: 0 1px 2px rgba(16, 24, 40, .05);--shadow-sm: 0 1px 3px rgba(16, 24, 40, .08), 0 1px 2px rgba(16, 24, 40, .04);--shadow-md: 0 4px 12px rgba(16, 24, 40, .08), 0 2px 4px rgba(16, 24, 40, .04);--shadow-lg: 0 16px 40px rgba(16, 24, 40, .14), 0 4px 10px rgba(16, 24, 40, .06);--ring: 0 0 0 3px rgba(79, 70, 229, .16)}:root[data-theme=dark]{--bg: #080a11;--bg-grad: radial-gradient(1200px 600px at 85% -10%, rgba(79, 70, 229, .14) 0%, transparent 60%);--surface: #10141d;--surface-2: #141924;--surface-3: #1a2030;--border: #222839;--border-strong: #2f3648;--text: #e8ecf5;--text-2: #97a1b6;--text-3: #6b7589;--brand: #6d68f0;--brand-hover: #7d79f5;--brand-press: #5b56dd;--brand-soft: #1b1f3d;--brand-soft-2: #262a55;--success: #4ade80;--success-soft: #10251a;--warn: #fbbf24;--warn-soft: #2a2010;--danger: #f87171;--danger-soft: #2c1418;--info: #38bdf8;--info-soft: #0d2029;--neutral-soft: #1a2030;--sidebar-bg: #0b0e16;--sidebar-bg-2: #10141d;--sidebar-text: #8d97ad;--sidebar-text-active: #ffffff;--sidebar-border: #1c2231;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .5);--shadow-md: 0 4px 14px rgba(0, 0, 0, .55);--shadow-lg: 0 20px 48px rgba(0, 0, 0, .65);--ring: 0 0 0 3px rgba(109, 104, 240, .25)}*{box-sizing:border-box}html,body{overscroll-behavior:none}.modal-body,.sidebar-scroll,.cf-list,.combo-list,.menu-panel{overscroll-behavior:contain}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","tnum";overflow-x:hidden}h1,h2,h3,h4,h5{margin:0;font-weight:600;letter-spacing:-.015em}p{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:8px;border:3px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--text-3)}.mono{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Consolas,monospace}:root{--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.4, .64, 1);--dur-instant: 90ms;--dur-fast: .15s;--dur-base: .22s;--dur-slow: .32s;--dur-slower: .46s}@keyframes fadeUp{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:translate3d(0,12px,0) scale(.97)}to{opacity:1;transform:none}}@keyframes slideInRight{0%{opacity:0;transform:translate3d(24px,0,0)}to{opacity:1;transform:none}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes drawDash{0%{stroke-dashoffset:var(--dash-from)}}@keyframes pulseSoft{0%,to{opacity:1}50%{opacity:.45}}.anim-fade-up{animation:fadeUp var(--dur-slow) var(--ease-out) both}.anim-fade-in{animation:fadeIn var(--dur-base) var(--ease-out) both}.stagger>*{animation:fadeUp var(--dur-slow) var(--ease-out) both}.stagger>*:nth-child(1){animation-delay:0ms}.stagger>*:nth-child(2){animation-delay:40ms}.stagger>*:nth-child(3){animation-delay:80ms}.stagger>*:nth-child(4){animation-delay:.12s}.stagger>*:nth-child(5){animation-delay:.16s}.stagger>*:nth-child(6){animation-delay:.2s}.stagger>*:nth-child(n+7){animation-delay:.23s}.page-enter{animation:pageIn var(--dur-slow) var(--ease-out) both}@keyframes pageIn{0%{opacity:0;transform:translate3d(0,8px,0)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: no-preference){html{scroll-behavior:smooth}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0ms!important;scroll-behavior:auto!important}}.shell{display:flex;min-height:100vh;background:var(--bg);background-image:var(--bg-grad)}.sidebar{width:246px;flex:0 0 246px;background:var(--sidebar-bg);border-right:1px solid var(--sidebar-border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh;transition:width .24s cubic-bezier(.4,0,.2,1),flex-basis .24s cubic-bezier(.4,0,.2,1);z-index:40}.sidebar.collapsed{width:68px;flex-basis:68px}.sidebar-brand{display:flex;align-items:center;gap:10px;height:60px;padding:0 16px;border-bottom:1px solid var(--sidebar-border);flex:0 0 auto;overflow:hidden}.brand-mark{width:30px;height:30px;flex:0 0 30px;border-radius:9px;background:linear-gradient(135deg,#6366f1,#4f46e5 55%,#7c3aed);display:grid;place-items:center;box-shadow:0 3px 10px #4f46e573}.brand-text{display:flex;flex-direction:column;line-height:1.15;white-space:nowrap}.brand-text b{color:#fff;font-size:15px;font-weight:650;letter-spacing:-.02em}.brand-text span{color:var(--sidebar-text);font-size:10px;letter-spacing:.09em;text-transform:uppercase}.sidebar-scroll{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;padding:12px 10px}.sidebar-scroll::-webkit-scrollbar-thumb{background:#2a3145;border-color:var(--sidebar-bg)}.nav-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#5d6780;padding:12px 10px 6px;font-weight:600;white-space:nowrap}.nav-item{display:flex;align-items:center;gap:11px;padding:9px 10px;margin-bottom:2px;border-radius:8px;color:var(--sidebar-text);font-size:13.5px;font-weight:500;cursor:pointer;position:relative;white-space:nowrap;overflow:hidden;transition:background .16s ease,color .16s ease,transform .16s ease;border:none;background:none;width:100%;text-align:left}.nav-item svg{flex:0 0 18px}.nav-item:hover{background:#ffffff0e;color:#d6dbe6}.nav-item.active{background:linear-gradient(90deg,#6366f138,#6366f10f);color:var(--sidebar-text-active)}.nav-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:18px;border-radius:0 3px 3px 0;background:#818cf8}.nav-item .nav-badge{margin-left:auto;font-size:10.5px;font-weight:600;background:#ffffff1a;color:#c3cad8;padding:1px 6px;border-radius:20px}.sidebar.collapsed .nav-item{justify-content:center;padding:10px 0}.sidebar.collapsed .nav-label{text-align:center;padding:12px 0 6px;font-size:9px}.sidebar-foot{flex:0 0 auto;border-top:1px solid var(--sidebar-border);padding:10px}.side-user{display:flex;align-items:center;gap:10px;padding:8px;border-radius:9px;overflow:hidden;white-space:nowrap;transition:background .16s ease}.side-user:hover{background:#ffffff0d}.side-user-meta{min-width:0}.side-user-meta b{display:block;color:#e9ecf3;font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis}.side-user-meta span{display:block;color:#6f7996;font-size:11px;overflow:hidden;text-overflow:ellipsis}.main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column}.topbar{height:60px;flex:0 0 60px;display:flex;align-items:center;gap:14px;padding:0 22px;background:color-mix(in srgb,var(--surface) 82%,transparent);-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:30}.topbar-title{min-width:0}.topbar-title h1{font-size:16px;font-weight:650;letter-spacing:-.02em}.topbar-title p{font-size:12px;color:var(--text-3);margin-top:1px}.topbar-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.icon-btn{width:34px;height:34px;border-radius:8px;display:grid;place-items:center;background:transparent;border:1px solid transparent;color:var(--text-2);cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease}.icon-btn:hover{background:var(--surface-3);color:var(--text);border-color:var(--border)}.icon-btn:active{transform:scale(.94)}.page{padding:20px 22px 40px;max-width:1560px;width:100%;margin:0 auto}.page-head{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:16px}.page-head .grow{flex:1 1 260px;min-width:0}.page-head h2{font-size:18px;letter-spacing:-.02em}.page-head p{font-size:12.5px;color:var(--text-3);margin-top:2px}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow-xs)}.card-head{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--border)}.card-head h3{font-size:13.5px;font-weight:620}.card-head p{font-size:11.5px;color:var(--text-3);margin-top:1px}.card-head .spacer{margin-left:auto}.card-body{padding:16px}.card-body.tight{padding:12px}.card-body.flush{padding:0}.grid{display:grid;gap:14px}.grid.kpis{grid-template-columns:repeat(auto-fit,minmax(196px,1fr))}.grid.c2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.grid.c3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.split{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:14px}@media (max-width: 1100px){.split{grid-template-columns:1fr}}.row{display:flex;align-items:center;gap:10px}.row.wrap{flex-wrap:wrap}.row .spacer{margin-left:auto}.stack{display:flex;flex-direction:column;gap:14px}.stat{position:relative;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 15px;box-shadow:var(--shadow-xs);transition:transform .18s cubic-bezier(.16,1,.3,1),box-shadow .18s ease,border-color .18s ease}.stat:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.stat:after{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:linear-gradient(90deg,var(--accent, var(--brand)),transparent 75%);opacity:.85}.stat-top{display:flex;align-items:center;gap:9px;margin-bottom:9px}.stat-icon{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;background:var(--accent-soft, var(--brand-soft));color:var(--accent, var(--brand))}.stat-label{font-size:11.5px;color:var(--text-3);font-weight:550;letter-spacing:.01em}.stat-value{font-size:25px;font-weight:660;letter-spacing:-.03em;line-height:1.1;font-variant-numeric:tabular-nums}.stat-value .suffix{font-size:14px;color:var(--text-3);font-weight:550;margin-left:1px}.stat-foot{display:flex;align-items:center;gap:6px;margin-top:7px;font-size:11.5px;color:var(--text-3)}.delta{display:inline-flex;align-items:center;gap:2px;font-weight:600}.delta.up{color:var(--success)}.delta.down{color:var(--danger)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:34px;padding:0 13px;border-radius:8px;border:1px solid transparent;font-size:13px;font-weight:550;letter-spacing:-.005em;cursor:pointer;white-space:nowrap;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .12s ease}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:focus-visible{outline:none;box-shadow:var(--ring)}.btn.primary{background:var(--brand);color:#fff;box-shadow:0 1px 2px #10182824}.btn.primary:hover:not(:disabled){background:var(--brand-hover)}.btn.primary:active:not(:disabled){background:var(--brand-press)}.btn.secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong);box-shadow:var(--shadow-xs)}.btn.secondary:hover:not(:disabled){background:var(--surface-3)}.btn.ghost{background:transparent;color:var(--text-2)}.btn.ghost:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.btn.danger{background:var(--danger);color:#fff}.btn.danger:hover:not(:disabled){filter:brightness(1.07)}.btn.subtle-danger{background:var(--danger-soft);color:var(--danger);border-color:transparent}.btn.subtle-danger:hover:not(:disabled){background:var(--danger);color:#fff}.btn.sm{height:29px;padding:0 10px;font-size:12px;border-radius:7px}.btn.xs{height:25px;padding:0 8px;font-size:11.5px;border-radius:6px;gap:4px}.btn.block{width:100%}.btn.lg{height:40px;padding:0 18px;font-size:14px;border-radius:9px}.btn-group{display:inline-flex;background:var(--surface-3);border-radius:8px;padding:3px;gap:2px;border:1px solid var(--border)}.btn-group button{height:27px;padding:0 11px;border:none;background:transparent;border-radius:6px;font-size:12.5px;font-weight:550;color:var(--text-2);cursor:pointer;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.btn-group button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-xs)}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field>label{font-size:12px;font-weight:550;color:var(--text-2);display:flex;align-items:center;gap:4px}.field>label .req{color:var(--danger)}.field .hint{font-size:11px;color:var(--text-3)}.field .err{font-size:11.5px;color:var(--danger);display:flex;align-items:center;gap:4px}.input,.select,.textarea{width:100%;height:34px;padding:0 11px;background:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:8px;font-size:13px;outline:none;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease}.textarea{height:auto;min-height:76px;padding:8px 11px;resize:vertical;line-height:1.5}.input::placeholder,.textarea::placeholder{color:var(--text-3)}.input:hover,.select:hover,.textarea:hover{border-color:var(--text-3)}.input:focus,.select:focus,.textarea:focus{border-color:var(--brand);box-shadow:var(--ring)}.input:disabled,.select:disabled,.textarea:disabled{background:var(--surface-3);color:var(--text-2);cursor:not-allowed}.input.invalid,.select.invalid{border-color:var(--danger)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;padding-right:30px;background-image: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='%238b94a6' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.input-icon{position:relative;display:flex;align-items:center}.input-icon>svg{position:absolute;left:10px;color:var(--text-3);pointer-events:none}.input-icon .input{padding-left:32px}.input-icon .trailing{position:absolute;right:6px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.form-grid .full{grid-column:1 / -1}@media (max-width: 640px){.form-grid{grid-template-columns:1fr}}.switch{display:inline-flex;align-items:center;gap:9px;cursor:pointer;-webkit-user-select:none;user-select:none}.switch input{display:none}.switch .track{width:36px;height:20px;border-radius:20px;background:var(--border-strong);position:relative;transition:background .2s ease}.switch .track:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:var(--shadow-sm);transition:transform .2s cubic-bezier(.4,0,.2,1)}.switch input:checked+.track{background:var(--brand)}.switch input:checked+.track:after{transform:translate(16px)}.combo{position:relative}.combo-control{display:flex;align-items:center;gap:8px;height:34px;padding:0 10px;background:var(--surface);border:1px solid var(--border-strong);border-radius:8px;cursor:pointer;font-size:13px;transition:border-color .15s ease,box-shadow .15s ease}.combo-control:hover{border-color:var(--text-3)}.combo.open .combo-control{border-color:var(--brand);box-shadow:var(--ring)}.combo-control .placeholder{color:var(--text-3)}.combo-control .chevron{margin-left:auto;color:var(--text-3);transition:transform .2s ease}.combo.open .combo-control .chevron{transform:rotate(180deg)}.combo-panel{position:absolute;z-index:60;top:calc(100% + 5px);left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-lg);overflow:hidden;animation:scaleIn .16s cubic-bezier(.16,1,.3,1) both}.combo-search{display:flex;align-items:center;gap:7px;padding:8px 10px;border-bottom:1px solid var(--border)}.combo-search input{flex:1;border:none;outline:none;background:transparent;font-size:13px}.combo-list{max-height:250px;overflow-y:auto;padding:5px}.combo-option{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:7px;cursor:pointer;transition:background .12s ease}.combo-option:hover,.combo-option.cursor{background:var(--surface-3)}.combo-option.selected{background:var(--brand-soft)}.combo-option .code{font-size:11.5px;font-weight:600;color:var(--brand);background:var(--brand-soft);padding:1px 6px;border-radius:5px;flex:0 0 auto}.combo-option .who{min-width:0}.combo-option .who b{display:block;font-size:13px;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combo-option .who span{display:block;font-size:11px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combo-empty{padding:22px 12px;text-align:center;color:var(--text-3);font-size:12.5px}.badge{display:inline-flex;align-items:center;gap:5px;height:21px;padding:0 8px;border-radius:6px;font-size:11.5px;font-weight:550;white-space:nowrap;background:var(--neutral-soft);color:var(--text-2)}.badge .dot{width:5px;height:5px;border-radius:50%;background:currentColor}.badge.success{background:var(--success-soft);color:var(--success)}.badge.warn{background:var(--warn-soft);color:var(--warn)}.badge.danger{background:var(--danger-soft);color:var(--danger)}.badge.info{background:var(--info-soft);color:var(--info)}.badge.brand{background:var(--brand-soft);color:var(--brand)}.badge.outline{background:transparent;border:1px solid var(--border-strong);color:var(--text-2)}.avatar{flex:0 0 auto;border-radius:50%;display:grid;place-items:center;font-weight:600;color:#fff;letter-spacing:-.02em;background:linear-gradient(135deg,#6366f1,#4f46e5);-webkit-user-select:none;user-select:none}.progress{height:6px;border-radius:20px;background:var(--surface-3);overflow:hidden;width:100%}.progress>i{display:block;height:100%;border-radius:20px;background:linear-gradient(90deg,var(--brand),#818cf8);transition:width .7s cubic-bezier(.16,1,.3,1)}.progress.success>i{background:linear-gradient(90deg,#16a34a,#4ade80)}.progress.warn>i{background:linear-gradient(90deg,#d97706,#fbbf24)}.progress.danger>i{background:linear-gradient(90deg,#dc2626,#f87171)}.progress.slim{height:4px}.table-wrap{width:100%;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;-webkit-overflow-scrolling:touch}table.data{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}table.data thead th{position:sticky;top:0;z-index:2;background:var(--surface-2);text-align:left;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);padding:9px 12px;border-bottom:1px solid var(--border);white-space:nowrap;-webkit-user-select:none;user-select:none}table.data thead th.sortable{transition:color .15s ease,background .15s ease}table.data thead th.sortable:hover{color:var(--text);background:var(--surface-3)}table.data thead th .th-inner{display:flex;align-items:center;gap:4px}table.data thead th .th-label{display:inline-flex;align-items:center;gap:4px;cursor:pointer;flex:1;min-width:0}table.data th.num .th-inner{justify-content:flex-end}table.data th.num .th-label{flex:0 1 auto}table.data tbody td{padding:9px 12px;border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text)}table.data tbody tr{transition:background .12s ease}table.data tbody tr:hover{background:var(--surface-2)}table.data tbody tr:last-child td{border-bottom:none}table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums}table.data .muted{color:var(--text-3)}table.data .nowrap{white-space:nowrap}table.data .actions{display:flex;gap:4px;justify-content:flex-end}.filter-row td{padding:7px 8px!important;background:var(--surface-2);border-bottom:1px solid var(--border)!important}.filter-row .input,.filter-row .select{height:28px;font-size:12px;border-radius:6px}.table-toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:11px 13px;border-bottom:1px solid var(--border);background:var(--surface);border-radius:12px 12px 0 0}.table-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 13px;border-top:1px solid var(--border);font-size:12.5px;color:var(--text-3)}.pager{display:flex;align-items:center;gap:3px;margin-left:auto}.pager button{min-width:28px;height:28px;padding:0 7px;border-radius:7px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-size:12.5px;cursor:pointer;transition:background .14s ease,color .14s ease,border-color .14s ease}.pager button:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.pager button.active{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}.pager button:disabled{opacity:.4;cursor:not-allowed}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#090c1480;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto;animation:fadeIn .18s ease both}.modal{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-lg);animation:scaleIn .22s cubic-bezier(.16,1,.3,1) both;margin:auto 0}.modal.sm{max-width:430px}.modal.md{max-width:620px}.modal.lg{max-width:860px}.modal-head{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;border-bottom:1px solid var(--border)}.modal-head h3{font-size:15px;font-weight:620}.modal-head p{font-size:12.5px;color:var(--text-3);margin-top:2px}.modal-body{padding:18px}.modal-foot{display:flex;align-items:center;gap:9px;padding:13px 18px;border-top:1px solid var(--border);background:var(--surface-2);border-radius:0 0 14px 14px}.modal-foot .spacer{margin-left:auto}.toast-host{position:fixed;right:18px;bottom:18px;z-index:200;display:flex;flex-direction:column;gap:9px;max-width:380px}.toast{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;border-radius:10px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);animation:slideInRight .24s cubic-bezier(.16,1,.3,1) both}.toast .ic{flex:0 0 auto;margin-top:1px}.toast.success .ic{color:var(--success)}.toast.error .ic{color:var(--danger)}.toast.info .ic{color:var(--info)}.toast b{display:block;font-size:13px;font-weight:600}.toast span{display:block;font-size:12.5px;color:var(--text-2);margin-top:1px}.skeleton{border-radius:8px;background:linear-gradient(90deg,var(--surface-3) 25%,var(--surface-2) 37%,var(--surface-3) 63%);background-size:800px 100%;animation:shimmer 1.4s linear infinite}.empty{display:flex;flex-direction:column;align-items:center;gap:9px;padding:46px 20px;text-align:center}.empty .ic{width:42px;height:42px;border-radius:12px;background:var(--surface-3);color:var(--text-3);display:grid;place-items:center}.empty b{font-size:14px;font-weight:600}.empty p{font-size:12.5px;color:var(--text-3);max-width:340px}.spinner{width:15px;height:15px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .65s linear infinite}.divider{height:1px;background:var(--border);border:none;margin:0}.kv{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;font-size:13px}.kv+.kv{border-top:1px solid var(--border)}.kv .k{color:var(--text-3);font-size:12.5px}.kv .v{font-weight:550}.pw-chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 7px;border-radius:6px;background:var(--surface-3);border:1px solid var(--border);font-size:12.5px;font-weight:600;letter-spacing:.06em}.pw-chip.hidden-value{letter-spacing:.18em;color:var(--text-3)}.list-item{display:flex;align-items:center;gap:11px;padding:10px 16px;transition:background .14s ease}.list-item+.list-item{border-top:1px solid var(--border)}.list-item:hover{background:var(--surface-2)}.list-item .who{min-width:0;flex:1}.list-item .who b{display:block;font-size:13px;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-item .who span{display:block;font-size:11.5px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank{width:22px;height:22px;border-radius:6px;flex:0 0 22px;display:grid;place-items:center;font-size:11.5px;font-weight:650;background:var(--surface-3);color:var(--text-2)}.rank.r1{background:linear-gradient(135deg,#f5b942,#e09b1a);color:#3b2a05}.rank.r2{background:linear-gradient(135deg,#cbd3de,#a8b3c2);color:#2b323c}.rank.r3{background:linear-gradient(135deg,#e0a173,#c67f4c);color:#37200f}.auth-wrap{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr;background:var(--surface)}@media (max-width: 940px){.auth-wrap{grid-template-columns:1fr}.auth-aside{display:none!important}}.auth-aside{position:relative;overflow:hidden;background:linear-gradient(150deg,#171a3a,#1e1b4b 40%,#312e81);padding:46px;display:flex;flex-direction:column;color:#fff}.auth-aside:before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(129,140,248,.38),transparent 62%);top:-160px;right:-140px}.auth-aside:after{content:"";position:absolute;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(168,85,247,.26),transparent 62%);bottom:-150px;left:-110px}.auth-aside>*{position:relative;z-index:1}.auth-tag{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:#a5b4fc;font-weight:600}.auth-aside h2{font-size:32px;line-height:1.2;letter-spacing:-.03em;margin:14px 0 12px;font-weight:650}.auth-aside>p{color:#c7cbe8;font-size:14px;max-width:400px;line-height:1.6}.auth-feats{margin-top:34px;display:flex;flex-direction:column;gap:15px}.auth-feat{display:flex;gap:12px;align-items:flex-start}.auth-feat .ic{width:32px;height:32px;flex:0 0 32px;border-radius:9px;background:#ffffff1a;border:1px solid rgba(255,255,255,.14);display:grid;place-items:center;color:#c7d2fe}.auth-feat b{display:block;font-size:13.5px;font-weight:600}.auth-feat span{display:block;font-size:12.5px;color:#a9afd4;margin-top:1px}.auth-metrics{margin-top:auto;display:flex;gap:30px;padding-top:34px}.auth-metric b{display:block;font-size:22px;font-weight:660;letter-spacing:-.02em}.auth-metric span{display:block;font-size:11.5px;color:#a9afd4;margin-top:1px}.auth-panel{display:flex;align-items:center;justify-content:center;padding:40px 24px;background:var(--surface)}.auth-card{width:100%;max-width:384px;animation:fadeUp .5s cubic-bezier(.16,1,.3,1) both}.auth-card h1{font-size:22px;letter-spacing:-.03em}.auth-card>p{font-size:13px;color:var(--text-3);margin-top:5px}.auth-form{display:flex;flex-direction:column;gap:14px;margin-top:26px}.auth-error{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:9px;background:var(--danger-soft);color:var(--danger);font-size:12.5px;animation:fadeUp .25s ease both}.demo-box{margin-top:22px;border:1px dashed var(--border-strong);border-radius:10px;padding:12px 13px;background:var(--surface-2)}.demo-box .t{font-size:11px;font-weight:620;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);margin-bottom:8px}.demo-row{display:flex;align-items:center;gap:8px;width:100%;padding:6px 7px;border-radius:7px;border:none;background:transparent;cursor:pointer;text-align:left;transition:background .14s ease}.demo-row:hover{background:var(--surface-3)}.demo-row .who{flex:1;min-width:0}.demo-row .who b{display:block;font-size:12.5px;font-weight:550}.demo-row .who span{display:block;font-size:11px;color:var(--text-3)}.chart-legend{display:flex;flex-wrap:wrap;gap:10px 16px}.chart-legend .li{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-2)}.chart-legend .sw{width:9px;height:9px;border-radius:3px}.chart-legend .li b{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}.donut-center{text-align:center}.donut-center b{display:block;font-size:23px;font-weight:660;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.donut-center span{display:block;font-size:11px;color:var(--text-3);margin-top:-2px}.bar-track{flex:1;height:7px;border-radius:20px;background:var(--surface-3);overflow:hidden}.bar-track>i{display:block;height:100%;border-radius:20px;transition:width .8s cubic-bezier(.16,1,.3,1)}.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.cal-head{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);text-align:center;padding-bottom:3px}.cal-cell{min-height:62px;border-radius:8px;padding:6px;border:1px solid var(--border);background:var(--surface-2);display:flex;flex-direction:column;gap:3px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.cal-cell:not(.blank):hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.cal-cell.blank{background:transparent;border-color:transparent}.cal-cell.today{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand) inset}.cal-day{font-size:11.5px;font-weight:600;color:var(--text-2)}.cal-cell.today .cal-day{color:var(--brand)}.cal-pill{font-size:10px;font-weight:600;padding:1px 5px;border-radius:4px;align-self:flex-start}.cal-pill.due{background:var(--info-soft);color:var(--info)}.cal-pill.done{background:var(--success-soft);color:var(--success)}.cal-pill.late{background:var(--danger-soft);color:var(--danger)}.kanban{display:grid;grid-template-columns:repeat(4,minmax(230px,1fr));gap:12px;overflow-x:auto;padding-bottom:6px}@media (max-width: 1080px){.kanban{grid-template-columns:repeat(4,minmax(230px,1fr))}}.kcol{background:var(--surface-2);border:1px solid var(--border);border-radius:11px;display:flex;flex-direction:column;min-width:0}.kcol-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border)}.kcol-head b{font-size:12.5px;font-weight:620}.kcol-head .n{margin-left:auto;font-size:11px;font-weight:600;color:var(--text-3);background:var(--surface-3);padding:1px 7px;border-radius:20px}.kcol-body{padding:9px;display:flex;flex-direction:column;gap:8px;max-height:620px;overflow-y:auto}.kcard{background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:10px;cursor:pointer;transition:transform .16s cubic-bezier(.16,1,.3,1),box-shadow .16s ease,border-color .16s ease}.kcard:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.kcard .title{font-size:12.8px;font-weight:550;line-height:1.35;margin-bottom:7px}.kcard .meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px;color:var(--text-3)}.goal-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px;transition:transform .18s cubic-bezier(.16,1,.3,1),box-shadow .18s ease,border-color .18s ease;display:flex;flex-direction:column;gap:10px}.goal-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}.goal-card .gt{font-size:13.5px;font-weight:600;letter-spacing:-.01em;line-height:1.35}.goal-card .gd{font-size:12px;color:var(--text-3);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.goal-metric{display:flex;align-items:baseline;gap:5px}.goal-metric b{font-size:17px;font-weight:660;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.goal-metric span{font-size:11.5px;color:var(--text-3)}.tabs{display:flex;gap:3px;border-bottom:1px solid var(--border);margin-bottom:18px;overflow-x:auto}.tab{padding:9px 13px;border:none;background:none;cursor:pointer;font-size:13px;font-weight:550;color:var(--text-3);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;transition:color .15s ease,border-color .15s ease}.tab:hover{color:var(--text)}.tab.active{color:var(--brand);border-bottom-color:var(--brand)}.upload-zone{border:1.5px dashed var(--border-strong);border-radius:11px;padding:26px 18px;text-align:center;cursor:pointer;transition:border-color .16s ease,background .16s ease}.upload-zone:hover,.upload-zone.drag{border-color:var(--brand);background:var(--brand-soft)}.upload-zone .ic{width:40px;height:40px;margin:0 auto 9px;border-radius:11px;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center}.upload-zone b{display:block;font-size:13.5px;font-weight:600}.upload-zone p{font-size:12px;color:var(--text-3);margin-top:3px}@keyframes popIn{0%{opacity:0;transform:translateY(-4px) scale(.97)}to{opacity:1;transform:none}}.anim-pop{animation:popIn .15s cubic-bezier(.16,1,.3,1) both}.menu-anchor{display:inline-flex}.menu-panel{position:fixed;z-index:90;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 30px #0f142324,0 2px 6px #0f14230f;padding:5px;overflow:hidden}.menu-header{padding:7px 9px 6px;font-size:10.5px;font-weight:620;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}.menu-sep{height:1px;background:var(--border);margin:4px 0}.menu-item{width:100%;display:flex;align-items:flex-start;gap:9px;padding:8px 9px;border:0;border-radius:7px;background:transparent;text-align:left;cursor:pointer;color:var(--text);transition:background .12s ease}.menu-item:hover:not(:disabled){background:var(--surface-3)}.menu-item:disabled{opacity:.45;cursor:not-allowed}.menu-item.danger{color:var(--danger)}.menu-item.active{background:var(--brand-soft);color:var(--brand)}.menu-item .mi-ic{flex:0 0 14px;margin-top:2px;opacity:.85}.menu-item .mi-body{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.menu-item .mi-label{font-size:13px;font-weight:530}.menu-item .mi-desc{font-size:11px;color:var(--text-3);line-height:1.35}.menu-item.active .mi-desc{color:var(--brand);opacity:.75}.menu-item .mi-tick{width:6px;height:6px;border-radius:50%;background:currentColor;margin-top:6px;flex:0 0 6px}.col-filter{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:2px;height:20px;min-width:20px;padding:0 3px;border:0;border-radius:5px;background:transparent;color:var(--text-3);cursor:pointer;opacity:.45;transition:opacity .14s ease,color .14s ease,background .14s ease}th:hover .col-filter{opacity:1}.col-filter:hover{color:var(--brand);background:var(--brand-soft)}.col-filter.on{opacity:1;color:var(--brand);background:var(--brand-soft)}.col-filter .cf-count{font-style:normal;font-size:9.5px;font-weight:700;line-height:1;padding:1px 3px;border-radius:4px;background:var(--brand);color:#fff}.cf-panel{position:fixed;z-index:95;width:236px;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 14px 34px #0f142329,0 2px 6px #0f14230f;display:flex;flex-direction:column;overflow:hidden}.cf-head{padding:9px 11px 7px;font-size:10.5px;font-weight:620;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);border-bottom:1px solid var(--border)}.cf-search{display:flex;align-items:center;gap:7px;padding:8px 10px;border-bottom:1px solid var(--border);color:var(--text-3)}.cf-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-size:12.5px;color:var(--text)}.cf-all,.cf-opt{width:100%;display:flex;align-items:center;gap:8px;padding:6px 11px;border:0;background:transparent;cursor:pointer;font-size:12.5px;color:var(--text);text-align:left;transition:background .1s ease}.cf-all{border-bottom:1px solid var(--border);font-weight:550;color:var(--text-2)}.cf-all:hover,.cf-opt:hover{background:var(--surface-3)}.cf-all .cf-n{margin-left:auto;font-size:11px;color:var(--text-3)}.cf-box{flex:0 0 15px;width:15px;height:15px;border-radius:4px;border:1.5px solid var(--border-strong);display:inline-flex;align-items:center;justify-content:center;color:#fff;transition:background .12s ease,border-color .12s ease}.cf-box.checked{background:var(--brand);border-color:var(--brand)}.cf-list{max-height:210px;overflow-y:auto;padding:3px 0}.cf-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cf-empty{padding:16px 11px;text-align:center;font-size:12px;color:var(--text-3)}.cf-foot{display:flex;align-items:center;gap:6px;padding:8px 10px;border-top:1px solid var(--border);background:var(--surface-2)}.cf-foot .spacer{margin-left:auto}.cf-btn{height:27px;padding:0 11px;border-radius:6px;font-size:12px;font-weight:550;border:1px solid var(--border);background:var(--surface);color:var(--text-2);cursor:pointer;transition:background .12s ease,color .12s ease}.cf-btn:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.cf-btn:disabled{opacity:.45;cursor:not-allowed}.cf-btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.cf-btn.primary:hover{background:var(--brand-hover);color:#fff}.filter-chip{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 8px;border-radius:6px;border:1px solid var(--brand-soft-2);background:var(--brand-soft);color:var(--brand);font-size:11.5px;cursor:pointer;transition:border-color .12s ease}.filter-chip:hover{border-color:var(--brand)}.filter-chip b{font-weight:620}.filter-chip span{opacity:.8;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(132px,1fr));gap:10px;margin-bottom:14px}.fcard{position:relative;display:flex;flex-direction:column;gap:7px;padding:11px 13px;border-radius:10px;cursor:pointer;text-align:left;background:var(--surface);border:1px solid var(--border);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.fcard:before{content:"";position:absolute;top:0;bottom:0;left:0;width:3px;border-radius:10px 0 0 10px;background:var(--accent);opacity:.75}.fcard:hover{transform:translateY(-2px);box-shadow:0 6px 18px #0f142314;border-color:var(--border-strong)}.fcard.on{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}.fcard.on:before{opacity:1}.fc-top{display:flex;align-items:center;gap:6px;min-width:0}.fc-ic{display:inline-flex;color:var(--accent);flex:0 0 auto}.fc-label{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fc-value{font-size:21px;font-weight:650;letter-spacing:-.02em;color:var(--text);font-variant-numeric:tabular-nums}.status-btn{display:inline-flex;align-items:center;gap:5px;height:27px;padding:0 9px;border-radius:7px;border:1px solid var(--border);background:var(--surface);font-size:11.5px;font-weight:550;color:var(--text-2);cursor:pointer;white-space:nowrap;transition:border-color .14s ease,color .14s ease,background .14s ease}.status-btn:hover:not(:disabled),.status-btn.open{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}.status-btn:disabled{opacity:.5;cursor:not-allowed}.status-btn .cv{transition:transform .16s ease;opacity:.6}.status-btn.open .cv{transform:rotate(180deg)}.status-btn.lg{height:34px;padding:0 12px;font-size:13px;border-radius:8px}.btn.split .cv{transition:transform .16s ease;opacity:.85;margin-left:-1px}.btn.split.open .cv{transform:rotate(180deg)}.btn .btn-badge{font-style:normal;min-width:17px;height:17px;padding:0 5px;margin-left:2px;display:inline-flex;align-items:center;justify-content:center;border-radius:9px;background:var(--danger);color:#fff;font-size:10.5px;font-weight:700}.cell-title{font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-sub{font-size:11px;color:var(--text-3);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tat{font-variant-numeric:tabular-nums;font-weight:550;color:var(--text-2)}.tat.over{color:var(--warn)}.tat.late{color:var(--danger);font-weight:650}.locked-input{display:flex;align-items:center;gap:8px;height:36px;padding:0 11px;border-radius:8px;border:1px solid var(--border);background:var(--surface-3);color:var(--text-2);font-size:13px}.locked-input svg{color:var(--text-3);flex:0 0 auto}.approve-list{display:flex;flex-direction:column;gap:10px}.approve-row{display:flex;gap:14px;align-items:flex-start;padding:13px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2)}.ar-main{flex:1;min-width:0}.ar-owner{font-size:12.5px;font-weight:600}.ar-meta{font-size:11px;color:var(--text-3)}.ar-title{font-size:14px;font-weight:600;letter-spacing:-.01em;margin-bottom:3px}.ar-desc{font-size:12.5px;color:var(--text-2);line-height:1.55;margin-bottom:8px}.ar-facts{display:flex;flex-wrap:wrap;gap:16px;font-size:11.5px;color:var(--text-2)}.ar-facts span{display:flex;flex-direction:column;gap:1px}.ar-facts b{font-size:10px;font-weight:620;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3)}.ar-reject{display:flex;align-items:center;gap:7px;margin-top:11px;padding-top:11px;border-top:1px dashed var(--border-strong)}.ar-reject .input{height:30px;font-size:12.5px;flex:1}.ar-actions{display:flex;flex-direction:column;gap:6px;flex:0 0 auto}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 316px;gap:14px;align-items:start}.detail-main,.detail-side{display:flex;flex-direction:column;gap:14px;min-width:0}.detail-title{font-size:20px;font-weight:650;letter-spacing:-.02em;line-height:1.3}.detail-desc{font-size:13.5px;color:var(--text-2);line-height:1.65;margin-top:8px}.detail-progress{margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}.review-note{display:flex;flex-direction:column;gap:3px;margin-top:12px;padding:10px 12px;border-radius:8px;background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn) 25%,transparent)}.review-note b{font-size:10.5px;font-weight:620;letter-spacing:.05em;text-transform:uppercase;color:var(--warn)}.review-note span{font-size:12.5px;color:var(--text-2)}.linked-goal{display:inline-flex;align-items:center;gap:7px;margin-top:12px;height:30px;padding:0 11px;border-radius:7px;cursor:pointer;border:1px solid var(--border);background:var(--surface-2);font-size:12.5px;color:var(--text-2);transition:border-color .14s ease,color .14s ease,background .14s ease}.linked-goal:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}.tat-grid{display:flex;flex-direction:column;gap:2px}.tat-cell{display:flex;align-items:center;justify-content:space-between;padding:9px 0;border-bottom:1px solid var(--border)}.tat-cell:last-child{border-bottom:none}.tat-cell span{font-size:12px;color:var(--text-3)}.tat-cell b{font-size:13.5px;font-weight:620;font-variant-numeric:tabular-nums}.tat-cell b.over{color:var(--warn)}.tat-cell b.late{color:var(--danger)}.fact-list{display:flex;flex-direction:column}.fact{display:flex;align-items:center;gap:12px;padding:7px 0;border-bottom:1px solid var(--border)}.fact:last-child{border-bottom:none}.fact-k{flex:0 0 106px;font-size:11.5px;color:var(--text-3)}.fact-v{flex:1;min-width:0;font-size:12.5px;font-weight:500;text-align:right;overflow:hidden;text-overflow:ellipsis}.fact-v .row{justify-content:flex-end}.mini-list{display:flex;flex-direction:column}.mini-row{display:flex;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px solid var(--border);font-size:12.5px;cursor:pointer;transition:background .12s ease}.mini-row:last-child{border-bottom:none}.mini-row:hover{background:var(--surface-2)}@media (max-width: 1100px){.detail-grid{grid-template-columns:minmax(0,1fr)}.approve-row{flex-direction:column}.ar-actions{flex-direction:row;width:100%}}.inline-note{display:flex;align-items:flex-start;gap:9px;padding:10px 12px;border-radius:8px;font-size:12.5px;line-height:1.55;color:var(--text-2);background:var(--surface-3);border:1px solid var(--border)}.inline-note svg{flex:0 0 14px;margin-top:2px}.inline-note b{font-weight:620;color:var(--text)}.inline-note.warn{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 30%,transparent)}.inline-note.warn svg{color:var(--warn)}.progress.slider{position:relative;height:10px;overflow:visible;cursor:pointer;touch-action:none;outline:none}.progress.slider>i{transition:width .12s ease}.progress.slider.saving{opacity:.75}.progress.slider .knob{position:absolute;top:50%;width:18px;height:18px;margin-left:-9px;border-radius:50%;background:var(--surface);border:2px solid var(--brand);box-shadow:0 2px 6px #0f14232e;transform:translateY(-50%);transition:left .12s ease,transform .14s ease}.progress.slider.dragging .knob{transition:none;transform:translateY(-50%) scale(1.15)}.progress.slider:hover .knob,.progress.slider:focus-visible .knob{transform:translateY(-50%) scale(1.12)}.progress.slider:focus-visible{box-shadow:var(--ring);border-radius:20px}.progress.slider.success .knob{border-color:var(--success)}.progress.slider.warn .knob{border-color:var(--warn)}.progress.slider .knob b{position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%);padding:2px 7px;border-radius:6px;background:var(--text);color:var(--surface);font-size:11px;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .14s ease}.progress.slider:hover .knob b,.progress.slider.dragging .knob b,.progress.slider:focus-visible .knob b{opacity:1}.sign-in-note{display:flex;align-items:flex-start;gap:9px;margin-top:22px;padding:11px 13px;border-radius:9px;background:var(--surface-2);border:1px solid var(--border);font-size:12px;line-height:1.55;color:var(--text-3)}.sign-in-note svg{flex:0 0 14px;margin-top:2px;color:var(--brand)}.sign-in-note b{color:var(--text-2);font-weight:600}.stars{display:inline-flex;align-items:center;gap:1px;color:var(--warn);line-height:1}.stars .star{display:inline-flex}.stars.interactive .star{cursor:pointer;transition:transform var(--dur-instant) var(--ease-spring)}.stars.interactive .star:hover{transform:scale(1.22)}.stars.busy{opacity:.5;pointer-events:none}.stars .star-value{margin-left:6px;font-size:11.5px;font-weight:650;color:var(--text-2);font-variant-numeric:tabular-nums}.stars.interactive:not(:hover) .star svg{opacity:.55}.stars.interactive .star svg{transition:opacity var(--dur-fast) var(--ease-out)}.rating-done{display:flex;flex-direction:column;gap:6px}.rating-meta{font-size:11.5px;color:var(--text-3)}.rating-note{font-size:12.5px;color:var(--text-2);line-height:1.55;padding:8px 10px;border-radius:7px;background:var(--surface-2);border:1px solid var(--border)}.rating-pick{display:flex;flex-direction:column;gap:8px}.rating-hint{font-size:12px;color:var(--text-3);line-height:1.55}.tab-bar{display:inline-flex;gap:3px;padding:3px;margin-bottom:14px;border-radius:9px;background:var(--surface-3);border:1px solid var(--border)}.tab-bar button{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 14px;border:0;border-radius:7px;background:transparent;color:var(--text-2);font-size:12.5px;font-weight:550;cursor:pointer;transition:background var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.tab-bar button:hover:not(.on){color:var(--text)}.tab-bar button.on{background:var(--surface);color:var(--brand);box-shadow:0 1px 3px #0f14231a}.work-link{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;margin-left:6px;border-radius:5px;color:var(--brand);background:var(--brand-soft);vertical-align:-3px;transition:transform var(--dur-instant) var(--ease-out),background var(--dur-fast) var(--ease-out)}.work-link:hover{transform:scale(1.14);background:var(--brand-soft-2)}.progress.slider.compact{height:8px}.progress.slider.compact .knob{width:14px;height:14px;margin-left:-7px;border-width:2px}.progress.slider.compact .knob b{font-size:10px;padding:1px 5px;bottom:calc(100% + 5px)}body.dragging-slider{-webkit-user-select:none;user-select:none;cursor:grabbing}body.dragging-slider *{cursor:grabbing!important}.remarks-block{display:flex;flex-direction:column}.remarks-label{font-size:11.5px;font-weight:600;color:var(--text-2);margin-bottom:5px}.remarks-label .req{color:var(--danger);margin-left:2px}.remarks-block .textarea{font-size:12.5px;min-height:76px}.rating-stars-row{margin-top:12px;padding-top:12px;border-top:1px dashed var(--border-strong);display:flex;flex-direction:column;gap:6px;transition:opacity var(--dur-base) var(--ease-out)}.rating-stars-row.locked{opacity:.45}.rating-stars-row.locked .stars{pointer-events:none}.remarks-shown{display:flex;flex-direction:column;gap:3px;padding:9px 11px;border-radius:8px;background:var(--surface-2);border:1px solid var(--border)}.remarks-shown b{font-size:10.5px;font-weight:620;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3)}.remarks-shown p{font-size:12.5px;color:var(--text-2);line-height:1.55}.notif-list{display:flex;flex-direction:column;gap:7px}.notif-row{display:flex;align-items:flex-start;gap:11px;width:100%;padding:11px 13px;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer;text-align:left;transition:transform var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.notif-row:hover{transform:translate3d(2px,0,0);border-color:var(--border-strong);box-shadow:0 4px 14px #0f14230f}.notif-row.unread{background:var(--brand-soft);border-color:var(--brand-soft-2)}.notif-ic{flex:0 0 30px;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--surface-3);color:var(--text-2)}.notif-ic.brand{background:var(--brand-soft-2);color:var(--brand)}.notif-ic.info{background:var(--info-soft);color:var(--info)}.notif-main{flex:1;min-width:0}.notif-title{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:570;color:var(--text)}.notif-dot{width:6px;height:6px;border-radius:50%;background:var(--brand);flex:0 0 6px}.notif-msg{font-size:12.3px;color:var(--text-2);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notif-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px;font-size:11px;color:var(--text-3)}.notif-actions{display:flex;align-items:center;gap:3px;flex:0 0 auto}.bm-link{display:inline-flex;align-items:center;gap:6px;max-width:100%;color:var(--brand);font-size:12.3px;transition:opacity var(--dur-fast) var(--ease-out)}.bm-link:hover{text-decoration:underline}.bm-link svg{flex:0 0 12px}.mail-status{display:flex;align-items:flex-start;gap:12px;padding:13px 14px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2)}.mail-status.live{background:var(--success-soft);border-color:color-mix(in srgb,var(--success) 28%,transparent)}.mail-status.off{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 28%,transparent)}.mail-status .ms-ic{flex:0 0 34px;width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--surface)}.mail-status.live .ms-ic{color:var(--success)}.mail-status.off .ms-ic{color:var(--warn)}.ms-title{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600}.ms-sub{font-size:11.5px;color:var(--text-3);margin-top:2px}.ms-sub b{color:var(--text-2)}.mail-toggles{display:flex;flex-direction:column;gap:8px}.mail-row{display:flex;align-items:center;gap:12px;padding:12px 13px;border:1px solid var(--border);border-radius:10px;background:var(--surface);transition:border-color var(--dur-base) var(--ease-out),opacity var(--dur-base) var(--ease-out)}.mail-row:hover{border-color:var(--border-strong)}.mail-row.off{opacity:.62}.mail-ic{flex:0 0 32px;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);transition:background var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out)}.mail-row.off .mail-ic{background:var(--surface-3);color:var(--text-3)}.mail-main{flex:1;min-width:0}.mail-label{font-size:13px;font-weight:600}.mail-desc{font-size:11.5px;color:var(--text-3);line-height:1.5;margin-top:1px}.mail-meta{font-size:10.5px;color:var(--text-3);margin-top:4px;opacity:.85}.switch{position:relative;display:inline-flex;flex:0 0 auto;cursor:pointer}.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.switch-track{width:40px;height:23px;border-radius:12px;background:var(--border-strong);display:inline-flex;align-items:center;padding:2px;transition:background var(--dur-base) var(--ease-out)}.switch-thumb{width:19px;height:19px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0f142347;transition:transform var(--dur-base) var(--ease-spring)}.switch input:checked+.switch-track{background:var(--brand)}.switch input:checked+.switch-track .switch-thumb{transform:translate(17px)}.switch input:focus-visible+.switch-track{box-shadow:var(--ring)}.switch.busy{opacity:.55;pointer-events:none}.email-conf{display:flex;flex-direction:column;gap:3px}.conf-box{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-2);cursor:pointer;-webkit-user-select:none;user-select:none;padding:2px 4px;border-radius:5px;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.conf-box:hover{background:var(--surface-3);color:var(--text)}.conf-box input{width:13px;height:13px;accent-color:var(--brand);cursor:pointer;margin:0;flex:0 0 13px}.conf-box input:disabled{opacity:.5;cursor:wait}.conf-box svg{flex:0 0 12px;opacity:.7}.conf-box:has(input:not(:checked)){color:var(--text-3);opacity:.72}.conf-box:has(input:not(:checked)) svg{opacity:.4}.auth-apps{margin-top:auto}.auth-apps-label{font-size:10.5px;font-weight:650;letter-spacing:.09em;text-transform:uppercase;color:#ffffff6b;margin-bottom:10px}.auth-apps-row{display:flex;flex-wrap:wrap;gap:8px}.auth-app{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 13px;border-radius:8px;border:1px solid rgba(255,255,255,.16);background:#ffffff0f;color:#ffffffe6;font-size:12.5px;font-weight:550;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.auth-app:hover{background:#ffffff21;border-color:#ffffff4d;transform:translateY(-1px)}.auth-app svg{opacity:.6}.auth-app.disabled{opacity:.42;cursor:default}.auth-app.disabled:hover{background:#ffffff0f;border-color:#ffffff29;transform:none}.fsel{display:flex;align-items:center;gap:6px;height:30px;padding:0 8px 0 10px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:12.5px;cursor:pointer;text-align:left;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.fsel:hover:not(:disabled){border-color:var(--border-strong)}.fsel.open{border-color:var(--brand);box-shadow:var(--ring)}.fsel:disabled{opacity:.5;cursor:not-allowed}.fsel.has-value{border-color:var(--brand-soft-2);background:var(--brand-soft);color:var(--brand);font-weight:550}.fsel-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fsel-chev{flex:0 0 13px;opacity:.5;transition:transform var(--dur-base) var(--ease-out)}.fsel.open .fsel-chev{transform:rotate(180deg)}.fsel-clear{flex:0 0 16px;display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:4px;background:color-mix(in srgb,var(--brand) 18%,transparent);transition:background var(--dur-fast) var(--ease-out)}.fsel-clear:hover{background:var(--brand);color:#fff}.fsel-panel{position:fixed;z-index:96;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:0 14px 34px #0f142329,0 2px 6px #0f14230f;display:flex;flex-direction:column;overflow:hidden;transform-origin:top center}.fsel-search{display:flex;align-items:center;gap:7px;padding:8px 10px;border-bottom:1px solid var(--border);color:var(--text-3)}.fsel-search input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-size:12.5px;color:var(--text)}.fsel-count{font-size:10.5px;color:var(--text-3);font-variant-numeric:tabular-nums}.fsel-list{max-height:260px;overflow-y:auto;padding:3px;overscroll-behavior:contain}.fsel-opt{width:100%;display:flex;align-items:center;gap:8px;padding:6px 8px;border:0;border-radius:7px;background:transparent;cursor:pointer;text-align:left;color:var(--text);transition:background var(--dur-instant) var(--ease-out)}.fsel-opt.cursor{background:var(--surface-3)}.fsel-opt.on{color:var(--brand);font-weight:550}.fsel-opt.all{color:var(--text-3)}.fsel-opt.all.on{color:var(--brand)}.fsel-opt-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.fsel-opt-label{font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fsel-opt-sub{font-size:10.5px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fsel-empty{padding:16px 10px;text-align:center;font-size:12px;color:var(--text-3)}.filter-bar.inline{padding:9px 11px;margin-bottom:10px;border-radius:10px;background:var(--surface-2)}.filter-bar .fb-spacer{margin-left:auto}.filter-bar{display:flex;align-items:flex-end;flex-wrap:wrap;gap:8px 10px;padding:10px 12px;margin-bottom:12px;border-radius:11px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-xs)}.fb-group{display:flex;flex-direction:column;gap:4px;min-width:0}.fb-group label{font-size:10.5px;font-weight:620;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3)}.fb-group .select,.fb-group .input{height:30px;min-width:124px;max-width:190px;font-size:12.5px}.fb-sep{width:1px;align-self:stretch;margin:2px 4px;background:var(--border)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(196px,1fr));gap:10px;margin-bottom:14px}@media (min-width: 1240px){.kpi-grid{grid-template-columns:1.15fr 1.15fr 1fr 1fr .85fr}}.kpi-card{position:relative;padding:11px 13px 9px;border-radius:12px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-xs);overflow:hidden;transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.kpi-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--accent);opacity:.85}.kpi-card:hover{transform:translate3d(0,-2px,0);box-shadow:0 8px 22px #0f142317}.kpi-head{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:620;letter-spacing:.05em;text-transform:uppercase;color:var(--text-3);margin-bottom:8px}.kpi-ic{display:inline-flex;width:24px;height:24px;border-radius:7px;align-items:center;justify-content:center;color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}.kpi-stats{display:flex;align-items:flex-end;gap:4px}.kpi-stats.single{justify-content:flex-start}.kpi-stat{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;padding:5px 6px;border:0;border-radius:8px;background:transparent;text-align:left;cursor:pointer;transition:background var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.kpi-stat:hover{background:var(--surface-3)}.kpi-stat:active{transform:scale(.96)}.kpi-stat b{font-size:20px;font-weight:660;letter-spacing:-.025em;color:var(--text);font-variant-numeric:tabular-nums;line-height:1.1}.kpi-stat b.danger{color:var(--danger)}.kpi-stat span{font-size:10.5px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kpi-stats.single .kpi-stat b{font-size:28px}.podium{display:flex;flex-direction:column;gap:6px}.podium-row{display:flex;align-items:center;gap:12px;width:100%;padding:8px 11px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);cursor:pointer;text-align:left;transition:transform var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.podium-row:hover{transform:translate3d(3px,0,0);border-color:var(--border-strong);box-shadow:0 4px 14px #0f142312}.podium-row>.rank-cell{flex:0 0 auto}.podium-row.rank-1{background:linear-gradient(95deg,color-mix(in srgb,#f5b301 28%,transparent),var(--surface-2) 50%)}.podium-row.rank-2{background:linear-gradient(95deg,color-mix(in srgb,#9aa4b2 28%,transparent),var(--surface-2) 50%)}.podium-row.rank-3{background:linear-gradient(95deg,color-mix(in srgb,#c1793f 28%,transparent),var(--surface-2) 50%)}.podium-row.rank-1{border-color:color-mix(in srgb,#f5b301 48%,var(--border))}.podium-row.rank-2{border-color:color-mix(in srgb,#9aa4b2 48%,var(--border))}.podium-row.rank-3{border-color:color-mix(in srgb,#c1793f 48%,var(--border))}.podium-row .who{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.podium-row .who .meter{flex:0 0 6px;max-width:none;width:100%;margin-top:2px}.podium-row .who b{display:block;font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.podium-row .who span{display:block;font-size:11px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.podium-row .pm{flex:0 0 66px;display:flex;flex-direction:column;align-items:flex-end;gap:1px}.podium-row .pm b{font-size:13px;font-weight:620;font-variant-numeric:tabular-nums}.podium-row .pm b.late{color:var(--danger)}.podium-row .pm b.muted{color:var(--text-3)}.podium-row .pm span{font-size:10px;color:var(--text-3)}.score-legend{display:flex;align-items:flex-start;gap:7px;margin-top:12px;font-size:11.5px;line-height:1.6;color:var(--text-3)}.score-legend svg{flex:0 0 12px;margin-top:3px}@media (max-width: 860px){.podium-row .pm,.fb-sep{display:none}}.dash-band{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:16px;align-items:start;margin-top:22px;padding-top:20px;border-top:1px solid var(--border);position:relative}.dash-band:before{content:"";position:absolute;top:-1px;left:0;width:56px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--brand),color-mix(in srgb,var(--brand) 40%,#22d3ee))}.dash-podium,.dash-chart{min-width:0}.chart-wrap{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:center}.chart-wrap>*:first-child{flex:0 0 auto}.tab-bar.compact{padding:2px}.tab-bar.compact button{height:27px;padding:0 11px;font-size:12px}@media (max-width: 1080px){.dash-band{grid-template-columns:minmax(0,1fr)}}.day-tabs{width:100%;margin-bottom:12px}.day-tabs button{flex:1;justify-content:center;padding:0 10px}.day-tab-n{min-width:18px;padding:0 5px;border-radius:9px;background:var(--surface-3);color:var(--text-3);font-size:10.5px;font-weight:700;font-variant-numeric:tabular-nums}.tab-bar button.on .day-tab-n{background:var(--brand-soft-2);color:var(--brand)}.day-list{display:flex;flex-direction:column;gap:5px;max-height:52vh;overflow-y:auto;overscroll-behavior:contain}.day-row{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:9px;background:var(--surface-2);cursor:pointer;text-align:left;transition:transform var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.day-row:hover{transform:translate3d(2px,0,0);border-color:var(--border-strong)}.day-main{flex:1;min-width:0}.day-title{font-size:12.8px;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.day-sub{font-size:11px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-cell{font:inherit;color:inherit;text-align:left;cursor:pointer;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}.cal-cell:not(.blank):hover{transform:translate3d(0,-2px,0);box-shadow:0 6px 16px #0f14231a;border-color:var(--brand);z-index:1}.cal-cell.blank{cursor:default;pointer-events:none}.page{padding:16px 20px 32px}.page-head{gap:12px;margin-bottom:14px}.page-head h2{font-size:17px}.page-head p{font-size:12px}.card-head{padding:11px 14px}.card-body{padding:14px}.card-body.tight{padding:10px}.grid.kpis{gap:10px}.stat{padding:12px 14px}.stat-value{font-size:23px}table.data{font-size:12.5px}table.data thead th{padding:8px 11px;font-size:10.5px}table.data tbody td{padding:7px 11px}table.data tbody tr{height:40px}.table-toolbar{padding:9px 11px;gap:7px}.table-foot{padding:8px 11px;font-size:11.5px}.modal-head{padding:14px 18px}.modal-body{padding:16px 18px}.modal-foot{padding:11px 18px}.form-grid{gap:11px 12px}.field label{font-size:11.5px}.input,.select{height:34px}.textarea{min-height:74px}.filter-cards{gap:9px;margin-bottom:12px}.fcard{padding:10px 12px;gap:6px}.fc-value{font-size:19px}.tab-bar{margin-bottom:12px}.tab-bar button{height:29px;font-size:12.3px}.detail-grid,.detail-main,.detail-side{gap:12px}.detail-title{font-size:19px}.badge{font-size:10.8px}.btn{height:34px}.btn.sm{height:29px}@media (max-width: 900px){.page{padding:14px 14px 28px}}.card.table-card{position:relative;border-radius:13px;box-shadow:0 1px 2px #0f14230d,0 10px 28px -18px #0f14234d}.card.table-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;border-radius:13px 13px 0 0;background:linear-gradient(90deg,var(--brand),color-mix(in srgb,var(--brand) 45%,#22d3ee) 42%,color-mix(in srgb,var(--brand) 22%,transparent) 78%,transparent);z-index:3}.table-toolbar{background:linear-gradient(180deg,var(--surface),var(--surface-2));border-radius:13px 13px 0 0}table.data thead th{background:linear-gradient(180deg,color-mix(in srgb,var(--brand) 7%,var(--surface-3)),var(--surface-2));color:var(--text-2);font-weight:620;letter-spacing:.055em;border-bottom:1.5px solid color-mix(in srgb,var(--brand) 34%,var(--border));box-shadow:inset 0 -2px color-mix(in srgb,var(--brand) 14%,transparent)}table.data thead th.sortable:hover{background:linear-gradient(180deg,color-mix(in srgb,var(--brand) 9%,var(--surface-3)),var(--surface-2));color:var(--brand)}table.data thead th+th{box-shadow:inset 1px 0 color-mix(in srgb,var(--border) 60%,transparent),inset 0 -1px color-mix(in srgb,var(--brand) 10%,transparent)}table.data tbody tr{position:relative}table.data tbody tr:nth-child(2n){background:color-mix(in srgb,var(--surface-3) 45%,transparent)}table.data tbody tr:hover{background:linear-gradient(90deg,color-mix(in srgb,var(--brand) 13%,transparent),color-mix(in srgb,var(--brand) 5%,transparent) 45%,transparent 82%)}table.data tbody td{border-bottom:1px solid color-mix(in srgb,var(--border) 70%,transparent)}table.data tbody td:first-child{position:relative}table.data tbody td:first-child:before{content:"";position:absolute;left:0;top:12%;bottom:12%;width:2px;border-radius:0 2px 2px 0;background:linear-gradient(180deg,var(--brand),color-mix(in srgb,var(--brand) 40%,#22d3ee));transform:scaleY(0);transform-origin:center;transition:transform var(--dur-base) var(--ease-spring)}table.data tbody tr:hover td:first-child:before{transform:scaleY(1)}table.data td.num{font-variant-numeric:tabular-nums;font-weight:550;letter-spacing:-.01em}.avatar{box-shadow:0 0 0 1.5px var(--surface),0 0 0 2.5px color-mix(in srgb,var(--brand) 18%,transparent),0 2px 5px #0f142329}.cell-title{font-weight:580;letter-spacing:-.01em}.id-cell{display:flex;align-items:center;gap:9px;min-width:0}.id-cell>.avatar{flex:0 0 auto}.id-cell .id-body{display:flex;flex-direction:column;gap:1px;min-width:0}.id-cell .cell-title,.id-cell .cell-sub{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.you-pill{flex:0 0 auto;padding:1px 7px;border-radius:999px;font-size:9.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#fff;background:linear-gradient(135deg,var(--brand),color-mix(in srgb,var(--brand) 55%,#22d3ee))}.pw-chip{background:linear-gradient(180deg,var(--surface-3),var(--surface-2));border:1px solid var(--border);border-radius:6px;padding:2px 8px;font-size:12px;letter-spacing:.06em}.pw-chip.hidden-value{color:var(--text-3);letter-spacing:.12em}.conf-box:has(input:checked){background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 11%,transparent),transparent 78%);color:var(--text-2)}.conf-box:has(input:checked) svg{color:var(--brand);opacity:1}.rank-cell{display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:23px;padding:0 5px;border-radius:999px;font-size:11.5px;font-weight:650;font-variant-numeric:tabular-nums;color:var(--text-3);background:var(--surface-3);border:1px solid var(--border)}.rank-cell.medal{color:#fff;border-color:transparent;font-size:12px;text-shadow:0 1px 1px rgba(0,0,0,.22)}.rank-cell.r1{background:linear-gradient(135deg,#fbbf24,#f59e0b 55%,#d97706);box-shadow:0 2px 8px -2px #f59e0ba6}.rank-cell.r2{background:linear-gradient(135deg,#cbd5e1,#94a3b8 55%,#64748b);box-shadow:0 2px 8px -2px #64748b80}.rank-cell.r3{background:linear-gradient(135deg,#e0a878,#c1793f 55%,#9a5b2b);box-shadow:0 2px 8px -2px #9a5b2b80}.meter-cell{display:flex;align-items:center;gap:7px;justify-content:flex-end}.meter-cell>b{font-size:12px;font-weight:620;font-variant-numeric:tabular-nums;min-width:30px;text-align:right}.meter{position:relative;flex:1;min-width:34px;max-width:62px;height:6px;border-radius:999px;background:color-mix(in srgb,var(--border) 55%,var(--surface-3));overflow:hidden;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--border) 70%,transparent)}.meter>i{position:absolute;inset:0 auto 0 0;border-radius:999px;background:linear-gradient(90deg,var(--brand),#22d3ee);transition:width var(--dur-slow) var(--ease-out)}.meter.high>i{background:linear-gradient(90deg,#16a34a,#4ade80)}.meter.mid>i{background:linear-gradient(90deg,#d97706,#fbbf24)}.meter.low>i{background:linear-gradient(90deg,#dc2626,#fb7185)}.score-pill{display:inline-flex;align-items:center;justify-content:center;min-width:40px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:660;font-variant-numeric:tabular-nums;color:#fff;letter-spacing:-.01em;background:linear-gradient(135deg,var(--brand),color-mix(in srgb,var(--brand) 55%,#22d3ee));box-shadow:0 2px 8px -3px color-mix(in srgb,var(--brand) 80%,transparent)}.score-pill.success{background:linear-gradient(135deg,#15a34a,#4ade80);box-shadow:0 2px 8px -3px #15a34ab3}.score-pill.warn{background:linear-gradient(135deg,#d97706,#fbbf24);box-shadow:0 2px 8px -3px #d97706b3}.score-pill.danger{background:linear-gradient(135deg,#dc2626,#fb7185);box-shadow:0 2px 8px -3px #dc2626b3}.count-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:999px;font-size:11.5px;font-weight:600;font-variant-numeric:tabular-nums;background:linear-gradient(135deg,var(--surface-3),var(--surface-2));color:var(--text-3);border:1px solid var(--border-strong)}.count-chip.late{background:linear-gradient(135deg,color-mix(in srgb,var(--danger) 24%,transparent),color-mix(in srgb,var(--danger) 11%,transparent));color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,transparent);font-weight:660}.ratio-sub{color:var(--text-3);font-size:11px;font-weight:500}.badge.brand{background:linear-gradient(135deg,var(--brand-soft),var(--brand-soft-2))}.badge.success{background:linear-gradient(135deg,var(--success-soft),color-mix(in srgb,var(--success) 16%,transparent))}.badge.warn{background:linear-gradient(135deg,var(--warn-soft),color-mix(in srgb,var(--warn) 16%,transparent))}.badge.danger{background:linear-gradient(135deg,var(--danger-soft),color-mix(in srgb,var(--danger) 16%,transparent))}.badge.info{background:linear-gradient(135deg,var(--info-soft),color-mix(in srgb,var(--info) 16%,transparent))}.badge.mono{font-variant-numeric:tabular-nums;letter-spacing:.01em}.table-foot{background:linear-gradient(180deg,var(--surface),var(--surface-2));border-radius:0 0 13px 13px}.pager button.active{background:linear-gradient(135deg,var(--brand),var(--brand-press));border-color:transparent;box-shadow:0 2px 8px -3px color-mix(in srgb,var(--brand) 85%,transparent)}.table-body-swap>tr{animation:rowIn var(--dur-base) var(--ease-out) both}@keyframes rowIn{0%{opacity:0;transform:translate3d(0,4px,0)}to{opacity:1;transform:none}}.table-body-swap>tr:nth-child(1){animation-delay:0ms}.table-body-swap>tr:nth-child(2){animation-delay:18ms}.table-body-swap>tr:nth-child(3){animation-delay:36ms}.table-body-swap>tr:nth-child(4){animation-delay:54ms}.table-body-swap>tr:nth-child(5){animation-delay:72ms}.table-body-swap>tr:nth-child(n+6){animation-delay:86ms}.seg{display:inline-flex;align-items:center;gap:2px;padding:2px;height:32px;border-radius:9px;background:var(--surface-3);border:1px solid var(--border)}.seg button{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;border:0;border-radius:7px;background:transparent;color:var(--text-3);font-size:12px;font-weight:570;font-family:inherit;cursor:pointer;white-space:nowrap;transition:color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.seg button:hover:not(.on){color:var(--text)}.seg button.on{color:#fff;background:linear-gradient(135deg,var(--brand),var(--brand-press));box-shadow:0 2px 8px -3px color-mix(in srgb,var(--brand) 90%,transparent)}.seg button svg{opacity:.85}@media (prefers-reduced-motion: reduce){.table-body-swap>tr{animation:none}table.data tbody td:first-child:before{transition:none}}.btn{transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.btn:hover:not(:disabled){transform:translate3d(0,-1px,0)}.btn:active:not(:disabled){transform:translateZ(0) scale(.97);transition-duration:60ms}.btn:disabled{transition:none}.btn.primary:hover:not(:disabled){box-shadow:0 4px 14px color-mix(in srgb,var(--brand) 32%,transparent)}.icon-btn{transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.icon-btn:active{transform:scale(.9)}.status-btn:active:not(:disabled){transform:scale(.97)}.nav-item{position:relative;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.nav-item:before{content:"";position:absolute;left:0;top:50%;width:3px;height:0;border-radius:0 3px 3px 0;background:var(--brand);transform:translateY(-50%);transition:height var(--dur-base) var(--ease-spring)}.nav-item.active:before{height:60%}.nav-item:hover:not(.active){transform:translate3d(2px,0,0)}.nav-item{transition-property:background,color,transform}.sidebar{transition:width var(--dur-slow) var(--ease-in-out),flex-basis var(--dur-slow) var(--ease-in-out)}.sidebar-brand,.nav-item span,.side-user-meta{transition:opacity var(--dur-fast) var(--ease-out)}.stat,.goal-card{transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out)}.stat:hover,.goal-card:hover{transform:translate3d(0,-2px,0);box-shadow:0 8px 24px #0f142317}.fcard{transition:transform var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out)}.fcard:active{transform:translateZ(0) scale(.985);transition-duration:70ms}.fcard:before{transition:opacity var(--dur-base) var(--ease-out)}table.data tbody tr{transition:background var(--dur-fast) var(--ease-out)}table.data tbody td{transition:none}.table-body-swap{animation:fadeIn var(--dur-base) var(--ease-out) both}.card.table-card{overflow:hidden}.table-wrap{scroll-behavior:smooth}table.data thead th .th-label svg{transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.col-filter{transition:opacity var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.col-filter:active{transform:scale(.9)}.overlay{animation:fadeIn var(--dur-fast) var(--ease-out) both}.modal{animation:modalIn var(--dur-slow) var(--ease-out) both}@keyframes modalIn{0%{opacity:0;transform:translate3d(0,14px,0) scale(.975)}to{opacity:1;transform:none}}.menu-panel,.cf-panel,.combo-panel{transform-origin:top center}.combo-panel{animation:popIn var(--dur-fast) var(--ease-out) both}.toast{animation:toastIn var(--dur-slow) var(--ease-spring) both}@keyframes toastIn{0%{opacity:0;transform:translate3d(28px,0,0) scale(.96)}to{opacity:1;transform:none}}.input,.select,.textarea,.combo-control{transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.combo .chevron{transition:transform var(--dur-base) var(--ease-out)}.combo.open .chevron{transform:rotate(180deg)}.progress>i{transition:width var(--dur-slow) var(--ease-out)}.progress.slider.dragging>i{transition:none}.skeleton{animation:shimmer 1.6s linear infinite}.badge{transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out)}.filter-chip{transition:border-color var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.filter-chip:active{transform:scale(.95)}.mini-row{transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.mini-row:hover{transform:translate3d(2px,0,0)}.approve-row{transition:border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}.approve-row:hover{border-color:var(--border-strong);box-shadow:0 4px 16px #0f14230f}.linked-goal{transition:border-color var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.linked-goal:active{transform:scale(.97)}.pager button{transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),transform var(--dur-instant) var(--ease-out)}.pager button:active:not(:disabled){transform:scale(.92)}@media (prefers-reduced-motion: reduce){.btn:hover:not(:disabled),.btn:active:not(:disabled),.stat:hover,.goal-card:hover,.fcard:hover,.fcard:active,.nav-item:hover:not(.active),.mini-row:hover,.icon-btn:active,.filter-chip:active,.col-filter:active,.pager button:active:not(:disabled){transform:none!important}}.mob-only{display:none!important}@media (max-width: 1024px){.desk-only{display:none!important}.mob-only{display:grid!important}.sidebar{position:fixed;top:0;left:0;bottom:0;height:100dvh;width:272px;flex-basis:272px;transform:translate3d(-100%,0,0);transition:transform .26s cubic-bezier(.4,0,.2,1);box-shadow:none;z-index:120}.sidebar.open{transform:translateZ(0);box-shadow:0 0 40px #0006}.sidebar.collapsed{width:272px;flex-basis:272px}.sidebar.collapsed .nav-item{justify-content:flex-start;padding:11px 12px}.nav-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:110;background:#090c1480;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .22s ease}.nav-scrim.on{opacity:1;pointer-events:auto}.nav-close{display:grid!important;margin-left:auto;color:var(--sidebar-text)}.nav-close:hover{background:#ffffff14;color:#fff}.nav-item{padding:11px 12px;font-size:14px}body.nav-locked{overflow:hidden}.topbar{padding:0 14px;gap:10px}.page{padding:16px 16px 32px}}.nav-close{display:none}@media (max-width: 760px){.topbar{height:56px;flex-basis:56px;padding:0 12px}.topbar-title h1{font-size:15px}.topbar-title p{display:none}.topbar-actions{gap:4px}.page{padding:14px 12px 28px}.page-head{gap:10px;margin-bottom:13px}.page-head h2{font-size:17px}.page-head .grow{flex:1 1 100%}.page-head .btn,.page-head .btn-group,.page-head .select{width:100%;justify-content:center}.page-head .btn-group button{flex:1}.tab-bar{display:flex;width:100%;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.tab-bar::-webkit-scrollbar{display:none}.tab-bar button{flex:1 0 auto;justify-content:center}.filter-bar{padding:10px;gap:8px}.filter-bar .fb-group{flex:1 1 100%;min-width:0}.filter-bar .fsel,.filter-bar .input,.filter-bar .select{width:100%!important;max-width:none}.filter-bar .seg{width:100%}.filter-bar .seg button{flex:1;justify-content:center}.fb-sep{display:none}.filter-bar .fb-spacer{margin-left:0}.filter-bar .btn{width:100%;justify-content:center}.fsel-panel,.cf-panel,.menu-panel,.combo-panel{max-width:calc(100vw - 16px)}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.kpi-stat b{font-size:18px}.kpi-stats.single .kpi-stat b{font-size:22px}.filter-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.dash-band{margin-top:18px;padding-top:16px;gap:12px}.overlay{padding:0;align-items:flex-end}.modal,.modal.sm,.modal.md,.modal.lg{max-width:100%;margin:0;border-radius:16px 16px 0 0;border-left:0;border-right:0;border-bottom:0;max-height:94dvh;display:flex;flex-direction:column;animation:sheetIn .26s cubic-bezier(.16,1,.3,1) both}.modal-body{overflow-y:auto;padding:15px}.modal-head{padding:14px 15px}.modal-foot{padding:12px 15px calc(12px + env(safe-area-inset-bottom));border-radius:0;flex-wrap:wrap}.modal-foot .btn{flex:1 1 auto;justify-content:center}@keyframes sheetIn{0%{opacity:0;transform:translate3d(0,24px,0)}to{opacity:1;transform:none}}.card.table-card{border-radius:12px}.table-card .table-wrap{overflow-x:visible}table.data thead{display:none}table.data,table.data tbody,table.data tr,table.data td{display:block;width:auto}table.data tbody tr{position:relative;margin:10px;padding:4px 0;border:1px solid var(--border);border-radius:11px;background:var(--surface);box-shadow:0 1px 2px #0f14230a;height:auto!important;overflow:hidden}table.data tbody tr:nth-child(2n){background:var(--surface)}table.data tbody tr:hover{background:var(--surface)}table.data tbody td:first-child:before{content:none}table.data tbody td{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 12px;text-align:right;border-bottom:1px solid color-mix(in srgb,var(--border) 55%,transparent);min-height:34px}table.data tbody td:last-child{border-bottom:none}table.data td.num{text-align:right}table.data tbody td:before{content:attr(data-label);flex:0 0 auto;font-size:10.5px;font-weight:650;letter-spacing:.055em;text-transform:uppercase;color:var(--text-3);text-align:left;white-space:nowrap}table.data tbody td[data-label=""]:before{content:none}table.data tbody td[data-label=""]{justify-content:flex-end}table.data tbody td:first-child{background:linear-gradient(180deg,var(--surface-3),var(--surface-2));border-bottom:1px solid var(--border);padding:9px 12px;min-height:40px}table.data tbody td:first-child:before{display:none}table.data tbody td:first-child>*{text-align:left}table.data tbody td:first-child{justify-content:flex-start;text-align:left}table.data td.mob-hide{display:none}table.data tbody td .progress.slider,table.data tbody td .meter-cell{min-width:130px}table.data tbody td .email-conf{align-items:flex-end}.table-toolbar{padding:10px;gap:8px}.table-toolbar .input-icon{width:100%!important}.table-toolbar .btn{flex:1 1 auto;justify-content:center}.table-foot{padding:10px;gap:8px;justify-content:center}.table-foot>span{flex:1 1 100%;text-align:center}.pager{margin-left:0}.detail-grid{grid-template-columns:minmax(0,1fr)}.split{grid-template-columns:1fr}.cal-cell{min-height:62px;font-size:11px}}@media (max-width: 420px){.page{padding:12px 10px 24px}.kpi-grid{grid-template-columns:minmax(0,1fr)}.topbar-title h1{font-size:14.5px}table.data tbody tr{margin:8px}table.data tbody td{padding:7px 10px}.podium-row{gap:8px;padding:8px}.podium-row .who b{font-size:12.5px}}@media (hover: none){.btn:hover:not(:disabled),.stat:hover,.goal-card:hover,.fcard:hover,.kpi-card:hover,.nav-item:hover:not(.active),.mini-row:hover,.podium-row:hover{transform:none}.btn,.icon-btn,.status-btn{min-height:34px}.col-filter{opacity:1}}.auth-brand-sm{display:none}@media (max-width: 940px){.auth-brand-sm{display:flex;align-items:center;gap:10px;margin-bottom:22px}.auth-brand-sm .brand-mark{width:32px;height:32px;flex:0 0 32px}.auth-brand-sm b{display:block;font-size:15px;font-weight:650;letter-spacing:-.02em;color:var(--text)}.auth-brand-sm i{display:block;font-style:normal;font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:var(--text-3)}}
