:root{--brand: #556b2f;--brand-2: #6b8e23;--brand-soft: #eef1e0;--brand-strong: #3f5122;--bg: #eef0e4;--bg-elev: #fffffc;--bg-sunken: #e7e7d8;--border: #e6e4d6;--border-soft: #efeee5;--text: #1c1a13;--text-muted: #6f6a57;--text-faint: #a8a392;--good: #3f8f3f;--good-soft: #e4efd9;--warn: #b07d12;--warn-soft: #f6ecca;--bad: #c4452f;--bad-soft: #f6ddd5;--info: #3d6e8f;--info-soft: #dde9f0;--radius: 18px;--radius-sm: 11px;--glass: linear-gradient(150deg, rgba(255,255,255,.78), rgba(255,255,255,.44));--glass-sunken: rgba(255,255,255,.34);--glass-border: rgba(255,255,255,.7);--glass-hi: inset 0 1px 0 rgba(255,255,255,.95), inset 0 -10px 22px -16px rgba(40,38,25,.18);--tint: #7d8b3a;--glass-blur: 14px;--float: 14px;--shadow-1: var(--glass-hi), 0 calc(6px + var(--float)) calc(20px + var(--float) * 1.6) calc(-10px - var(--float) * .2) color-mix(in srgb, var(--tint) 26%, transparent);--shadow-2: var(--glass-hi), 0 calc(14px + var(--float)) calc(34px + var(--float) * 1.8) calc(-8px - var(--float) * .2) color-mix(in srgb, var(--tint) 34%, transparent);color-scheme:light}[data-theme=dark]{--brand: #8aa84a;--brand-2: #a6c560;--brand-soft: #26301a;--brand-strong: #a6c560;--bg: #11130b;--bg-elev: #1b1e12;--bg-sunken: #10120a;--border: #2e3320;--border-soft: #262b1a;--text: #ecebdc;--text-muted: #9c9885;--text-faint: #6b6855;--good: #6cc06c;--good-soft: #1c3318;--warn: #e0b552;--warn-soft: #352a0c;--bad: #e8836f;--bad-soft: #3a1c14;--info: #7fb0cf;--info-soft: #15252e;--glass: linear-gradient(150deg, rgba(54,60,38,.6), rgba(28,32,18,.38));--glass-sunken: rgba(0,0,0,.22);--glass-border: rgba(180,200,120,.16);--glass-hi: inset 0 1px 0 rgba(200,220,150,.14), inset 0 -10px 22px -16px rgba(0,0,0,.5);--tint: #000000;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--brand);text-decoration:none}a:hover{color:var(--brand-strong)}button{font:inherit;cursor:pointer;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elev);color:var(--text);padding:6px 12px;transition:background .1s,border-color .1s,color .1s}button:hover{border-color:var(--brand);color:var(--brand)}button.primary{background:var(--brand);color:#fff;border-color:var(--brand)}button.primary:hover{background:var(--brand-strong);border-color:var(--brand-strong);color:#fff}button.ghost{background:transparent}button:disabled{opacity:.5;cursor:not-allowed}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:var(--bg-elev);border-bottom:1px solid var(--border);padding:12px 24px;display:flex;align-items:center;gap:16px;position:sticky;top:0;z-index:10}.app-header .logo{font-size:18px;font-weight:700;color:var(--brand);letter-spacing:-.5px}.app-header .spacer{flex:1}.app-header .me{color:var(--text-muted);font-size:13px}.app-header .me strong{color:var(--text)}.app-header .role-pill{display:inline-block;margin-left:6px;padding:2px 8px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-radius:999px;background:var(--brand-soft);color:var(--brand)}.app-main{padding:20px 24px 60px;max-width:1400px;margin:0 auto;width:100%}.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:20px}.metric{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow-1)}.metric .label{color:var(--text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}.metric .value{font-size:24px;font-weight:700;color:var(--text)}.metric .value.good{color:var(--good)}.metric .value.bad{color:var(--bad)}.metric .sub{color:var(--text-faint);font-size:12px;margin-top:2px}.filter-row{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}.period-picker{display:flex;align-items:center;gap:6px}.period-picker .label{color:var(--text-muted);font-size:13px;margin-right:4px}.period-picker .current{font-weight:600;padding:0 8px;min-width:90px;text-align:center}.chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px}.chip{padding:5px 12px;border:1px solid var(--border);border-radius:999px;background:var(--bg-elev);color:var(--text-muted);font-size:13px;cursor:pointer}.chip:hover{color:var(--brand);border-color:var(--brand)}.chip.active{background:var(--brand);color:#fff;border-color:var(--brand)}.chip .count{display:inline-block;margin-left:6px;padding:0 6px;font-size:11px;border-radius:999px;background:#ffffff40}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px}.card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow-1);display:flex;flex-direction:column;gap:10px}.card-head{display:flex;align-items:center;gap:12px}.avatar{width:42px;height:42px;border-radius:50%;background:var(--brand-soft);color:var(--brand);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;background-size:cover;background-position:center;flex-shrink:0}.card-head .name{font-weight:600;line-height:1.2}.card-head .position{color:var(--text-muted);font-size:12px;line-height:1.2;margin-top:2px}.card-head .dept{color:var(--text-faint);font-size:11px;margin-top:1px}.kpi{margin:4px 0}.kpi-bar{height:8px;border-radius:999px;background:var(--border-soft);overflow:hidden}.kpi-fill{height:100%;border-radius:999px;transition:width .3s}.kpi-fill.good{background:var(--good)}.kpi-fill.warn{background:var(--warn)}.kpi-fill.bad{background:var(--bad)}.kpi-fill.none{background:var(--text-faint);width:0!important}.kpi-row{display:flex;justify-content:space-between;font-size:12px;color:var(--text-muted);margin-top:4px}.kpi-row .pct{font-weight:600}.kpi-row .pct.good{color:var(--good)}.kpi-row .pct.warn{color:var(--warn)}.kpi-row .pct.bad{color:var(--bad)}.total{text-align:center;padding:8px 0;border-top:1px solid var(--border-soft);border-bottom:1px solid var(--border-soft)}.total .big{font-size:26px;font-weight:700;letter-spacing:-.5px}.total .big.good{color:var(--good)}.total .big.bad{color:var(--bad)}.total .big.neutral{color:var(--text-muted)}.total .desc{color:var(--text-muted);font-size:12px;margin-top:2px}.total .desc .b{color:var(--good)}.total .desc .m{color:var(--bad)}.stats{display:flex;gap:6px;flex-wrap:wrap}.stat{flex:1;min-width:60px;padding:6px 8px;border-radius:var(--radius-sm);text-align:center;font-size:12px;background:var(--border-soft);color:var(--text-muted)}.stat .n{display:block;font-weight:700;font-size:16px;color:var(--text)}.stat.good{background:var(--good-soft);color:var(--good)}.stat.good .n{color:var(--good)}.stat.warn{background:var(--warn-soft);color:var(--warn)}.stat.warn .n{color:var(--warn)}.stat.bad{background:var(--bad-soft);color:var(--bad)}.stat.bad .n{color:var(--bad)}.top-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}.top-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.top-card h3{margin:0 0 8px;font-size:13px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.top-row .top-card.best h3{color:var(--good)}.top-row .top-card.worst h3{color:var(--bad)}.top-list{display:flex;flex-direction:column;gap:6px}.top-item{display:flex;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:var(--radius-sm);background:var(--border-soft);font-size:13px}.top-item .nm{color:var(--text);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-item .vl{font-weight:700;flex-shrink:0}.top-item.best .vl{color:var(--good)}.top-item.worst .vl{color:var(--bad)}.center{text-align:center;padding:40px 20px;color:var(--text-muted)}.error{color:var(--bad);background:var(--bad-soft);padding:12px;border-radius:var(--radius-sm)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:18px}.tab{background:transparent;border:0;border-bottom:2px solid transparent;padding:10px 14px;font-size:14px;color:var(--text-muted);cursor:pointer;border-radius:0}.tab:hover{color:var(--brand)}.tab.active{color:var(--brand);border-bottom-color:var(--brand);font-weight:600}input[type=text],input[type=search],input.search-input,input[type=datetime-local],textarea,select{font:inherit;background:var(--bg-elev);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 10px;outline:none;transition:border-color .1s,box-shadow .1s}input:focus,textarea:focus,select:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 22%,transparent)}.search-input{width:280px;max-width:100%}textarea{width:100%;resize:vertical;font-family:inherit}.label{color:var(--text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.multi-select{position:relative}.multi-select summary{list-style:none;cursor:pointer;padding:5px 12px;border:1px solid var(--border);border-radius:999px;background:var(--bg-elev);font-size:13px;color:var(--text-muted)}.multi-select summary:hover{color:var(--brand);border-color:var(--brand)}.multi-select[open] summary{color:var(--brand);border-color:var(--brand)}.multi-list{position:absolute;z-index:5;margin-top:4px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:8px;max-height:360px;overflow-y:auto;min-width:260px;box-shadow:var(--shadow-2)}.multi-item{display:flex;gap:8px;align-items:center;padding:6px 8px;border-radius:var(--radius-sm);cursor:pointer;font-size:13px}.multi-item:hover{background:var(--brand-soft)}.ms-wrap{position:relative;display:inline-flex;align-items:center;gap:6px}.ms-summary{padding:5px 12px;border:1px solid var(--border);border-radius:999px;background:var(--bg-elev);color:var(--text-muted);font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.ms-summary:hover,.ms-summary.open{color:var(--brand);border-color:var(--brand)}.ms-summary.has-selection{background:var(--brand-soft);color:var(--brand-strong);border-color:var(--brand)}.ms-caret{font-size:10px;opacity:.6}.ms-list{position:absolute;z-index:20;top:calc(100% + 4px);left:0;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:8px;min-width:280px;box-shadow:var(--shadow-2)}.ms-search{width:100%;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font:inherit;font-size:13px;margin-bottom:6px}.ms-search:focus{outline:none;border-color:var(--brand)}.ms-actions{display:flex;gap:8px;margin-bottom:4px}.ms-act{font-size:11px;padding:3px 8px;background:transparent;color:var(--text-muted)}.ms-items{max-height:320px;overflow-y:auto}.ms-empty{padding:12px;text-align:center;color:var(--text-faint);font-size:12px}.filter-accordion{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-elev);margin-bottom:14px}.fa-head{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;gap:12px}.fa-toggle{display:inline-flex;align-items:center;gap:8px;background:transparent;border:none;padding:4px 6px;font-size:13px;color:var(--text);flex:1;text-align:left}.fa-toggle:hover{color:var(--brand);border-color:transparent}.fa-caret{font-size:12px;color:var(--text-muted);width:14px;display:inline-block;text-align:center}.fa-title{font-weight:600}.fa-summary{color:var(--text-muted);font-size:12px}.fa-reset{font-size:12px;padding:4px 10px}.fa-body{padding:10px 12px 14px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:10px}.fa-body .fa-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.fa-body .fa-row>.label{min-width:110px}.table-wrap{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);overflow:auto;box-shadow:var(--shadow-1)}.task-table{width:100%;border-collapse:collapse;font-size:13px}.task-table th{text-align:left;font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:10px 12px;background:var(--border-soft);border-bottom:1px solid var(--border);position:sticky;top:0}.task-table td{padding:10px 12px;border-bottom:1px solid var(--border-soft);vertical-align:middle}.task-table tr:last-child td{border-bottom:0}.task-table .task-title{font-weight:500;max-width:480px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-table .muted{color:var(--text-faint)}.task-table .overdue{color:var(--bad);font-weight:600}.task-table .ok{color:var(--good)}.task-row{cursor:pointer}.task-row:hover{background:var(--brand-soft)}.row-user{display:flex;align-items:center;gap:6px}.avatar.small{width:24px;height:24px;font-size:11px}.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;background:var(--border-soft);color:var(--text-muted)}.pill.brand{background:var(--brand-soft);color:var(--brand)}.pill.good{background:var(--good-soft);color:var(--good)}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.bad{background:var(--bad-soft);color:var(--bad)}.pill.muted{background:var(--border-soft);color:var(--text-muted)}.pager{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:16px}.pager-info{color:var(--text-muted);font-size:13px;padding:0 10px}.day-range{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text)}.day-range.disabled{opacity:.45}.dr-label{color:var(--text-muted);font-size:12px}.dr-input{width:64px;padding:4px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font:inherit;font-size:13px;text-align:center;-moz-appearance:textfield}.dr-input::-webkit-outer-spin-button,.dr-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.dr-input:focus{outline:none;border-color:var(--brand)}.dr-input:disabled{background:var(--bg-elev);cursor:not-allowed}.dr-clear{width:22px;height:22px;padding:0;border-radius:50%;border:1px solid var(--border);background:var(--bg-elev);color:var(--text-muted);font-size:14px;line-height:1}.dr-clear:hover{color:var(--bad);border-color:var(--bad)}.hint{color:var(--text-faint);font-size:11px}.view-switch{display:inline-flex;border:1px solid var(--border);border-radius:999px;overflow:hidden;background:var(--bg-elev)}.vs-btn{border:none;background:transparent;color:var(--text-muted);padding:5px 14px;font-size:13px;border-radius:0}.vs-btn:hover{color:var(--brand)}.vs-btn.active{background:var(--brand);color:#fff}.vs-btn+.vs-btn{border-left:1px solid var(--border)}.vs-btn.active+.vs-btn,.vs-btn:has(+.vs-btn.active){border-left-color:var(--brand)}.kb-wrap{display:flex;flex-direction:column;gap:10px}.kb-toolbar{display:flex;align-items:center;gap:8px}.kb-total{font-size:12px;color:var(--text-muted)}.kb-tl-title{font-weight:600;font-size:13px;padding:3px 10px;border-radius:999px;border:1px solid var(--border)}.kb-tl-title.tl-red{color:#b91c1c;border-color:#ef444480;background:#ef44441a}.kb-tl-title.tl-yellow{color:#b45309;border-color:#f59e0b80;background:#f59e0b1f}.kb-tl-title.tl-green{color:#15803d;border-color:#16a34a80;background:#16a34a1a}.kb-tl-title.tl-blue{color:#1d4ed8;border-color:#3b82f680;background:#3b82f61a}.kanban{display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:12px;overflow-x:auto;align-items:start}.kb-col{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);min-height:200px;display:flex;flex-direction:column}.kb-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border)}.kb-title{font-weight:600;font-size:13px;flex:1}.kb-count{display:inline-block;min-width:22px;text-align:center;background:var(--border-soft);color:var(--text-muted);font-size:11px;padding:2px 6px;border-radius:999px}.kb-body{padding:8px;display:flex;flex-direction:column;gap:8px;max-height:70vh;overflow-y:auto}.kb-empty{text-align:center;color:var(--text-faint);font-size:12px;padding:12px 0}.kb-card{background:var(--bg);border:1px solid var(--border);border-left:4px solid var(--border);border-radius:var(--radius-sm);padding:10px;cursor:pointer;transition:border-color .1s,box-shadow .1s,background .1s}.kb-card:hover{box-shadow:var(--shadow-1)}.kb-card.tl-red{background:#ef44441a;border-color:#ef444473;border-left-color:#ef4444}.kb-card.tl-yellow{background:#f59e0b1a;border-color:#f59e0b73;border-left-color:#f59e0b}.kb-card.tl-green{background:#16a34a14;border-color:#16a34a66;border-left-color:#16a34a}.kb-card.tl-blue{background:#3b82f614;border-color:#3b82f666;border-left-color:#3b82f6}.kb-card.tl-red:hover{background:#ef444426}.kb-card.tl-yellow:hover{background:#f59e0b26}.kb-card.tl-green:hover{background:#16a34a24}.kb-card.tl-blue:hover{background:#3b82f624}.kb-card-title{font-size:13px;font-weight:500;line-height:1.35;margin-bottom:6px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.kb-user{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted);margin-bottom:6px}.kb-user-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kb-card-foot{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:11px}.kb-deadline{color:var(--text-muted)}.kb-card-time{font-size:11px;margin-top:4px}.kb-card-time.overdue{color:var(--bad)}.kb-card-time.muted{color:var(--text-muted)}@media (max-width: 900px){.kanban{grid-template-columns:repeat(4,minmax(220px,1fr))}}.fab{position:fixed;right:24px;bottom:24px;width:56px;height:56px;border-radius:50%;background:var(--brand);color:#fff;border:none;font-size:28px;line-height:1;cursor:pointer;box-shadow:0 8px 24px #0003;z-index:50;transition:transform .1s,background .1s}.fab:hover{background:var(--brand-strong);transform:translateY(-2px)}.fab:active{transform:translateY(0)}.modal.create-task{width:min(620px,92vw)}.ct-form{display:flex;flex-direction:column;gap:12px}.ct-field{display:flex;flex-direction:column;gap:4px}.ct-label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;display:flex;gap:6px;align-items:baseline}.ct-label .req{color:var(--bad);text-transform:none}.ct-hint{color:var(--text-faint);font-size:11px;text-transform:none;letter-spacing:0}.ct-input{padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);font:inherit;font-size:14px}.ct-input:focus{outline:none;border-color:var(--brand)}.ct-textarea{resize:vertical;min-height:80px}.ct-note{font-size:12px;color:var(--text-muted);padding:6px 0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--bg-elev);color:var(--text);border-radius:var(--radius);width:100%;max-width:720px;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-2)}.modal-head{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.modal-head h2{margin:0;font-size:16px;line-height:1.3;flex:1}.modal-body{padding:14px 18px;overflow-y:auto;flex:1}.modal-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:14px;padding-bottom:12px;border-bottom:1px dashed var(--border)}.modal-meta .label{font-size:11px;margin-bottom:2px}.description{background:var(--border-soft);padding:10px 12px;border-radius:var(--radius-sm);max-height:240px;overflow-y:auto;font-size:14px;line-height:1.45}.description p{margin:6px 0}.description a{color:var(--brand)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px}.form-col{display:flex;flex-direction:column;gap:4px}.modal-foot{padding:12px 18px;border-top:1px solid var(--border);display:flex;align-items:center;gap:8px}.btn{display:inline-flex;align-items:center;padding:6px 12px;border:1px solid var(--border);border-radius:var(--radius-sm)}.btn.ghost{background:transparent;color:var(--brand);border-color:var(--brand);text-decoration:none}.btn.ghost:hover{background:var(--brand-soft)}.ok.inline,.error.inline{padding:4px 8px;border-radius:var(--radius-sm);font-size:13px}.ok.inline{background:var(--good-soft);color:var(--good)}.error.inline{background:var(--bad-soft);color:var(--bad)}.login-card{max-width:440px;margin:60px auto;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:36px 28px;text-align:center;box-shadow:var(--shadow-2)}.login-card h1{color:var(--brand);margin:0 0 6px;font-size:28px}.login-card .hint{font-size:13px;margin-top:14px}.btn-login{display:inline-block;margin:18px 0 0;padding:12px 22px;border-radius:999px;background:var(--brand);color:#fff!important;font-weight:600;text-decoration:none;transition:background .1s}.btn-login:hover{background:var(--brand-strong);color:#fff!important}.info-btn{width:24px;height:24px;padding:0;border-radius:50%;font-weight:700;font-style:italic;font-size:13px;color:var(--text-muted);background:var(--border-soft);border:1px solid var(--border);flex-shrink:0;line-height:1}.info-btn:hover{color:var(--brand);border-color:var(--brand);background:var(--brand-soft)}.breakdown .step{margin-bottom:18px}.breakdown .step:last-child{margin-bottom:0}.breakdown .step-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}.breakdown .step-n{width:24px;height:24px;border-radius:50%;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px}.breakdown .step-title{font-weight:600;font-size:14px}.breakdown .step-body{padding-left:34px}.breakdown .formula{background:var(--border-soft);padding:8px 12px;border-radius:var(--radius-sm);font-size:13px;margin:6px 0;line-height:1.5}.breakdown .formula.good{background:var(--good-soft);color:var(--good)}.breakdown .formula.bad{background:var(--bad-soft);color:var(--bad)}.breakdown .formula b.brand{color:var(--brand)}.breakdown .formula .good{color:var(--good)}.breakdown .formula .bad{color:var(--bad)}.breakdown .total-line{font-size:14px;font-weight:500}.breakdown .rule-line>div{margin:2px 0}.breakdown .counts{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0 12px}.help{display:flex;flex-direction:column;gap:14px}.help-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px;box-shadow:var(--shadow-1)}.help-card h2{color:var(--brand);margin:0 0 10px;font-size:16px}.help-card p{margin:8px 0;line-height:1.5}.help-card ul,.help-card ol{padding-left:22px;line-height:1.7}.help-card code{background:var(--border-soft);padding:1px 6px;border-radius:4px;font-size:13px}.payroll-table th.th-good{color:var(--good)}.payroll-table th.th-bad{color:var(--bad)}.payroll-table .good{color:var(--good)}.payroll-table .bad{color:var(--bad)}.payroll-table .dept-row{background:var(--border-soft)}.payroll-table .user-row td{font-size:13px}.payroll-table .grand-row{background:var(--brand-soft)}.payroll-table .grand-row td{padding:14px 12px;font-size:14px}.flow-bar{display:grid;grid-template-columns:1fr 2px 1fr;align-items:center;width:220px;height:14px}.flow-side{display:flex;height:8px;background:var(--border-soft);border-radius:2px;overflow:hidden}.flow-side.bonus{justify-content:flex-end}.flow-side.fine{justify-content:flex-start}.flow-fill{height:100%;transition:width .3s}.flow-fill.good{background:var(--good);border-radius:2px 0 0 2px}.flow-fill.bad{background:var(--bad);border-radius:0 2px 2px 0}.flow-axis{width:2px;height:14px;background:var(--text-faint);margin:0 2px;opacity:.5}.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:14px}.rank-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;box-shadow:var(--shadow-1)}.rank-card h3{margin:0 0 6px;font-size:14px;color:var(--text);font-weight:600}.rank-list{display:flex;flex-direction:column;gap:6px}.rank-row{display:grid;grid-template-columns:24px 1fr 80px auto;gap:8px;align-items:center;font-size:13px}.rank-pos{color:var(--text-faint);font-size:12px;text-align:right}.rank-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rank-bar-wrap{background:var(--border-soft);height:8px;border-radius:999px;overflow:hidden}.rank-bar{height:100%;transition:width .3s}.rank-bar.good{background:var(--good)}.rank-bar.bad{background:var(--bad)}.rank-bar.warn{background:var(--warn)}.rank-bar.brand{background:var(--brand)}.rank-value{font-weight:600;color:var(--text);text-align:right;min-width:100px}.trend-bar.brand-bg{background:var(--brand)}.funnel-bar.bad-bg{background:var(--bad)}.funnel-bar.warn-bg{background:var(--warn)}.funnel-bar.good-bg{background:var(--good)}.rules-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.rule-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px}.rule-name{font-size:13px;font-weight:600;margin-bottom:6px}.rule-row{display:flex;gap:6px}.rule-row input{width:100px}.rule-row select{flex:1}.add-rule{display:flex;gap:6px;flex-wrap:wrap;align-items:center;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;margin-top:8px}.add-rule select{padding:6px 10px}.thresholds-grid{display:grid;grid-template-columns:200px 200px;gap:14px}.thresholds-grid label{display:flex;flex-direction:column;gap:4px}.threshold-preview{margin-top:14px;display:flex;height:32px;border-radius:999px;overflow:hidden;border:1px solid var(--border)}.threshold-preview .seg{display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;transition:width .2s;color:#fff}.threshold-preview .seg.good{background:var(--good)}.threshold-preview .seg.warn{background:var(--warn);color:#111}.threshold-preview .seg.bad{background:var(--bad)}.role-list{max-height:320px;overflow-y:auto;border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:4px}.role-item{display:flex;gap:8px;align-items:center;padding:6px 8px;border-radius:var(--radius-sm);font-size:13px;cursor:pointer}.role-item:hover{background:var(--brand-soft)}.role-item.checked{background:var(--brand-soft);color:var(--brand)}.analytics h3{font-size:14px;color:var(--text);margin:0 0 10px;font-weight:600}.trend{display:flex;gap:8px;align-items:flex-end;padding:12px;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);min-height:200px;overflow-x:auto}.trend-col{display:flex;flex-direction:column;align-items:center;min-width:70px}.trend-bar-wrap{height:140px;width:30px;display:flex;flex-direction:column-reverse;background:var(--border-soft);border-radius:var(--radius-sm);overflow:hidden}.trend-bar{width:100%;min-height:2px;transition:height .3s}.trend-bar.good{background:var(--good)}.trend-bar.warn{background:var(--warn)}.trend-bar.bad{background:var(--bad)}.trend-label{color:var(--text-muted);font-size:11px;margin-top:6px}.trend-value{color:var(--text);font-weight:600;font-size:12px;margin-top:2px}.legend{display:flex;gap:16px;color:var(--text-muted);font-size:12px;padding:0 8px;align-self:center}.legend .dot{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:middle}.legend .dot.good{background:var(--good)}.legend .dot.warn{background:var(--warn)}.legend .dot.bad{background:var(--bad)}.funnel{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;display:flex;flex-direction:column;gap:8px}.funnel-row{display:grid;grid-template-columns:140px 1fr 130px;align-items:center;gap:10px;font-size:13px}.funnel-bar-wrap{background:var(--border-soft);border-radius:999px;height:12px;overflow:hidden}.funnel-bar{height:100%;background:var(--brand);border-radius:999px;transition:width .3s}.stack-bar{display:flex;height:18px;border-radius:999px;overflow:hidden;background:var(--border-soft);min-width:200px;max-width:380px}.stack-seg{font-size:10px;font-weight:700;color:#fff;display:flex;align-items:center;justify-content:center;transition:width .3s}.stack-seg.good{background:var(--good)}.stack-seg.warn{background:var(--warn);color:#111}.stack-seg.bad{background:var(--bad)}@media (max-width: 700px){.app-main{padding:14px}.top-row{grid-template-columns:1fr}.search-input{width:100%}.form-row{grid-template-columns:1fr}}.ct-files{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.ct-file-list,.tm-file-list{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:4px;width:100%}.ct-file-item,.tm-file-item{display:flex;align-items:center;gap:8px;padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);font-size:13px}.ct-file-name,.tm-file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ct-file-size{color:var(--text-muted);font-size:11px}.ct-file-x{width:20px;height:20px;padding:0;border-radius:50%;border:1px solid var(--border);background:var(--bg-elev);color:var(--text-muted);font-size:13px;line-height:1}.ct-file-x:hover{color:var(--bad);border-color:var(--bad)}.tm-files{margin:12px 0}.tm-files .label{margin-bottom:4px}.tm-file-dl{font-size:12px;color:var(--brand);white-space:nowrap}.tm-file-dl:hover{color:var(--brand-strong)}.tm-file-list.pending .tm-file-item{background:var(--brand-soft);border-color:var(--brand)}.ct-mode-row{display:flex;gap:14px;margin-bottom:6px}.ct-mode{display:inline-flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}.ct-mode input{cursor:pointer}.complete-btn{color:var(--good, #16a34a);border-color:var(--good, #16a34a)}.complete-btn:hover:not(:disabled){background:var(--good, #16a34a);color:#fff}.mode-badge{font-size:12px;padding:3px 10px;border-radius:999px;border:1px solid var(--border);margin-left:8px}.mode-badge.mode-live{color:#15803d;border-color:#16a34a73;background:#16a34a1a}.mode-badge.mode-frozen{color:var(--text-muted)}.drilldown-btn{padding:3px 8px;font-size:13px}.payroll-table .user-row td:last-child{width:36px;text-align:center}.task-list-block{margin:6px 0 10px;padding-left:8px;border-left:2px solid var(--border-soft, var(--border))}.tlb-toggle{font-size:12px;padding:2px 8px}.tlb-body{margin-top:6px}.tlb-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.tlb-item{display:grid;grid-template-columns:1fr auto auto auto;gap:10px;align-items:center;padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);font-size:12px}.tlb-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tlb-status{color:var(--text-muted)}.tlb-deadline{color:var(--text-muted);white-space:nowrap}.tlb-amount{font-weight:600;white-space:nowrap;min-width:80px;text-align:right}.tlb-amount.good{color:var(--good, #16a34a)}.tlb-amount.bad{color:var(--bad, #ef4444)}.row-expand{width:22px;height:22px;padding:0;border:1px solid var(--border);background:var(--bg-elev);color:var(--text-muted);font-size:11px;line-height:1;border-radius:var(--radius-sm)}.row-expand:hover{color:var(--brand);border-color:var(--brand)}.payroll-table .user-row.open{background:var(--brand-soft, rgba(99,102,241,.06))}.user-detail-row>td{padding:0!important;background:var(--bg-elev)}.ud-wrap{padding:12px 16px 16px 36px;display:flex;flex-direction:column;gap:10px}.ud-empty{padding:12px 16px;color:var(--text-muted)}.ud-bucket{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);overflow:hidden}.ud-bucket-head{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border);font-size:13px}.ud-bucket-head.muted{border-bottom:none}.ud-sum{margin-left:auto;font-size:13px}.ud-task-list{list-style:none;margin:0;padding:4px;display:flex;flex-direction:column;gap:2px}.ud-task-item{padding:0}.ud-task-btn{display:grid;grid-template-columns:1fr auto auto auto;gap:12px;width:100%;text-align:left;background:transparent;border:1px solid transparent;padding:6px 10px;font:inherit;font-size:12px;border-radius:var(--radius-sm);cursor:pointer;color:var(--text);align-items:center}.ud-task-btn:hover{background:var(--brand-soft, rgba(99,102,241,.1));border-color:var(--brand)}.ud-task-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ud-task-status{color:var(--text-muted)}.ud-task-deadline{color:var(--text-muted);white-space:nowrap}.ud-task-amount{font-weight:600;white-space:nowrap;min-width:80px;text-align:right}.ud-task-amount.good{color:var(--good, #16a34a)}.ud-task-amount.bad{color:var(--bad, #ef4444)}.ud-task-missing{padding:6px 10px;font-size:12px;display:flex;gap:6px;align-items:center}.ud-task-missing a{color:var(--brand)}body{font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;position:relative}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:radial-gradient(46% 40% at 12% 8%,color-mix(in srgb,var(--brand-2) 40%,transparent),transparent 70%),radial-gradient(40% 38% at 92% 22%,color-mix(in srgb,var(--brand) 32%,transparent),transparent 72%),radial-gradient(50% 45% at 78% 96%,color-mix(in srgb,#b9a14a 28%,transparent),transparent 70%),radial-gradient(40% 40% at 25% 90%,color-mix(in srgb,var(--brand-2) 24%,transparent),transparent 72%)}.tnum{font-variant-numeric:tabular-nums lining-nums}.card,.metric,.top-card,.rank-card,.help-card,.login-card,.table-wrap,.kb-col,.filter-accordion,.modal,.rule-card,.add-rule,.funnel,.trend{background:var(--glass);backdrop-filter:blur(var(--glass-blur)) saturate(1.7);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(1.7);border:1px solid var(--glass-border);box-shadow:var(--shadow-1)}.app-header{background:color-mix(in srgb,var(--bg-elev) 55%,transparent);backdrop-filter:blur(16px) saturate(1.6);-webkit-backdrop-filter:blur(16px) saturate(1.6);border-bottom:1px solid var(--glass-border);box-shadow:inset 0 1px #fff6,0 8px 20px -16px color-mix(in srgb,var(--tint) 40%,transparent)}.app-header .logo{display:inline-flex;align-items:center;gap:9px;font-weight:800;letter-spacing:-.02em}.app-header .logo:before{content:"TA";width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:linear-gradient(140deg,var(--brand-2),var(--brand));color:#fff;font-size:12px;font-weight:800;box-shadow:inset 0 1px #ffffff80,0 4px 10px -2px color-mix(in srgb,var(--brand) 55%,transparent)}.metric .value{font-size:28px;font-weight:800;letter-spacing:-.025em;font-variant-numeric:tabular-nums}.metric .label{font-weight:700}.chip{background:#ffffff73;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-color:var(--glass-border);font-weight:600}.chip.active{background:var(--brand);border-color:var(--brand);box-shadow:0 6px 16px -6px color-mix(in srgb,var(--brand) 60%,transparent),inset 0 1px #fff6}button.primary,.btn-login{background:linear-gradient(140deg,var(--brand-2),var(--brand));border-color:var(--brand);box-shadow:0 8px 18px -6px color-mix(in srgb,var(--brand) 60%,transparent),inset 0 1px #fff6}button:active{transform:translateY(1px)}.fab{background:linear-gradient(140deg,var(--brand-2),var(--brand));box-shadow:0 12px 28px -8px color-mix(in srgb,var(--brand) 60%,transparent),inset 0 1px #fff6}.card{padding:18px;gap:16px;transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s}.card:hover{transform:translateY(calc(-2px - var(--float) * .18));box-shadow:var(--shadow-2)}.ec-head{display:flex;align-items:center;gap:13px}.ec-av{width:46px;height:46px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-weight:800;font-size:16px;background:var(--brand-soft);color:var(--brand-strong);background-size:cover;background-position:center;box-shadow:0 0 0 2px var(--bg-elev),0 0 0 4px var(--ring, var(--border)),inset 0 1px #fff9}.ec-who{flex:1;min-width:0}.ec-name{font-weight:700;font-size:15.5px;letter-spacing:-.01em;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ec-dept{font-size:12px;color:var(--text-muted);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ec-sal{font-size:11.5px;color:var(--text-faint);margin-top:1px;font-variant-numeric:tabular-nums}.ec-ring{--p: 0;--col: var(--good);position:relative;width:54px;height:54px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;background:conic-gradient(var(--col) calc(var(--p) * 1%),color-mix(in srgb,var(--text-faint) 28%,transparent) 0);box-shadow:inset 0 1px 2px #00000026;border:none;padding:0;cursor:pointer;font:inherit;color:var(--text);transition:transform .15s}.ec-ring:hover{transform:scale(1.06)}.ec-ring:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.ec-ring:before{content:"";position:absolute;width:42px;height:42px;border-radius:50%;background:color-mix(in srgb,var(--bg-elev) 82%,transparent);box-shadow:inset 0 1px #fff9}.ec-ring b{position:relative;font-size:14px;font-weight:800;letter-spacing:-.03em}.ec-ring.none b{color:var(--text-faint);font-size:16px}.ec-payout{padding:14px 16px;border-radius:var(--radius-sm);background:var(--glass-sunken);border:1px solid var(--glass-border);box-shadow:inset 0 1px #ffffff80}.ec-payout .lbl{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted)}.ec-payout .big{font-size:29px;font-weight:800;letter-spacing:-.03em;line-height:1.05;margin-top:5px;font-variant-numeric:tabular-nums}.ec-payout .big.good{color:var(--good)}.ec-payout .big.bad{color:var(--bad)}.ec-payout .big.neutral{color:var(--text-muted)}.ec-flow{display:flex;height:7px;border-radius:99px;overflow:hidden;background:#00000014;margin-top:11px;box-shadow:inset 0 1px 2px #0000001f}.ec-flow .b{background:var(--good)}.ec-flow .f{background:var(--bad)}.ec-flowleg{display:flex;justify-content:space-between;font-size:11.5px;margin-top:7px;color:var(--text-muted)}.ec-flowleg b.b{color:var(--good);font-weight:700}.ec-flowleg b.f{color:var(--bad);font-weight:700}.ec-counts{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--glass-border);border:1px solid var(--glass-border);border-radius:var(--radius-sm);overflow:hidden}.ec-ct{background:var(--glass-sunken);padding:9px 4px;text-align:center}.ec-ct .n{display:block;font-size:18px;font-weight:800;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums}.ec-ct .t{display:block;font-size:10.5px;color:var(--text-muted);margin-top:4px}.ec-ct .n.good{color:var(--good)}.ec-ct .n.warn{color:var(--warn)}.ec-ct .n.bad{color:var(--bad)}.ec-ct .n.info{color:var(--info)}@media (prefers-reduced-transparency: reduce){.card,.metric,.top-card,.rank-card,.help-card,.login-card,.table-wrap,.kb-col,.filter-accordion,.modal,.rule-card,.add-rule,.funnel,.trend,.chip,.app-header{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--bg-elev)}}.filter-accordion{backdrop-filter:none;-webkit-backdrop-filter:none;background:color-mix(in srgb,var(--bg-elev) 88%,transparent)}.ms-list{z-index:60}
