:root{--bg:#f5f5f7;--card:#ffffff;--text:#1d1d1f;--sub:#6e6e73;--line:rgba(0,0,0,0.07);--blue:#007AFF;--dd:#0089FF;--dd-blue:#0089FF;--indigo:#6366f1;--green:#34c759;--orange:#ff9500;--red:#ff3b30;--text-primary:#1d1d1f;--text-secondary:#6e6e73;--text-tertiary:#515154;--success:#34c759;--warning:#ff9500;--error:#ff3b30;--info:#007AFF;--bg-canvas:#f5f5f7;--bg-card:#ffffff;--bg-sidebar:rgba(255,255,255,0.78);--bg-tabbar:rgba(255,255,255,0.86);--bg-mask:rgba(15,23,42,0.42);--ai-gradient:linear-gradient(90deg,#6366f1,#0089ff);--hero-gradient:linear-gradient(120deg,#0b1f3a,#12325e 55%,#1b3f7a);--hero-glow-right:radial-gradient(circle,rgba(0,137,255,0.4),transparent 65%);--hero-glow-left:radial-gradient(circle,rgba(99,102,241,0.32),transparent 65%);--radius-card:18px;--radius-card-mobile:15px;--radius-button:9px;--radius-badge:7px;--radius-tag:7px;--radius-sheet:20px;--radius-progress:4px;--shadow:0 1px 2px rgba(0,0,0,0.04),0 4px 16px rgba(0,0,0,0.04);--shadow-card:0 1px 2px rgba(0,0,0,0.04),0 4px 16px rgba(0,0,0,0.04);--shadow-card-hover:0 2px 4px rgba(0,0,0,0.08),0 8px 32px rgba(0,0,0,0.08);--shadow-sheet:0 24px 64px rgba(0,0,0,0.22);--blur-sidebar:blur(24px);--blur-tabbar:blur(24px);--blur-mask:blur(6px);--font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;--font-size-base:14px;--font-size-card-title:15.5px;--font-size-h1:22px;--font-size-h2:18px;--font-size-hero:24px;--font-size-kpi:21px;--font-size-md:15px;--font-size-sm:13.5px;--font-size-sub:12.5px;--font-size-body:14px;--font-size-xs:12px;--font-size-tag:11px;--font-size-ai-badge:10.5px;--font-size-btn:12.5px;--font-size-btn-sm:12px;--font-size-mini:10.5px;--font-size-h1-mobile:18px;--font-size-h2-mobile:15.5px;--font-size-hero-mobile:20px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-lg:16px;--spacing-xl:20px;--spacing-xxl:32px;--spacing-card:20px;--spacing-card-mobile:16px 14px;--breakpoint-mobile:900px;--breakpoint-small:380px;--sidebar-width:236px;--tabbar-height:49px;--safe-area-bottom:env(safe-area-inset-bottom,0px);--main-max-width:1180px;--main-padding:26px 34px 46px;--main-padding-mobile:16px 14px 96px;--sheet-max-width:540px;--sheet-max-width-wide:720px;--sheet-max-height:86vh}body,html{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.55;background-color:var(--bg-canvas);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-badge{display:inline-flex;align-items:center;gap:4px;background:var(--ai-gradient);color:#fff;font-size:var(--font-size-ai-badge);padding:2.5px 8px;border-radius:var(--radius-badge);letter-spacing:.3px;flex:none}.ai-badge,.tag{font-weight:600}.tag{display:inline-block;font-size:var(--font-size-tag);padding:2px 8px;border-radius:var(--radius-tag)}.tag.blue{background:rgba(0,122,255,.1);color:var(--blue)}.tag.green{background:rgba(52,199,89,.12);color:#1f8b3e}.tag.orange{background:rgba(255,149,0,.14);color:#b25e00}.tag.red{background:rgba(255,59,48,.1);color:var(--red)}.tag.gray{background:rgba(0,0,0,.05);color:var(--sub)}.btn{display:inline-flex;align-items:center;gap:6px;background:var(--blue);color:#fff;font-size:var(--font-size-btn);font-weight:600;padding:7px 14px;border-radius:var(--radius-button);transition:opacity .15s;cursor:pointer}.btn:hover{opacity:.88}.btn.ghost{background:rgba(0,122,255,.09);color:var(--blue)}.btn.sm{padding:5px 10px;font-size:var(--font-size-btn-sm)}.card{padding:var(--spacing-card);border:1px solid rgba(0,0,0,.03);transition:box-shadow .3s ease}.card h3{font-weight:650}.card h3 .more{margin-left:auto;font-size:var(--font-size-sub);color:var(--sub);font-weight:400}.hero-card{background:var(--hero-gradient);border-radius:22px;color:white;padding:26px 28px;position:relative;overflow:hidden}.hero-card:after{right:-90px;top:-90px;width:300px;height:300px;background:var(--hero-glow-right)}.hero-card:after,.hero-card:before{content:"";position:absolute;border-radius:50%;pointer-events:none}.hero-card:before{left:32%;bottom:-120px;width:260px;height:260px;background:var(--hero-glow-left)}.sub{color:var(--sub);font-size:var(--font-size-sub)}.divider{height:1px;background:var(--line);margin:12px 0}.dot{width:7px;height:7px;border-radius:50%;background:var(--green);flex:none}.dot.off{background:#c7c7cc}.role-admin .r-admin,.role-employee .r-employee,.role-manager .r-manager{display:block}.role-admin .r-admin-flex,.role-manager .r-manager-flex{display:flex}.rv{display:none}.role-admin .rv[data-for~=admin],.role-employee .rv[data-for~=employee],.role-manager .rv[data-for~=manager]{display:var(--rvd,block)}.rv[data-rvd=grid]{--rvd:grid}.prog-mini,.prog-mini i,.progress,.progress i{border-radius:var(--radius-progress)}.card{background:var(--bg-card);border-radius:var(--radius-card);padding:20px 18px;box-shadow:var(--shadow-card);transition:box-shadow .2s,transform .15s}.card:hover{box-shadow:var(--shadow-card-hover)}.card h3{font-size:var(--font-size-card-title);font-weight:600;margin-bottom:14px;display:flex;align-items:center;gap:8px}.card .more{font-size:12px;color:var(--sub);margin-left:auto;font-weight:400}@media (max-width:var(--breakpoint-mobile )){.desktop-only{display:none!important}.mobile-only{display:flex!important}.card{padding:var(--spacing-card-mobile)}.card,.hero-card{border-radius:var(--radius-card-mobile)}.hero-card{padding:18px 16px}.hero-card .hero-top h2{font-size:var(--font-size-h2-mobile)}.hero-card .hero-stat b{font-size:var(--font-size-hero-mobile)}h1{font-size:var(--font-size-h1-mobile)!important}.main-content{padding-bottom:calc(var(--tabbar-height) + var(--safe-area-bottom))}}@media (max-width:var(--breakpoint-small )){.hero-card .hero-stats{grid-template-columns:1fr 1fr}.links-grid-4{grid-template-columns:repeat(2,1fr)}}@media (min-width:calc(var(--breakpoint-mobile ) + 1px)){.mobile-only{display:none!important}.desktop-only{display:flex!important}}.hero{background:linear-gradient(120deg,#0b1f3a,#12325e 55%,#1b3f7a)}.hero:after{background:radial-gradient(circle,rgba(0,137,255,.4),transparent 65%)}.hero:before{background:radial-gradient(circle,rgba(99,102,241,.32),transparent 65%)}.stage-card{border-radius:var(--radius);box-shadow:var(--shadow);background:var(--card)}.progress{height:8px;background:rgba(0,0,0,.06);border-radius:4px;overflow:hidden}.progress i{display:block;height:100%;border-radius:4px}.progress.blue i{background:linear-gradient(90deg,var(--dd),var(--blue))}.progress.green i{background:var(--green)}.progress.orange i{background:var(--orange)}.switch{position:relative;width:44px;height:26px;flex:none}.switch input{opacity:0;width:0;height:0}.switch em{inset:0;background:#d1d1d6;border-radius:13px;cursor:pointer}.switch em,.switch em:before{position:absolute;transition:.2s}.switch em:before{content:"";width:22px;height:22px;border-radius:50%;background:#fff;top:2px;left:2px;box-shadow:0 1px 3px rgba(0,0,0,.2)}.switch input:checked+em{background:var(--green)}.switch input:checked+em:before{transform:translateX(18px)}.role-only{display:none}.rv{display:none!important;visibility:hidden;height:0;width:0;overflow:hidden;pointer-events:none;user-select:none}body[data-role=employee] .rv[data-for~=employee],body[data-role=manager] .rv[data-for~=manager]{display:var(--rvd,block);visibility:visible;height:auto;width:auto;overflow:visible;pointer-events:auto;user-select:auto}body[data-role=admin] .rv[data-for~=admin]{display:var(--rvd,block)}#mask{background:rgba(15,23,42,.42);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.sheet{border-radius:20px;max-width:540px;max-height:86vh;box-shadow:0 24px 64px rgba(0,0,0,.22)}.sheet.wide{max-width:720px}.prog-mini{height:8px;background:rgba(0,0,0,.07);border-radius:4px;overflow:hidden;margin:6px 0}.prog-mini i{display:block;height:100%;background:linear-gradient(90deg,var(--dd),var(--blue));border-radius:4px;transition:width .6s ease}.tabbar{display:none}@media (max-width:900px){.sidebar{display:none}.main{margin-left:0;padding:16px 14px 96px;max-width:none}.topbar{gap:10px}.greet h1{font-size:18px}.search{display:none}.role-switch{margin-left:auto}.role-switch button{padding:5px 10px;font-size:12px}.hero{padding:18px 16px;border-radius:18px}.hero-top h2{font-size:15.5px}.hero-stats{grid-template-columns:repeat(2,1fr);gap:9px}.hero-stat:last-child{grid-column:span 2}.hero-stat b{font-size:20px}.stage-strip{gap:10px;margin-top:12px}.g2,.g3,.g4,.stage-strip{grid-template-columns:1fr}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:9px}.quick{grid-template-columns:repeat(4,1fr);gap:8px}.card{padding:16px 14px;border-radius:15px}.tabs{width:100%}.tabbar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:50;background:rgba(255,255,255,.86);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border-top:1px solid var(--line);padding:6px 8px calc(6px + env(safe-area-inset-bottom));gap:2px}.tabbar a,.tabbar button{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 4px;font-size:10.5px;color:var(--sub);font-weight:500;text-decoration:none}.tabbar a.active,.tabbar button.active{color:var(--dd);font-weight:600}.tabbar .ic{width:22px;height:22px}}*{margin:0;padding:0;box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.55;background-color:var(--bg-canvas);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font-family:inherit;cursor:pointer;border:none;background:none}#app{width:100%;min-height:100vh}.ic{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}.app{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);position:fixed;inset:0 auto 0 0;z-index:40;display:flex;flex-direction:column;background:var(--bg-sidebar);backdrop-filter:var(--blur-sidebar);-webkit-backdrop-filter:var(--blur-sidebar);border-right:1px solid var(--line);padding:22px 14px}.brand{gap:10px;padding:4px 10px 20px}.brand,.brand-mark{display:flex;align-items:center}.brand-mark{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--dd),var(--indigo));justify-content:center;color:#fff}.brand-name{font-size:16px;font-weight:700;letter-spacing:.3px}.brand-sub{font-size:11px;color:var(--sub)}.nav{display:flex;flex-direction:column;gap:4px}.nav-item{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:12px;color:#3c3c43;font-size:14px;font-weight:500;text-align:left;transition:background .15s}.nav-item:hover{background:rgba(0,0,0,.045)}.nav-item.active{background:linear-gradient(90deg,rgba(0,137,255,.14),rgba(99,102,241,.12));color:var(--dd);font-weight:600}.nav-item .ic{width:19px;height:19px}.nav-tag{margin-left:auto;font-size:10px;background:rgba(0,137,255,.12);color:var(--dd);padding:1px 7px;border-radius:8px;font-weight:600}.side-agent{margin-top:auto;background:rgba(0,137,255,.06);border:1px solid rgba(0,137,255,.14);border-radius:14px;padding:12px}.side-agent h5{font-size:12px;color:var(--sub);font-weight:600;margin-bottom:8px}.agent-row{display:flex;align-items:center;gap:8px;font-size:13px;padding:4px 0}.agent-more{margin-top:6px;width:100%;text-align:left;font-size:12px;color:var(--dd);font-weight:600;padding:4px 0}.main{flex:1;margin-left:var(--sidebar-width);padding:var(--main-padding);max-width:var(--main-max-width)}.topbar{display:flex;align-items:center;gap:16px;margin-bottom:22px;flex-wrap:wrap}.greet h1{font-size:22px;font-weight:700;letter-spacing:.2px}.greet p{font-size:12.5px;color:var(--sub);margin-top:2px}.search{display:flex;align-items:center;gap:8px;background:#e9e9eb;border-radius:10px;padding:8px 12px;color:var(--sub);width:220px;font-size:13px}.search input{border:none;background:none;outline:none;font-family:inherit;font-size:13px;width:100%;color:var(--text)}.role-switch{margin-left:auto;display:flex;background:#e9e9eb;border-radius:10px;padding:3px;gap:2px}.role-switch button{padding:6px 14px;border-radius:8px;font-size:13px;color:var(--sub);font-weight:500;white-space:nowrap}.role-switch button.on{background:#fff;color:var(--text);font-weight:600;box-shadow:0 1px 4px rgba(0,0,0,.1)}.avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#5ac8fa,var(--blue));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:14px;flex:none}.view{display:none;animation:fadein .25s ease}.view.active{display:block}@keyframes fadein{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.grid{display:grid;gap:16px}.g2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.mt{margin-top:16px}.span2{grid-column:span 2}.workflow .tabs{margin-bottom:18px}.hero{border-radius:22px;color:#fff;padding:26px 28px;position:relative;overflow:hidden;background:var(--hero-gradient)}.hero:after{right:-90px;top:-90px;width:300px;height:300px;background:var(--hero-glow-right)}.hero:after,.hero:before{content:"";position:absolute;border-radius:50%;pointer-events:none}.hero:before{left:32%;bottom:-120px;width:260px;height:260px;background:var(--hero-glow-left)}.hero-top{display:flex;align-items:center;gap:10px;position:relative;z-index:1;flex-wrap:wrap}.hero-top h2{font-size:18px;font-weight:700}.hero-date{font-size:12px;color:rgba(255,255,255,.6)}.hero-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:20px;position:relative;z-index:1}.hero-stat{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:13px 14px}.hero-stat b{font-size:24px;font-weight:700;display:flex;align-items:baseline;gap:3px}.hero-stat b small{font-size:12px;font-weight:500;color:rgba(255,255,255,.6)}.hero-stat span{font-size:12px;color:rgba(255,255,255,.72);display:block;margin-top:3px}.hero-note{margin-top:16px;font-size:12px;color:rgba(255,255,255,.66);position:relative;z-index:1}.stage-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stage-card{border-radius:var(--radius-card);cursor:pointer;border:1px solid rgba(0,0,0,.04);box-shadow:var(--shadow-card);background:var(--bg-card);display:flex;align-items:center;gap:13px;transition:transform .15s}.stage-card:hover{transform:translateY(-2px)}.stage-ico{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex:none}.stage-ico.b{background:rgba(0,137,255,.12);color:var(--dd)}.stage-ico.m{background:rgba(52,199,89,.14);color:#1f8b3e}.stage-ico.a{background:rgba(255,149,0,.14);color:#b25e00}.stage-card h4{font-size:14.5px;font-weight:650}.stage-card p{font-size:12px;color:var(--sub);margin-top:2px}.feed{display:flex;flex-direction:column}.feed-item{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}.feed-item:last-child{border-bottom:none;padding-bottom:2px}.feed-time{width:44px;font-size:12px;color:var(--sub);flex:none;padding-top:3px}.feed-body{flex:1;min-width:0}.feed-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.feed-head b{font-size:13.5px;font-weight:600}.feed-src{font-size:11px;color:var(--sub)}.feed-desc{font-size:12.5px;color:#3c3c43;margin-top:5px;background:rgba(0,137,255,.05);border-left:3px solid rgba(0,137,255,.45);padding:8px 11px;border-radius:0 9px 9px 0;line-height:1.55}.feed-actions{display:flex;gap:8px;margin-top:9px;flex-wrap:wrap}.quick{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.quick button{display:flex;flex-direction:column;align-items:center;gap:8px;padding:15px 8px;border-radius:14px;background:rgba(0,0,0,.028);font-size:12.5px;color:#3c3c43;transition:background .15s}.quick button:hover{background:rgba(0,122,255,.09);color:var(--blue)}.quick .ic{width:22px;height:22px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.kpi{background:rgba(0,0,0,.025);border-radius:14px;padding:13px 15px}.kpi b{font-size:21px;font-weight:700;display:flex;align-items:baseline;gap:5px}.kpi b small{font-size:11.5px;color:var(--sub);font-weight:500}.kpi span{font-size:12px;color:var(--sub);display:flex;align-items:center;gap:5px;margin-bottom:3px}.kpi .trend{font-size:11px;font-weight:600}.trend.up{color:#1f8b3e}.trend.down{color:var(--red)}.list{flex-direction:column}.li,.list{display:flex}.li{align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.li:last-child{border-bottom:none;padding-bottom:2px}.li-ico{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:none}.li-body{flex:1;min-width:0}.li-body b{font-size:13.5px;font-weight:600;display:block}.li-body p{font-size:12px;color:var(--sub);margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.li-right{text-align:right;flex:none}.li-right b{font-size:13px}.li-right p{font-size:11px;color:var(--sub)}.workflow .cal-tabs{margin:0 0 8px;padding:3px;border-radius:10px}.workflow .cal-tabs button{padding:5px 14px;border-radius:7px;font-size:12.5px}.cal-inf{border-bottom:1px solid var(--line)}.cal-inf:last-child{border-bottom:none}.today{display:flex;flex-direction:column;gap:16px}.today-warn{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:12px;border:1px solid rgba(255,59,48,.22);background:rgba(255,59,48,.05);color:#c0392b;font-size:12px;line-height:1.5}.today-warn span{flex:1}.tl24{margin-top:6px}.tl24-hours{position:relative;height:14px}.tl24-hours span{position:absolute;transform:translateX(-50%);font-size:10.5px;color:var(--sub)}.tl24-track{position:relative;height:40px;border-radius:10px;background:rgba(0,0,0,.04);overflow:hidden}.tl24-blk{position:absolute;top:5px;bottom:5px;border-radius:7px;padding:0 6px;font-size:11px;line-height:30px;color:#fff;background:var(--dd);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.tl24-blk.past{background:rgba(0,137,255,.28);color:#1a5f8f}.tl24-blk.live{outline:2px solid var(--dd)}.tl24-blk.conflict{background:var(--orange)}.tl24-now{position:absolute;top:0;bottom:0;width:2px;background:var(--red)}.tq{margin-top:14px;border-top:1px solid var(--line)}.tq-head,.tq-row{display:grid;grid-template-columns:minmax(0,2.4fr) minmax(0,1.3fr) 100px minmax(0,1.4fr) 88px;gap:10px;align-items:center}.tq-head{padding:8px 0;font-size:11px;color:var(--sub)}.tq-head,.tq-row{border-bottom:1px solid var(--line)}.tq-row{padding:11px 0;font-size:12.5px;cursor:pointer}.tq-row:last-child{border-bottom:none}.tq-row:hover{background:rgba(0,0,0,.02)}.tq-title{display:flex;align-items:center;gap:7px;font-weight:600;min-width:0}.tq-title svg{flex:none;color:var(--sub)}.tq-row .dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px;vertical-align:middle}.tq-next{color:var(--dd);font-weight:600;text-align:right}.daynav{display:flex;align-items:center;gap:8px;margin:2px 0 10px}.daynav b{font-size:13.5px;min-width:52px;text-align:center}.daynav .btn.sm.ghost{padding:2px 10px;font-size:15px;line-height:1.4}.daynav-pick{margin-left:auto;border:1px solid var(--line);border-radius:8px;padding:3px 8px;font-size:12px;color:var(--sub);background:var(--card)}.linklike{background:none;border:none;padding:0;color:var(--dd);font-size:inherit;font-weight:600;cursor:pointer}.tq-batch{display:flex;align-items:center;gap:10px;margin-top:12px;padding:10px 12px;border-radius:12px;background:rgba(0,137,255,.06);font-size:12px}.tq-batch span{flex:1}.tq-backlog{margin-top:12px;padding:10px 12px;border-radius:12px;border:1px dashed var(--line);background:rgba(0,0,0,.015);font-size:12px}.tq-backlog-head{display:flex;align-items:center;gap:8px}.tq-backlog-head span{flex:1}.acts{gap:12px}.act-group,.acts{display:flex;flex-direction:column}.act-group{gap:2px}.act-head{display:flex;align-items:baseline;gap:10px;margin:0 0 2px;font-size:12.5px}.act-head b{font-size:13px;flex:1;min-width:0}.act-head a{color:var(--dd);font-size:11.5px;text-decoration:none;white-space:nowrap}.act-row{display:flex;align-items:flex-start;gap:8px;padding:4px 0;font-size:12.5px}.act-dot{flex:none;width:5px;height:5px;margin-top:7px;border-radius:50%;background:var(--indigo)}.act-text{flex:1;min-width:0;line-height:1.5}.flowline{display:flex;flex-direction:column;gap:2px;margin-top:8px}.fl-step{display:flex;gap:10px;padding:7px 0}.fl-dot{flex:none;width:9px;height:9px;margin-top:4px;border-radius:50%;background:var(--dd);box-shadow:0 0 0 3px rgba(0,137,255,.15)}.fl-step b{display:block;font-size:13px}.fl-step p{margin:1px 0 0;font-size:11.5px}@media (max-width:900px){.tq-head{display:none}.tq-row{grid-template-columns:minmax(0,1fr) auto;row-gap:4px}}table{width:100%;border-collapse:collapse;font-size:13px}th{font-size:12px;color:var(--sub);font-weight:600;text-align:left;padding:8px 10px}td,th{border-bottom:1px solid var(--line)}td{padding:10px}tr:last-child td{border-bottom:none}td b{font-weight:600}.bar-cell{display:flex;align-items:center;gap:8px}.mini-bar{height:6px;border-radius:3px;background:rgba(0,0,0,.06);flex:1;overflow:hidden}.mini-bar i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,var(--dd),var(--indigo))}.tabs{display:flex;gap:6px;background:#e9e9eb;padding:4px;border-radius:12px;width:max-content;max-width:100%}.tabs button{padding:8px 22px;border-radius:9px;font-size:13.5px;color:var(--sub);font-weight:500}.tabs button.on{background:#fff;color:var(--text);font-weight:650;box-shadow:0 1px 5px rgba(0,0,0,.1)}.panel{display:none}.panel.active{display:block;animation:fadein .25s ease}.stack-bar{display:flex;height:26px;border-radius:9px;overflow:hidden;font-size:11px;color:#fff;font-weight:600}.stack-bar span{display:flex;align-items:center;justify-content:center;white-space:nowrap}.funnel-bar{height:30px;font-size:12px;margin-top:10px;box-shadow:0 1px 2px rgba(0,0,0,.06)}.funnel-bar span{padding:0 8px;min-width:0;overflow:hidden;text-overflow:ellipsis;transition:filter .15s}.funnel-bar span:hover{filter:brightness(1.08)}.level-card{gap:18px;flex-wrap:wrap}.level-badge,.level-card{display:flex;align-items:center}.level-badge{width:74px;height:74px;border-radius:20px;background:linear-gradient(135deg,var(--dd),var(--indigo));color:#fff;flex-direction:column;justify-content:center;flex:none}.level-badge b{font-size:22px}.level-badge span{font-size:10.5px;opacity:.85}.course{display:flex;gap:13px;padding:12px 0;border-bottom:1px solid var(--line);align-items:center}.course:last-child{border-bottom:none}.course-cover{width:52px;height:52px;border-radius:12px;flex:none;display:flex;color:#fff}#mask,.course-cover{align-items:center;justify-content:center}#mask{position:fixed;inset:0;background:var(--bg-mask);backdrop-filter:var(--blur-mask);-webkit-backdrop-filter:var(--blur-mask);display:none;z-index:90;padding:24px}#mask.show{display:flex}.sheet{background:#fff;border-radius:var(--radius-sheet);width:100%;max-width:var(--sheet-max-width);max-height:var(--sheet-max-height);overflow:auto;box-shadow:var(--shadow-sheet);animation:sheetpop .22s ease}.sheet.wide{max-width:var(--sheet-max-width-wide)}.sheet-head b{font-size:16px;font-weight:700;flex:1}#toast{position:fixed;left:50%;bottom:86px;transform:translateX(-50%) translateY(20px);background:rgba(29,29,31,.92);color:#fff;font-size:13px;padding:10px 18px;border-radius:11px;opacity:0;pointer-events:none;transition:.25s;z-index:99;max-width:86vw}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}body[data-role=admin] .r-admin,body[data-role=employee] .r-employee,body[data-role=manager] .r-manager{display:block}body[data-role=admin] .r-admin-flex,body[data-role=manager] .r-manager-flex{display:flex}@media (max-width:900px){.sidebar{display:none}.main{margin-left:0;padding:var(--main-padding-mobile);max-width:none}.topbar{gap:10px}.greet h1{font-size:18px}.search{display:none}.role-switch{margin-left:auto}.role-switch button{padding:5px 10px;font-size:12px}.hero{padding:18px 16px;border-radius:18px}.hero-top h2{font-size:15.5px}.hero-stats{grid-template-columns:repeat(2,1fr);gap:9px}.hero-stat:last-child{grid-column:span 2}.hero-stat b{font-size:20px}.stage-strip{gap:10px;margin-top:12px}.g2,.g3,.g4,.stage-strip{grid-template-columns:1fr}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:9px}.quick{grid-template-columns:repeat(4,1fr);gap:8px}.quick button{padding:12px 4px;font-size:11.5px}.tabs{width:100%}.tabs button{flex:1;padding:8px 6px;text-align:center}.card{padding:16px 14px;border-radius:15px}.span2{grid-column:auto}.feed-time{width:38px}.level-card{gap:12px}#toast{bottom:74px}.tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--bg-tabbar);backdrop-filter:var(--blur-tabbar);-webkit-backdrop-filter:var(--blur-tabbar);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}.tabbar a,.tabbar button{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10.5px;color:var(--sub);text-decoration:none;padding:4px 0}.tabbar a.active,.tabbar button.active{color:var(--dd)}.tabbar .ic{width:22px;height:22px}}@media (max-width:380px){.hero-stats{grid-template-columns:1fr 1fr}.quick{grid-template-columns:repeat(2,1fr)}}.dashboard{min-height:100vh}.stage-strip{margin-top:16px;margin-bottom:20px}.stage-card{padding:16px 18px;transition:box-shadow .3s ease}.stage-ico.pre{background:rgba(0,137,255,.12);color:var(--dd)}.stage-ico.mid{background:rgba(52,199,89,.14);color:#1f8b3e}.stage-ico.post{background:rgba(255,149,0,.14);color:#b25e00}.stage-info h4{font-size:14.5px;font-weight:650;color:var(--text-primary);margin:0 0 2px}.stage-info p{font-size:12px;color:var(--text-secondary);margin:0;line-height:1.5}.quick button{background:rgba(0,122,255,.06);color:var(--blue);font-weight:500}.quick button:hover{background:rgba(0,122,255,.12)}@media (max-width:900px){.stage-strip{gap:10px;margin-top:12px}.grid.g2,.stage-strip{grid-template-columns:1fr}.feed-time{width:38px}}@media (max-width:380px){.quick{grid-template-columns:repeat(2,1fr)}}.el-card{border-radius:12px;border:none;box-shadow:0 2px 8px rgba(0,0,0,.05)}.el-button,.el-input__wrapper{border-radius:8px}.sheet-mask{position:fixed;inset:0;background:var(--bg-mask);backdrop-filter:var(--blur-mask);-webkit-backdrop-filter:var(--blur-mask);display:flex;align-items:center;justify-content:center;z-index:90;padding:24px;animation:sheetfadein .18s ease}.sheet-panel{background:#fff;border-radius:var(--radius-sheet);width:100%;max-width:var(--sheet-max-width);max-height:var(--sheet-max-height);overflow:auto;box-shadow:var(--shadow-sheet);animation:sheetpop .22s ease}.sheet-panel.wide{max-width:var(--sheet-max-width-wide)}@keyframes sheetfadein{0%{opacity:0}to{opacity:1}}@keyframes sheetpop{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}.sheet-head{display:flex;align-items:center;gap:10px;padding:18px 22px 0}.sheet-head b,.sheet-head h3{font-size:16px;font-weight:700;flex:1;margin:0}.sheet-close{width:30px;height:30px;border-radius:50%;background:rgba(0,0,0,.05);color:var(--sub);font-size:14px;flex:none;display:inline-flex;align-items:center;justify-content:center;line-height:1}.sheet-body{padding:14px 22px 22px;font-size:13.5px;line-height:1.65}.sheet-body h4{font-size:13.5px;font-weight:700;margin:14px 0 6px}.sheet-body h4:first-child{margin-top:2px}.sheet-body p{margin:4px 0}.f-row{margin:10px 0}.f-row>label{display:block;font-size:12.5px;color:var(--sub);margin-bottom:5px}.f-row input[type=date],.f-row input[type=number],.f-row input[type=text],.f-row input[type=time],.f-row select,.f-row textarea{width:100%;border:1px solid rgba(0,0,0,.12);border-radius:10px;padding:8px 10px;font-family:inherit;font-size:13.5px;background:#fafafa;outline:none;color:var(--text)}.f-row textarea{min-height:84px;resize:vertical}.f-row input:focus,.f-row select:focus,.f-row textarea:focus{border-color:var(--blue);background:#fff}.f-inline{display:flex;gap:10px}.f-inline .f-row{flex:1}.chk{display:flex;align-items:center;gap:8px;padding:7px 0;font-size:13px;border-bottom:1px solid var(--line)}.chk:last-child{border-bottom:none}.chk input{width:16px;height:16px;accent-color:var(--blue);flex:none}.m-tbl{width:100%;border-collapse:collapse;font-size:12.5px;margin:8px 0}.m-tbl th{font-size:11.5px;color:var(--sub);text-align:left;padding:6px 8px}.m-tbl td,.m-tbl th{border-bottom:1px solid var(--line)}.m-tbl td{padding:7px 8px}.m-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px}.m-actions .btn{padding:8px 18px}.btn-cancel{background:rgba(0,0,0,.06)!important;color:var(--text)!important}.btn-danger{background:var(--red)!important}.note-box{background:rgba(0,122,255,.06);border-radius:10px;padding:10px 12px;font-size:12.5px;color:#3c3c43;margin:8px 0;line-height:1.7}.chat-box{display:flex;flex-direction:column;gap:10px;max-height:300px;overflow:auto;padding:4px 2px}.chat-msg{max-width:82%;padding:9px 12px;border-radius:14px;font-size:13px;line-height:1.6}.chat-msg.ai{background:rgba(0,122,255,.08);border:1px solid rgba(0,122,255,.14);align-self:flex-start}.chat-msg.me{background:var(--blue);color:#fff;align-self:flex-end}.chat-input{display:flex;gap:8px;margin-top:12px}.chat-input input{flex:1;border:1px solid rgba(0,0,0,.12);border-radius:10px;padding:9px 12px;font-size:13.5px;outline:none;font-family:inherit}

/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:host,:root{--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue","Noto Sans",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.border{border-style:var(--tw-border-style);border-width:1px}.uppercase{text-transform:uppercase}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--background:#fff;--foreground:#171717}@media (prefers-color-scheme:dark){:root{--background:#0a0a0a;--foreground:#ededed}}body{background:var(--background);color:var(--foreground);font-family:Arial,Helvetica,sans-serif}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}