:root{--background:#f3f6f5;--surface:#fffffff0;--surface-solid:#fff;--surface-hover:#f3f8f6;--surface-subtle:#f8faf9;--foreground:#14231f;--muted:#64736e;--border:#dce7e3;--border-strong:#bdcec8;--primary:#0f9f7a;--primary-hover:#087459;--primary-soft:#e7f7f2;--danger:#dc2626;--danger-bg:#fee2e2;--success:#059669;--success-bg:#dcfce7;--warn:#b45309;--warn-bg:#fef3c7;--auto:#c2410c;--auto-bg:#ffedd5;--shadow-sm:0 1px 2px #0a2e2409, 0 10px 30px #0a2e240e;--shadow-md:0 22px 60px #0a2e2424;--sidebar-bg:#043d31;--sidebar-fg:#f4fbf8;--sidebar-fg-muted:#9bb9af;--sidebar-active-bg:#075e49;--sidebar-border:#ffffff14;--sidebar-width:264px;--sidebar-width-collapsed:64px;--mobile-topbar-h:52px;--mobile-bottombar-h:60px}html{height:100%}html,body{max-width:100vw;overflow-x:hidden}body{min-height:100%;color:var(--foreground);background:radial-gradient(circle at 83% 5%, #26c1971a, transparent 31%), radial-gradient(circle at 18% 95%, #556fe50e, transparent 29%), linear-gradient(180deg, #f8faf9 0%, var(--background) 44%, #f5f7f6 100%);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.004em;flex-direction:column;margin:0;font-family:Aptos,Segoe UI Variable Text,Segoe UI,Inter,Roboto,Arial,Helvetica,sans-serif;font-size:15px;line-height:1.56;display:flex}@media (min-width:769px){.sidebar{background:radial-gradient(circle at 8% -2%,#36e7b14d,#0000 26%),radial-gradient(circle at 108% 44%,#1691ef21,#0000 34%),linear-gradient(165deg,#08634d 0%,#034938 42%,#022f28 100%);box-shadow:18px 0 55px #021e172e}.sidebar:before{content:"";width:var(--sidebar-width);pointer-events:none;opacity:.13;background-image:linear-gradient(#ffffff1c 1px,#0000 1px),linear-gradient(90deg,#ffffff14 1px,#0000 1px);background-size:36px 36px;transition:width .2s;position:fixed;inset:0 auto 0 0;-webkit-mask-image:linear-gradient(#000,#0000 70%);mask-image:linear-gradient(#000,#0000 70%)}.sidebar.collapsed:before{width:var(--sidebar-width-collapsed)}}.portal-admin-heading{min-width:0}.portal-admin-badge{color:#087c60;letter-spacing:.15em;align-items:center;gap:6px;font-size:8.5px;font-weight:850;display:inline-flex}.portal-admin-tabs{background:#fff;border-bottom:1px solid #dce7e3;flex:none;grid-template-columns:1fr 1fr;gap:7px;padding:9px 12px;display:grid}.portal-admin-tabs button{color:#667772;text-align:left;cursor:pointer;background:#f6f9f8;border:1px solid #0000;border-radius:12px;align-items:center;gap:10px;min-width:0;padding:10px 12px;transition:transform .18s,border-color .18s,background .18s,box-shadow .18s;display:flex}.portal-admin-tabs button:hover{background:#fff;border-color:#cde1da;transform:translateY(-1px)}.portal-admin-tabs button.active{color:#087c60;background:#eaf8f3;border-color:#a9dece;box-shadow:0 7px 18px #09715514}.portal-admin-tabs button>span{flex-direction:column;min-width:0;display:flex}.portal-admin-tabs strong{font-size:11.5px;line-height:1.25}.portal-admin-tabs small{color:#82908c;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:8.8px;overflow:hidden}.portal-config-action-note{color:#7b8a85;white-space:nowrap;margin-left:auto;font-size:9.5px}.permission-manager{min-height:0}.permission-manager.embedded{flex-direction:column;gap:10px;height:100%;display:flex}.permission-manager-loading{color:#71817b;text-align:center;place-content:center;justify-items:center;gap:7px;height:100%;min-height:240px;display:grid}.permission-manager-loading svg{color:var(--primary)}.permission-manager-loading strong{color:#253a33;font-size:14px}.permission-manager-loading span{font-size:10.5px}.permission-command-bar{background:linear-gradient(135deg,#fff,#f0faf6);border:1px solid #d8e7e1;border-radius:14px;justify-content:space-between;align-items:center;gap:14px;padding:11px 13px;display:flex}.permission-command-title{align-items:center;gap:10px;min-width:0;display:flex}.permission-command-icon{color:#078464;background:#e3f7f0;border-radius:11px;flex:none;place-items:center;width:35px;height:35px;display:grid}.permission-command-title>div{flex-direction:column;min-width:0;display:flex}.permission-command-title strong{color:#19372e;font-size:12.5px}.permission-command-title span{color:#778781;margin-top:2px;font-size:9.5px}.permission-mini-stats{gap:6px;display:flex}.permission-mini-stats span{color:#73827d;text-align:center;background:#ffffffd9;border:1px solid #dbe8e4;border-radius:9px;min-width:66px;padding:6px 8px;font-size:8.5px}.permission-mini-stats strong{color:#078464;font-size:13px;display:block}.permission-inline-message,.permission-manager .success-box{border-radius:10px;margin:0;padding:9px 12px;font-size:10.5px}.permission-result-count{color:#087c60;background:#e9f8f3;border-radius:9px;place-items:center;min-width:27px;height:27px;font-size:10px;font-weight:800;display:grid}.permission-config-status{color:#7d8b86;text-align:center;background:#f0f3f2;border-radius:999px;padding:4px 7px;font-size:8.5px;font-weight:750}.permission-config-status.configured{color:#087c60;background:#dff8ef}.permission-selected-head{margin-bottom:9px}.permission-selected-head .page-eyebrow{letter-spacing:.12em;font-size:7.5px}.permission-presets{background:#f5f8f7;border-radius:10px;align-items:center;gap:6px;margin:-1px 0 9px;padding:7px 9px;display:flex}.permission-presets>span{color:#72817c;margin-right:3px;font-size:9.5px;font-weight:700}.permission-presets button{color:#276153;cursor:pointer;background:#fff;border:1px solid #cfe0da;border-radius:8px;padding:5px 8px;font:700 9.5px/1 inherit}.permission-full-btn{color:#276153;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #cfe0da;border-radius:8px;padding:4px 10px;font:700 9.5px/1 inherit}.permission-full-btn:hover:not(:disabled){background:#f0faf6;border-color:#0f9d76}.permission-full-btn.dang-bat{color:#fff;background:#0f9d76;border-color:#0f9d76}.permission-full-btn.dang-bat:hover:not(:disabled){background:#0b8563;border-color:#0b8563}.permission-full-btn:disabled{opacity:.45;cursor:not-allowed}.permission-presets button:hover{background:#eaf8f3;border-color:#77c8b1}.permission-presets button.danger{color:#b53030;background:#fff5f5;border-color:#f0caca;margin-left:auto}.permission-admin-lock{color:#087c60;background:#eaf9f4;border:1px solid #bde4d7;border-radius:11px;align-items:center;gap:9px;margin-bottom:10px;padding:9px 11px;display:flex}.permission-admin-lock div{flex-direction:column;display:flex}.permission-admin-lock strong{font-size:11px}.permission-admin-lock span{color:#618278;font-size:9px}@media (max-width:900px){.portal-config-panel.permission-mode{width:100%}.permission-manager.embedded .permission-layout{grid-template-columns:1fr;overflow:auto}.permission-manager.embedded .permission-employees{min-height:310px}.permission-manager.embedded .permission-matrix-card{min-height:520px}.permission-mini-stats{display:none}}@media (max-width:768px){.brand-mark{border-radius:11px;width:34px;height:34px}.portal-config-panel>header{padding:16px 14px 12px}.portal-admin-heading h2{font-size:20px}.portal-admin-heading p{display:none}.portal-admin-tabs{padding:8px}.portal-admin-tabs button{padding:9px}.portal-admin-tabs small{display:none}.portal-config-actions{flex-wrap:wrap;overflow:visible}.portal-config-action-note{white-space:normal;width:100%;margin:2px 0 0}.portal-config-list{padding:10px 9px 12px}.portal-config-panel>footer{width:100%;padding:10px 12px;position:static;bottom:auto;right:auto}.portal-permission-view{padding:8px;overflow:auto}.permission-command-bar{align-items:flex-start}.permission-command-title span{white-space:normal}.permission-manager.embedded{height:auto;min-height:100%}.permission-manager.embedded .permission-layout{display:block;overflow:visible}.permission-manager.embedded .permission-employees{min-height:0;margin-bottom:10px}.permission-manager.embedded .permission-employee-list{max-height:300px}.permission-manager.embedded .permission-matrix-card{min-height:0}.permission-selected-head{align-items:flex-start}.permission-selected-head .btn{padding:8px 9px;font-size:10px}.permission-presets{flex-wrap:wrap}.permission-presets button.danger{margin-left:0}}strong,b{font-weight:700}h1,h2,h3{letter-spacing:-.035em;text-wrap:balance;line-height:1.16}.ambient-orb{filter:blur(90px);opacity:.16;pointer-events:none;z-index:-1;border-radius:50%;position:fixed}.ambient-orb-one{background:#2ebd96;width:300px;height:300px;top:-120px;right:4%}.ambient-orb-two{background:#0b6b52;width:260px;height:260px;bottom:-140px;left:30%}.global-route-progress{z-index:1002;pointer-events:none;opacity:0;height:3px;transition:opacity .2s;position:fixed;top:0;left:0;right:0}.global-route-progress.active{opacity:1}.global-route-progress span{background:linear-gradient(90deg,#43d5ad,#159a76 68%,#b7f6df);border-radius:0 999px 999px 0;height:100%;transition:width .18s linear;display:block;box-shadow:0 0 14px #159a7685}.global-data-loader{z-index:1001;color:#eefcf7;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);opacity:0;pointer-events:none;transform-origin:100% 0;background:radial-gradient(circle at 10% 0,#41daae40,#0000 38%),#023d2ef0;border:1px solid #ffffffa8;border-radius:18px;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:12px;width:min(430px,100vw - 28px);min-height:72px;padding:12px 15px 15px;transition:opacity .22s,transform .32s cubic-bezier(.16,1,.3,1);display:grid;position:fixed;top:18px;right:18px;overflow:hidden;transform:translateY(-18px)scale(.96);box-shadow:0 22px 55px #00302442}.global-data-loader.visible{opacity:1;transform:translateY(0)scale(1)}.global-data-loader-icon{background:#ffffff14;border:1px solid #8cf0cf33;border-radius:13px;width:42px;height:42px;position:relative}.global-data-loader-icon svg{fill:none;stroke:#9cf0d5;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px;animation:1.35s ease-in-out infinite dataLoaderBell;position:absolute;inset:9px}.global-data-loader-icon i{background:#50e0b4;border:2px solid #064c3b;border-radius:50%;width:7px;height:7px;animation:1.35s ease-in-out infinite dataLoaderNotice;position:absolute;top:7px;right:7px;box-shadow:0 0 10px #50e0b4cc}@keyframes dataLoaderBell{0%,to{transform:rotate(0)}20%{transform:rotate(10deg)}40%{transform:rotate(-8deg)}60%{transform:rotate(5deg)}80%{transform:rotate(-3deg)}}@keyframes dataLoaderNotice{0%,to{opacity:.55;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}}.global-data-loader-copy{flex-direction:column;gap:3px;min-width:0;display:flex}.global-data-loader-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;font-weight:700;overflow:hidden}.global-data-loader-copy span{color:#dcfaf0a8;letter-spacing:.06em;text-transform:uppercase;font-size:10.5px;font-weight:600}.global-data-loader>b{color:#8cebcf;font-variant-numeric:tabular-nums;font-size:12px}.global-data-loader-track{background:#ffffff14;height:3px;position:absolute;bottom:0;left:0;right:0}.global-data-loader-track span{background:linear-gradient(90deg,#35d5a7,#9cf0d5);border-radius:999px;height:100%;transition:width .18s linear;display:block;box-shadow:0 0 12px #35d5a78c}.lalia-boot-screen{z-index:1100;color:#f2fff9;opacity:0;visibility:hidden;pointer-events:none;background:radial-gradient(circle at 50% 25%,#1999733d,#0000 33%),linear-gradient(150deg,#002d22 0%,#001d17 58%,#031813 100%);justify-content:center;align-items:center;transition:opacity .32s,visibility .32s;display:flex;position:fixed;inset:0;overflow:hidden}.lalia-boot-screen.visible{opacity:1;visibility:visible;pointer-events:auto}.lalia-boot-grid{opacity:.12;background-image:linear-gradient(#70e3bf33 1px,#0000 1px),linear-gradient(90deg,#70e3bf33 1px,#0000 1px);background-size:44px 44px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle,#000,#0000 72%);mask-image:radial-gradient(circle,#000,#0000 72%)}.lalia-boot-glow{filter:blur(80px);border-radius:50%;animation:5s ease-in-out infinite alternate bootGlowFloat;position:absolute}.lalia-boot-glow-one{background:#1fc2922e;width:390px;height:390px;top:-15%;right:5%}.lalia-boot-glow-two{background:#03694e47;width:330px;height:330px;animation-delay:-1.6s;bottom:-18%;left:8%}@keyframes bootGlowFloat{0%{transform:translate(-12px,-8px)scale(.95)}to{transform:translate(16px,12px)scale(1.08)}}.lalia-boot-card{z-index:1;text-align:center;width:min(420px,100vw - 40px);padding:28px;animation:.65s cubic-bezier(.16,1,.3,1) both bootCardIn;position:relative}@keyframes bootCardIn{0%{opacity:0;transform:translateY(22px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.lalia-boot-brand{text-align:left;justify-content:center;align-items:center;gap:12px;margin-bottom:34px;display:flex}.lalia-boot-mark{background:linear-gradient(145deg,#34d1a4f2,#097052eb);border:1px solid #9df6d940;border-radius:15px;place-items:center;width:48px;height:48px;display:grid;position:relative;box-shadow:0 14px 35px #0000004d,0 0 28px #31cd9f33}.lalia-boot-mark span{font-size:20px;font-weight:900}.lalia-boot-mark i{background:#c7ffe9;border-radius:100% 0;width:9px;height:14px;position:absolute;top:7px;right:7px;transform:rotate(18deg)}.lalia-boot-brand strong{letter-spacing:.15em;font-size:17px;display:block}.lalia-boot-brand small{color:#c5eee094;letter-spacing:.18em;margin-top:3px;font-size:8px;font-weight:700;display:block}.lalia-boot-orbit{border:1px solid #76e7c41f;border-radius:50%;place-items:center;width:132px;height:132px;margin:0 auto 28px;animation:8s linear infinite bootOrbit;display:grid;position:relative}.lalia-boot-orbit:before,.lalia-boot-orbit:after{content:"";border-radius:50%;position:absolute}.lalia-boot-orbit:before{border:1px dashed #76e7c43d;inset:10px}.lalia-boot-orbit:after{background:#8ff0d1;width:8px;height:8px;top:-4px;left:50%;box-shadow:0 0 16px #49d6aa}@keyframes bootOrbit{to{transform:rotate(360deg)}}.lalia-boot-core{background:radial-gradient(circle,#29b98d40,#ffffff08);border:1px solid #87eccc2e;border-radius:50%;justify-content:center;align-items:baseline;width:90px;height:90px;padding-top:28px;animation:8s linear infinite reverse bootCounterRotate;display:flex;box-shadow:inset 0 0 25px #54e3b812}@keyframes bootCounterRotate{to{transform:rotate(-360deg)}}.lalia-boot-core span{font-variant-numeric:tabular-nums;font-size:29px;font-weight:800}.lalia-boot-core small{color:#84e9c9;margin-left:2px;font-size:12px}.lalia-boot-card h2{letter-spacing:-.025em;margin:0;font-size:20px}.lalia-boot-card>p{color:#d3f2e7a8;margin:8px 0 20px;font-size:12.5px}.lalia-boot-track{background:#ffffff14;border-radius:999px;width:min(290px,100%);height:5px;margin:0 auto;overflow:hidden}.lalia-boot-track span{border-radius:inherit;background:linear-gradient(90deg,#1cb489,#7ce5c3);height:100%;transition:width .12s linear;display:block;box-shadow:0 0 18px #4fdcb080}.lalia-boot-dots{justify-content:center;gap:5px;margin-top:16px;display:flex}.lalia-boot-dots i{background:#78dfbf;border-radius:50%;width:4px;height:4px;animation:1.15s ease-in-out infinite bootDot}.lalia-boot-dots i:nth-child(2){animation-delay:.15s}.lalia-boot-dots i:nth-child(3){animation-delay:.3s}@keyframes bootDot{0%,to{opacity:.25}50%{opacity:1;transform:translateY(-3px)}}.route-loading-shell{animation:.28s both routeSkeletonIn}.route-loading-header,.route-loading-content{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:16px;padding:22px}.route-loading-header{align-items:center;gap:14px;display:flex}.route-loading-header>div{flex:1}.route-loading-icon{border-radius:14px;width:46px;height:46px}.route-loading-grid{grid-template-columns:repeat(3,1fr);gap:14px;margin:16px 0;display:grid}.route-loading-grid span{border-radius:15px;min-height:105px}.route-loading-content{flex-direction:column;gap:13px;display:flex}.route-loading-icon,.route-loading-grid span,.skeleton-line{background:linear-gradient(100deg,#edf2f0 20%,#f9fbfa 42%,#edf2f0 64%) 0 0/240% 100%;animation:1.25s linear infinite skeletonShimmer;display:block;overflow:hidden}.skeleton-line{border-radius:999px;height:11px;margin:6px 0}.skeleton-line.wide{width:min(360px,70%)}.skeleton-line.medium{width:min(220px,48%)}.skeleton-line.full{width:100%}@keyframes skeletonShimmer{to{transform:translate(100%)}}@keyframes routeSkeletonIn{0%{opacity:0;transform:translateY(8px)}}@media (max-width:640px){.global-data-loader{border-radius:15px;min-height:66px;top:10px;right:10px}.global-data-loader-icon{width:38px;height:38px}.lalia-boot-card{padding:18px}.lalia-boot-card h2{font-size:18px}.route-loading-grid{grid-template-columns:1fr}.route-loading-grid span{min-height:78px}}@media (prefers-reduced-motion:reduce){.lalia-boot-glow,.lalia-boot-orbit,.lalia-boot-core,.lalia-boot-dots i,.global-data-loader-icon svg,.global-data-loader-icon i,.route-loading-icon,.route-loading-grid span,.skeleton-line{animation:none!important}}:focus-visible{outline-offset:2px;outline:3px solid #159a764d}*{box-sizing:border-box}a{color:inherit;text-decoration:none}button{font-family:inherit;font-size:inherit}.app-shell{flex:1;min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:radial-gradient(circle at 20% 0%, #23ae8938, transparent 28%), linear-gradient(180deg, #064c3b 0%, var(--sidebar-bg) 72%);min-width:0;color:var(--sidebar-fg);z-index:20;flex-direction:column;flex-shrink:0;height:100vh;transition:width .2s;display:flex;position:fixed;top:0;left:0;overflow:hidden auto;box-shadow:16px 0 45px #060f1c1f}.sidebar.collapsed{width:var(--sidebar-width-collapsed)}.sidebar-brand{white-space:nowrap;border-bottom:1px solid var(--sidebar-border);align-items:center;gap:10px;padding:20px 16px;font-size:14.5px;font-weight:700;display:flex}.brand-mark{color:#fff;letter-spacing:.04em;background:linear-gradient(145deg,#23b58b,#08775a);border-radius:11px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:11px;font-weight:800;display:inline-flex;box-shadow:0 8px 20px #003b2d57}.brand-copy{flex-direction:column;line-height:1.15;display:flex}.brand-copy strong{letter-spacing:-.01em;font-size:14px}.brand-copy small{color:var(--sidebar-fg-muted);letter-spacing:.13em;text-transform:uppercase;margin-top:4px;font-size:9px;font-weight:700}.sidebar-brand .dot{background:var(--sidebar-active-bg);border-radius:50%;flex-shrink:0;width:9px;height:9px}.sidebar-toggle{color:var(--sidebar-fg-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;margin-left:auto;padding:4px;transition:transform .15s;display:flex}.sidebar-toggle:hover{background:#ffffff14}.sidebar.collapsed .sidebar-toggle{transform:rotate(180deg)}.sidebar.collapsed .sidebar-brand span:not(.dot),.sidebar.collapsed .sidebar-nav a span,.sidebar.collapsed .sidebar-footer .user-info,.sidebar.collapsed .sidebar-footer .btn span{display:none}.sidebar.collapsed .sidebar-footer{flex-direction:column;gap:8px}.sidebar.collapsed .sidebar-footer .btn{padding:8px}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:10px;display:flex;overflow-y:auto}.sidebar-nav a{color:var(--sidebar-fg-muted);white-space:nowrap;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-size:13.5px;font-weight:500;transition:background-color .15s,color .15s;display:flex;overflow:hidden}.sidebar-nav a:hover{color:var(--sidebar-fg);background:#ffffff0f}.sidebar-nav a.active{color:#fff;background:linear-gradient(135deg,#08775a,#159a76);box-shadow:0 10px 24px #005b4647}.sidebar-nav a svg{flex-shrink:0}.sidebar-group-header{width:100%;color:var(--sidebar-fg-muted);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:9px 12px;font-size:11.5px;font-weight:700;transition:background-color .15s,color .15s;display:flex}.sidebar-group-header:hover{color:var(--sidebar-fg);background:#ffffff0d}.sidebar-group-header svg:first-child{opacity:.85;flex-shrink:0}.sidebar-group-chevron{flex-shrink:0;margin-left:auto;transition:transform .18s;transform:rotate(-90deg)}.sidebar-group.open .sidebar-group-chevron{transform:rotate(0)}.sidebar-group-body{grid-template-rows:0fr;transition:grid-template-rows .2s;display:grid}.sidebar-group.open .sidebar-group-body{grid-template-rows:1fr}.sidebar-group-body>div{flex-direction:column;gap:2px;padding-left:8px;display:flex;overflow:hidden}.sidebar-group-body a{padding-left:20px}.sidebar.collapsed .sidebar-group-header span,.sidebar.collapsed .sidebar-group-chevron{display:none}.sidebar.collapsed .sidebar-group-body{grid-template-rows:1fr}.sidebar.collapsed .sidebar-group-body a{padding-left:12px}.sidebar-footer{border-top:1px solid var(--sidebar-border);background:var(--sidebar-bg);z-index:2;align-items:center;gap:10px;padding:12px;display:flex;position:sticky;bottom:0}.sidebar-footer .user-info{flex:1;min-width:0;overflow:hidden}.sidebar-footer .user-info .name{color:var(--sidebar-fg);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;font-weight:720;overflow:hidden}.sidebar-footer .user-info .code{color:var(--sidebar-fg-muted);font-size:11.5px}.mobile-topbar,.mobile-bottom-nav{display:none}.mobile-topbar{background:var(--sidebar-bg);color:var(--sidebar-fg);justify-content:space-between;align-items:center;gap:10px;padding:10px 14px}.mobile-topbar-brand{white-space:nowrap;align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.mobile-topbar-brand .dot{background:var(--sidebar-active-bg);border-radius:50%;flex-shrink:0;width:9px;height:9px}.mobile-topbar .btn{padding:7px 10px}.mobile-topbar .btn span{display:none}.mobile-bottom-nav{background:var(--sidebar-bg);border-top:1px solid var(--sidebar-border);padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));justify-content:space-around;align-items:stretch;gap:2px}.mobile-bottom-nav a,.mobile-bottom-nav button{color:var(--sidebar-fg-muted);text-align:center;cursor:pointer;background:0 0;border:none;border-radius:8px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:2px;padding:6px 2px;font-family:inherit;font-size:10.5px;font-weight:500;transition:background-color .15s,color .15s;display:flex}.mobile-bottom-nav a.active,.mobile-bottom-nav button.active{color:#fff;background:#ffffff1a}.mobile-more-backdrop{z-index:45;background:#0f172a59;position:fixed;inset:0}.mobile-more-sheet{left:10px;right:10px;bottom:calc(var(--mobile-bottombar-h) + 8px);z-index:46;background:var(--sidebar-bg);border:1px solid var(--sidebar-border);box-shadow:var(--shadow-md);border-radius:12px;flex-direction:column;gap:2px;padding:8px;display:flex;position:fixed}.mobile-more-sheet a{color:var(--sidebar-fg-muted);border-radius:8px;align-items:center;gap:10px;padding:11px 12px;font-size:14px;font-weight:500;transition:background-color .15s,color .15s;display:flex}.mobile-more-sheet a:hover,.mobile-more-sheet a.active{color:#fff;background:#ffffff14}.quick-search{margin:4px 10px 10px;position:relative}.quick-search .icon-slot{color:var(--sidebar-fg-muted);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.quick-search-input{border:1px solid var(--sidebar-border);width:100%;color:var(--sidebar-fg);background:#ffffff0f;border-radius:8px;padding:8px 10px 8px 32px;font-size:13px}.quick-search-input::placeholder{color:var(--sidebar-fg-muted)}.quick-search-input:focus{border-color:var(--sidebar-active-bg);background:#ffffff1a;outline:none}.quick-search-results{background:var(--surface);border:1px solid var(--border);width:min(260px,100vw - 24px);box-shadow:var(--shadow-md);z-index:60;border-radius:10px;max-height:320px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto}.quick-search-result{cursor:pointer;color:var(--foreground);border-radius:6px;flex-direction:column;gap:1px;padding:8px 10px;display:flex}.quick-search-result:hover{background:var(--primary-soft)}.quick-search-result .muted{font-size:12px}.spinner{animation:.8s linear infinite spin}.icon-spin{animation:.8s linear infinite spin;display:inline-flex}@keyframes spin{to{transform:rotate(360deg)}}.loading-state,.empty-state{color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:40px 0;display:flex}.main-area{flex-direction:column;flex:1;min-width:0;transition:margin-left .15s;display:flex}.sidebar~.main-area{margin-left:var(--sidebar-width)}.sidebar.collapsed~.main-area{margin-left:var(--sidebar-width-collapsed)}.page-header-banner{z-index:10;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid var(--border);color:var(--foreground);box-shadow:var(--shadow-sm);background:#ffffffd1;border-radius:18px;align-items:center;gap:14px;margin-bottom:24px;padding:18px 20px;display:flex;position:sticky;top:0}.error-page{place-items:center;min-height:75vh;display:grid}.error-state-card{text-align:center;max-width:480px;padding:38px}.error-state-card h1{letter-spacing:-.03em;margin:8px 0 10px;font-size:24px}.error-state-card p{color:var(--muted);margin:0 0 22px;line-height:1.6}.error-state-code{color:var(--danger);letter-spacing:.12em;text-transform:uppercase;font-size:10px;font-weight:800}.skeleton{background:#e9edf5;border-radius:16px;position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg,#0000,#ffffffb3,#0000);animation:1.5s infinite skeletonShimmer;position:absolute;inset:0;transform:translate(-100%)}.skeleton-header{height:86px;margin-bottom:22px}.skeleton-grid{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px;display:grid}.skeleton-card{height:96px}.skeleton-table{height:350px}.page-header-banner .icon-badge{color:#fff;background:linear-gradient(145deg,#159a76,#08775a);border-radius:15px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex;box-shadow:0 10px 24px #159a7638}.page-header-copy{flex:1;min-width:0}.page-eyebrow{color:var(--primary);letter-spacing:.12em;text-transform:uppercase;margin-bottom:3px;font-size:10px;font-weight:800;display:block}.page-header-status{color:#475467;background:#ffffffb8;border:1px solid #dfe5ef;border-radius:999px;align-items:center;gap:7px;padding:7px 10px;font-size:11px;font-weight:700;display:inline-flex}.page-header-status span{background:#12b76a;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #12b76a1f}.page-header-banner h1{letter-spacing:-.025em;color:var(--foreground);text-shadow:0 1px 1px #10182814;margin:0;font-size:22px;font-weight:780}.page-header-banner p{color:var(--muted);letter-spacing:0;margin-top:2px;font-size:13.25px;font-style:italic}.tabs{border:1px solid var(--border);background:#ffffffb8;border-radius:12px;gap:4px;width:fit-content;margin-bottom:20px;padding:4px;display:flex}.tabs a,.tabs button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:9px;padding:8px 14px;font-size:13px;font-weight:650}.tabs a.active,.tabs button.active{color:var(--primary);background:var(--surface-solid);box-shadow:0 3px 10px #10182814}.avatar{background:var(--primary-soft);width:28px;height:28px;color:var(--primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.sidebar-brand-home{align-items:center;gap:10px;min-width:0;display:flex}.app-portal-page{max-width:1480px}.portal-hero{box-shadow:var(--shadow-sm);background:linear-gradient(120deg,#fffffffa,#ebf9f4f0);border:1px solid #159a7629;border-radius:22px;justify-content:space-between;align-items:center;gap:24px;margin-bottom:18px;padding:28px 30px;display:flex;position:relative;overflow:hidden}.portal-hero:after{content:"";background:#159a761f;border-radius:50%;width:260px;height:260px;position:absolute;top:-150px;right:-80px}.portal-hero h1{margin:5px 0 6px;font-size:clamp(24px,3vw,36px)}.portal-hero p{max-width:720px;color:var(--muted);margin:0}.portal-hero-mark{z-index:1;min-width:124px;color:var(--primary);background:#ffffffd1;border:1px solid #159a762e;border-radius:16px;grid-template-columns:auto auto;align-items:center;gap:0 9px;padding:14px 18px;display:grid;position:relative;box-shadow:0 14px 35px #159a761f}.portal-hero-mark svg{grid-row:1/3}.portal-hero-mark span{font-size:23px;font-weight:800;line-height:1}.portal-hero-mark small{color:var(--muted);font-size:11px}.portal-layout{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:18px;display:grid}.portal-groups,.portal-content{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:18px}.portal-groups{padding:10px;position:sticky;top:18px}.portal-groups-title{justify-content:space-between;align-items:center;padding:10px 10px 13px;display:flex}.portal-groups-title strong{font-size:14px}.portal-groups-title span{color:var(--muted);font-size:11px}.portal-groups button{--group-accent:var(--primary);width:100%;color:var(--foreground);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:12px;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:10px;padding:13px 11px;transition:transform .16s,background .16s,box-shadow .16s;display:grid}.portal-groups button:hover{background:var(--surface-hover);transform:translate(2px)}.portal-groups button.active{background:color-mix(in srgb,var(--group-accent) 10%,white);box-shadow:inset 3px 0 0 var(--group-accent)}.portal-group-dot{background:var(--group-accent);width:8px;height:8px;box-shadow:0 0 0 4px color-mix(in srgb,var(--group-accent) 12%,transparent);border-radius:50%}.portal-groups button>span:nth-child(2){flex-direction:column;min-width:0;display:flex}.portal-groups button strong{font-size:13.5px}.portal-groups button small{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:10.5px;overflow:hidden}.portal-groups button b{min-width:27px;color:var(--muted);text-align:center;background:#fff;border-radius:99px;padding:3px 7px;font-size:10.5px}.portal-toolbar{justify-content:space-between;align-items:end;gap:18px;margin-bottom:18px;display:flex}.portal-toolbar h2{margin:4px 0 0;font-size:19px}.portal-search{border:1px solid var(--border-strong);width:min(320px,100%);color:var(--muted);background:#fff;border-radius:11px;align-items:center;gap:8px;padding:0 12px;display:flex}.portal-search:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #159a761f}.portal-search input{width:100%;color:var(--foreground);background:0 0;border:0;outline:0;padding:10px 0}.portal-app-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;display:grid}.portal-app-card{--app-accent:var(--primary);border:1px solid var(--border);background:#fff;border-radius:16px;flex-direction:column;align-items:flex-start;min-height:184px;padding:18px;transition:transform .18s,border-color .18s,box-shadow .18s;display:flex;position:relative;overflow:hidden}.portal-app-card:before{content:"";background:var(--app-accent);opacity:.7;width:3px;position:absolute;inset:0 auto 0 0}.portal-app-icon{width:48px;height:48px;color:var(--app-accent);background:color-mix(in srgb,var(--app-accent) 10%,white);border-radius:14px;place-items:center;display:grid}.portal-app-copy{flex-direction:column;margin-top:14px;display:flex}.portal-app-copy strong{font-size:15px}.portal-app-copy small{color:var(--muted);margin-top:5px;font-size:12px;line-height:1.45}.portal-app-state{color:#168164;align-items:center;gap:6px;margin-top:auto;padding-top:14px;font-size:10.5px;font-weight:700;display:flex}.portal-app-state i{background:#22c58b;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 4px #22c58b1a}.portal-app-arrow{color:var(--muted);transition:transform .18s,color .18s;position:absolute;bottom:14px;right:15px}.portal-app-card:hover .portal-app-arrow{color:var(--app-accent);transform:translate(3px)}.portal-empty{min-height:280px;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.portal-empty strong{color:var(--foreground);margin-top:10px}.portal-empty span{margin-top:3px;font-size:12px}@media (max-width:1100px){.portal-app-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:768px){.portal-hero{padding:20px}.portal-hero-mark{display:none}.portal-layout{display:block}.portal-groups{gap:8px;margin-bottom:12px;padding:9px;display:flex;position:static;overflow-x:auto}.portal-groups-title{display:none}.portal-groups button{min-width:172px}.portal-content{padding:14px}.portal-toolbar{display:block}.portal-search{width:100%;margin-top:12px}.portal-app-grid{grid-template-columns:1fr}.portal-app-card{min-height:158px}}.sidebar-footer .btn{width:38px;height:38px;color:var(--sidebar-fg);background:#ffffff0f;border-color:#ffffff2e;flex:0 0 38px;padding:0}.sidebar-footer .btn span{display:none}.sidebar-footer .btn:hover{color:#fff;background:#ffffff1f;border-color:#ffffff4d}.map-page{padding-bottom:24px}.map-summary{grid-template-columns:repeat(4,minmax(110px,150px)) 1fr;gap:10px;margin-bottom:14px;display:grid}.map-summary>div{border:1px solid var(--border);min-height:66px;box-shadow:var(--shadow-sm);background:#ffffffd6;border-radius:14px;flex-direction:column;justify-content:center;padding:11px 15px;display:flex}.map-summary strong{letter-spacing:-.04em;color:var(--foreground);font-size:22px}.map-summary span{color:var(--muted);font-size:11px;font-weight:700}.map-summary .map-live-note{color:var(--muted);box-shadow:none;background:0 0;border-color:#0000;flex-direction:row;justify-content:flex-end;align-items:center;gap:9px;font-size:12px}.map-live-note i{background:#12b76a;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 5px #12b76a1f}.map-toolbar{border:1px solid var(--border);background:#ffffffd6;border-radius:16px;align-items:flex-end;gap:12px;margin-bottom:14px;padding:14px;display:flex}.map-toolbar .field{min-width:160px}.map-toolbar .field>span:first-child{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;font-size:10px;font-weight:800;display:block}.map-search-field{flex:1}.map-search-input{display:block;position:relative}.map-search-input svg{color:var(--muted);z-index:1;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.map-search-input .input{width:100%;padding-left:36px}.map-refresh{white-space:nowrap;height:40px}.map-workspace{border:1px solid var(--border);height:calc(100vh - 290px);min-height:620px;box-shadow:var(--shadow-md);background:#fff;border-radius:18px;grid-template-columns:280px minmax(0,1fr);transition:grid-template-columns .24s;display:grid;position:relative;overflow:hidden}.map-workspace.people-collapsed{grid-template-columns:0 minmax(0,1fr)}.map-people-list{border-right:1px solid var(--border);background:#fbfcfe;min-width:0;transition:opacity .18s,visibility .18s;overflow-y:auto}.people-collapsed .map-people-list{opacity:0;visibility:hidden;pointer-events:none;border-right:0;overflow:hidden}.map-list-title{z-index:2;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fbfcfef0;justify-content:space-between;align-items:center;padding:15px;font-size:12px;display:flex;position:sticky;top:0}.map-list-title>span{background:var(--primary-soft);min-width:24px;height:24px;color:var(--primary);border-radius:12px;place-items:center;margin-left:auto;padding:0 7px;font-size:11px;font-weight:800;display:grid}.map-list-toggle{border:1px solid var(--border);width:28px;height:28px;color:var(--muted);cursor:pointer;background:#fff;border-radius:8px;place-items:center;margin-left:7px;transition:all .16s;display:grid}.map-list-toggle:hover{background:var(--primary-soft);color:var(--primary);border-color:#b6d9ce}.map-list-restore{z-index:600;height:38px;color:var(--primary);font:inherit;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff0;border:1px solid #ffffffe0;border-radius:11px;align-items:center;gap:6px;padding:0 12px 0 9px;font-size:11px;font-weight:800;display:flex;position:absolute;top:12px;left:12px;box-shadow:0 7px 24px #1018282e}.map-list-restore svg{transform:rotate(180deg)}.map-list-restore:hover{background:var(--primary);color:#fff}.map-people-list>button{text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #edf0f5;align-items:center;gap:10px;width:100%;padding:11px 13px;display:flex}.map-people-list>button:hover{background:#f0f8f5}.map-people-list>button.active{box-shadow:inset 3px 0 0 var(--primary);background:#e6f6f1}.map-person-avatar{width:38px;height:38px;color:var(--primary);background:linear-gradient(145deg,#daf2eb,#bfe6da);border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid;overflow:hidden}.map-person-avatar img{object-fit:cover;width:100%;height:100%}.map-person-copy{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.map-person-copy strong{color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.map-person-copy small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.map-point-count{border:1px solid var(--border);min-width:25px;height:25px;color:var(--muted);background:#fff;border-radius:8px;place-items:center;padding:0 6px;font-size:10px;font-weight:800;display:grid}.attendance-map{background:#e9eef5;min-width:0;min-height:420px;position:relative}.leaflet-map{z-index:1;width:100%;height:100%;min-height:420px}.map-loading,.map-no-location{height:100%;min-height:420px;color:var(--muted);background:radial-gradient(circle at 50% 40%,#fff,#eef2f7);place-items:center;display:grid}.map-loading{gap:10px;display:flex}.map-no-location>div{flex-direction:column;align-items:center;gap:6px;display:flex}.map-no-location strong{color:var(--foreground)}.map-no-location span{font-size:12px}.attendance-marker-shell{background:0 0;border:0}.attendance-marker{background:#159a76;border:2px solid #fff;border-radius:50% 50% 50% 10%;width:42px;height:42px;padding:3px;transition:all .18s;transform:rotate(-45deg);box-shadow:0 7px 20px #10182857}.attendance-marker.active{background:#f97316;width:54px;height:54px;box-shadow:0 0 0 7px #f973162e,0 10px 26px #10182861}.attendance-marker img,.attendance-marker span{object-fit:cover;width:100%;height:100%;color:var(--primary);background:#fff;border-radius:50%;place-items:center;font-size:15px;font-weight:900;display:grid;transform:rotate(45deg)}.map-popup-card{align-items:flex-start;gap:11px;width:250px;display:flex}.map-popup-card>img{object-fit:cover;background:#edf0f5;border-radius:10px;width:72px;height:82px}.map-popup-card>div{flex-direction:column;gap:4px;min-width:0;display:flex}.map-popup-card strong{color:#101828;font-size:13px}.map-popup-card span{color:#667085;font-size:10px}.map-popup-card b{color:#f97316;font-size:10px}.map-popup-card a{color:#08775a;margin-top:5px;font-size:10px;font-weight:800;text-decoration:none}.map-legend{z-index:500;color:#475467;background:#ffffffeb;border:1px solid #fffc;border-radius:10px;gap:13px;padding:8px 10px;font-size:9px;font-weight:750;display:flex;position:absolute;bottom:12px;right:12px;box-shadow:0 6px 20px #1018281f}.map-legend span{align-items:center;gap:5px;display:flex}.map-distance-panel{z-index:500;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff0;border:1px solid #ffffffdb;border-radius:12px;flex-direction:column;gap:2px;padding:10px 13px;display:flex;position:absolute;bottom:14px;left:14px;box-shadow:0 8px 24px #10182829}.map-distance-panel strong{color:var(--primary);letter-spacing:-.03em;font-size:19px}.map-distance-panel span{color:#667085;font-size:9px;font-weight:750}.map-dot{background:#159a76;border-radius:50%;width:8px;height:8px}.map-line-sample{border-top:2px dashed #159a76;width:16px;height:0}.map-list-empty{color:var(--muted);text-align:center;justify-content:center;align-items:center;gap:8px;padding:30px 16px;font-size:12px;display:flex}.attendance-map .leaflet-control-layers{border:0;border-radius:11px;font-family:inherit;box-shadow:0 6px 20px #1018282e}.attendance-map .leaflet-control-layers-toggle{background-size:20px 20px;width:38px;height:38px}.attendance-map .leaflet-control-layers-expanded{color:#344054;padding:9px 12px;font-size:11px;font-weight:750}@media (max-width:800px){.map-summary{grid-template-columns:repeat(2,1fr)}.map-summary .map-live-note{display:none}.map-toolbar{flex-wrap:wrap;align-items:stretch}.map-toolbar .field{flex:1;min-width:calc(50% - 6px)}.map-search-field{order:3;min-width:100%!important}.map-refresh{align-self:flex-end}.map-workspace{flex-direction:column-reverse;height:auto;min-height:0;display:flex;overflow:visible}.map-workspace.people-collapsed .map-people-list{display:none}.attendance-map,.leaflet-map{height:54vh;min-height:410px}.map-distance-panel{bottom:48px;left:10px}.map-people-list{border-right:0;border-top:1px solid var(--border);max-height:260px}}.page{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:30px 32px 44px}.card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:16px;padding:22px}.payslip-result{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:10px;flex-wrap:wrap;align-items:center;gap:14px;padding:16px 18px;display:flex}.payslip-result-icon{background:var(--primary-soft);width:44px;height:44px;color:var(--primary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.payslip-result.state-exists .payslip-result-icon{background:var(--auto-bg);color:var(--auto)}.payslip-result-body{flex:1;min-width:160px}.payslip-result-title{text-overflow:ellipsis;white-space:nowrap;font-size:14.5px;font-weight:600;overflow:hidden}.payslip-result-meta{color:var(--muted);margin-top:2px;font-size:12.5px}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:14px;padding:17px 18px}.stat-card .value{letter-spacing:-.035em;font-size:27px;font-weight:760;line-height:1.2}.stat-card .label{color:var(--muted);margin-top:2px;font-size:12.5px}.stat-card.accent-ok .value{color:var(--success)}.stat-card.accent-warn .value{color:var(--warn)}.timeline{flex-direction:column;display:flex}.timeline-item{border-bottom:1px solid var(--border);gap:12px;padding:14px 4px;display:flex}.timeline-item:last-child{border-bottom:none}.timeline-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-top:6px}.timeline-dot.created{background:var(--primary)}.timeline-dot.updated{background:var(--warn)}.timeline-item .title{font-size:14px;font-weight:600}.timeline-item .meta{color:var(--muted);margin-top:2px;font-size:12.5px}.lightbox-backdrop{z-index:100;cursor:zoom-out;background:#0a0c12d9;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.lightbox-img{cursor:default;max-width:90vw;max-height:90vh;box-shadow:var(--shadow-md);border-radius:8px}.lightbox-close{color:#fff;cursor:pointer;background:#ffffff1f;border:none;border-radius:50%;width:36px;height:36px;font-size:20px;line-height:1;position:absolute;top:20px;right:24px}.lightbox-close:hover{background:#ffffff38}.login-wrap{flex:1;justify-content:center;align-items:center;min-height:100vh;padding:36px;display:flex}.login-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ffffffd1;border:1px solid #fffc;border-radius:26px;grid-template-columns:1.08fr .92fr;width:100%;min-width:0;max-width:980px;min-height:590px;display:grid;overflow:hidden;box-shadow:0 35px 90px #10182829}.login-hero{color:#f7f9ff;background:radial-gradient(circle at 85% 8%,#6780ff8c,#0000 30%),radial-gradient(circle at 10% 90%,#14b8a638,#0000 34%),linear-gradient(145deg,#0d1b32,#101f3c 58%,#182b55);flex-direction:column;justify-content:space-between;min-width:0;padding:38px;display:flex;position:relative;overflow:hidden}.login-hero:after{content:"";border:1px solid #ffffff14;border-radius:50%;width:280px;height:280px;position:absolute;bottom:-90px;right:-120px;box-shadow:0 0 0 45px #ffffff06,0 0 0 90px #ffffff05}.login-brand{z-index:1;letter-spacing:-.01em;align-items:center;gap:11px;font-size:14px;font-weight:750;display:flex;position:relative}.login-hero-copy{z-index:1;max-width:420px;position:relative}.login-kicker{color:#9db0ff;letter-spacing:.16em;text-transform:uppercase;font-size:10px;font-weight:800}.login-hero h1{letter-spacing:-.05em;margin:14px 0 16px;font-size:clamp(34px,4vw,49px);line-height:1.04}.login-hero p{color:#aebbd0;max-width:390px;margin:0;font-size:14px;line-height:1.7}.login-metric-row{z-index:1;grid-template-columns:repeat(3,1fr);gap:12px;display:grid;position:relative}.login-metric-row div{background:#ffffff0b;border:1px solid #ffffff17;border-radius:12px;padding:12px}.login-metric-row strong,.login-metric-row span{display:block}.login-metric-row strong{font-size:14px}.login-metric-row span{color:#94a3ba;text-transform:uppercase;letter-spacing:.08em;margin-top:3px;font-size:9px;font-weight:700}.login-panel{background:#ffffffeb;flex-direction:column;justify-content:center;min-width:0;padding:52px 46px;display:flex}.login-panel form{width:100%;min-width:0}.login-panel input{max-width:100%}.login-panel-heading{margin-bottom:28px}.login-panel-heading h2{letter-spacing:-.035em;margin:5px 0 8px;font-size:27px}.login-panel-heading p{color:var(--muted);margin:0;font-size:13px;line-height:1.55}.login-submit{min-height:46px;margin-top:6px}.login-security-note{color:#98a2b3;justify-content:center;align-items:center;gap:7px;margin:20px 0 0;font-size:10.5px;display:flex}.login-security-note span{background:#12b76a;border-radius:50%;width:6px;height:6px}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field label{color:#475467;text-shadow:0 1px #ffffffe6;font-size:12.75px;font-weight:720}.input,select.input,textarea.input{border:1px solid var(--border);background:var(--surface);min-height:42px;color:var(--foreground);border-radius:10px;width:100%;padding:10px 12px;font-size:14.5px}.input{transition:box-shadow .15s,border-color .15s,background-color .15s}.input:focus,select.input:focus,textarea.input:focus{background:#fff;border-color:#8ba1f2;outline:none;box-shadow:0 0 0 4px #159a761a}.btn{cursor:pointer;color:#fff;text-shadow:0 1px 1px #003d2e2e;background:linear-gradient(135deg,#159a76,#08775a);border:none;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:10px 17px;font-size:14px;font-weight:720;transition:background-color .15s,transform .1s,box-shadow .15s,opacity .15s;display:inline-flex}.btn:hover{background:linear-gradient(135deg,#08775a,#005640);transform:translateY(-1px);box-shadow:0 10px 22px #159a7633}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.btn.secondary{color:var(--muted);border:1px solid var(--border);background:0 0}.btn.secondary:hover{background:var(--surface-hover,#00000008);border-color:var(--primary);color:var(--primary)}.btn.danger{background:var(--danger)}.btn.danger:hover{background:#b91c1c}.btn.block{width:100%}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.fade-slide-in{animation:.2s fadeSlideIn}.mauluong-box{background:var(--primary-soft);border:1px solid var(--border);border-radius:8px;margin-top:14px;padding:12px 14px}.mauluong-box-label{color:var(--muted);margin-bottom:8px;font-size:12.5px}.mauluong-box-label strong{color:var(--foreground)}.mauluong-box-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.mauluong-box-row .input{max-width:220px}.mauluong-box-msg{color:var(--success);font-size:12.5px;font-weight:600}.mauluong-box-error{color:var(--danger);margin-top:8px;font-size:12.5px}.salary-config-hero{border:1px solid color-mix(in srgb, var(--primary) 22%, var(--border));background:radial-gradient(circle at 94% 12%, color-mix(in srgb, var(--primary) 16%, transparent) 0 72px, transparent 73px), linear-gradient(135deg, var(--surface), color-mix(in srgb, var(--primary-soft) 58%, var(--surface)));box-shadow:var(--shadow-sm);border-radius:16px;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:14px;padding:22px 24px;display:flex}.salary-config-hero h2{letter-spacing:-.025em;margin:4px 0 7px;font-size:clamp(19px,2vw,25px)}.salary-config-hero p{max-width:760px;color:var(--muted);margin:0;line-height:1.55}.salary-config-kicker{color:var(--primary);letter-spacing:.09em;text-transform:uppercase;font-size:11px;font-weight:850}.salary-config-actions{flex-shrink:0;gap:9px;display:flex}.salary-config-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.salary-config-stats>div{border:1px solid var(--border);background:var(--surface);min-height:66px;box-shadow:var(--shadow-sm);border-radius:13px;align-items:baseline;gap:10px;padding:14px 18px;display:flex}.salary-config-stats strong{color:var(--primary);font-size:25px;line-height:1}.salary-config-stats span{color:var(--muted);font-size:12.5px;font-weight:650}.salary-config-stats .warning strong{color:#d97706}.salary-config-stats .ok strong{color:var(--success)}.salary-config-table-card{overflow-x:auto}.salary-config-table{min-width:980px}.salary-config-table td:first-child{min-width:150px}.salary-config-table code{border:1px solid color-mix(in srgb, var(--primary) 14%, var(--border));background:color-mix(in srgb, var(--primary-soft) 55%, var(--surface));color:var(--foreground);border-radius:6px;padding:4px 7px;font-size:12px;font-weight:750;display:inline-flex}.salary-config-status{width:max-content;margin-top:5px;font-size:10.5px;font-weight:750;display:block}.salary-config-status.ok{color:var(--success)}.salary-config-status.danger{color:var(--danger)}.btn.compact{white-space:nowrap;min-height:32px;padding:6px 10px;font-size:12px}.salary-config-error{flex-direction:column;align-items:flex-start;gap:6px;margin-bottom:14px;display:flex}.salary-config-error small{color:inherit;opacity:.82}.salary-config-error .btn{margin-top:4px}.modal.wide.salary-config-modal{width:min(980px,100vw - 32px);max-width:980px}.salary-config-modal-intro{border:1px solid color-mix(in srgb, var(--primary) 22%, var(--border));background:var(--primary-soft);border-radius:10px;flex-direction:column;gap:3px;margin-bottom:14px;padding:12px 14px;display:flex}.salary-config-modal-intro strong{color:var(--primary)}.salary-config-modal-intro span{color:var(--muted);font-size:12.5px;line-height:1.45}.salary-template-field{margin-bottom:14px}.salary-template-field .input{max-width:420px}.salary-template-field small{color:var(--muted);margin-top:5px;font-size:11.5px;display:block}.salary-config-form-sections{gap:13px;display:grid}.salary-config-form-section{border:1px solid var(--border);background:color-mix(in srgb, var(--background) 62%, var(--surface));border-radius:12px;padding:15px 16px 16px}.salary-config-form-heading{flex-direction:column;gap:2px;margin-bottom:12px;display:flex}.salary-config-form-heading strong{font-size:14px}.salary-config-form-heading span{color:var(--muted);font-size:11.5px;line-height:1.4}.salary-cell-input{letter-spacing:.015em;text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:700}.required{color:var(--danger)}@media (max-width:768px){.salary-config-hero{flex-direction:column;padding:18px}.salary-config-actions{width:100%}.salary-config-actions .btn{flex:1}.salary-config-stats{grid-template-columns:1fr;gap:8px}.salary-config-stats>div{min-height:54px}.salary-config-table,.salary-config-table td:first-child{min-width:0}.salary-config-table td[data-label=Thao\ tác] .btn{width:100%}.modal.wide.salary-config-modal{width:calc(100vw - 20px)}.salary-config-modal .modal-thanh-nut .btn.danger{order:4;width:100%;margin-left:0}.salary-config-form-section{padding:13px}}.rank-list{flex-direction:column;display:flex}.rank-row{color:var(--foreground);border-radius:8px;align-items:center;gap:14px;padding:12px 14px;transition:background-color .15s,transform .1s;display:flex}.rank-row:hover{background:var(--primary-soft);transform:translate(2px)}.rank-row+.rank-row{border-top:1px solid var(--border)}.rank-row.top{font-weight:700}.rank-position{text-align:center;width:34px;color:var(--muted);flex-shrink:0;font-size:17px}.rank-row.top .rank-position{font-size:22px}.rank-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.rank-value{color:var(--primary);flex-shrink:0;font-weight:700}.quytrinh-list{flex-direction:column;display:flex}.quytrinh-item.clickable{cursor:pointer}.quytrinh-item{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:12px 14px;transition:background-color .15s;display:flex}.quytrinh-item:hover{background:var(--background)}.quytrinh-item+.quytrinh-item{border-top:1px solid var(--border)}.quytrinh-item-main{flex:1;min-width:0}.quytrinh-item-title{margin-bottom:4px;font-weight:600}.quytrinh-item-badges{flex-wrap:wrap;align-items:center;gap:8px;font-size:12.5px;display:flex}.quytrinh-item-actions{flex-wrap:wrap;flex-shrink:0;gap:8px;display:flex}.error-box{background:var(--danger-bg);color:var(--danger);border-radius:6px;margin-bottom:14px;padding:9px 12px;font-size:13px}.filters{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:16px;display:flex}.table-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.table-toolbar-right{align-items:center;gap:12px;display:flex}.inline-loading{align-items:center;gap:6px;font-size:13px;display:inline-flex}.filter-pending-note,.employee-status-ready{color:#77551b;background:#fff9ed;border:1px solid #f0d6a8;border-radius:11px;align-items:center;gap:7px;margin:-2px 0 14px;padding:10px 13px;font-size:12.5px;display:flex;box-shadow:0 5px 16px #6d4d160d}.employee-status-ready{color:#12684f;background:#effbf7;border-color:#bde7da;margin:10px 0 0}.data-ready-state{min-height:220px;padding-inline:20px}.data-ready-state strong{color:var(--foreground);font-size:16px}.data-ready-state span{max-width:540px;line-height:1.65}.data-ready-state .btn{margin-top:7px}.table-refreshing{opacity:.58;pointer-events:none;transition:opacity .2s}.filters .field{min-width:140px;margin-bottom:0}.employee-combobox{position:relative}.employee-combobox-results{width:min(280px,100vw - 24px)}.success-box{border:1px solid color-mix(in srgb, var(--success) 25%, transparent);background:var(--success-bg);color:var(--success);border-radius:10px;margin-bottom:14px;padding:11px 14px;font-size:13px;font-weight:600}.trace-employee-panel{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:14px;justify-content:space-between;align-items:center;gap:18px;margin-bottom:16px;padding:14px 16px;display:flex}.trace-employee-panel strong{color:var(--text);font-size:14px;display:block}.trace-employee-panel p{margin:4px 0 0;font-size:12.5px}.cleanup-entry-panel{border-color:color-mix(in srgb, var(--warning) 28%, var(--border));background:linear-gradient(135deg, var(--surface), color-mix(in srgb, var(--warning) 5%, white))}.soat-panel{border:1px solid var(--border);border-left:3px solid var(--warn);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:12px;margin-bottom:14px;padding:13px 15px}.soat-panel-la{border-left-color:var(--danger)}.soat-panel-head strong{color:var(--foreground);font-size:13.5px;display:block}.soat-panel-head span{margin-top:4px;font-size:12px;line-height:1.6;display:block}.soat-panel-head code{background:var(--surface-subtle);border-radius:4px;padding:1px 5px;font-size:11.5px}.soat-toggle{border:1px solid var(--border);color:var(--primary-hover);cursor:pointer;background:#fff;border-radius:8px;margin-top:9px;padding:6px 11px;font:700 12px/1 inherit}.soat-toggle:hover{border-color:var(--primary);background:var(--primary-soft)}.soat-la-list,.soat-chuacham-list{gap:6px;margin:10px 0 0;padding:0;list-style:none;display:grid}.soat-chuacham-list{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.soat-la-list li,.soat-chuacham-list li{border:1px solid var(--border);background:var(--surface-subtle);border-radius:9px;flex-direction:column;gap:2px;padding:8px 10px;font-size:12.5px;display:flex}.soat-la-list li{flex-flow:wrap;justify-content:space-between;align-items:center;gap:12px}.soat-la-name{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.soat-la-name code{color:var(--muted);word-break:break-all;font-size:11px}.soat-chuacham-list li span{font-size:11.5px}.soat-tick-col{text-align:center;width:38px}.soat-tick-col input{cursor:pointer;width:17px;height:17px;accent-color:var(--primary)}.soat-tick-col input:disabled{cursor:not-allowed;opacity:.4}@media (max-width:768px){.soat-chuacham-list{grid-template-columns:1fr}.soat-la-list li{flex-direction:column;align-items:flex-start;gap:3px}}.cleanup-modal{max-width:780px}.cleanup-intro{color:var(--muted);margin:0 0 18px;font-size:13.5px;line-height:1.65}.cleanup-date-grid{grid-template-columns:minmax(150px,1fr) minmax(150px,1fr) auto;align-items:end;gap:12px;margin:18px 0;display:grid}.cleanup-date-grid .btn{min-height:42px}.cleanup-preview{gap:16px;margin-top:18px;display:grid}.cleanup-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.cleanup-stat-grid>div{border:1px solid var(--border);background:var(--background);border-radius:14px;gap:4px;min-height:86px;padding:14px;display:grid}.cleanup-stat-grid strong{color:var(--text);font-size:23px;line-height:1}.cleanup-stat-grid span{color:var(--muted);font-size:11.5px;line-height:1.35}.cleanup-stat-grid .safe strong{color:var(--success)}.cleanup-stat-grid .warn strong{color:var(--warning)}.cleanup-safety-note{border:1px solid color-mix(in srgb, var(--success) 24%, var(--border));background:color-mix(in srgb, var(--success-bg) 62%, white);border-radius:14px;gap:5px;padding:14px 16px;font-size:12.5px;line-height:1.5;display:grid}.cleanup-safety-note span{color:var(--muted)}.cleanup-confirm-field{max-width:360px}.cleanup-delete-btn{justify-self:end}@media (max-width:680px){.cleanup-date-grid{grid-template-columns:1fr}.cleanup-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cleanup-delete-btn{justify-content:center;width:100%}}@media (max-width:640px){.trace-employee-panel{flex-direction:column;align-items:stretch}.trace-employee-panel .btn{justify-content:center;width:100%}}.employee-multi-field{min-width:min(360px,100%)!important}.employee-multi-combobox{width:min(360px,100%)}.employee-multi-trigger{text-align:left;cursor:pointer;background:var(--surface);justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:42px;display:flex}.employee-multi-results{flex-direction:column;width:min(430px,100vw - 24px);height:min(520px,100vh - 170px);max-height:min(520px,100vh - 170px);margin-top:6px;padding:0;display:flex;position:static;overflow:hidden}.phieucong-form-actions{align-items:center;gap:8px;display:flex}.phieucong-export-filters{align-items:flex-start}.phieucong-filter-field{min-width:170px}.employee-multi-toolbar{background:var(--surface);border-bottom:1px solid var(--border);flex:none;padding:10px}.employee-multi-toolbar .input{width:100%}.employee-multi-timkiem{align-items:center;gap:8px;display:flex}.employee-multi-xong{white-space:nowrap;flex:none;padding:8px 14px}.combobox-dong{z-index:3;border:1px solid var(--border);background:var(--surface);width:26px;height:26px;color:var(--muted);cursor:pointer;border-radius:8px;place-items:center;font-size:12px;line-height:1;display:grid;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.combobox-dong:hover{color:var(--text);border-color:var(--muted)}.employee-multi-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.employee-multi-actions button{background:var(--primary-soft);color:var(--primary);font:inherit;cursor:pointer;border:0;border-radius:999px;padding:5px 8px;font-size:11.5px;font-weight:700;transition:background .15s,color .15s,transform .1s}.employee-multi-actions button:hover{background:var(--primary);color:#fff}.employee-multi-actions button:active{transform:scale(.97)}.employee-multi-actions button:last-child{color:var(--muted);background:#f2f4f7;margin-left:auto}.employee-status-legend{color:var(--muted);border-bottom:1px solid var(--border);background:var(--surface-subtle);flex-wrap:wrap;flex:none;gap:12px;padding:8px 11px;font-size:11px;display:flex}.employee-multi-options{overscroll-behavior:contain;scrollbar-gutter:stable;flex:auto;min-height:0;overflow-y:auto}.employee-status-legend span{align-items:center;gap:5px;display:inline-flex}.employee-status-dot{border:1px solid var(--border-strong);background:#fff;border-radius:50%;width:8px;height:8px}.employee-status-dot.exported{background:#22c55e;border-color:#22c55e}.employee-status-dot.overwritten{background:#f59e0b;border-color:#f59e0b}.employee-multi-option{border:0;border-bottom:1px solid var(--border);text-align:left;cursor:pointer;border-left:3px solid #0000;border-radius:0;flex-direction:row;align-items:center;gap:10px;width:100%;min-height:58px;padding:9px 12px;display:flex}.employee-multi-option.status-exported{background:#f0fdf4;border-left-color:#22c55e}.employee-multi-option.status-overwritten{background:#fff7ed;border-left-color:#f59e0b}.employee-multi-option.selected{box-shadow:inset 0 0 0 1px var(--primary)}.employee-multi-check{border:1px solid var(--border-strong);color:#fff;background:#fff;border-radius:5px;flex:0 0 19px;justify-content:center;align-items:center;width:19px;height:19px;font-size:12px;font-weight:800;display:inline-flex}.employee-multi-option.selected .employee-multi-check{background:var(--primary);border-color:var(--primary)}.employee-multi-name{text-align:left;flex-direction:column;gap:2px;min-width:0;display:flex}.employee-multi-name strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.employee-multi-name small{color:var(--muted);font-size:11px}.employee-status-pill{border:1px solid var(--border);color:var(--muted);background:#fff;border-radius:999px;flex:none;margin-left:auto;padding:4px 7px;font-size:9.5px;font-weight:800}.employee-status-pill.exported{color:#15803d;background:#dcfce7;border-color:#86efac}.employee-status-pill.overwritten{color:#b45309;background:#ffedd5;border-color:#fdba74}.batch-overwrite-option{cursor:pointer;flex-wrap:wrap;align-items:center;gap:7px;margin-top:13px;font-size:12.5px;display:flex}.batch-overwrite-option input{accent-color:var(--primary)}.employee-status-loading{margin-top:8px;font-size:11.5px}.employee-status-error{color:var(--danger);margin:8px 0 0;font-size:11.5px;font-weight:650}.phieucong-wizard-card{border-radius:18px;padding:0;overflow:visible}.phieucong-wizard-heading{border-bottom:1px solid var(--border);background:radial-gradient(circle at 92% 10%,#10b98121,#0000 30%),linear-gradient(135deg,#fbfefd,#f3faf7);border-radius:18px 18px 0 0;justify-content:space-between;align-items:center;gap:24px;padding:20px 22px;display:flex}.phieucong-wizard-kicker{color:var(--primary);letter-spacing:.13em;margin-bottom:5px;font-size:10px;font-weight:850;display:block}.phieucong-wizard-heading h2{color:var(--text);letter-spacing:-.02em;margin:0;font-size:18px}.phieucong-wizard-heading p{color:var(--muted);margin:5px 0 0;font-size:12.5px;line-height:1.5}.phieucong-period-chip{color:#08785f;background:#ffffffc7;border:1px solid #b9e4d7;border-radius:999px;flex:none;padding:8px 12px;font-size:12px;font-weight:800;box-shadow:0 5px 15px #08785f12}.phieucong-wizard-grid{grid-template-columns:minmax(280px,.78fr) minmax(430px,1.22fr);gap:14px;padding:16px;display:grid}.phieucong-step{border:1px solid var(--border);background:#fff;border-radius:15px;min-width:0;padding:18px;transition:border-color .2s,box-shadow .2s,opacity .2s;position:relative}.phieucong-step.active{box-shadow:0 10px 28px #087f6714, inset 0 3px 0 var(--primary);border-color:#a7ddcf}.phieucong-step.completed{background:linear-gradient(160deg,#fbfffd,#f2fbf7);border-color:#bde8da}.phieucong-step.locked{opacity:.72;background:#f8faf9;border-style:dashed}.phieucong-step-heading{align-items:center;gap:11px;margin-bottom:16px;display:flex}.phieucong-step-number{color:#fff;background:var(--primary);border-radius:10px;flex:0 0 31px;place-items:center;width:31px;height:31px;font-size:13px;font-weight:850;display:grid;box-shadow:0 7px 17px #087f6730}.phieucong-step.locked .phieucong-step-number{color:#73817c;box-shadow:none;background:#e4ebe8}.phieucong-step-heading strong,.phieucong-step-heading small{display:block}.phieucong-step-heading strong{color:var(--text);font-size:14px}.phieucong-step-heading small{color:var(--muted);margin-top:2px;font-size:11px;font-weight:500}.phieucong-period-fields,.phieucong-audience-grid{gap:10px;display:grid}.phieucong-period-fields{grid-template-columns:minmax(0,1fr) minmax(100px,.72fr)}.phieucong-audience-grid{grid-template-columns:1fr 1fr}.salary-audience-grid{grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:10px;display:grid}.salary-template-filter{grid-column:1/-1}.salary-wizard-card .phieucong-wizard-heading{background:radial-gradient(circle at 92% 10%,#2d70ff1f,#0000 30%),linear-gradient(135deg,#fbfefd,#f4f8ff)}.salary-template-warning{color:#9a4a0a;background:#fff9f0;border:1px solid #fed7aa;border-radius:10px;margin-top:10px;padding:10px 12px;font-size:11.5px;line-height:1.45}.bulk-mauluong-box{background:#f7faf9;border:1px dashed #cbd8d3;border-radius:12px;margin-top:14px;padding:12px 14px}.bulk-mauluong-row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.bulk-mauluong-row .field{flex:1;min-width:200px}.bulk-mauluong-result{color:#2f7a5c;margin:10px 0 0;font-size:11.5px;line-height:1.5}.bulk-mauluong-result.has-error{color:#b3410b}.phieucong-wizard-card .field label{color:#52615c;margin-bottom:6px;font-size:11.5px;font-weight:750}.phieucong-wizard-card .input,.phieucong-wizard-card .employee-multi-trigger{background-color:#fff;min-height:42px}.phieucong-check-button{justify-content:center;width:100%;margin-top:12px}.phieucong-step-hint{color:var(--muted);margin:11px 0 0;font-size:11.5px;line-height:1.45}.phieucong-step-loading,.phieucong-step-success,.phieucong-step-error{border-radius:11px;align-items:center;gap:9px;margin-top:12px;padding:11px 12px;font-size:11.5px;display:flex}.phieucong-step-loading{color:#0c715c;background:#edf9f5}.phieucong-step-success{color:#417166;background:#effbf7;border:1px solid #bde8da;align-items:baseline}.phieucong-step-success strong{color:var(--primary);font-size:21px;line-height:1}.phieucong-step-error{color:#b42318;background:#fff5f5;border:1px solid #fecaca;flex-direction:column;align-items:flex-start}.phieucong-step-error strong{font-size:12.5px}.phieucong-step-error span{line-height:1.45}.phieucong-step-error button{color:#b42318;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:800;text-decoration:underline}.phieucong-wizard-card .employee-multi-field{width:100%;min-width:0;margin-top:10px}.phieucong-overwrite-option{border:1px solid var(--border);background:#fafcfb;border-radius:11px;flex-wrap:nowrap;align-items:flex-start;padding:11px 12px}.phieucong-overwrite-option input{margin-top:3px}.phieucong-overwrite-option span,.phieucong-overwrite-option strong,.phieucong-overwrite-option small{display:block}.phieucong-overwrite-option strong{color:var(--text);font-size:12px}.phieucong-overwrite-option small{color:var(--muted);margin-top:2px;font-size:10.5px}.phieucong-primary-actions{gap:9px;margin-top:13px;display:flex}.phieucong-primary-actions .btn:first-child{flex:1;justify-content:center}.batch-progress-card{margin-top:16px}.batch-progress-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.batch-progress-heading>div{flex-direction:column;gap:3px;display:flex}.batch-progress-percent{color:var(--primary);font-variant-numeric:tabular-nums;font-size:22px}.batch-progress-track{background:#e8eeeb;border-radius:999px;height:10px;margin-top:14px;overflow:hidden}.batch-progress-fill{border-radius:inherit;background:linear-gradient(90deg, var(--primary), #34d399);height:100%;transition:width .18s linear}.batch-progress-summary{color:var(--muted);flex-wrap:wrap;gap:9px 16px;margin-top:11px;font-size:11.5px;display:flex}.batch-summary-created{color:var(--success)}.batch-summary-overwritten{color:#c76a00}.batch-summary-error{color:var(--danger)}.batch-outcome-list{gap:8px;margin-top:12px;display:grid}.batch-outcome-item{border:1px solid var(--border);border-left:4px solid var(--border-strong);background:var(--surface);box-shadow:var(--shadow-sm);border-radius:11px;align-items:center;gap:11px;padding:11px 13px;display:flex}.batch-outcome-item.status-created{background:#f8fff9;border-left-color:#22c55e}.batch-outcome-item.status-overwritten{background:#fffaf2;border-left-color:#f59e0b}.batch-outcome-item.status-error{border-left-color:var(--danger);background:var(--danger-bg)}.batch-outcome-status{width:25px;height:25px;color:var(--primary);background:var(--primary-soft);border-radius:50%;flex:0 0 25px;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.batch-outcome-item.status-overwritten .batch-outcome-status{color:#b55c00;background:#ffedd5}.batch-outcome-item.status-error .batch-outcome-status{color:var(--danger);background:#fee2e2}.batch-outcome-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.batch-outcome-body strong,.batch-outcome-body span{text-overflow:ellipsis;overflow:hidden}.table-card{border-radius:16px;max-height:65vh;padding:0;overflow:auto}table{border-collapse:collapse;width:100%;font-size:13.5px}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:11px 13px}thead th{color:var(--muted);text-transform:uppercase;letter-spacing:.065em;z-index:5;box-shadow:inset 0 -1px 0 var(--border);background:#f8fafcf5;font-size:10.5px;font-weight:600;position:sticky;top:0}tr.clickable{cursor:pointer}tr.clickable:hover{background:#f5f7ff}@media (max-width:768px){.table-card:has(.stack-mobile){max-height:none;box-shadow:none;background:0 0;border:0;overflow:visible}table.stack-mobile,table.stack-mobile tbody,table.stack-mobile tr,table.stack-mobile td{width:100%;display:block}table.stack-mobile thead{display:none}table.stack-mobile tr{border:1px solid var(--border);background:var(--surface-solid);box-shadow:var(--shadow-sm);border-radius:14px;margin-bottom:10px;padding:4px 0}table.stack-mobile td{white-space:normal;text-align:right;border-bottom:0;justify-content:space-between;align-items:center;gap:14px;padding:7px 14px;display:flex}table.stack-mobile td:before{content:attr(data-label);color:var(--muted);letter-spacing:.04em;text-transform:uppercase;text-align:left;flex-shrink:0;font-size:10.5px;font-weight:750}table.stack-mobile td:empty{display:none}}.badge{letter-spacing:.015em;border-radius:999px;padding:4px 9px;font-size:10.5px;font-weight:750;display:inline-block}.badge.ok{color:var(--success);background:#dcfce7}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.danger{background:var(--danger-bg);color:var(--danger)}.badge.auto{background:var(--auto-bg);color:var(--auto)}.badge.new{color:#64748b;background:#eef1f5}.badge.progress{color:#1598d4;background:#e8f6fc}.modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:50;background:#080f1c94;justify-content:center;align-items:flex-start;padding:40px 16px;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);border:1px solid #ffffffbf;border-radius:20px;width:100%;max-width:520px;padding:26px;box-shadow:0 28px 80px #1018283d}.modal h2{margin-bottom:16px;font-size:18px}.modal:has(.modal-thanh-nut){overscroll-behavior:contain;max-height:calc(100dvh - 80px);padding-top:0;overflow-y:auto}.modal-thanh-nut{z-index:4;background:var(--surface);border-bottom:1px solid var(--border);border-radius:20px 20px 0 0;align-items:center;gap:10px;margin:0 -26px 16px;padding:14px 26px;display:flex;position:sticky;top:0}.modal-thanh-nut .modal-thanh-tieude{margin-right:auto;font-size:16px;font-weight:600}.modal-thanh-nut .btn.danger{margin-left:6px}@media (max-width:640px){.modal:has(.modal-thanh-nut){max-height:calc(100dvh - 32px)}.modal-thanh-nut{flex-wrap:wrap;margin:0 -18px 14px;padding:12px 18px}.modal-thanh-nut .modal-thanh-tieude{flex:1 0 100%;margin-bottom:4px}.modal-thanh-nut .btn{flex:auto}}.modal.wide{max-width:760px}.modal.narrow{max-width:400px}.confirm-message{color:var(--muted);white-space:pre-line;font-size:14px;line-height:1.5}.chamcong-review{background:var(--background);border:1px solid var(--border);border-radius:8px;margin-bottom:16px;padding:12px 14px}.chamcong-entry-list{flex-wrap:wrap;gap:10px;display:flex}.chamcong-entry{background:var(--surface);border:1px solid var(--border);border-radius:8px;align-items:center;gap:8px;padding:6px 10px 6px 6px;font-size:12.5px;display:flex}.chamcong-entry-delete{background:var(--danger-bg);width:20px;height:20px;color:var(--danger);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;line-height:1;display:flex}.icon-btn-danger{border:1px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--danger);cursor:pointer;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.icon-btn-danger:hover{background:var(--danger-bg);border-color:var(--danger)}.icon-btn-danger:disabled{opacity:.6;cursor:not-allowed}.chamcong-entry-delete:hover{background:var(--danger);color:#fff}.chamcong-entry-delete:disabled{opacity:.6;cursor:default}.form-grid{grid-template-columns:1fr 1fr;gap:12px 14px;display:grid}.form-grid .field.full{grid-column:1/-1}.history-log{white-space:pre-wrap;color:var(--muted);background:var(--background);border-radius:6px;max-height:140px;margin-top:4px;padding:10px;font-size:12.5px;overflow-y:auto}.form-section-title{text-transform:uppercase;letter-spacing:.07em;color:var(--primary);border-top:1px dashed var(--border);grid-column:1/-1;align-items:center;gap:8px;margin:8px 0 -4px;padding-top:14px;font-size:11.5px;font-weight:800;display:flex}.form-section-title:first-child{border-top:none;margin-top:0;padding-top:0}.field-hint{color:var(--muted);font-size:11.5px;font-weight:500}.link-field-row{align-items:center;gap:8px;display:flex}.link-field-row .input{flex:1}.link-open-btn{border:1px solid var(--border);background:var(--surface);width:42px;height:42px;color:var(--primary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;transition:background-color .15s,border-color .15s,transform .1s;display:flex}.link-open-btn:hover{background:var(--primary-soft);border-color:#9fd8c7;transform:translateY(-1px)}.chip-picker{flex-direction:column;gap:8px;display:flex}.chip-list{flex-wrap:wrap;gap:6px;display:flex}.chip-list:empty{display:none}.chip{background:var(--primary-soft);color:#0a6d53;border:1px solid #bfe6d9;border-radius:999px;align-items:center;gap:6px;padding:4px 6px 4px 11px;font-size:12.5px;font-weight:650;display:inline-flex}.chip button{width:17px;height:17px;color:inherit;cursor:pointer;background:#0a6d5324;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;line-height:1;display:flex}.chip button:hover{background:#0a6d534d}.chip-picker-row{gap:8px;display:flex}.chip-picker-row .input{flex:1}.status-stepper{flex-wrap:wrap;align-items:center;gap:0;margin-bottom:4px;display:flex}.status-step-btn{border:1.5px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:6px 13px 6px 7px;font-size:12px;font-weight:720;transition:border-color .15s,background-color .15s,color .15s,box-shadow .15s;display:flex}.status-step-btn .num{background:var(--border);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:19px;height:19px;font-size:10.5px;display:flex}.status-step-btn.done{border-color:var(--success);color:var(--success);background:#f0fdf6}.status-step-btn.done .num{background:var(--success)}.status-step-btn.current{border-color:var(--primary);color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 3px #0f9f7a24}.status-step-btn.current .num{background:var(--primary)}.status-step-btn:disabled{opacity:.45;cursor:not-allowed}.status-step-connector{background:var(--border);flex-shrink:0;width:16px;height:2px;margin:0 2px}.status-branch{border-top:1px dashed var(--border);flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:10px;display:flex}.status-branch-btn{cursor:pointer;border:1.5px solid var(--border);background:var(--surface);color:var(--muted);border-radius:10px;align-items:center;gap:7px;padding:8px 14px;font-size:12.5px;font-weight:720;transition:all .15s;display:flex}.status-branch-btn.approve.active{border-color:var(--success);color:var(--success);background:#ecfdf5}.status-branch-btn.reject.active{border-color:var(--danger);background:var(--danger-bg);color:var(--danger)}.status-branch-btn.publish.active{color:#2563eb;background:#eff6ff;border-color:#2563eb}.status-branch-btn:disabled{opacity:.4;cursor:not-allowed}.media-preview{aspect-ratio:16/9;background:#0b1220;border-radius:14px;width:100%;max-width:460px;margin:0 auto 16px;position:relative;overflow:hidden;box-shadow:0 14px 32px #10182833}.media-preview iframe,.media-preview video{background:#000;border:none;width:100%;height:100%;display:block}.media-preview-card{border:1.5px dashed var(--border);background:var(--background);max-width:460px;color:var(--primary);border-radius:14px;justify-content:center;align-items:center;gap:10px;margin:0 auto 16px;padding:22px;font-size:13.5px;font-weight:750;text-decoration:none;transition:border-color .15s,background-color .15s,transform .1s;display:flex}.media-preview-card:hover{border-color:var(--primary);background:var(--primary-soft);transform:translateY(-1px)}.video-card{border-left:3px solid var(--border);position:relative}.video-card.status-progress{border-left-color:var(--primary)}.video-card.status-ok{border-left-color:var(--success)}.video-card.status-warn{border-left-color:var(--danger)}.video-card.status-new{border-left-color:#94a3b8}.congviec-file-image{border:1px solid var(--border);border-radius:12px;margin-top:6px;text-decoration:none;display:block;overflow:hidden}.congviec-file-image img{object-fit:contain;background:var(--surface-subtle);width:100%;max-height:320px;display:block}.congviec-file-image span{border-top:1px solid var(--border);color:var(--muted);padding:7px 12px;font-size:11.5px;display:block}.congviec-file-image:hover span{color:var(--primary);background:var(--primary-soft)}.quyen-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;display:grid}.quyen-grid>div>strong{color:var(--muted);letter-spacing:.03em;text-transform:uppercase;margin-bottom:7px;font-size:11px;font-weight:800;display:block}.quyen-scroll{max-height:168px;padding-right:4px;overflow-y:auto}.quyen-check{cursor:pointer;align-items:center;gap:8px;padding:4px 0;font-size:12.5px;display:flex}.quyen-check input{flex-shrink:0}.quyen-preview{background:var(--primary-soft);color:var(--primary);border-radius:10px;margin:12px 0 0;padding:9px 12px;font-size:12px}.congviec-child-count{background:var(--primary-soft);color:var(--primary);white-space:nowrap;border-radius:999px;margin-left:8px;padding:2px 8px;font-size:10px;font-weight:800}.kanban-board{--kb-new:#64748b;--kb-progress:#0ea5e9;--kb-ok:#059669;--kb-warn:#dc2626;grid-auto-columns:minmax(268px,1fr);grid-auto-flow:column;gap:14px;padding:2px 2px 10px;display:grid;overflow-x:auto}.kanban-column{--kb-accent:var(--kb-progress);border:1px solid var(--border);background:var(--surface-solid);border-radius:16px;flex-direction:column;min-width:0;display:flex;overflow:hidden;box-shadow:0 4px 20px -6px #0a2e2414}.kanban-column.kind-new{--kb-accent:var(--kb-new)}.kanban-column.kind-progress{--kb-accent:var(--kb-progress)}.kanban-column.kind-ok{--kb-accent:var(--kb-ok)}.kanban-column.kind-warn{--kb-accent:var(--kb-warn)}.kanban-column-head{border-top:3px solid var(--kb-accent);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:13px 14px;display:flex}.kanban-column-name{min-width:0;color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;font-size:12.5px;font-weight:750;display:inline-flex;overflow:hidden}.kanban-column-dot{background:var(--kb-accent);border-radius:999px;flex-shrink:0;width:8px;height:8px}.kanban-column-count{background:var(--surface-subtle);min-width:24px;color:var(--muted);text-align:center;border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:11px;font-weight:800}.kanban-column-alert{border-bottom:1px solid var(--border);background:var(--danger-bg);color:var(--danger);margin:0;padding:7px 14px;font-size:10.5px;font-weight:750}.kanban-column-body{flex-direction:column;gap:9px;max-height:60vh;padding:11px;display:flex;overflow-y:auto}.kanban-empty{color:var(--muted);text-align:center;margin:14px 0;font-size:11.5px}.kanban-card{--kb-card:var(--kb-progress);border:1px solid var(--border);background:var(--surface-solid);border-radius:12px;flex-direction:column;transition:transform .12s,box-shadow .12s,border-color .12s;display:flex}.kanban-card.kind-new{--kb-card:var(--kb-new)}.kanban-card.kind-progress{--kb-card:var(--kb-progress)}.kanban-card.kind-ok{--kb-card:var(--kb-ok)}.kanban-card.kind-warn{--kb-card:var(--kb-warn)}.kanban-card:hover{border-color:var(--kb-card);transform:translateY(-1px);box-shadow:0 8px 20px -8px #0a2e2438}.kanban-card.busy{opacity:.6}.kanban-card-main{text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;gap:8px;width:100%;padding:11px 12px 9px;display:flex}.kanban-card-title{color:var(--foreground);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:12.5px;font-weight:650;line-height:1.5;display:-webkit-box;overflow:hidden}.kanban-card-sub{background:var(--surface-subtle);color:var(--muted);vertical-align:1px;border-radius:999px;margin-right:6px;padding:1px 6px;font-size:9.5px;font-weight:800;display:inline-block}.kanban-card-meta{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.kanban-due{background:var(--surface-subtle);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:750}.kanban-due.kind-warn{background:var(--danger-bg);color:var(--danger)}.kanban-due.kind-ok{background:var(--success-bg);color:var(--success)}.kanban-tag{background:var(--primary-soft);color:var(--primary);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;max-width:130px;padding:2px 8px;font-size:10.5px;font-weight:700;overflow:hidden}.kanban-card-foot{border-top:1px solid var(--surface-subtle);justify-content:space-between;align-items:center;gap:8px;padding:8px 12px 10px;display:flex}.kanban-people{min-width:0;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;font-size:11px;display:inline-flex;overflow:hidden}.kanban-avatar{background:var(--kb-card);color:#fff;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:10px;font-style:normal;font-weight:800;display:inline-flex}.kanban-card-actions{flex-shrink:0;align-items:center;gap:5px;display:inline-flex}.kanban-card-actions .kanban-move{color:#0b6b52;white-space:nowrap;background:#e9f8f3;border-color:#bfe6da;border-radius:999px;width:auto;height:auto;padding:4px 9px;font-size:11px;font-weight:700}.kanban-card-actions .kanban-move:hover{color:#fff;background:#0f9d76;border-color:#0f9d76}.kanban-card-actions .kanban-move.lui{color:#b42318;background:#fdeceb;border-color:#f5c7c3}.kanban-card-actions .kanban-move.lui:hover{color:#fff;background:#d92d20;border-color:#d92d20}.kanban-card-actions button{border:1px solid var(--border);background:var(--surface-solid);width:25px;height:25px;color:var(--muted);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.kanban-card-actions button:hover:not(:disabled){border-color:var(--primary);background:var(--primary-soft);color:var(--primary)}.kanban-card-actions button:disabled{opacity:.3;cursor:not-allowed}@media (max-width:768px){.kanban-board{grid-auto-columns:minmax(232px,84vw);gap:10px}.kanban-column-body{max-height:none}}.stat-section-title{margin:0 0 14px;font-size:14px}.stat-bar-row{grid-template-columns:minmax(90px,165px) 1fr auto;align-items:center;gap:10px;margin-bottom:9px;display:grid}.stat-bar-label{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;font-weight:650;overflow:hidden}.stat-bar-track{background:var(--primary);border-radius:999px;height:16px;position:relative;overflow:hidden}.stat-bar-overdue{background:var(--danger);position:absolute;inset:0 auto 0 0}.stat-bar-value{color:var(--foreground);white-space:nowrap;font-size:11.5px;font-weight:750}.stat-bar-value em{color:var(--danger);font-style:normal;font-weight:650}.stat-card.accent-danger .value{color:var(--danger)}@media (max-width:768px){.stat-bar-row{grid-template-columns:minmax(76px,108px) 1fr auto;gap:8px}}.cal-container{--cal-new:#64748b;--cal-progress:#0ea5e9;--cal-ok:#059669;--cal-warn:#dc2626;background:var(--surface-solid);border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:0 4px 24px -4px #0a2e2412}.cal-header{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:14px 18px;display:flex}.cal-nav-btn{border:1px solid var(--border);background:var(--surface-solid);width:34px;height:34px;color:var(--muted);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.cal-nav-btn:hover{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.cal-jump{gap:6px;margin-left:2px;display:flex}.cal-jump select{border:1px solid var(--border);background:var(--surface-solid);min-height:34px;color:var(--foreground);cursor:pointer;border-radius:20px;padding:5px 10px;font-size:13.5px;font-weight:700}.cal-jump select:hover{border-color:var(--primary);color:var(--primary)}.cal-today-btn{border:1px solid var(--border);background:var(--surface-solid);color:var(--muted);cursor:pointer;border-radius:20px;margin-left:auto;padding:7px 16px;font-size:13px;font-weight:700;transition:background .15s,color .15s,border-color .15s}.cal-today-btn:hover{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}.cal-legend{border-bottom:1px solid var(--surface-subtle);color:var(--muted);flex-wrap:wrap;gap:14px;padding:10px 18px;font-size:11.5px;display:flex}.cal-legend span{align-items:center;gap:6px;display:inline-flex}.cal-legend-dot{background:var(--cal-new);border-radius:999px;width:8px;height:8px}.cal-legend-dot.progress{background:var(--cal-progress)}.cal-legend-dot.ok{background:var(--cal-ok)}.cal-legend-dot.warn{background:var(--cal-warn)}.cal-weekdays{border-bottom:1px solid var(--border);grid-template-columns:repeat(7,1fr);display:grid}.cal-weekday{text-align:center;letter-spacing:.05em;color:var(--muted);text-transform:uppercase;padding:10px 0;font-size:11px;font-weight:800}.cal-weekday:nth-child(7){color:var(--danger)}.cal-grid{grid-template-columns:repeat(7,1fr);display:grid}.cal-day{border-right:1px solid var(--surface-subtle);border-bottom:1px solid var(--surface-subtle);cursor:pointer;min-height:112px;padding:4px;transition:background .15s;overflow:hidden}.cal-day:nth-child(7n){border-right:none}.cal-day:hover{background:var(--surface-hover)}.cal-day.other-month{background:var(--surface-subtle)}.cal-day.other-month .cal-day-num{color:var(--border-strong)}.cal-day-num{width:28px;height:28px;color:var(--foreground);border-radius:50%;justify-content:center;align-items:center;margin:2px;font-size:13px;font-weight:700;display:inline-flex}.cal-day.is-sunday .cal-day-num{color:var(--danger)}.cal-day.is-today .cal-day-num{background:var(--primary);color:#fff;box-shadow:0 2px 8px #0f9f7a59}.cal-day.is-today.is-sunday .cal-day-num{background:var(--danger);box-shadow:0 2px 8px #dc26264d}.cal-tasks{flex-direction:column;gap:2px;margin-top:2px;display:flex}.cal-chip{text-align:left;background:var(--cal-new);color:#fff;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;border:none;border-radius:4px;width:100%;padding:2px 6px;font-size:11px;font-weight:600;line-height:1.5;transition:opacity .15s,transform .15s;display:block;overflow:hidden}.cal-chip:hover{opacity:.85;transform:scale(1.02)}.cal-chip.progress{background:var(--cal-progress)}.cal-chip.ok{background:var(--cal-ok)}.cal-chip.warn{background:var(--cal-warn)}.cal-more-chip{background:var(--border);color:#475569;text-align:center;cursor:pointer;border:none;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:700;transition:background .15s}.cal-more-chip:hover{background:var(--border-strong)}.cal-dots{flex-wrap:wrap;justify-content:center;gap:3px;padding:2px;display:none}.cal-dot{background:var(--cal-new);border-radius:50%;width:6px;height:6px}.cal-dot.progress{background:var(--cal-progress)}.cal-dot.ok{background:var(--cal-ok)}.cal-dot.warn{background:var(--cal-warn)}.cal-popup{z-index:60;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.cal-popup-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a66;position:absolute;inset:0}.cal-popup-card{z-index:1;background:var(--surface-solid);border-radius:20px;flex-direction:column;width:100%;max-width:440px;max-height:72vh;display:flex;position:relative;overflow:hidden;box-shadow:0 32px 80px -20px #0a2e244d}.cal-popup-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:18px 20px 14px;display:flex}.cal-popup-header strong{font-size:15.5px;display:block}.cal-popup-header small{color:var(--muted);font-size:12px}.cal-popup-body{flex:1;padding:8px 12px 14px;overflow-y:auto}.cal-popup-item{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:12px;align-items:center;gap:12px;width:100%;padding:11px 12px;transition:background .15s;display:flex}.cal-popup-item:hover{background:var(--surface-hover)}.cal-popup-dot{background:var(--cal-new);border-radius:3px;flex-shrink:0;width:10px;height:10px}.cal-popup-dot.progress{background:var(--cal-progress)}.cal-popup-dot.ok{background:var(--cal-ok)}.cal-popup-dot.warn{background:var(--cal-warn)}.cal-popup-info{flex:1;min-width:0}.cal-popup-info strong{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;display:block;overflow:hidden}.cal-popup-info small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:11.5px;display:block;overflow:hidden}.cal-popup-status{color:var(--cal-new);background:#eef1f5;border-radius:999px;flex-shrink:0;padding:3px 9px;font-size:10px;font-weight:800}.cal-popup-status.progress{color:#0369a1;background:#e0f2fe}.cal-popup-status.ok{background:var(--success-bg);color:var(--success)}.cal-popup-status.warn{background:var(--danger-bg);color:var(--danger)}@media (max-width:768px){.cal-day{min-height:62px;padding:2px}.cal-day-num{width:24px;height:24px;margin:1px;font-size:12px}.cal-tasks{display:none}.cal-dots{display:flex}.cal-legend{gap:10px;padding:8px 12px;font-size:10.5px}.cal-header{padding:12px}.cal-popup{align-items:flex-end;padding:0}.cal-popup-card{border-radius:20px 20px 0 0;max-width:100%;max-height:80vh}}.gantt{--gantt-new:#64748b;--gantt-progress:#0ea5e9;--gantt-ok:#059669;--gantt-warn:#dc2626}.gantt-toolbar{align-items:center;gap:8px;padding:4px 4px 14px;display:flex}.gantt-month-label{color:var(--foreground);font-size:14px}.gantt-empty{color:var(--muted);text-align:center;margin:24px 0;font-size:12.5px}.gantt-scroll{border:1px solid var(--border);border-radius:14px;max-height:65vh;overflow:auto}.gantt-grid{min-width:max-content}.gantt-row{border-bottom:1px solid var(--border);background:var(--surface-solid);text-align:left;width:100%;font:inherit;color:inherit;cursor:default;border-top:0;border-left:0;border-right:0;align-items:stretch;padding:0;display:flex}.gantt-row-clickable{cursor:pointer;transition:background .12s}.gantt-row-clickable:hover{background:var(--surface-subtle)}.gantt-row:last-child{border-bottom:0}.gantt-head{z-index:3;background:var(--surface-subtle);position:sticky;top:0}.gantt-label-col{z-index:2;background:inherit;border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;justify-content:center;gap:3px;width:240px;padding:9px 12px;display:flex;position:sticky;left:0}.gantt-head .gantt-label-col{color:var(--muted);justify-content:flex-end;font-size:11.5px;font-weight:800}.gantt-task-title{color:var(--foreground);text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:700;overflow:hidden}.gantt-task-meta{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.gantt-days-col{grid-template-columns:repeat(var(--gantt-days), minmax(34px, 1fr));flex:1;display:grid}.gantt-day-cell{color:var(--muted);flex-direction:column;justify-content:center;align-items:center;padding:6px 0;font-size:10px;display:flex}.gantt-day-cell b{color:var(--foreground);font-size:12px}.gantt-day-cell.weekend{background:var(--surface-subtle)}.gantt-day-cell.is-today b{color:var(--primary)}.gantt-track{min-height:46px;position:relative}.gantt-cell{border-right:1px dashed var(--border)}.gantt-cell.weekend{background:var(--surface-subtle)}.gantt-today-line{border-left:2px dashed var(--primary);z-index:1;width:0;position:absolute;top:0;bottom:0}.gantt-bar{background:var(--gantt-progress);border-radius:7px;align-items:center;min-width:10px;padding:0 8px;display:flex;position:absolute;top:8px;bottom:8px;overflow:hidden;box-shadow:0 2px 6px -2px #0a2e2459}.gantt-bar span{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;font-weight:700;overflow:hidden}.gantt-bar.kind-new{background:var(--gantt-new)}.gantt-bar.kind-progress{background:var(--gantt-progress)}.gantt-bar.kind-ok{background:var(--gantt-ok)}.gantt-bar.kind-warn{background:var(--gantt-warn)}.gantt-hidden-note{color:var(--muted);margin:10px 2px 0;font-size:11.5px}@media (max-width:768px){.gantt-label-col{width:170px}}.livestream-tientdo-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.livestream-tientdo-item{border:1px solid var(--border);background:var(--surface-solid);border-radius:12px;flex-direction:column;gap:8px;padding:14px 16px;display:flex}.livestream-tientdo-row{align-items:center;gap:8px;font-size:12px;display:flex}.livestream-tientdo-row .muted{flex-shrink:0;width:64px}.livestream-tientdo-bar{background:var(--surface-subtle);border-radius:999px;flex:1;height:8px;overflow:hidden}.livestream-tientdo-bar span{background:var(--primary);border-radius:999px;height:100%;transition:width .2s;display:block}.livestream-tientdo-bar span.dat{background:var(--success)}.livestream-live-box{border:1px solid var(--border);background:var(--surface-subtle);border-radius:12px;margin-bottom:16px;padding:14px 16px}.livestream-live-row{flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;display:flex}.livestream-live-row+.livestream-live-row{margin-top:8px}.livestream-live-dot{background:var(--danger);border-radius:999px;flex-shrink:0;width:9px;height:9px;animation:1.4s ease-in-out infinite livestream-pulse}@keyframes livestream-pulse{0%,to{opacity:1}50%{opacity:.35}}.livestream-ketthuc-form{border-top:1px dashed var(--border);margin-top:12px;padding-top:12px}.livestream-anh-grid{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.livestream-anh-thumb{border:1px solid var(--border);background:var(--surface-subtle);border-radius:10px;justify-content:center;align-items:center;width:76px;height:76px;display:flex;position:relative;overflow:hidden}.livestream-anh-thumb img{object-fit:cover;width:100%;height:100%}.livestream-anh-thumb button{color:#fff;cursor:pointer;background:#0000008c;border:none;border-radius:50%;width:18px;height:18px;font-size:10px;line-height:1;position:absolute;top:2px;right:2px}.livestream-anh-dangtai,.livestream-anh-loi{text-align:center;color:var(--muted);background:#ffffffbf;justify-content:center;align-items:center;padding:4px;font-size:9.5px;font-weight:700;display:flex;position:absolute;inset:0}.livestream-anh-loi{color:var(--danger);background:var(--danger-bg)}.muted{color:var(--muted)}.photo-thumb{object-fit:cover;border:1px solid var(--border);border-radius:8px;width:56px;height:56px}.permission-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0;display:grid}.permission-stats>div{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:14px;flex-direction:column;gap:4px;padding:16px 18px;display:flex}.permission-stats strong{color:var(--primary);font-size:24px}.permission-stats span{color:var(--muted);font-size:12.5px}.permission-layout{grid-template-columns:minmax(330px,.85fr) minmax(560px,1.5fr);align-items:start;gap:16px;display:grid}.permission-employees,.permission-matrix-card{padding:18px}.permission-section-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.permission-section-head h2{margin:0 0 3px;font-size:16px}.permission-section-head p{color:var(--muted);margin:0;font-size:12px}.permission-filters{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px;display:grid}.permission-employee-list{border:1px solid var(--border);border-radius:12px;max-height:590px;overflow:auto}.permission-employee{border:0;border-bottom:1px solid var(--border);text-align:left;cursor:pointer;background:#fff;grid-template-columns:38px minmax(0,1fr) 116px;align-items:center;gap:10px;width:100%;padding:11px;transition:background .15s,box-shadow .15s;display:grid}.permission-employee:last-child{border-bottom:0}.permission-employee:hover{background:var(--primary-soft)}.permission-employee.selected{background:var(--primary-soft);box-shadow:inset 3px 0 0 var(--primary)}.permission-avatar{background:var(--primary-soft);width:36px;height:36px;color:var(--primary);border-radius:11px;place-items:center;font-weight:800;display:grid}.permission-employee-info{flex-direction:column;min-width:0;display:flex}.permission-employee-info strong{white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.permission-employee-info span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.permission-employee .input{padding:8px;font-size:12px}.permission-role-bar{background:var(--surface-soft,#f7faf9);border-radius:12px;grid-template-columns:140px 180px minmax(220px,1fr);gap:10px;margin-bottom:14px;padding:12px;display:grid}.permission-role-bar .grow{min-width:0}.permission-table-wrap{border:1px solid var(--border);border-radius:12px;overflow:auto}.bc-item{text-align:left;border:1px solid var(--border);background:var(--surface);cursor:pointer;width:100%;font:inherit;border-radius:14px;flex-direction:column;gap:6px;padding:14px 16px;transition:border-color .15s,box-shadow .15s;display:flex}.bc-item:hover{border-color:#0f9d76;box-shadow:0 6px 18px #10182812}.bc-item-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.bc-item-head strong{color:var(--text);font-size:14.5px}.bc-item-noidung{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:13px;display:-webkit-box;overflow:hidden}.bc-item-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.bc-chip{color:#4b5563;background:#f0f3f2;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.bc-chip.cho-duyet{color:#b45309;background:#fff4e5}.bc-tt{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:700}.bc-tt.moi{color:#3730a3;background:#eef2ff}.bc-tt.dangkiem{color:#b45309;background:#fff4e5}.bc-tt.xong{color:#087c60;background:#dff8ef}.bc-tt.lamlai{color:#b42318;background:#fdeceb}.bc-xem{color:var(--text);margin:0;font-size:14px}.bc-xem-lon{color:var(--text);margin:0;font-size:16px;font-weight:600}.bc-lichsu{color:var(--muted);white-space:pre-line;margin:0;font-size:12.5px;line-height:1.7}.bc-card-loai{color:#6b7280;letter-spacing:.03em;text-transform:uppercase;margin-bottom:4px;font-size:10.5px;font-weight:700;display:block}.bc-foot{flex-direction:column;align-items:stretch;gap:8px}.bc-foot .kanban-people{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.bc-actions{flex-wrap:wrap;justify-content:flex-start}.kanban-column-alert.nhe{color:#92400e;background:#fff7ed}.bc-xem-them{border:1px dashed var(--border);width:100%;color:var(--muted);cursor:pointer;background:0 0;border-radius:10px;margin-top:4px;padding:8px;font:600 12px/1.2 inherit}.bc-xem-them:hover{color:#0b6b52;background:#f0faf6;border-color:#0f9d76}.schedule-form-card{padding:22px}.schedule-filters{align-items:end;margin-bottom:16px}.schedule-filters .employee-multi-field{flex:1.4;min-width:280px}.schedule-year{width:90px}.schedule-actions{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:18px;padding-top:16px;display:flex}.schedule-list-head{justify-content:space-between;align-items:center;gap:16px;margin:26px 0 12px;display:flex}.schedule-list-head h2{margin:0 0 3px;font-size:18px}.schedule-list-head p{margin:0}.schedule-job-list{gap:12px;display:grid}.schedule-job{border-left:4px solid var(--border);padding:18px 20px}.schedule-job.status-running{border-left-color:#f59e0b}.schedule-job.status-completed{border-left-color:#10b981}.schedule-job.status-completed_with_errors{border-left-color:#ef4444}.schedule-job.status-cancelled{opacity:.7}.schedule-job-main,.schedule-job-title,.schedule-job-footer{align-items:center;display:flex}.schedule-job-main{justify-content:space-between;gap:16px}.schedule-job-title{flex-wrap:wrap;gap:10px}.schedule-job-main p{margin:5px 0 12px}.schedule-percent{color:var(--primary);font-variant-numeric:tabular-nums;font-size:22px}.schedule-job-footer{color:var(--text-muted);flex-wrap:wrap;gap:16px;margin-top:12px;font-size:13px}.schedule-job-footer .btn{margin-left:auto}.btn.small{padding:7px 12px;font-size:12px}.schedule-current{margin:10px 0 0}.schedule-errors{color:#b42318;margin-top:10px;font-size:13px}.schedule-errors pre{white-space:pre-wrap;background:#fff4f2;border-radius:8px;max-height:180px;padding:10px;overflow:auto}.text-danger{color:#dc2626;font-weight:700}@media (max-width:768px){.schedule-form-card{padding:16px}.schedule-filters .field,.schedule-filters .employee-multi-field{width:100%;min-width:0}.schedule-year{width:100%}.schedule-actions{flex-direction:column;align-items:stretch}.schedule-actions .btn{justify-content:center;width:100%}.schedule-list-head{align-items:flex-end}.schedule-job{padding:16px}.schedule-job-footer{gap:8px 14px}.schedule-job-footer .btn{width:100%;margin-left:0}}.permission-table{border-collapse:collapse;width:100%;min-width:600px}.permission-table th,.permission-table td{border-bottom:1px solid var(--border);text-align:center;padding:12px 10px;font-size:12.5px}.permission-table th:first-child,.permission-table td:first-child{text-align:left;min-width:180px}.permission-table thead th{color:var(--muted);z-index:1;background:#f7faf9;position:sticky;top:0}.permission-table tbody tr:last-child td{border-bottom:0}.permission-table tbody tr:hover{background:var(--primary-soft)}.permission-check{cursor:pointer;place-items:center;display:inline-grid}.permission-check input{opacity:0;pointer-events:none;position:absolute}.permission-check span{background:#fff;border:1.5px solid #c7d2ce;border-radius:6px;width:22px;height:22px;transition:all .16s}.permission-check input:checked+span{background:var(--primary);border-color:var(--primary);box-shadow:inset 0 0 0 5px var(--primary)}.permission-check input:checked+span:after{content:"✓";color:#fff;place-items:center;font-size:14px;font-weight:800;line-height:19px;display:grid}@media (max-width:1050px){.permission-layout{grid-template-columns:1fr}.permission-employee-list{max-height:400px}}@media (max-width:768px){.permission-stats{grid-template-columns:1fr 1fr}.permission-stats>div:last-child{grid-column:1/-1}.permission-layout{display:block}.permission-employees{margin-bottom:14px}.permission-filters,.permission-role-bar{grid-template-columns:1fr}.permission-section-head{align-items:flex-start}.permission-section-head .btn{white-space:nowrap}.permission-employee{grid-template-columns:36px minmax(0,1fr)}.permission-employee>select{grid-column:1/-1;width:100%}.sidebar{display:none}.mobile-topbar{z-index:40;height:var(--mobile-topbar-h);display:flex;position:fixed;top:0;left:0;right:0}.mobile-bottom-nav{z-index:40;display:flex;position:fixed;bottom:0;left:0;right:0}.main-area{padding-top:var(--mobile-topbar-h);padding-bottom:var(--mobile-bottombar-h)}.main-area:has(.login-wrap){padding-top:0;padding-bottom:0}.sidebar~.main-area,.sidebar.collapsed~.main-area{margin-left:0}.page{padding:14px}.page-header-status{display:none}.login-wrap{align-items:stretch;padding:0}.login-card{border:none;border-radius:0;grid-template-columns:1fr;width:100%;max-width:100%;min-height:100vh}.login-hero{min-height:220px;padding:24px}.login-hero-copy{margin-top:28px}.login-hero h1{margin:9px 0 10px;font-size:31px}.login-hero p{font-size:12px}.login-metric-row{display:none}.login-panel{width:100%;min-width:0;padding:34px 24px 40px}.page-header-banner{top:var(--mobile-topbar-h);border-radius:10px;padding:14px 16px}.phieucong-wizard-heading{align-items:flex-start;padding:17px}.phieucong-wizard-heading p{max-width:230px}.phieucong-period-chip{padding:6px 9px;font-size:10.5px}.phieucong-wizard-grid{grid-template-columns:1fr;padding:11px}.phieucong-step{padding:15px}.phieucong-period-fields,.phieucong-audience-grid,.salary-audience-grid{grid-template-columns:1fr 1fr}.modal-backdrop{align-items:stretch;padding:16px}.modal{margin:auto 0}.employee-multi-field,.employee-multi-combobox{width:100%;min-width:100%!important}.employee-multi-results{left:12px;right:12px;top:calc(var(--mobile-topbar-h) + 74px);width:auto;max-height:calc(100vh - var(--mobile-topbar-h) - var(--mobile-bottombar-h) - 96px);position:fixed}.phieucong-form-actions{flex-direction:column;align-items:stretch;width:100%}.phieucong-form-actions .btn{justify-content:center;width:100%}.batch-outcome-item{flex-wrap:wrap;align-items:flex-start}.batch-outcome-item .btn{text-align:center;width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (max-width:640px){.form-grid{grid-template-columns:1fr}.phieucong-wizard-heading{gap:10px}.phieucong-wizard-heading h2{font-size:16px}.phieucong-period-fields,.phieucong-audience-grid,.salary-audience-grid{grid-template-columns:1fr}.salary-template-filter{grid-column:auto}table{font-size:12.5px}}.cv-notification-modal{background:radial-gradient(circle at 94% 2%, #14b8881f, transparent 28%), var(--surface);max-width:860px}.cv-notification-title-icon{color:#087e62;background:#e4f7f1;border-radius:11px;justify-content:center;align-items:center;width:34px;height:34px;display:inline-flex;box-shadow:inset 0 0 0 1px #0f9d761f}.cv-notification-success{color:#08775c;background:#edfbf6;border:1px solid #a7e5d2;border-radius:12px;margin-bottom:14px;padding:11px 14px;font-size:13px;font-weight:650}.cv-notification-intro{align-items:flex-start;gap:12px;margin:20px 0 12px;display:flex}.cv-notification-intro:first-child{margin-top:2px}.cv-notification-intro.compact{margin-top:0}.cv-notification-step{color:#fff;letter-spacing:.04em;background:linear-gradient(145deg,#0f9d76,#08765e);border-radius:11px;flex:0 0 34px;justify-content:center;align-items:center;height:34px;font-size:11px;font-weight:800;display:inline-flex;box-shadow:0 8px 20px #0f9d7633}.cv-notification-intro h3{color:var(--text);margin:0 0 3px;font-size:15px}.cv-notification-intro p{color:var(--muted);margin:0;font-size:12.5px;line-height:1.55}.cv-notification-event-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.cv-notification-event{border:1px solid var(--border);cursor:pointer;background:#ffffffc7;border-radius:15px;align-items:flex-start;gap:10px;min-height:128px;padding:14px;transition:transform .18s,border-color .18s,box-shadow .18s,background .18s;display:flex}.cv-notification-event:hover{border-color:#9fd9c8;transform:translateY(-2px);box-shadow:0 10px 24px #0f3d3114}.cv-notification-event.active{background:linear-gradient(150deg,#f7fffc,#e9f9f4);border-color:#67c8aa;box-shadow:inset 0 0 0 1px #0f9d7614}.cv-notification-event input,.cv-notification-channel input{accent-color:#0f9d76;width:17px;height:17px;margin-top:1px}.cv-notification-event span,.cv-notification-channel-copy{flex-direction:column;gap:5px;display:flex}.cv-notification-event strong,.cv-notification-channel strong{color:var(--text);font-size:13.5px}.cv-notification-event small,.cv-notification-channel small{color:var(--muted);font-size:11.5px;line-height:1.5}.cv-notification-channels{gap:9px;display:grid}.cv-notification-channel{border:1px solid var(--border);cursor:pointer;background:#ffffffd1;border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:12px 14px;transition:border-color .18s,background .18s,transform .18s;display:grid}.cv-notification-channel:hover{transform:translate(2px)}.cv-notification-channel.selected{background:#f2fcf8;border-color:#8fd7c1}.cv-channel-health{white-space:nowrap;border-radius:999px;padding:5px 9px;font-size:10.5px;font-weight:750}.cv-channel-health.ready{color:#08775c;background:#dff8ef}.cv-channel-health.locked{color:#9a5a08;background:#fff3d7}.cv-notification-schedule{background:linear-gradient(145deg,#f7fcfaf2,#eff8f5e6);border:1px solid #d6e8e2;border-radius:16px;margin-top:18px;padding:15px;transition:opacity .18s}.cv-notification-schedule.disabled{opacity:.52}.cv-notification-safety{border:1px solid var(--border);color:var(--muted);background:#f6f8fa;border-radius:14px;flex-wrap:wrap;align-items:center;gap:5px 12px;margin-top:14px;padding:12px 14px;font-size:11.5px;display:flex}.cv-notification-safety strong{color:var(--text)}.cv-notification-safety a{color:#087e62;margin-left:auto;font-weight:750;text-decoration:none}.cv-notification-safety a:hover{text-decoration:underline}.cv-notification-module-card{background:linear-gradient(135deg,#fff,#effaf6);border-color:#cfe8df;justify-content:space-between;align-items:center;gap:18px;display:flex}@media (max-width:720px){.cv-notification-event-grid{grid-template-columns:1fr}.cv-notification-event{min-height:auto}.cv-notification-channel{grid-template-columns:auto minmax(0,1fr)}.cv-channel-health{grid-column:2;justify-self:start}.cv-notification-safety a{width:100%;margin-top:4px;margin-left:0}.cv-notification-module-card{flex-direction:column;align-items:stretch}.cv-notification-module-card .btn{width:100%}}.telegram-page{padding-bottom:48px}.telegram-hero{color:#fff;background:linear-gradient(125deg,#087f67,#0d9f7e 58%,#25b99a);border-radius:20px;justify-content:space-between;align-items:center;gap:24px;margin-bottom:18px;padding:22px 26px;display:flex;box-shadow:0 18px 42px #087f6733}.telegram-hero strong{font-size:17px}.telegram-hero p{color:#ffffffc7;margin:5px 0 0 18px;font-size:13px}.telegram-status-dot{background:#ffd166;border-radius:50%;width:10px;height:10px;margin-right:8px;display:inline-block;box-shadow:0 0 0 5px #ffd16629}.telegram-status-dot.online{background:#72f2bc;box-shadow:0 0 0 5px #72f2bc2b}.telegram-metrics{gap:10px;display:flex}.telegram-metrics span{text-align:center;background:#ffffff1a;border:1px solid #fff3;border-radius:13px;min-width:95px;padding:10px 13px;font-size:11px}.telegram-metrics b{font-size:20px;display:block}.telegram-workspace{grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);gap:18px;display:grid}.telegram-compose,.telegram-recipients{border-radius:18px;padding:22px}.telegram-tabs{background:#f2f7f5;border-radius:13px;gap:7px;margin-bottom:20px;padding:5px;display:flex}.telegram-tabs button{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:9px;flex:1;padding:10px;font-weight:700;transition:all .2s}.telegram-tabs button.active{color:#087f67;background:#fff;box-shadow:0 5px 16px #0f172a14}.telegram-channel-picker{background:#fbfdfc;border:1px solid #e5ebe9;border-radius:12px;grid-template-columns:auto repeat(3,1fr);align-items:center;gap:7px;margin:-7px 0 18px;padding:7px;display:grid}.telegram-channel-picker span{color:#64748b;text-transform:uppercase;letter-spacing:.04em;padding:0 8px;font-size:11px;font-weight:800}.telegram-channel-picker button{color:#64748b;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;padding:8px 10px;font-weight:700;transition:all .18s}.telegram-channel-picker button.active{color:#087f67;background:#eaf8f3;border-color:#9fddcd;box-shadow:0 4px 12px #087f6714}.telegram-meeting-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.telegram-message{resize:vertical;min-height:130px;padding-top:12px}.telegram-attendance-config{gap:14px;display:grid}.telegram-load-attendance{color:#087f67;background:#effaf7;border-color:#8bd7c3;justify-content:center;width:100%;min-height:42px}.telegram-attendance-summary{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.telegram-attendance-summary span{color:#64748b;text-align:center;background:#fafcfb;border:1px solid #e2ebe8;border-radius:11px;padding:10px;font-size:11px}.telegram-attendance-summary b{color:#334155;margin-bottom:2px;font-size:17px;display:block}.telegram-attendance-summary .ready{color:#087f67;background:#edf9f5;border-color:#a9e2d2}.telegram-attendance-summary .ready b{color:#087f67}.telegram-attendance-preview{background:linear-gradient(145deg,#effbf7,#fff);border:1px solid #bde7da;border-radius:15px;padding:18px;position:relative;overflow:hidden;box-shadow:0 10px 30px #087f6714}.telegram-attendance-preview:after{content:"";background:#10b98117;border-radius:50%;width:130px;height:130px;position:absolute;top:-60px;right:-50px}.telegram-attendance-preview span,.telegram-attendance-preview strong,.telegram-attendance-preview small{z-index:1;display:block;position:relative}.telegram-attendance-preview span{color:#087f67;letter-spacing:.04em;font-size:11px;font-weight:850}.telegram-attendance-preview strong{color:#17352e;margin-top:8px;font-size:15px}.telegram-attendance-preview p{z-index:1;color:#5f716d;margin:8px 0;font-size:12px;line-height:1.55;position:relative}.telegram-attendance-preview small{color:#087f67;font-size:10.5px;font-weight:700}.telegram-retry{justify-content:center;width:calc(100% - 24px);margin:10px 12px 12px}.telegram-send{justify-content:center;width:100%;margin-top:4px}.telegram-delivery-report{background:#fff;border:1px solid #e5ebe9;border-radius:13px;margin:12px 0 16px;overflow:hidden}.telegram-report-heading{background:#f5f8f7;justify-content:space-between;padding:11px 13px;font-size:12px;display:flex}.telegram-report-heading span{color:#7b8794}.telegram-report-item{border-top:1px solid #edf1f0;grid-template-columns:27px 1fr;align-items:center;gap:9px;padding:10px 13px;display:grid}.telegram-report-icon{color:#fff;border-radius:50%;place-items:center;width:23px;height:23px;font-weight:800;display:grid}.telegram-report-item.success .telegram-report-icon{background:#0b9878}.telegram-report-item.failed .telegram-report-icon{background:#dc4c64}.telegram-report-item.missing .telegram-report-icon{background:#d79624}.telegram-report-item b,.telegram-report-item small{display:block}.telegram-report-item b{font-size:12.5px}.telegram-report-item small{color:#718096;margin-top:2px;font-size:11px;line-height:1.35}.telegram-report-item.failed small{color:#b63d50}.telegram-report-item.missing small{color:#9b6b19}.telegram-section-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.telegram-section-heading small{color:#8491a3;margin-top:3px;display:block}.btn-link{color:#07876c;cursor:pointer;background:0 0;border:0;font-weight:700}.telegram-filters{grid-template-columns:1.25fr .75fr;gap:9px;margin-bottom:12px;display:grid}.telegram-employee-list{max-height:445px;padding-right:4px;overflow-y:auto}.telegram-recipient-empty{color:#8491a3;text-align:center;place-items:center;min-height:190px;padding:25px;display:grid}.telegram-recipient-empty b{color:#475569}.telegram-recipient-empty span{max-width:310px;margin-top:6px;font-size:12px;line-height:1.5}.telegram-employee{cursor:pointer;border-bottom:1px solid #edf1f0;grid-template-columns:auto 38px 1fr auto;align-items:center;gap:10px;padding:11px 10px;transition:all .18s;display:grid}.telegram-employee:hover,.telegram-employee.selected{background:#edf9f5;border-radius:11px}.telegram-employee.disabled{opacity:.55;cursor:not-allowed}.telegram-avatar{color:#087f67;background:#dff5ed;border-radius:11px;place-items:center;width:36px;height:36px;font-weight:800;display:grid}.telegram-employee b,.telegram-employee small{display:block}.telegram-employee b{font-size:13px}.telegram-employee small{color:#8491a3;margin-top:3px;font-size:11px}.telegram-employee em{color:#0b9878;font-size:10.5px;font-style:normal;font-weight:700}.telegram-employee.disabled em{color:#9b6b19}.telegram-setup{color:#087f67;background:#effaf7;border:1px dashed #8bd7c3;border-radius:16px;align-items:flex-start;gap:14px;margin-top:18px;padding:18px 20px;display:flex}.telegram-setup p{color:#5f716d;margin:5px 0 0;font-size:13px;line-height:1.6}.telegram-setup code{background:#d9f2eb;border-radius:5px;padding:2px 5px}@media (max-width:900px){.telegram-workspace{grid-template-columns:1fr}.telegram-hero{flex-direction:column;align-items:flex-start}}@media (max-width:600px){.telegram-hero{border-radius:16px;padding:18px}.telegram-metrics{width:100%;overflow-x:auto}.telegram-metrics span{flex:1;min-width:88px}.telegram-compose,.telegram-recipients{padding:16px}.telegram-meeting-grid,.telegram-filters{grid-template-columns:1fr}.telegram-channel-picker{grid-template-columns:repeat(3,1fr)}.telegram-channel-picker span{grid-column:1/-1}.telegram-attendance-summary{grid-template-columns:1fr}.telegram-employee{grid-template-columns:auto 34px 1fr}.telegram-employee em{grid-column:3}}.app-portal-page{max-width:1500px;padding-top:24px}.portal-hero{color:#f4fffb;background:radial-gradient(circle at 89% 8%,#5ce2b84d,#0000 28%),radial-gradient(circle at 62% 100%,#4a74db2e,#0000 33%),linear-gradient(125deg,#064b3b 0%,#08775d 52%,#0b8d70 100%);border:1px solid #ffffff8c;border-radius:28px;min-height:225px;margin-bottom:20px;padding:34px 38px;box-shadow:0 28px 70px #044b3b38,inset 0 1px #ffffff29}.portal-hero:before{content:"";opacity:.13;pointer-events:none;background-image:linear-gradient(#ffffff1f 1px,#0000 1px),linear-gradient(90deg,#ffffff1f 1px,#0000 1px);background-size:42px 42px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#0000 35%,#000);mask-image:linear-gradient(90deg,#0000 35%,#000)}.portal-hero:after{background:#ffffff0f;border:1px solid #ffffff2e;width:330px;height:330px;top:-180px;right:-65px;box-shadow:0 0 0 46px #ffffff06,0 0 0 92px #ffffff05}.portal-hero-copy{z-index:1;max-width:850px;position:relative}.portal-hero .page-eyebrow{color:#9df0d5;letter-spacing:.16em;align-items:center;gap:7px;font-size:10px;font-weight:800;display:flex}.portal-hero h1{color:#fff;letter-spacing:-.047em;max-width:780px;margin:12px 0 9px;font-size:clamp(30px,3.8vw,47px);font-weight:720}.portal-hero p{color:#c7e7dd;max-width:720px;font-size:14px;line-height:1.68}.portal-hero-meta{flex-wrap:wrap;gap:9px;margin-top:20px;display:flex}.portal-hero-meta span{color:#d8f2e9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff13;border:1px solid #ffffff21;border-radius:999px;align-items:center;gap:7px;min-height:29px;padding:0 11px;font-size:10.5px;font-weight:650;display:flex}.portal-hero-meta i{background:#48e0ae;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #48e0ae24}.portal-hero-mark{color:#eafff7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff1a;border-color:#ffffff29;min-width:155px;box-shadow:0 16px 40px #002d222e}.portal-hero-mark small{color:#bde3d6}.portal-customize-button{z-index:2;color:#f4fffb;text-align:left;cursor:pointer;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffff1c;border:1px solid #fff3;border-radius:17px;grid-template-columns:36px 1fr;align-items:center;gap:0 11px;min-width:238px;padding:15px 17px;transition:transform .22s cubic-bezier(.16,1,.3,1),background .2s,border-color .2s;display:grid;position:relative;box-shadow:0 18px 44px #002d2233}.portal-customize-button svg{background:#ffffff1c;border-radius:11px;grid-row:1/3;width:36px;height:36px;padding:8px}.portal-customize-button span{font:700 13px/1.2 inherit}.portal-customize-button small{color:#bde3d6;margin-top:4px;font-size:9.5px}.portal-customize-button:hover{background:#ffffff2b;border-color:#ffffff59;transform:translateY(-3px)}.portal-layout{grid-template-columns:274px minmax(0,1fr);gap:20px}.portal-groups,.portal-content{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffe0;border-color:#c6d8d1d1;border-radius:22px;box-shadow:0 18px 55px #14362c12}.portal-groups{padding:12px;top:20px}.portal-groups-title{padding:10px 9px 15px}.portal-groups-title strong{color:#21342e;font-size:13px}.portal-groups button{--group-soft:#e8f8f3;border:1px solid #0000;border-radius:15px;min-height:65px;padding:11px 10px}.portal-groups button:hover{background:#f8fbfa;border-color:#e2ebe8;transform:translate(2px)}.portal-groups button.active{border-color:color-mix(in srgb,var(--group-accent) 18%,white);background:var(--group-soft);box-shadow:inset 3px 0 0 var(--group-accent),0 8px 22px color-mix(in srgb,var(--group-accent) 7%,transparent)}.portal-groups button strong{color:#293c36;font-size:13px}.portal-groups button small{color:#7a8984;font-size:9.8px}.portal-groups button b{color:var(--group-accent);background:#fffc}.portal-content{min-height:540px;padding:25px}.portal-toolbar{align-items:center;margin-bottom:22px}.portal-toolbar .page-eyebrow{color:var(--primary);letter-spacing:.14em;font-size:9px;font-weight:850}.portal-toolbar h2{color:#1b2c27;font-size:21px;font-weight:720}.portal-search{background:#f8fbfae6;border-color:#d6e2de;border-radius:13px;min-height:43px;transition:border-color .18s,box-shadow .18s,background .18s}.portal-search:focus-within{background:#fff;border-color:#6bc5aa;box-shadow:0 0 0 4px #0f9f7a1a,0 8px 22px #0f463612}.portal-search input{font:500 12.5px/1.3 inherit}.portal-section-label{color:#6f7f79;letter-spacing:.09em;text-transform:uppercase;align-items:center;gap:6px;margin:0 0 10px;font-size:10px;font-weight:800;display:flex}.portal-subgroup-label{color:#4c5c56;margin:18px 0 10px;font-size:11.5px;font-weight:800}.portal-subgroup-label:first-child{margin-top:0}.portal-featured-section{margin-bottom:24px}.portal-featured-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;display:grid}.portal-app-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.portal-app-card{background:linear-gradient(155deg,#fff 0%,#fbfdfc 100%);border-color:#dde7e3;border-radius:18px;min-height:174px;padding:0;transition:transform .25s cubic-bezier(.16,1,.3,1),border-color .2s,box-shadow .25s;box-shadow:0 8px 22px #15372d09}.portal-app-card:before{width:0}.portal-app-card:after{content:"";background:var(--app-soft);opacity:.8;border-radius:50%;width:105px;height:105px;transition:transform .3s;position:absolute;top:-56px;right:-58px}.portal-app-card:hover{border-color:color-mix(in srgb,var(--app-accent) 28%,#dce7e3);transform:translateY(-5px);box-shadow:0 22px 48px #14362c1b}.portal-app-card:hover:after{transform:scale(1.18)}.portal-app-card.spotlight{border-color:color-mix(in srgb,var(--app-accent) 20%,#dce7e3);background:linear-gradient(145deg,#fff 25%,var(--app-soft));min-height:193px}.portal-app-card.is-hidden{opacity:.55;filter:saturate(.55)}.portal-app-link{z-index:1;width:100%;min-height:inherit;color:inherit;flex-direction:column;align-items:flex-start;padding:17px;display:flex;position:relative}.portal-app-icon{width:45px;height:45px;color:var(--app-accent);background:var(--app-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--app-accent) 10%,transparent);border-radius:14px}.portal-app-card.spotlight .portal-app-icon{width:50px;height:50px}.portal-app-copy{margin-top:13px}.portal-app-copy>small{color:var(--app-accent);letter-spacing:.09em;text-transform:uppercase;font-size:8.5px;font-weight:800}.portal-app-copy strong{color:#192a25;margin-top:3px;font-size:14.5px;font-weight:720}.portal-app-copy>span{color:#6f7d78;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:5px;font-size:11px;line-height:1.5;display:-webkit-box;overflow:hidden}.portal-app-action{color:#75837e;justify-content:space-between;align-items:center;gap:7px;width:100%;margin-top:auto;padding-top:13px;font-size:10px;font-weight:700;display:flex}.portal-app-action svg{transition:transform .18s}.portal-app-card:hover .portal-app-action{color:var(--app-accent)}.portal-app-card:hover .portal-app-action svg{transform:translate(3px)}.portal-empty{background:#fbfdfc;border:1px dashed #d8e4df;border-radius:18px}.portal-config-backdrop{z-index:1100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#081e1861;justify-content:flex-end;padding:12px;animation:.2s both portalBackdropIn;display:flex;position:fixed;inset:0}.portal-config-panel{background:#f8fbfa;border:1px solid #ffffffbf;border-radius:24px;flex-direction:column;width:min(580px,100%);height:100%;animation:.38s cubic-bezier(.16,1,.3,1) both portalPanelIn;display:flex;position:relative;overflow:hidden;box-shadow:-25px 0 90px #02231a3d}.portal-config-panel>header{background:linear-gradient(135deg,#fff,#eef9f5);border-bottom:1px solid #dce7e3;justify-content:space-between;gap:16px;padding:24px 24px 17px;display:flex}.portal-config-panel h2{margin:4px 0;font-size:23px}.portal-config-panel header p{color:#71807b;margin:0;font-size:11.5px}.portal-icon-button{color:#65746f;cursor:pointer;background:#fff;border:1px solid #d7e3df;border-radius:12px;flex:none;place-items:center;width:38px;height:38px;display:grid}.portal-icon-button:hover{color:var(--primary);background:var(--primary-soft);border-color:#9fd8c7}.portal-config-actions{background:#fff;border-bottom:1px solid #e1eae7;gap:8px;padding:13px 20px;display:flex}.portal-config-actions .btn{min-height:36px;padding:7px 11px;font-size:11px}.portal-shortcut-form{background:#eef8f5;border-bottom:1px solid #dae6e2;grid-template-columns:1fr 1fr;gap:10px;padding:16px 20px;display:grid}.portal-config-field{min-width:0}.portal-config-field.wide{grid-column:1/-1}.portal-config-field label{color:#5d6d67;text-transform:uppercase;letter-spacing:.06em;margin-bottom:5px;font-size:9.5px;font-weight:800;display:block}.portal-config-field input,.portal-config-field select,.portal-config-field textarea{color:#263a33;resize:vertical;background:#fff;border:1px solid #ccdcd6;border-radius:10px;outline:0;width:100%;min-height:38px;padding:8px 10px;font:500 12px/1.4 inherit}.portal-config-field input:focus,.portal-config-field select:focus,.portal-config-field textarea:focus{border-color:#59bfa2;box-shadow:0 0 0 3px #0f9f7a1a}.portal-shortcut-form>.btn{align-self:end;min-height:38px}.portal-config-error{color:#c73232;grid-column:1/-1;margin:0;font-size:11px}.portal-config-list{padding:12px 16px 100px}.portal-config-item{background:#fff;border:1px solid #dde7e3;border-radius:14px;grid-template-columns:28px 36px minmax(0,1fr) auto auto auto;align-items:center;gap:8px;margin-bottom:7px;padding:9px;transition:border-color .16s,box-shadow .16s,opacity .16s;display:grid;box-shadow:0 5px 15px #14362c06}.portal-config-item:hover,.portal-config-item.editing{border-color:#a8d8c9;box-shadow:0 9px 24px #14564212}.portal-config-item.muted-item{opacity:.58}.portal-drag-handle{display:none}.portal-order-controls{flex-direction:column;grid-column:1;gap:3px;display:flex}.portal-order-controls button{color:#71817b;cursor:pointer;background:#f8fbfa;border:1px solid #d9e5e1;border-radius:7px;place-items:center;width:26px;height:26px;padding:0;display:grid}.portal-order-controls button:hover:not(:disabled){color:#087c60;background:var(--primary-soft);border-color:#9fd8c7}.portal-order-controls button:first-child svg{transform:rotate(180deg)}.portal-order-controls button:disabled{opacity:.32;cursor:not-allowed}.portal-config-app-icon{width:34px;height:34px;color:var(--primary);background:var(--primary-soft);border-radius:10px;place-items:center;display:grid}.portal-config-item-copy{text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:flex-start;min-width:0;padding:0;display:flex}.portal-config-item-copy strong,.portal-config-item-copy small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.portal-config-item-copy strong{color:#293b35;font-size:12px}.portal-config-item-copy small{color:#85918d;margin-top:2px;font-size:9px}.portal-mini-switch{color:#72817c;white-space:nowrap;cursor:pointer;align-items:center;gap:5px;font-size:9px;font-weight:700;display:flex}.portal-mini-switch input{opacity:0;pointer-events:none;position:absolute}.portal-mini-switch span{background:#d7e0dd;border-radius:99px;width:27px;height:16px;transition:all .18s;position:relative}.portal-mini-switch span:after{content:"";background:#fff;border-radius:50%;width:12px;height:12px;transition:all .18s;position:absolute;top:2px;left:2px;box-shadow:0 1px 4px #0000002e}.portal-mini-switch input:checked+span{background:#18a27d}.portal-mini-switch input:checked+span:after{transform:translate(11px)}.portal-remove-app{color:#b74444;cursor:pointer;background:#fff0f0;border:0;border-radius:9px;place-items:center;width:30px;height:30px;display:grid}.portal-config-editor{border-top:1px solid #edf1ef;grid-column:2/-1;grid-template-columns:1fr 1fr;gap:9px;padding:10px 4px 3px;display:grid}.portal-config-editor .wide{grid-column:1/-1}.portal-config-panel>footer{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffed;border:1px solid #d2e1dbe6;border-radius:0 0 23px 23px;justify-content:space-between;align-items:center;gap:12px;width:min(580px,100% - 24px);min-height:70px;padding:13px 18px;display:flex;position:absolute;bottom:12px;right:12px;box-shadow:0 -14px 36px #14362c14}.portal-config-panel footer>span{color:#71807b;max-width:270px;font-size:10px;line-height:1.4}.portal-config-panel footer>span.error{color:#c73232}.portal-config-panel footer>div{gap:8px;display:flex}.portal-config-panel footer .btn{min-height:39px;padding:8px 12px;font-size:11px}@keyframes portalBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes portalPanelIn{0%{opacity:0;transform:translate(40px)scale(.98)}to{opacity:1;transform:none}}@media (max-width:1180px){.portal-featured-grid,.portal-app-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.portal-hero{min-height:auto;padding:27px}.portal-customize-button{min-width:205px}.portal-layout{grid-template-columns:230px minmax(0,1fr)}.portal-content{padding:18px}}@media (max-width:768px){.app-portal-page{padding:16px 13px 92px}.portal-hero{border-radius:22px;padding:23px 20px;display:block}.portal-hero h1{font-size:29px}.portal-hero p{font-size:12.5px}.portal-customize-button{width:100%;margin-top:18px}.portal-layout{display:block}.portal-groups{border-radius:17px;gap:7px;margin-bottom:12px;padding:8px;position:static}.portal-groups button{min-width:168px;min-height:57px}.portal-content{border-radius:18px;min-height:430px;padding:15px}.portal-toolbar{display:block}.portal-toolbar h2{font-size:18px}.portal-search{width:100%;margin-top:13px}.portal-featured-grid,.portal-app-grid{grid-template-columns:1fr}.portal-app-card,.portal-app-card.spotlight{min-height:153px}.portal-featured-section{margin-bottom:20px}.portal-config-backdrop{padding:0}.portal-config-panel{border-radius:0;width:100%}.portal-config-panel>header{padding:18px 16px 14px}.portal-config-actions{padding:10px 12px;overflow-x:auto}.portal-shortcut-form{grid-template-columns:1fr;padding:14px}.portal-config-field.wide{grid-column:auto}.portal-config-list{padding:10px 9px 105px}.portal-config-item{grid-template-columns:25px 33px minmax(0,1fr) auto}.portal-drag-handle{display:none}.portal-order-controls{flex-direction:column;grid-area:1/1/3;gap:3px;display:flex}.portal-order-controls button{color:#71817b;background:#f8fbfa;border:1px solid #d9e5e1;border-radius:7px;place-items:center;width:25px;height:25px;padding:0;display:grid}.portal-order-controls button:first-child svg{transform:rotate(180deg)}.portal-order-controls button:disabled{opacity:.32}.portal-mini-switch{grid-row:2}.portal-config-item .portal-mini-switch:first-of-type{grid-column:3}.portal-config-item .portal-mini-switch:nth-of-type(2){grid-column:4}.portal-remove-app{grid-area:1/4}.portal-config-editor{grid-column:1/-1;grid-template-columns:1fr}.portal-config-editor .wide{grid-column:auto}.portal-config-panel>footer{border-radius:0;width:100%;padding:10px 12px;bottom:0;right:0}.portal-config-panel footer>span{display:none}.portal-config-panel footer>div{width:100%}.portal-config-panel footer .btn{flex:1}}@media (min-width:769px){.sidebar{background:radial-gradient(circle at 8% -2%,#36e7b14d,#0000 26%),radial-gradient(circle at 108% 44%,#1691ef21,#0000 34%),linear-gradient(165deg,#08634d 0%,#034938 42%,#022f28 100%);box-shadow:18px 0 55px #021e172e}.sidebar:before{content:"";width:var(--sidebar-width);pointer-events:none;opacity:.13;background-image:linear-gradient(#ffffff1c 1px,#0000 1px),linear-gradient(90deg,#ffffff14 1px,#0000 1px);background-size:36px 36px;transition:width .2s;position:fixed;inset:0 auto 0 0;-webkit-mask-image:linear-gradient(#000,#0000 70%);mask-image:linear-gradient(#000,#0000 70%)}.sidebar.collapsed:before{width:var(--sidebar-width-collapsed)}}.sidebar-brand{z-index:1;background:linear-gradient(#fff1,#fff0);border-bottom-color:#ffffff1a;padding:20px 15px 18px;position:relative}.brand-mark{background:linear-gradient(145deg,#32d4a3,#07916c);border-radius:13px;width:38px;height:38px;box-shadow:0 10px 26px #00231b61,inset 0 1px #ffffff4d}.brand-copy strong{letter-spacing:-.025em;font-size:14.5px;font-weight:760}.brand-copy small{color:#8fd1bd;letter-spacing:.115em;margin-top:5px;font-size:7.7px;font-weight:780}.sidebar-nav{z-index:1;gap:4px;padding:13px 10px;position:relative}.sidebar-nav a{color:#add0c5;letter-spacing:-.008em;border:1px solid #0000;border-radius:12px;gap:11px;min-height:43px;padding:9px 12px;font-size:13.2px;font-weight:620;transition:transform .18s,background-color .18s,color .18s,border-color .18s,box-shadow .18s}.sidebar-nav a:hover{background:#ffffff13;border-color:#ffffff14;transform:translate(3px)}.sidebar-group-header{color:#89b7a9;letter-spacing:.015em;text-transform:none;min-height:39px;padding:8px 12px;font-size:11.7px;font-weight:720}.sidebar-group-body>div{gap:3px}.sidebar-footer{background:linear-gradient(#03352bf0,#022a22fa);box-shadow:0 -16px 34px #01221a2e}.sidebar-footer .user-info .name{letter-spacing:-.01em;font-size:12.8px;font-weight:760}.portal-config-panel{width:min(680px,100%);transition:width .28s cubic-bezier(.16,1,.3,1)}.portal-config-panel.permission-mode{width:min(1180px,100%)}.portal-config-panel>header{flex:none;padding:21px 22px 15px}.portal-admin-heading h2{color:#142d25;letter-spacing:-.035em;margin:5px 0 3px;font-size:24px;font-weight:760}.portal-config-view{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden auto}.portal-config-actions{flex:none;align-items:center}.portal-config-list{scrollbar-gutter:stable;padding:12px 16px 16px}.portal-config-panel>footer{border-width:1px 0 0;border-radius:0;flex:none;width:100%;min-height:68px;position:static;bottom:auto;right:auto;box-shadow:0 -12px 28px #14362c12}.portal-permission-view{flex:1;min-height:0;padding:12px;overflow:hidden}.permission-manager.embedded .permission-layout{flex:1;grid-template-columns:minmax(280px,.72fr) minmax(570px,1.55fr);align-items:stretch;gap:12px;min-height:0}.permission-manager.embedded .permission-employees{min-height:0;padding:14px;overflow:hidden}.permission-manager.embedded .permission-matrix-card{min-height:0;padding:14px;overflow:hidden auto}.permission-manager.embedded .permission-employees{flex-direction:column;display:flex}.permission-manager.embedded .permission-employee-list{flex:1;min-height:0;max-height:none}.permission-manager.embedded .permission-matrix-card{flex-direction:column;display:flex}.permission-manager.embedded .permission-table-wrap{overflow:visible}@media (max-width:900px){.portal-config-panel.permission-mode{width:100%}.permission-manager.embedded .permission-layout{grid-template-columns:1fr;overflow:auto}.permission-manager.embedded .permission-employees{min-height:310px}.permission-manager.embedded .permission-matrix-card{min-height:520px}}@media (max-width:768px){.brand-mark{border-radius:11px;width:34px;height:34px}.portal-config-panel>header{padding:16px 14px 12px}.portal-config-list{padding:10px 9px 12px}.portal-config-panel>footer{width:100%;padding:10px 12px;position:static;bottom:auto;right:auto}.portal-permission-view{padding:8px;overflow:auto}.permission-manager.embedded{height:auto;min-height:100%}.permission-manager.embedded .permission-layout{display:block;overflow:visible}.permission-manager.embedded .permission-employees{min-height:0;margin-bottom:10px}.permission-manager.embedded .permission-employee-list{max-height:300px}.permission-manager.embedded .permission-matrix-card{min-height:0}}.portal-config-actions .btn.secondary.active{color:#087c60;background:#e8f8f3;border-color:#8ed2bd;box-shadow:0 5px 15px #09715514}.portal-group-manager{background:linear-gradient(145deg,#f1faf7,#fff);border-bottom:1px solid #d9e6e1;flex:none;padding:13px 16px}.portal-group-manager-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.portal-group-manager-head>div{flex-direction:column;display:flex}.portal-group-manager-head strong{color:#18352c;font-size:12.5px}.portal-group-manager-head span{color:#75857f;font-size:9.5px}.portal-group-manager-head>span{color:#087c60;background:#dff7ef;border-radius:999px;padding:4px 8px;font-weight:800}.portal-new-group{background:#ffffffbd;border:1px dashed #add8ca;border-radius:12px;grid-template-columns:minmax(120px,.75fr) minmax(180px,1.35fr) 38px auto;gap:7px;margin-bottom:10px;padding:9px;display:grid}.portal-new-group>input,.portal-group-editor-row>input{color:#253a33;background:#fff;border:1px solid #d2e0db;border-radius:9px;outline:0;min-width:0;height:35px;padding:7px 9px;font:600 10.5px/1.2 inherit}.portal-new-group>input:focus,.portal-group-editor-row>input:focus{border-color:#65bfa4;box-shadow:0 0 0 3px #0f9f7a17}.portal-new-group>label{cursor:pointer;background:#fff;border:1px solid #d2e0db;border-radius:9px;place-items:center;width:35px;height:35px;display:grid;overflow:hidden}.portal-new-group input[type=color]{cursor:pointer;border:0;width:50px;height:50px;padding:0}.portal-new-group .btn{min-height:35px;padding:7px 10px;font-size:10px}.portal-group-editor-list{gap:6px;display:grid}.portal-group-editor-row{background:#fff;border:1px solid #dde8e4;border-radius:11px;grid-template-columns:32px minmax(110px,.72fr) minmax(180px,1.35fr) 55px 30px;align-items:center;gap:7px;padding:7px;display:grid}.portal-group-editor-row:before{content:"";background:var(--group-color);border-radius:4px;width:3px;height:24px;position:absolute}.portal-group-color{background:var(--group-color);border-radius:9px;place-items:center;width:29px;height:29px;display:grid;overflow:hidden;box-shadow:inset 0 0 0 1px #0000000d}.portal-group-color input{opacity:0;cursor:pointer;border:0;width:45px;height:45px;padding:0}.portal-group-kind{color:#7a8984;text-align:center;font-size:8.5px;font-weight:750}@media (max-width:768px){.portal-group-manager{padding:11px 9px}.portal-new-group{grid-template-columns:1fr 38px}.portal-new-group>input:nth-child(2){grid-area:2/1/auto/-1}.portal-new-group .btn{grid-column:1/-1}.portal-group-editor-row{grid-template-columns:30px minmax(0,1fr) 30px}.portal-group-editor-row>input:nth-of-type(2){grid-column:2/4}.portal-group-kind{display:none}}@media (min-width:769px){.sidebar{background:radial-gradient(circle at 12% 4%,#6eebc42e,#0000 27%),linear-gradient(158deg,#0d6a57 0%,#0a5d4d 48%,#06483d 100%);box-shadow:16px 0 46px #03261d26}.sidebar:before{opacity:.07;background-size:44px 44px}}.sidebar-nav{gap:6px;padding:13px 9px 20px}.sidebar-nav>a:first-child{color:#eafff6;background:linear-gradient(135deg,#1fab8573,#128b6d73);border-width:1.5px;border-color:#84f5d18c;font-weight:700;box-shadow:0 6px 16px #01291f2e,inset 0 1px #ffffff24}.sidebar-nav>a:first-child:hover{background:linear-gradient(135deg,#1fab8599,#128b6d99)}.sidebar-group{border:1px solid #ffffff09;border-radius:14px;padding:4px}.sidebar-group:nth-of-type(odd){background:#ffffff06}.sidebar-group:nth-of-type(2n){background:#46dbae09}.sidebar-group+.sidebar-group{margin-top:3px}.sidebar-group-header{color:#a4cfc2}.sidebar-group.open .sidebar-group-header{color:#e6faf4}.sidebar-group-body>div{padding:2px 0 5px 6px}.sidebar-nav a{color:#bddad1}.sidebar-nav a.active{background:linear-gradient(135deg,#1fab85f0,#128b6df0);border-color:#a5f8dd3d;box-shadow:0 9px 22px #01291f38,inset 0 1px #ffffff2e}.sidebar-menu-loading{gap:8px;padding:8px 4px 10px;display:grid}.sidebar-menu-loading span{background:linear-gradient(100deg,#ffffff09 25%,#ffffff1a 44%,#ffffff09 64%) 0 0/220% 100%;border-radius:11px;height:39px;animation:1.35s ease-in-out infinite sidebarMenuLoading}.sidebar-menu-loading small{color:#8dbeb0;text-align:center;font-size:9px;font-weight:650}.sidebar.collapsed .sidebar-menu-loading{padding-inline:0}.sidebar.collapsed .sidebar-menu-loading small{display:none}@keyframes sidebarMenuLoading{0%{background-position:180% 0}to{background-position:-40% 0}}.portal-publish-button{min-width:156px;position:relative;overflow:hidden}.portal-publish-button.is-running{cursor:wait;background:linear-gradient(105deg,#08775d,#16a27d,#08775d) 0 0/220% 100%;animation:1.35s ease-in-out infinite portalPublishing}.portal-publish-button.is-running:after{content:"";pointer-events:none;background:linear-gradient(100deg,#0000 25%,#ffffff38 48%,#0000 72%);animation:1.15s ease-in-out infinite portalPublishShine;position:absolute;inset:0;transform:translate(-110%)}@keyframes portalPublishing{0%,to{background-position:0 0}50%{background-position:100% 0}}@keyframes portalPublishShine{to{transform:translate(110%)}}.portal-config-backdrop{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#e7f2eef5;padding:0}.portal-config-panel,.portal-config-panel.permission-mode{width:100vw;max-width:none;height:100dvh;box-shadow:none;background:linear-gradient(145deg,#f7fbf9 0%,#eef7f4 48%,#f8fbfa 100%);border:0;border-radius:0;animation:.32s cubic-bezier(.16,1,.3,1) both portalWorkspaceIn}.portal-config-panel>header{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#ffffffe0;border-bottom:1px solid #d8e7e1;min-height:88px;padding:18px 30px 14px;box-shadow:0 8px 28px #184c3c0e}.portal-config-panel{overflow-y:auto}.portal-admin-heading h2{font-size:26px}.portal-admin-tabs{background:#f4faf8eb;border-bottom:1px solid #dce9e4;padding:10px 30px}.portal-admin-tabs button{min-width:240px;padding:10px 15px}.portal-config-actions{background:#ffffffd1;padding:13px 30px}.portal-config-action-note{margin-left:auto}.portal-config-list{width:100%;max-width:1540px;margin:0 auto;padding:18px 30px 26px}.portal-config-item{border-color:#d7e5e0;border-radius:16px;grid-template-columns:30px 38px minmax(240px,1fr) auto auto auto auto;gap:12px;min-height:64px;padding:10px 14px;box-shadow:0 7px 22px #1945380a}.portal-config-item:hover,.portal-config-item.editing{box-shadow:0 12px 32px #125b4517}.portal-config-editor{background:linear-gradient(135deg,#f4fbf8,#fff);border:1px solid #d7e8e2;border-radius:14px;grid-column:3/-1;padding:16px}.portal-config-permission-callout{background:#eaf8f3;border:1px solid #cce5dc;border-radius:12px;justify-content:space-between;align-items:center;gap:18px;padding:13px 15px;display:flex}.portal-config-permission-callout>div{color:#087a5e;align-items:center;gap:10px;display:flex}.portal-config-permission-callout span{flex-direction:column;display:flex}.portal-config-permission-callout strong{color:#17473a;font-size:12px}.portal-config-permission-callout small{color:#6d837b;margin-top:2px;font-size:9.5px}.portal-config-panel>footer{background:#fffffff0;min-height:74px;padding:12px 30px}.portal-permission-view{padding:18px 28px 24px}.permission-focus-banner{color:#315e50;background:#e8f8f2;border:1px solid #bfe1d5;border-radius:12px;align-items:center;gap:9px;margin:0 0 10px;padding:10px 13px;font-size:11px;display:flex}.permission-focused-row{background:#edfaf5;box-shadow:inset 4px 0 #12a27b}.permission-focus-tag{color:#087b5e;text-transform:uppercase;background:#d6f4e9;border-radius:999px;margin-left:8px;padding:3px 6px;font-size:8px;font-weight:800;display:inline-flex}.permission-scope-banner{color:#6b4d12;background:#fdf6e6;border:1px solid #f0d9a8;border-left:4px solid #d99e2b;border-radius:12px;margin:0 0 10px;padding:11px 14px;font-size:11px}.permission-scope-banner strong{margin-bottom:4px;font-size:12px;display:block}.permission-scope-banner p{margin:0 0 6px;line-height:1.55}.permission-scope-banner code{background:#f4e6c4;border-radius:4px;padding:1px 4px;font-size:10.5px}.permission-scope-banner ul{margin:0;padding-left:16px}.permission-scope-banner li{margin-bottom:3px;line-height:1.5}.permission-scope-line{color:#3f6b5c;font-size:11px;line-height:1.5;margin-top:5px!important}.permission-scope-line.trong{color:#a8631a;font-weight:600}.permission-hint-row td{border-bottom:1px solid var(--border);background:#fbfdfc;text-align:left!important;padding:0 10px 11px!important}.permission-hint-row ul{margin:0;padding-left:15px}.permission-hint-row li{color:var(--muted);margin-bottom:2px;font-size:10.5px;line-height:1.5}.permission-hint-row b{color:#31564a}.permission-check.co-giai-thich{cursor:help}.permission-scope-edit{color:#177a5c;cursor:pointer;white-space:nowrap;background:#eefaf5;border:1px solid #bcd8cd;border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:700}.permission-scope-edit:hover{background:#dcf3ea}.permission-scope-picker{background:#f6fbf9;border:1px solid #cfe6dc;border-radius:13px;margin:0 0 12px;padding:13px 15px}.permission-scope-picker header{margin-bottom:9px;display:block}.permission-scope-picker header strong{color:#204c3d;font-size:12.5px;display:block}.permission-scope-picker header span{color:var(--muted);margin-top:2px;font-size:10.5px;line-height:1.55;display:block}.permission-scope-warning{color:#6b4d12;background:#fdf6e6;border-left:3px solid #d99e2b;border-radius:0 8px 8px 0;margin:9px 0 0;padding:8px 11px;font-size:10.5px;line-height:1.6}.permission-scope-diff{color:#31564a;margin:8px 0 0;font-size:10.5px;line-height:1.55}.permission-scope-actions{gap:8px;margin-top:11px;display:flex}@media (max-width:640px){.permission-scope-actions{flex-direction:column}.permission-scope-actions .btn{justify-content:center;width:100%}}@media (max-width:768px){.permission-table-wrap{background:0 0;border:0;border-radius:0;overflow:visible}.permission-table{min-width:0;display:block}.permission-table thead{display:none}.permission-table tbody{display:block}.permission-table tbody tr{border:1px solid var(--border);background:#fff;border-radius:12px;flex-wrap:wrap;gap:6px;margin-bottom:9px;padding:11px 12px 12px;display:flex;position:relative}.permission-table tbody tr:hover{background:#fff}.permission-table tbody td{text-align:left;border:0;padding:0;display:block}.permission-table td.permission-td-ten{flex:100%;min-width:0;margin-bottom:2px;padding-right:64px;font-size:13px}.permission-table td.permission-td-cadong{position:absolute;top:10px;right:11px}.permission-table td.permission-td-trong{display:none}.permission-table td.permission-td-o{flex:none}.permission-table .permission-check{border:1px solid var(--border);background:#fbfdfc;border-radius:999px;align-items:center;gap:7px;min-height:40px;padding:0 12px 0 9px;display:flex;position:relative}.permission-table .permission-check:after{content:attr(data-nhan);color:#45635a;white-space:nowrap;font-size:11.5px;font-weight:700}.permission-table .permission-check:has(input:checked){border-color:var(--primary);background:var(--primary-soft)}.permission-table .permission-check:has(input:checked):after{color:#0b7457}.permission-table .permission-check:has(input:disabled){opacity:.55}.permission-table .permission-check span{flex:none;width:19px;height:19px}.permission-table .permission-check input:checked+span{box-shadow:inset 0 0 0 4px var(--primary)}.permission-table .permission-check input:checked+span:after{font-size:12px;line-height:16px}.permission-table tbody tr:has(+.permission-hint-row){border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0;margin-bottom:0}.permission-table tbody tr.permission-hint-row{border-top:0;border-top-left-radius:0;border-top-right-radius:0;padding:0 12px 10px;display:block}.permission-table tbody tr.permission-hint-row td{border-top:1px dashed var(--border);background:0 0;border-bottom:0;padding:9px 0 0!important}.permission-selected-head{flex-direction:column;align-items:stretch;gap:9px}.permission-selected-head .btn{justify-content:center;width:100%}.permission-employee-list{max-height:260px}}.portal-card-settings{z-index:4;color:#53756a;cursor:pointer;opacity:.72;background:#ffffffeb;border:1px solid #50706624;border-radius:11px;place-items:center;width:34px;height:34px;transition:transform .2s,opacity .2s,color .2s,box-shadow .2s;display:grid;position:absolute;top:12px;right:12px;box-shadow:0 7px 18px #20493d1a}.portal-app-card:hover .portal-card-settings,.portal-card-settings:focus-visible{color:var(--app-accent);opacity:1;transform:translateY(-2px)rotate(9deg);box-shadow:0 10px 24px #19574429}@keyframes portalWorkspaceIn{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}@media (min-width:769px){.sidebar{background:radial-gradient(circle at 20% 0,#52deb238,#0000 30%),linear-gradient(165deg,#0b6754 0%,#075745 52%,#06483c 100%)}.sidebar-nav>a{color:#275e50;background:linear-gradient(135deg,#fffffff5,#e7f7f1f0);border-color:#dcf1eac7;box-shadow:0 8px 20px #012b2021}.sidebar-nav>a:hover{color:#087b5e;background:#fff;border-color:#b7e3d5;box-shadow:0 11px 26px #012b202e}.sidebar-nav>a.active{color:#fff;background:linear-gradient(135deg,#20ad84,#0c8b69);border-color:#aef5de73}.sidebar-group,.sidebar-group:nth-of-type(odd),.sidebar-group:nth-of-type(2n){background:linear-gradient(140deg,#fffffff7,#e6f7f0f2);border:1px solid #dcf1eacc;padding:4px;box-shadow:0 8px 20px #012b2021}.sidebar-group.open{background:linear-gradient(145deg,#fff,#e5f7f0);border-color:#b6e3d4;box-shadow:0 12px 28px #012b202b}.sidebar-group-header,.sidebar-group.open .sidebar-group-header{color:#2e6758}.sidebar-group-header:hover{color:#087c60;background:#beebdc57}.sidebar-group-header svg:first-child{color:#159777}.sidebar-group-chevron{color:#6b9287}.sidebar-group-body>div{border-top:1px solid #6fa89629;margin-top:2px;padding:4px}.sidebar-group-body a{color:#56766c;background:0 0}.sidebar-group-body a:hover{color:#087c60;background:#b0e7d54f;border-color:#0000}.sidebar-group-body a.active{color:#fff;background:linear-gradient(135deg,#20aa82,#0d8c6b);border-color:#0000;box-shadow:0 7px 17px #0b7a5b33}}@media (max-width:768px){.portal-config-panel>header{min-height:72px;padding:14px 14px 11px}.portal-admin-heading h2{font-size:21px}.portal-admin-heading p{display:none}.portal-admin-tabs{padding:8px}.portal-admin-tabs button{min-width:0;padding:9px}.portal-config-actions{padding:10px 9px}.portal-config-action-note{display:none}.portal-config-list{padding:10px 8px 18px}.portal-config-item{grid-template-columns:28px 34px minmax(0,1fr) auto;gap:7px}.portal-config-item .portal-mini-switch{grid-row:auto}.portal-config-item .portal-mini-switch:first-of-type{grid-column:2/3}.portal-config-item .portal-mini-switch:nth-of-type(2){grid-column:3/4}.portal-config-item .portal-mini-switch:nth-of-type(3){grid-column:4/5}.portal-config-editor{grid-column:1/-1;padding:11px}.portal-config-permission-callout{flex-direction:column;align-items:flex-start}.portal-config-panel>footer{padding:9px}.portal-permission-view{padding:8px}.portal-card-settings{opacity:1;width:32px;height:32px;top:9px;right:9px}}.cv-summary{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.cv-summary-count{color:var(--muted);font-size:12.5px;font-weight:650}.cv-chip{white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:5px 11px 5px 9px;font-size:12.5px;font-weight:750;display:inline-flex}.cv-chip i{background:currentColor;border-radius:50%;flex:none;width:7px;height:7px}.cv-chip.tone-overdue{color:var(--danger);background:var(--danger-bg);border-color:#dc262638}.cv-chip.tone-today{color:var(--auto);background:var(--auto-bg);border-color:#c2410c38}.cv-chip.tone-soon{color:var(--warn);background:var(--warn-bg);border-color:#b4530933}.cv-chip.tone-done{color:var(--success);background:var(--success-bg);border-color:#05966933}.cv-list{flex-direction:column;gap:8px;display:flex}.cv-card{--cv-accent:var(--border-strong);--cv-accent-soft:var(--surface-subtle);border:1px solid var(--border);border-left:3px solid var(--cv-accent);background:var(--surface-solid);cursor:pointer;border-radius:12px;flex-direction:column;gap:9px;padding:13px 15px 12px 17px;transition:border-color .15s,box-shadow .15s,transform .1s;display:flex;position:relative}.cv-card:hover,.cv-card:focus-visible{border-color:var(--cv-accent);box-shadow:var(--shadow-sm);outline:none;transform:translateY(-1px)}.cv-card.tone-overdue{--cv-accent:var(--danger);--cv-accent-soft:var(--danger-bg)}.cv-card.tone-today{--cv-accent:var(--auto);--cv-accent-soft:var(--auto-bg)}.cv-card.tone-soon{--cv-accent:var(--warn);--cv-accent-soft:var(--warn-bg)}.cv-card.tone-done{--cv-accent:var(--success);--cv-accent-soft:var(--success-bg)}.cv-card.tone-later{--cv-accent:var(--primary);--cv-accent-soft:var(--primary-soft)}.cv-card.tone-cancel{--cv-accent:#94a3b8;--cv-accent-soft:#f1f5f9}.cv-card.is-urgent{background:linear-gradient(90deg, var(--cv-accent-soft) 0%, var(--surface-solid) 42%);border-left-width:4px}.cv-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.cv-card-title{color:var(--foreground);min-width:0;margin:0;font-size:14.5px;font-weight:700;line-height:1.4}.cv-card-nest{color:var(--muted);margin-right:6px;font-weight:400}.cv-card-children{background:var(--primary-soft);color:var(--primary-hover);vertical-align:2px;border-radius:999px;margin-left:8px;padding:2px 8px;font-size:11px;font-weight:750;display:inline-block}.cv-due{color:var(--cv-accent);background:var(--cv-accent-soft);white-space:nowrap;border-radius:999px;flex:none;padding:4px 11px;font-size:12px;font-weight:750}.cv-card-progress{align-items:center;gap:10px;display:flex}.cv-bar{background:var(--background);border-radius:999px;flex:1;min-width:60px;height:6px;overflow:hidden}.cv-bar-fill{background:var(--cv-accent);border-radius:999px;height:100%;transition:width .35s;display:block}.cv-bar-text{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:11.5px}.cv-bar-text strong{color:var(--cv-accent)}.cv-card-meta{flex-wrap:wrap;align-items:center;gap:7px;font-size:12px;display:flex}.cv-tag{background:var(--surface-subtle);border:1px solid var(--border);color:var(--muted);white-space:nowrap;border-radius:7px;padding:3px 9px;font-weight:650}.cv-tag--status{background:var(--primary-soft);color:var(--primary-hover);border-color:#0000}.cv-meta-item{color:var(--muted);white-space:nowrap}.cv-owner{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:6px;min-width:0;max-width:100%;display:inline-flex;overflow:hidden}.cv-avatar{background:var(--primary);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:20px;height:20px;font-size:10.5px;font-style:normal;font-weight:800;display:inline-flex}.kanban-days{font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:6px;padding:2px 7px;font-size:11px;font-weight:800}.kanban-days.tone-overdue{color:var(--danger);background:var(--danger-bg)}.kanban-days.tone-today{color:var(--auto);background:var(--auto-bg)}.kanban-days.tone-soon{color:var(--warn);background:var(--warn-bg)}.kanban-days.tone-later{color:var(--muted);background:var(--background)}.kanban-days.tone-done{color:var(--success);background:var(--success-bg)}.kanban-days.tone-cancel{color:var(--muted);background:var(--background)}.kanban-card.is-urgent .kanban-card-title{font-weight:750}@media (max-width:720px){.cv-card{gap:8px;padding:12px 12px 11px 14px}.cv-card-title{font-size:14px}.cv-card-meta{gap:6px;font-size:11.5px}.cv-summary{gap:6px}.cv-chip{padding:4px 9px 4px 8px;font-size:11.5px}}.cv-bar.is-off{background:repeating-linear-gradient(-45deg, var(--background) 0 5px, var(--surface-subtle) 5px 10px)}.cv-card.is-child:before{content:"";border-left:2px solid var(--border-strong);border-bottom:2px solid var(--border-strong);pointer-events:none;border-bottom-left-radius:9px;width:13px;position:absolute;top:-9px;bottom:50%;left:-14px}.cv-card.has-children{box-shadow:inset 0 0 0 1px var(--border);border-style:solid}.cv-card-tools{flex:none;align-items:center;gap:8px;display:flex}.cv-add-child{border:1px dashed var(--border-strong);color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;padding:4px 11px;font-size:11.5px;font-weight:750;transition:color .15s,border-color .15s,background-color .15s}.cv-add-child:hover{color:var(--primary-hover);border-color:var(--primary);background:var(--primary-soft)}.cv-parent-banner{background:var(--primary-soft);color:var(--primary-hover);border-radius:10px;margin:-6px 0 14px;padding:9px 13px;font-size:13px}.cv-parent-row{align-items:center;gap:8px;display:flex}.cv-parent-row .input{flex:1;min-width:0}.cv-parent-row .btn{flex:none}@media (max-width:720px){.cv-card-head{flex-direction:column;align-items:flex-start;gap:7px}.cv-card-tools{flex-wrap:wrap;order:-1}.cv-card.is-child:before{width:11px;left:-12px}.cv-parent-row{flex-direction:column;align-items:stretch}}.cv-fold{color:var(--muted);cursor:pointer;vertical-align:1px;background:0 0;border:none;border-radius:6px;margin-right:4px;padding:3px 5px;font-size:12px;line-height:1}.cv-fold:hover{background:var(--background);color:var(--primary-hover)}.cv-more{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:16px 12px 6px;font-size:12.5px;display:flex}.cv-view-head{border-bottom:1px solid var(--border);margin-bottom:16px;padding-bottom:14px}.cv-view-head h2{white-space:pre-wrap;margin:0 0 10px;font-size:19px;line-height:1.4}.cv-view-badges{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;font-size:12px;display:flex}.cv-view-progress{--cv-accent:var(--primary);align-items:center;gap:10px;display:flex}.cv-view-progress.tone-overdue{--cv-accent:var(--danger)}.cv-view-progress.tone-today{--cv-accent:var(--auto)}.cv-view-progress.tone-soon{--cv-accent:var(--warn)}.cv-view-progress.tone-done{--cv-accent:var(--success)}.cv-view-progress.tone-cancel{--cv-accent:#94a3b8}.cv-view-status{border:1px solid var(--border);border-left:3px solid var(--primary);background:var(--surface-subtle);border-radius:12px;margin-bottom:18px;padding:13px 15px}.cv-view-status h3{letter-spacing:.04em;text-transform:uppercase;color:var(--primary-hover);margin:0 0 10px;font-size:13px;font-weight:750}.cv-view-status-row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.cv-view-grid{grid-template-columns:150px minmax(0,1fr);gap:0;margin:0;font-size:13.5px;display:grid}.cv-view-grid dt{color:var(--muted);border-top:1px solid var(--border);padding:9px 12px 9px 0;font-weight:650}.cv-view-grid dd{border-top:1px solid var(--border);overflow-wrap:anywhere;min-width:0;margin:0;padding:9px 0}.cv-view-grid dt:first-of-type,.cv-view-grid dt:first-of-type+dd{border-top:none}.cv-view-long{white-space:pre-wrap}.cv-view-actions{border-top:1px solid var(--border);flex-wrap:wrap;gap:10px;margin-top:20px;padding-top:16px;display:flex}.cv-view-actions .btn:not(.secondary){margin-left:auto}@media (max-width:720px){.cv-view-head h2{font-size:17px}.cv-view-grid{grid-template-columns:minmax(0,1fr)}.cv-view-grid dt{border-top:1px solid var(--border);padding:10px 0 2px}.cv-view-grid dd{border-top:none;padding:0 0 10px}.cv-view-grid dt:first-of-type+dd{border-top:none}.cv-view-status-row{flex-direction:column;align-items:stretch}.cv-view-status-row .btn{justify-content:center;width:100%}.cv-view-actions .btn{flex:1;justify-content:center}.cv-view-actions .btn:not(.secondary){margin-left:0}}.cv-children{border:1px solid var(--border);border-radius:12px;margin-bottom:18px;padding:13px 15px}.cv-children h3{letter-spacing:.04em;text-transform:uppercase;color:var(--foreground);margin:0 0 10px;font-size:13px;font-weight:750}.cv-children h3 .muted{text-transform:none;letter-spacing:0;font-weight:600}.cv-children-list{flex-direction:column;gap:6px;display:flex}.cv-child-row{--cv-accent:var(--border-strong);text-align:left;border:1px solid var(--border);border-left:3px solid var(--cv-accent);background:var(--surface-solid);cursor:pointer;width:100%;font:inherit;border-radius:9px;flex-direction:column;align-items:flex-start;gap:6px;padding:9px 11px;transition:border-color .15s,background-color .15s;display:flex}.cv-child-row:hover:not(:disabled){border-color:var(--cv-accent);background:var(--surface-hover)}.cv-child-row:disabled{cursor:default}.cv-child-row.tone-overdue{--cv-accent:var(--danger)}.cv-child-row.tone-today{--cv-accent:var(--auto)}.cv-child-row.tone-soon{--cv-accent:var(--warn)}.cv-child-row.tone-done{--cv-accent:var(--success)}.cv-child-row.tone-later{--cv-accent:var(--primary)}.cv-child-row.tone-cancel{--cv-accent:#94a3b8}.cv-child-title{color:var(--foreground);overflow-wrap:anywhere;font-size:13.5px;font-weight:650;line-height:1.4}.cv-child-meta{flex-wrap:wrap;align-items:center;gap:7px;font-size:11.5px;display:flex}.cv-child-due{color:var(--cv-accent);white-space:nowrap;font-weight:750}.cv-link-item{font:inherit;text-align:left;color:var(--primary-hover);cursor:pointer;overflow-wrap:anywhere;background:0 0;border:none;padding:0;font-weight:650}.cv-link-item:hover{text-decoration:underline}.cv-doc{border:1px solid var(--border);background:var(--surface-solid);border-radius:9px;flex-direction:column;gap:7px;padding:10px 12px;display:flex}.cv-doc-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.cv-doc-name{color:var(--foreground);overflow-wrap:anywhere;min-width:0;font-size:13.5px;font-weight:650;line-height:1.4}.cv-doc-links{flex-wrap:wrap;flex:none;gap:7px;display:flex}.cv-doc-btn{border:1px solid var(--border-strong);color:var(--primary-hover);background:var(--surface-subtle);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:11.5px;font-weight:700;text-decoration:none;display:inline-flex}.cv-doc-btn:hover{border-color:var(--primary);background:var(--primary-soft)}.cv-doc-images{flex-wrap:wrap;gap:7px;display:flex}.cv-doc-images img{object-fit:cover;border:1px solid var(--border);border-radius:8px;width:92px;height:92px;display:block}.cv-doc-note{color:var(--foreground);white-space:pre-wrap;margin:0;font-size:12.5px}.cv-doc-meta{color:var(--muted);font-size:11.5px}.cv-doc-form{border-color:var(--primary);background:var(--surface-subtle)}button.cv-doc-btn{cursor:pointer;font-family:inherit}.cv-doc-btn.danger{color:var(--danger);border-color:var(--danger-bg)}.cv-doc-btn.danger:hover{border-color:var(--danger);background:var(--danger-bg)}.cv-doc-btn:disabled{opacity:.5;cursor:default}.notif{flex:none;position:relative}.notif-btn{border:1px solid var(--sidebar-border);width:34px;height:34px;color:var(--sidebar-fg);cursor:pointer;background:#ffffff0f;border-radius:10px;justify-content:center;align-items:center;transition:background-color .15s;display:inline-flex;position:relative}.notif-btn:hover{background:#ffffff24}.notif-dot{background:var(--danger);color:#fff;text-align:center;font-variant-numeric:tabular-nums;border-radius:999px;min-width:17px;height:17px;padding:0 4px;font-size:10px;font-weight:800;line-height:17px;position:absolute;top:-5px;right:-5px}.notif-panel{background:var(--surface-solid);width:min(340px,100vw - 28px);color:var(--foreground);border:1px solid var(--border);box-shadow:var(--shadow-md);z-index:60;border-radius:14px;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden}.notif-panel>header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:11px 14px;font-size:13.5px;display:flex}.notif-panel>header button{color:var(--primary-hover);cursor:pointer;background:0 0;border:none;padding:0;font-size:12px;font-weight:700}.notif-list{max-height:min(420px,60vh);overflow-y:auto}.notif-empty{text-align:center;color:var(--muted);margin:0;padding:22px 14px;font-size:12.5px}.notif-item{color:inherit;border-bottom:1px solid var(--border);flex-direction:column;gap:3px;padding:11px 14px;text-decoration:none;display:flex}.notif-item:last-child{border-bottom:none}.notif-item:hover{background:var(--surface-hover)}.notif-item.chua-doc{background:var(--primary-soft);box-shadow:inset 3px 0 0 var(--primary)}.notif-item.chua-doc:hover{background:#dcf2ea}.notif-title{font-size:13px;font-weight:700;line-height:1.35}.notif-body{color:var(--muted);overflow-wrap:anywhere;font-size:12.5px;line-height:1.45}.notif-time{color:var(--muted);font-size:11px}.cv-thu-row{flex-wrap:wrap;gap:6px;display:flex}.cv-thu{border:1px solid var(--border-strong);background:var(--surface-solid);min-width:40px;color:var(--muted);cursor:pointer;border-radius:8px;padding:7px 8px;font-size:12px;font-weight:750;transition:background-color .12s,color .12s,border-color .12s}.cv-thu:hover{border-color:var(--primary)}.cv-thu.chon{background:var(--primary);border-color:var(--primary);color:#fff}.cv-doc-group-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:6px 0 4px;font-size:11px;font-weight:800;display:block}.cv-sheet-bar{display:none}.cv-fold-log{font:inherit;color:var(--primary-hover);cursor:pointer;background:0 0;border:none;padding:0;font-size:12.5px;font-weight:700}.cv-fold-log:hover{text-decoration:underline}@media (max-width:768px){.cv-backdrop{align-items:stretch;padding:0}.cv-modal{background:var(--surface-solid);border:none;border-radius:0;flex-direction:column;min-height:100dvh;margin:0;padding:0;display:flex}.cv-sheet-bar{z-index:5;background:var(--sidebar-bg);color:var(--sidebar-fg);justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;font-size:14px;font-weight:750;display:flex;position:sticky;top:0}.cv-sheet-bar button{color:inherit;cursor:pointer;background:#ffffff1f;border:none;border-radius:9px;flex:none;width:32px;height:32px;font-size:15px;line-height:1}.cv-sheet-body{flex:1;min-width:0;padding:14px 14px 0}.cv-modal:has(.modal-thanh-nut){max-height:none;padding-top:0;overflow-y:visible}.cv-modal .modal-thanh-nut{border-radius:0;margin:0 -14px 14px;padding:12px 14px;position:static}.cv-modal .cv-view-actions{padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:var(--surface-solid);border-top:1px solid var(--border);margin-left:-14px;margin-right:-14px;position:sticky;bottom:0;box-shadow:0 -8px 20px #0a2e240f}.cv-modal .input,.cv-modal textarea.input,.cv-modal select.input{font-size:16px}.cv-children,.cv-view-status{padding:11px 12px}.cv-doc-head{flex-direction:column;align-items:flex-start;gap:7px}.cv-doc-links{width:100%}.cv-doc-images img{width:78px;height:78px}}.notif-desktop{z-index:45;align-items:center;gap:8px;display:flex;position:fixed;top:14px;right:18px}.notif-desktop .notif-btn{border-color:var(--border);background:var(--surface-solid);width:38px;height:38px;color:var(--muted);box-shadow:var(--shadow-sm)}.notif-desktop .notif-btn:hover{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-hover)}@media (max-width:768px){.notif-desktop{display:none}}@media (min-width:769px){.sidebar-group,.sidebar-group:nth-of-type(odd),.sidebar-group:nth-of-type(2n){background:linear-gradient(140deg, #fff 0%, var(--group-soft,#eef7f3) 100%);border:1px solid color-mix(in srgb, var(--group-accent,#0f9f7a) 18%, #fff);box-shadow:0 4px 12px #012b2012}.sidebar-group.open{border-color:color-mix(in srgb, var(--group-accent,#0f9f7a) 34%, #fff);background:linear-gradient(145deg, #fff 0%, var(--group-soft,#eef7f3) 100%);box-shadow:0 6px 16px #012b201a}.sidebar-group-header,.sidebar-group.open .sidebar-group-header{color:color-mix(in srgb, var(--group-accent,#0f9f7a) 72%, #16302a);letter-spacing:.01em;border-left:3px solid var(--group-accent,#0f9f7a);border-radius:4px 10px 10px 4px;padding-left:9px;font-weight:780}.sidebar-group-header:hover{color:var(--group-accent,#0f9f7a);background:color-mix(in srgb, var(--group-accent,#0f9f7a) 10%, transparent)}.sidebar-group-header svg:first-child{color:var(--group-accent,#0f9f7a);opacity:1}.sidebar-group-chevron{color:color-mix(in srgb, var(--group-accent,#0f9f7a) 45%, #8aa39b)}.sidebar-group-body>div{border-top-color:color-mix(in srgb, var(--group-accent,#0f9f7a) 14%, transparent)}.sidebar-group-body a{color:#5d7a71;font-weight:620}.sidebar-group-body a:hover{color:color-mix(in srgb, var(--group-accent,#0f9f7a) 80%, #16302a);background:color-mix(in srgb, var(--group-accent,#0f9f7a) 12%, transparent)}.sidebar-group-body a.active{color:#fff;background:var(--group-accent,#0f9f7a);box-shadow:0 5px 13px color-mix(in srgb, var(--group-accent,#0f9f7a) 34%, transparent)}}.cv-badge-pair{align-items:center;gap:6px;display:inline-flex}.cv-badge-pair small{letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-size:10px;font-weight:800}.cv-cho-duyet{border-left:3px solid var(--warn);background:var(--warn-bg);color:var(--warn);border-radius:10px;margin:0 0 12px;padding:9px 13px;font-size:13px}.form-grid .field.full .employee-multi-field,.form-grid .field.full .employee-multi-combobox{width:100%;max-width:100%}.cd-kenh{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.cd-kenh:first-of-type{border-top:none}.cd-kenh .batch-overwrite-option{align-items:flex-start;margin-bottom:0}.cd-kenh small{font-size:11.5px;line-height:1.5}.threep-demo{gap:16px;display:grid}.threep-hero{background:radial-gradient(circle at 88% -15%,#2dcb9d42 0 110px,#0000 112px),linear-gradient(130deg,#f9fffd 0%,#effaf7 58%,#e1f6ef 100%);border:1px solid #a9dfd0;border-radius:20px;justify-content:space-between;align-items:center;gap:24px;padding:25px 28px;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 30px #054d3b17}.threep-hero h2{letter-spacing:-.035em;color:#10251f;margin:7px 0;font-size:clamp(22px,2.2vw,31px)}.threep-hero p{color:#5e746d;max-width:780px;margin:0;line-height:1.6}.threep-kicker{color:#078b69;letter-spacing:.13em;align-items:center;gap:7px;font-size:11px;font-weight:850;display:inline-flex}.threep-demo-badge{color:#087e61;letter-spacing:.08em;text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffb8;border:1px solid #058b673d;border-radius:14px;flex:none;padding:12px 16px;font-size:12px;font-weight:900}.threep-demo-badge small{color:#6c817a;letter-spacing:.03em;margin-top:3px;font-size:9px;font-weight:700;display:block}.threep-toolbar{grid-template-columns:minmax(260px,1fr) 140px 110px auto;align-items:end;gap:12px;padding:16px 18px;display:grid}.threep-toolbar label{gap:6px;display:grid}.threep-toolbar label>span{color:#50675f;font-size:12px;font-weight:760}.threep-reset{white-space:nowrap;min-height:42px}.threep-person-card{border:1px solid var(--border);background:var(--surface-solid);box-shadow:var(--shadow-sm);border-radius:15px;align-items:center;gap:12px;padding:14px 18px;display:flex}.threep-avatar{color:#078765;background:linear-gradient(145deg,#dff8f0,#c9efe3);border-radius:13px;place-items:center;width:42px;height:42px;font-size:18px;font-weight:900;display:grid}.threep-person-card>div:nth-child(2){gap:3px;min-width:0;display:grid}.threep-person-card strong{color:#14251f;font-size:14px}.threep-person-card span{color:var(--muted);font-size:11px}.threep-status{white-space:nowrap;border-radius:999px;margin-left:auto;padding:7px 11px;font-weight:780}.threep-status.draft{color:#95620a;background:#fff3cf}.threep-status.submitted{color:#315caa;background:#e9f0ff}.threep-status.approved{color:#087d5f;background:#ddf7ee}.threep-status.locked{color:#6650a6;background:#eee9ff}.threep-workflow{border:1px solid var(--border);background:#f3f7f5;border-radius:16px;grid-template-columns:repeat(3,1fr);gap:8px;padding:6px;display:grid}.threep-workflow button{color:#788a84;min-height:48px;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:9px 12px;font-size:12px;font-weight:720;transition:transform .18s,background .18s,box-shadow .18s,color .18s;display:flex;position:relative}.threep-workflow button:hover{background:#ffffffb8;transform:translateY(-1px)}.threep-workflow button.done{color:#087b5e;background:#fff;box-shadow:0 5px 14px #11463714}.threep-workflow button b{color:#64766f;background:#e4ebe8;border-radius:8px;place-items:center;width:25px;height:25px;font-size:11px;display:grid}.threep-workflow button.done b{color:#fff;background:#10a17b}.threep-grid{grid-template-columns:minmax(230px,.8fr) minmax(460px,1.65fr);align-items:start;gap:14px;display:grid}.threep-panel,.threep-summary{border:1px solid var(--border);background:var(--surface-solid);border-radius:18px;overflow:hidden;box-shadow:0 9px 24px #143a2f12}.threep-panel{padding:18px}.threep-panel>header{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:15px;display:flex}.threep-panel header small,.threep-summary>small{color:#149374;letter-spacing:.13em;font-size:10px;font-weight:850}.threep-panel h3{color:#15251f;margin:4px 0 0;font-size:17px}.threep-auto,.threep-pass,.threep-fail{white-space:nowrap;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:800}.threep-auto{color:#236c99;background:#e7f4fd}.threep-pass{color:#087d5f;background:#def8ee}.threep-fail{color:#b2443c;background:#ffebe9}.p1-panel{border-top:3px solid #37a4e6}.p2-panel{border-top:3px solid #18a47d;grid-row:span 2}.p3-panel{border-top:3px solid #9764e8}.threep-metric{color:#60746d;border-top:1px dashed #dce7e3;justify-content:space-between;gap:12px;padding:10px 0;font-size:12px;display:flex}.threep-metric strong{color:#22342e}.threep-metric .positive{color:#087d5f}.threep-metric .negative{color:#c24f43}.threep-source{color:#71827c;background:#f3f8f6;border-radius:10px;margin:14px 0 0;padding:10px 11px;font-size:10.5px;line-height:1.45}.threep-score-head,.threep-score-row{grid-template-columns:minmax(210px,1fr) 72px 82px 82px;align-items:center;gap:8px;display:grid}.threep-score-head{color:#6b7c76;text-transform:uppercase;letter-spacing:.04em;text-align:center;background:#eef5f2;border-radius:9px;padding:8px 9px;font-size:9px;font-weight:850}.threep-score-head span:first-child{text-align:left}.threep-score-row{border-bottom:1px solid #e5ece9;padding:11px 9px}.threep-score-row>div{gap:3px;display:grid}.threep-score-row strong{color:#20312b;font-size:12px}.threep-score-row small{color:#778983;font-size:10px;line-height:1.35}.threep-score-row>b{color:#52675f;text-align:center;font-size:11px}.threep-score-row input{color:#15251f;width:100%;height:34px;font:inherit;text-align:center;background:#fff;border:1px solid #cbdad4;border-radius:8px;padding:4px 6px;font-size:12px;font-weight:750}.threep-score-row input:focus{border-color:#18a47d;outline:3px solid #14a47d21}.threep-score-row input:disabled{color:#85938e;opacity:1;background:#f0f4f2;border-color:#0000}.threep-p2-summary{color:#587169;background:linear-gradient(120deg,#edf9f5,#e4f7f0);border-radius:12px;flex-wrap:wrap;align-items:center;gap:15px;margin-top:13px;padding:13px;font-size:11px;display:flex}.threep-p2-summary>strong{color:#087d5f;margin-left:auto;font-size:17px}.threep-result-row{border-top:1px solid #ebe5f5;justify-content:space-between;gap:12px;padding:11px 0;display:flex}.threep-result-row>div{gap:3px;display:grid}.threep-result-row strong{color:#2f2740;font-size:12px}.threep-result-row small{color:#817990;font-size:10px}.threep-result-row>b{color:#7547c1;white-space:nowrap;font-size:12px}.threep-empty-p3{color:#817990;text-align:center;background:#f7f4fc;border-radius:11px;padding:18px;font-size:11px}.threep-adjustment{border-top:1px dashed #dcd3ec;gap:9px;margin-top:13px;padding-top:13px;display:grid}.threep-adjustment label{gap:5px;display:grid}.threep-adjustment label>span{color:#665d75;font-size:10.5px;font-weight:750}.threep-summary{color:#fff;background:linear-gradient(145deg,#0b755b,#075642);padding:20px}.threep-summary>small{color:#9de4d1}.threep-summary>strong{letter-spacing:-.035em;margin:7px 0 16px;font-size:clamp(24px,2.4vw,34px);display:block}.threep-summary>div{color:#c5e5dc;border-top:1px solid #ffffff21;justify-content:space-between;gap:12px;padding:9px 0;font-size:11px;display:flex}.threep-summary>div b{color:#fff}.threep-summary p{color:#a9d6ca;margin:15px 0 0;font-size:10px;line-height:1.5}.threep-actionbar{z-index:12;-webkit-backdrop-filter:blur(13px);backdrop-filter:blur(13px);background:#ffffffed;border:1px solid #087d5f38;border-radius:15px;justify-content:space-between;align-items:center;gap:16px;padding:13px 15px;display:flex;position:sticky;bottom:12px;box-shadow:0 14px 32px #073f3029}.threep-actionbar>div{color:#5d716a;align-items:center;gap:8px;font-size:11px;display:flex}.threep-notice-dot{background:#18a47d;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 5px #18a47d1f}.threep-actionbar .btn{justify-content:center;min-width:205px}.threep-locked{color:#087d5f;background:#e4f7f0;border-radius:10px;align-items:center;gap:7px;padding:9px 12px;font-size:12px;font-weight:800;display:inline-flex}@media (max-width:980px){.threep-toolbar{grid-template-columns:1fr 1fr 1fr}.threep-toolbar label:first-child,.threep-reset{grid-column:1/-1}.threep-grid{grid-template-columns:1fr}.p2-panel{grid-row:auto}}@media (max-width:680px){.threep-demo{gap:12px}.threep-hero{align-items:flex-start;padding:20px 18px}.threep-demo-badge{display:none}.threep-toolbar{grid-template-columns:1fr 1fr;padding:14px}.threep-toolbar label:first-child,.threep-reset{grid-column:1/-1}.threep-person-card{flex-wrap:wrap;align-items:flex-start;padding:13px}.threep-status{white-space:normal;width:100%;margin:2px 0 0 54px}.threep-workflow{grid-template-columns:1fr}.threep-workflow button{justify-content:flex-start}.threep-panel{padding:15px 13px}.threep-score-head{display:none}.threep-score-row{grid-template-columns:1fr 58px 58px;padding:12px 2px}.threep-score-row>div{grid-column:1/-1}.threep-score-row>b:before{content:"TS ";color:#87968f;font-size:8px}.threep-score-row input{height:38px}.threep-p2-summary{flex-direction:column;align-items:flex-start}.threep-p2-summary>strong{margin-left:0}.threep-actionbar{flex-direction:column;align-items:stretch;position:static}.threep-actionbar .btn{width:100%;min-width:0}}.salary-db{gap:16px;display:grid}.salary-db-hero{background:radial-gradient(circle at 93% 0,#1fb78c38 0 120px,#0000 122px),linear-gradient(130deg,#fbfffe,#edf9f5);border:1px solid #a8ddcf;border-radius:20px;justify-content:space-between;align-items:center;gap:24px;padding:25px 28px;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 30px #054d3b17}.salary-db-hero>div{max-width:800px}.salary-db-kicker{color:#078967;letter-spacing:.13em;align-items:center;gap:7px;font-size:10.5px;font-weight:850;display:inline-flex}.salary-db-hero h2{color:#11251f;letter-spacing:-.035em;margin:7px 0;font-size:clamp(23px,2.3vw,32px)}.salary-db-hero p{color:#5c726a;margin:0;line-height:1.6}.salary-db-main-action{flex:none;justify-content:center;min-width:215px;min-height:45px}.salary-db-stats{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.salary-db-stats>div{border:1px solid var(--border);background:var(--surface-solid);box-shadow:var(--shadow-sm);border-radius:14px;gap:5px;padding:15px 17px;display:grid}.salary-db-stats span{color:var(--muted);font-size:10.5px}.salary-db-stats strong{color:#173129;font-size:22px}.salary-db-stats .ok strong{color:#078764}.salary-db-stats .warning strong{color:#bd6c16}.salary-db-error{gap:8px;display:grid}.salary-db-error code{background:#ffffffa8;border-radius:5px;padding:2px 5px}.salary-db-error .btn{width:fit-content;margin-top:3px}.salary-db-notice{align-items:center;gap:9px;margin:0;display:flex}.salary-db-upgrade-note{color:#7c5315;background:linear-gradient(135deg,#fffaf0,#fff4dc);border:1px solid #f0cf91;border-radius:14px;gap:5px;padding:14px 16px;display:grid;box-shadow:0 7px 20px #83551012}.salary-db-upgrade-note strong{color:#8f5909;font-size:13px}.salary-db-upgrade-note span{font-size:11px;line-height:1.55}.salary-db-sheet-grid{grid-template-columns:repeat(3,1fr);gap:11px;display:grid}.salary-db-sheet{border:1px solid var(--border);background:#fff;border-radius:16px;grid-template-columns:42px 1fr;gap:12px;min-height:128px;padding:16px;transition:transform .18s,box-shadow .18s,border-color .18s;display:grid;position:relative;overflow:hidden;box-shadow:0 7px 20px #133b2f0f}.salary-db-sheet:hover{transform:translateY(-2px);box-shadow:0 11px 26px #133b2f1a}.salary-db-sheet.ready{border-top:3px solid #16a27b}.salary-db-sheet.warning{border-top:3px solid #e29a37}.salary-db-sheet.missing{border-top:3px solid #b7c5c0}.salary-db-sheet-number{color:#078764;background:#e6f7f1;border-radius:12px;place-items:center;width:40px;height:40px;font-size:11px;font-weight:900;display:grid}.salary-db-sheet.warning .salary-db-sheet-number{color:#b76412;background:#fff1dc}.salary-db-sheet.missing .salary-db-sheet-number{color:#71847d;background:#eef2f0}.salary-db-sheet-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.salary-db-sheet h3{color:#1a2c26;letter-spacing:-.015em;margin:0;font-size:14px}.salary-db-sheet-head span{color:#087c5f;white-space:nowrap;background:#dff8ee;border-radius:999px;padding:5px 7px;font-size:8.5px;font-weight:850}.salary-db-sheet.warning .salary-db-sheet-head span{color:#a75b0d;background:#fff0d5}.salary-db-sheet.missing .salary-db-sheet-head span{color:#667972;background:#edf1ef}.salary-db-sheet p{color:#62766f;margin:8px 0 9px;font-size:11px;line-height:1.45}.salary-db-sheet small{color:#8a9893;font-size:9.5px;line-height:1.35}.salary-db-guide{border:1px solid var(--border);box-shadow:var(--shadow-sm);background:linear-gradient(145deg,#fff,#f7fbf9);border-radius:18px;grid-template-columns:minmax(230px,.75fr) minmax(480px,1.5fr);gap:24px;padding:23px;display:grid}.salary-db-guide header>span{color:#078967;letter-spacing:.13em;font-size:10px;font-weight:850}.salary-db-guide h2{color:#172a24;margin:7px 0;font-size:20px}.salary-db-guide header p{color:#687b74;margin:0;font-size:11.5px;line-height:1.6}.salary-db-flow{gap:8px;display:grid}.salary-db-flow article{background:#fffc;border:1px solid #e0eae6;border-radius:11px;grid-template-columns:32px 1fr;align-items:center;gap:10px;padding:10px 12px;display:grid}.salary-db-flow article>b{color:#078764;background:#e1f7ef;border-radius:9px;place-items:center;width:29px;height:29px;font-size:10px;display:grid}.salary-db-flow article>div{gap:2px;display:grid}.salary-db-flow strong{color:#243630;font-size:11.5px}.salary-db-flow span{color:#768780;font-size:10px;line-height:1.4}.salary-db-safety{color:#357363;background:#edfaf6;border:1px solid #b8e3d6;border-radius:12px;align-items:flex-start;gap:9px;padding:12px 14px;font-size:10.5px;line-height:1.5;display:flex}.salary-db-safety svg{color:#078764;flex:none;margin-top:1px}.payroll-config-manager{background:#fffffff5;border:1px solid #cfe3dc;border-radius:20px;overflow:hidden;box-shadow:0 14px 38px #14463717}.payroll-config-manager-head{background:radial-gradient(circle at 94% 10%,#5bcda92e,#0000 27%),linear-gradient(135deg,#fbfffd,#f1faf7);border-bottom:1px solid #deebe6;justify-content:space-between;align-items:center;gap:18px;padding:21px 22px;display:flex}.payroll-config-manager-head>div{gap:4px;display:grid}.payroll-config-manager-head>div>span{color:#078967;letter-spacing:.14em;align-items:center;gap:7px;font-size:9.5px;font-weight:900;display:inline-flex}.payroll-config-manager-head h2{color:#142b24;letter-spacing:-.025em;margin:0;font-size:21px}.payroll-config-manager-head p{color:#667b73;margin:0;font-size:11px;line-height:1.5}.payroll-config-head-actions{grid-auto-flow:column;justify-content:end;align-items:center;gap:9px!important;display:flex!important}.payroll-config-head-actions .btn{white-space:nowrap}.payroll-config-welcome{background:linear-gradient(145deg,#fff,#f7fbf9);gap:18px;padding:22px;display:grid}.payroll-config-welcome-copy{background:#ecfaf5;border:1px solid #bde4d7;border-radius:13px;gap:5px;padding:13px 15px;display:grid}.payroll-config-welcome-copy strong{color:#096f56;font-size:13px}.payroll-config-welcome-copy span{color:#557168;font-size:11px;line-height:1.55}.payroll-config-steps{grid-template-columns:repeat(5,1fr);gap:10px;display:grid}.payroll-config-steps button{text-align:left;cursor:pointer;background:#fff;border:1px solid #d8e8e2;border-radius:14px;grid-template-columns:34px 1fr;align-items:start;gap:10px;min-width:0;padding:14px 12px;transition:transform .18s,border-color .18s,box-shadow .18s;display:grid;box-shadow:0 5px 14px #1247360d}.payroll-config-steps button:hover{border-color:#65c8a8;transform:translateY(-2px);box-shadow:0 10px 22px #1247361a}.payroll-config-steps button>b{color:#078764;background:#dcf6ed;border-radius:10px;place-items:center;width:32px;height:32px;font-size:11px;display:grid}.payroll-config-steps button>span{gap:4px;min-width:0;display:grid}.payroll-config-steps strong{color:#1e352d;font-size:12px}.payroll-config-steps small{color:#74877f;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:9.5px;line-height:1.45;display:-webkit-box;overflow:hidden}.payroll-config-loading{color:#087e61;background:#f2fbf8;border:1px solid #b9dfd3;border-radius:14px;align-items:center;gap:13px;margin:20px;padding:18px;display:flex;position:relative;overflow:hidden}.payroll-config-loading>div{gap:3px;display:grid}.payroll-config-loading strong{color:#175041;font-size:12px}.payroll-config-loading span{color:#698078;font-size:10px}.payroll-config-loading>i{background:linear-gradient(90deg,#0000,#16aa80,#0000);height:3px;animation:1.25s ease-in-out infinite payroll-loading-slide;position:absolute;bottom:0;left:0;right:0}.payroll-config-load-error{margin:20px}@keyframes payroll-loading-slide{0%{transform:translate(-100%)}to{transform:translate(100%)}}.salary-db-technical-note{color:#657a72;background:#ffffffb8;border:1px dashed #cbdcd6;border-radius:12px;align-items:flex-start;gap:8px;padding:11px 14px;font-size:10.5px;line-height:1.5;display:flex}.salary-db-technical-note svg{color:#149474;flex:none}.payroll-form-section-title{border-bottom:1px solid #e1ebe7;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:13px;padding-bottom:9px;display:flex}.payroll-form-section-title strong{color:#1b332b;font-size:13px}.payroll-form-section-title span{color:#73867f;font-size:10px}.payroll-advanced{border-top:1px dashed #cbdcd6;gap:14px;margin-top:18px;padding-top:16px;display:grid}.payroll-advanced>.btn{width:fit-content}.payroll-config-nav{background:#f7fbf9;border-bottom:1px solid #e2ece8;grid-template-columns:repeat(5,1fr);gap:8px;padding:12px;display:grid}.payroll-config-nav button{color:#60736c;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;align-items:center;gap:9px;min-width:0;padding:10px;transition:all .18s;display:flex}.payroll-config-nav button:hover{background:#fff;border-color:#c9e1d9;transform:translateY(-1px)}.payroll-config-nav button.active{color:#087e61;background:#fff;border-color:#8fd4bf;box-shadow:0 6px 18px #0f75581a}.payroll-config-nav button>b{color:#0b8f6c;background:#e5f4ef;border-radius:9px;flex:0 0 28px;place-items:center;width:28px;height:28px;font-size:10px;display:grid}.payroll-config-nav button>span{white-space:nowrap;text-overflow:ellipsis;gap:2px;font-size:10.5px;font-weight:800;display:grid;overflow:hidden}.payroll-config-nav small{color:#91a19b;font-size:8.5px;font-weight:600}.payroll-config-panel{gap:13px;padding:19px 20px 22px;display:grid}.payroll-config-panel-head{justify-content:space-between;align-items:center;gap:14px;display:flex}.payroll-config-panel-head h3{color:#172d26;margin:0 0 3px;font-size:17px}.payroll-config-panel-head p{color:#74857f;margin:0;font-size:10.5px;line-height:1.45}.payroll-config-table-wrap{border:1px solid #dce8e3;border-radius:14px;max-height:460px;overflow:auto}.payroll-config-table{min-width:760px;margin:0}.payroll-config-table thead{z-index:1;background:#f2f8f5;position:sticky;top:0}.payroll-config-table th{color:#657971;letter-spacing:.04em;white-space:nowrap;font-size:9px}.payroll-config-table td{color:#263a33;font-size:10.5px}.payroll-config-table tbody tr{cursor:pointer;transition:background .15s}.payroll-config-table tbody tr:hover{background:#f0faf6}.payroll-config-table tbody tr.view-only{cursor:default}.payroll-config-table tbody tr.view-only:hover{background:0 0}.payroll-status-pill{color:#087b5f;white-space:nowrap;background:#dcf8ed;border-radius:999px;padding:4px 8px;font-size:9px;font-weight:800;display:inline-flex}.payroll-status-pill.off{color:#788780;background:#eef2f0}.payroll-kpi-summary{flex-wrap:wrap;gap:6px;display:flex}.payroll-kpi-summary span{border-radius:999px;padding:6px 9px;font-size:9.5px}.payroll-kpi-summary .ok{color:#087d60;background:#e1f8ef}.payroll-kpi-summary .warning{color:#a76012;background:#fff1dc}.payroll-config-empty{min-height:150px}.payroll-config-modal{width:min(1040px,100vw - 28px);max-width:1040px}.payroll-config-modal-intro{background:#f4fbf8;border:1px solid #d7e9e2;border-radius:12px;gap:4px;margin:0 18px 14px;padding:12px 14px;display:grid}.payroll-config-modal-intro strong{color:#285046;font-size:11px}.payroll-config-modal-intro span{color:#70847c;font-size:9.5px;line-height:1.45}.payroll-config-form{padding:0 18px 22px}.payroll-config-form .form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.payroll-config-form .field{margin:0}.payroll-config-form .field>label{font-size:10.5px}.payroll-config-form .field>small{color:#83938d;margin-top:5px;font-size:8.5px;line-height:1.35;display:block}.payroll-field-wide{grid-column:1/-1}.payroll-switch-field{cursor:pointer;background:#fbfdfc;border:1px solid #dce8e3;border-radius:12px;align-items:flex-start;gap:10px;min-height:66px;padding:12px;display:flex}.payroll-switch-field input{accent-color:#079674;margin-top:2px}.payroll-switch-field span{gap:4px;display:grid}.payroll-switch-field b{color:#2f433c;font-size:10.5px}.payroll-switch-field small{color:#809089;font-size:8.5px;line-height:1.4}.payroll-rule-checks{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.payroll-rule-checks>label{cursor:pointer;background:#fbfdfc;border:1px solid #dce8e3;border-radius:10px;align-items:flex-start;gap:8px;padding:10px;display:flex}.payroll-rule-checks input{accent-color:#079674;margin-top:2px}.payroll-rule-checks span{color:#687a73;gap:2px;font-size:9px;display:grid}.payroll-rule-checks b{color:#1d3d34;font-size:10px}.payroll-guide-modal{width:min(1120px,100vw - 30px);max-width:1120px}.payroll-guide-body{gap:20px;padding:2px 22px 24px;display:grid}.payroll-guide-intro{background:radial-gradient(circle at 96% 4%,#45c49c33,#0000 31%),linear-gradient(135deg,#f8fffc,#ecfaf5);border:1px solid #bfe4d8;border-radius:16px;gap:6px;padding:19px 20px;display:grid;position:relative;overflow:hidden}.payroll-guide-intro:after{content:"";border:22px solid #0a997112;border-radius:50%;width:132px;height:132px;position:absolute;top:-42px;right:-34px}.payroll-guide-intro>span{color:#078967;letter-spacing:.14em;font-size:9px;font-weight:900}.payroll-guide-intro h2{color:#153229;letter-spacing:-.025em;margin:0;font-size:22px}.payroll-guide-intro p{color:#5f776e;max-width:780px;margin:0;font-size:11px;line-height:1.6}.payroll-guide-steps{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.payroll-guide-steps article{background:#fff;border:1px solid #d9e8e3;border-radius:15px;grid-template-columns:34px minmax(0,1fr);gap:10px;min-width:0;padding:14px 12px;display:grid;box-shadow:0 7px 19px #1243340e}.payroll-guide-steps article>b{color:#078764;background:#ddf7ee;border-radius:10px;place-items:center;width:32px;height:32px;font-size:11px;display:grid}.payroll-guide-steps article>div{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.payroll-guide-steps article span{color:#0a8f6b;letter-spacing:.035em;text-transform:uppercase;font-size:8px;font-weight:850}.payroll-guide-steps article h3{color:#20372f;margin:5px 0 4px;font-size:12px}.payroll-guide-steps article p{color:#70837c;margin:0;font-size:9.5px;line-height:1.5}.payroll-guide-steps article small{color:#556d64;margin-top:8px;font-size:9px;line-height:1.45;display:block}.payroll-guide-steps article button{color:#078764;cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;margin-top:auto;padding:10px 0 0;font-size:9px;font-weight:850;display:inline-flex}.payroll-guide-roles{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;display:grid}.payroll-guide-roles>div{background:#f9fcfb;border:1px solid #e0e9e6;border-radius:13px;gap:4px;padding:13px 14px;display:grid}.payroll-guide-roles strong{color:#263d35;font-size:10.5px}.payroll-guide-roles span{color:#71837c;font-size:9px;line-height:1.5}.payroll-guide-warning{background:#fff8e9;border:1px solid #f0cf94;border-radius:12px;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.payroll-guide-warning strong{color:#9a5a0d;flex:none;font-size:10px}.payroll-guide-warning span{color:#7d6a4d;font-size:9.5px;line-height:1.5}.salary-workspace-nav{gap:10px;margin-bottom:18px;display:grid}.salary-workspace-main{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;display:grid}.salary-workspace-main>button{color:#53665f;text-align:left;cursor:pointer;background:#ffffffe6;border:1px solid #d6e4df;border-radius:17px;grid-template-columns:44px minmax(0,1fr) 18px;align-items:center;gap:12px;min-height:86px;padding:14px 15px;transition:transform .18s,border-color .18s,box-shadow .18s,background .18s;display:grid;box-shadow:0 8px 24px #1f483b0e}.salary-workspace-main>button:hover{border-color:#9dd5c5;transform:translateY(-2px);box-shadow:0 13px 28px #185c461a}.salary-workspace-main>button.active{color:#087e60;background:linear-gradient(135deg,#fafffd,#eaf9f4);border-color:#0d9b76;box-shadow:0 13px 30px #09896621}.salary-workspace-main>button>span:nth-child(2){gap:5px;min-width:0;display:grid}.salary-workspace-main b{color:#20372f;font-size:13px;line-height:1.25}.salary-workspace-main small{color:#71827c;font-size:10px;line-height:1.45}.salary-workspace-icon{color:#078966;background:#dff7ef;border-radius:13px;place-items:center;width:43px;height:43px;display:grid}.salary-workspace-icon.sheet{color:#356ee0;background:#e8efff}.salary-workspace-icon.archive{color:#bd6b13;background:#fff1dc}.salary-workspace-settings{background:#f8fbfae6;border:1px solid #e0e9e6;border-radius:13px;flex-wrap:wrap;align-items:center;gap:7px;padding:8px 10px;display:flex}.salary-workspace-settings>span{color:#6d7e78;align-items:center;gap:6px;margin-right:auto;font-size:10px;font-weight:750;display:inline-flex}.salary-workspace-settings button{color:#5f726b;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;padding:8px 11px;font-size:10px;font-weight:800;transition:background .16s,color .16s,border-color .16s}.salary-workspace-settings button:hover,.salary-workspace-settings button.active{color:#078665;background:#fff;border-color:#c7e4db}.payroll-operation{gap:16px;display:grid}.payroll-operation-hero{background:radial-gradient(circle at 96% 0,#43c59e38,#0000 28%),linear-gradient(135deg,#fbfffd,#edf9f5);border:1px solid #b9e1d5;border-radius:20px;justify-content:space-between;align-items:center;gap:22px;padding:24px 26px;display:flex;position:relative;overflow:hidden;box-shadow:0 14px 34px #18594514}.payroll-operation-hero>div{gap:5px;max-width:800px;display:grid}.payroll-operation-hero span{color:#078b68;letter-spacing:.15em;font-size:9px;font-weight:900}.payroll-operation-hero h2{color:#142d25;letter-spacing:-.03em;margin:0;font-size:24px}.payroll-operation-hero p{color:#637a72;margin:0;font-size:11px;line-height:1.6}.payroll-flow-map{background:#ffffffe0;border:1px solid #d9e7e2;border-radius:17px;grid-template-columns:repeat(5,minmax(0,1fr));display:grid;overflow:hidden;box-shadow:0 8px 24px #1d46390d}.payroll-flow-step{grid-template-columns:34px minmax(0,1fr);align-items:center;gap:9px;min-height:72px;padding:11px 13px;display:grid;position:relative}.payroll-flow-step:not(:last-child):after{content:"";background:#e1eae7;width:1px;position:absolute;top:16px;bottom:16px;right:0}.payroll-flow-step>span{color:#819089;background:#edf2f0;border-radius:10px;place-items:center;width:31px;height:31px;font-size:11px;font-weight:900;display:grid}.payroll-flow-step>div{gap:3px;min-width:0;display:grid}.payroll-flow-step strong{color:#65766f;font-size:10.5px;line-height:1.3}.payroll-flow-step small{color:#899690;font-size:8.5px;line-height:1.35}.payroll-flow-step.active{background:linear-gradient(135deg,#f8fffc,#edf9f5)}.payroll-flow-step.active>span{color:#fff;background:#0a9470;box-shadow:0 6px 14px #0a947038}.payroll-flow-step.active strong{color:#087e60}.payroll-flow-step.completed>span{color:#078764;background:#daf5eb}.payroll-flow-step.completed strong{color:#315c4f}.payroll-operation-welcome,.payroll-operation-empty{color:#0c8b69;background:#ffffffb8;border:1px dashed #bbd9cf;border-radius:18px;justify-content:center;align-items:center;gap:16px;min-height:170px;padding:24px;display:flex}.payroll-operation-welcome>div,.payroll-operation-empty>div{gap:4px;max-width:650px;display:grid}.payroll-operation-welcome strong,.payroll-operation-empty strong{color:#213a32;font-size:14px}.payroll-operation-welcome span,.payroll-operation-empty span,.payroll-operation-empty p{color:#71847d;margin:0;font-size:10.5px;line-height:1.55}.payroll-operation-picker{grid-template-columns:minmax(190px,.75fr) minmax(280px,1.5fr) auto;align-items:end;gap:12px;display:grid}.payroll-operation-picker label,.payroll-operation-fields label,.payroll-operation-p3 label{gap:6px;display:grid}.payroll-operation-picker label>span,.payroll-operation-fields label>span,.payroll-operation-p3 label>span{color:#526860;font-size:9.5px;font-weight:800}.payroll-operation-person{background:#fff;border:1px solid #d7e7e1;border-radius:16px;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:13px;padding:14px 17px;display:grid;box-shadow:0 8px 22px #1942360e}.payroll-operation-avatar{color:#078b68;background:linear-gradient(145deg,#dff8ef,#c8eee2);border-radius:14px;place-items:center;width:46px;height:46px;font-size:18px;font-weight:900;display:grid}.payroll-operation-person>div:nth-child(2){gap:3px;display:grid}.payroll-operation-person strong{color:#1b322b;font-size:13px}.payroll-operation-person span{color:#73847e;font-size:9.5px}.payroll-operation-person>span:last-child{border-radius:999px;padding:6px 10px;font-weight:850}.payroll-operation-person>span.draft{color:#9b640d;background:#fff2d8}.payroll-operation-person>span.calculated{color:#176e96;background:#e1f5ff}.payroll-operation-person>span.locked{color:#078361;background:#dcf7ed}.payroll-operation-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.payroll-operation-panel{background:#fff;border:1px solid #d9e7e2;border-radius:18px;overflow:hidden;box-shadow:0 10px 25px #1d45390d}.payroll-operation-panel>header{background:#f8fcfa;border-bottom:1px solid #e5eeeb;justify-content:space-between;align-items:flex-start;gap:14px;padding:16px 18px;display:flex}.payroll-operation-panel>header div{gap:4px;display:grid}.payroll-operation-panel>header small{color:#078d69;letter-spacing:.12em;font-size:8px;font-weight:900}.payroll-operation-panel>header h3{color:#20382f;margin:0;font-size:14px}.payroll-operation-panel>header b{color:#087f60;font-size:11px}.payroll-operation-panel>p{color:#7a8b85;margin:0;padding:0 18px 14px;font-size:9.5px;line-height:1.55}.payroll-operation-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;padding:15px 18px;display:grid}.payroll-operation-fields.three{grid-template-columns:repeat(3,minmax(0,1fr))}.payroll-operation-result{color:#087c5f;background:#e7f8f2;border-radius:11px;margin:0 18px 16px;padding:11px 13px;font-size:11px;display:block}.payroll-operation-score-head,.payroll-operation-score{grid-template-columns:minmax(210px,1fr) 64px 86px 86px;align-items:center;gap:9px;display:grid}.payroll-operation-score-head{color:#75877f;text-transform:uppercase;background:#f5f9f7;padding:10px 18px;font-size:8px;font-weight:800}.payroll-operation-score{border-top:1px solid #edf2f0;padding:11px 18px}.payroll-operation-score>div{gap:7px;display:grid}.payroll-operation-score strong{color:#293f37;font-size:10.5px}.payroll-operation-score>b{color:#667a72;font-size:10px}.payroll-operation-score .input{min-width:0;padding:8px 9px}.payroll-operation-p3{border-bottom:1px solid #edf2f0;grid-template-columns:minmax(220px,1fr) 130px 100px;align-items:center;gap:12px;padding:13px 18px;display:grid}.payroll-operation-p3>div{gap:4px;display:grid}.payroll-operation-p3 strong{color:#263d35;font-size:10.5px}.payroll-operation-p3 small{color:#7a8b85;font-size:8.5px;line-height:1.45}.payroll-operation-p3>b{color:#078561;text-align:right;font-size:10.5px}.payroll-operation-total{color:#fff;background:linear-gradient(135deg,#075d49,#0c9c78);border:1px solid #0a8b68;border-radius:20px;grid-template-columns:minmax(250px,.65fr) 1.35fr;align-items:center;gap:22px;padding:21px 24px;display:grid;box-shadow:0 16px 34px #075d4933}.payroll-operation-total>div:first-child{gap:3px;display:grid}.payroll-operation-total span{color:#c9eee3;font-size:9px}.payroll-operation-total strong{letter-spacing:-.03em;font-size:27px}.payroll-operation-total small{color:#b9e5d8;font-size:8.5px}.payroll-operation-breakdown{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.payroll-operation-breakdown span{background:#ffffff14;border:1px solid #ffffff26;border-radius:11px;gap:4px;padding:10px 12px;display:grid}.payroll-operation-breakdown b{color:#fff;font-size:10px}.payroll-operation-actions{z-index:7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff0;border:1px solid #d4e4de;border-radius:16px;justify-content:flex-end;align-items:center;gap:9px;padding:13px 15px;display:flex;position:sticky;bottom:10px;box-shadow:0 12px 32px #173f3321}.payroll-operation-actions>div{gap:2px;margin-right:auto;display:grid}.payroll-operation-actions strong{color:#2b423a;font-size:10.5px}.payroll-operation-actions span{color:#7a8b85;font-size:8.5px}.payroll-operation-locked{color:#078460;align-items:center;gap:6px;font-weight:850;display:inline-flex}.payroll-operation-unlock{background:#fffaf2;border:1px dashed #d8c4a8;border-radius:14px;flex-wrap:wrap;align-items:center;gap:9px;margin-top:10px;padding:11px 15px;display:flex}.payroll-operation-unlock>div{gap:2px;margin-right:auto;display:grid}.payroll-operation-unlock strong{color:#8a5a12;font-size:10.5px}.payroll-operation-unlock span{color:#9c8567;font-size:8.5px}.payroll-operation-unlock .input{flex:220px;min-width:180px}@media (max-width:980px){.salary-workspace-main{grid-template-columns:1fr}.payroll-flow-map{grid-template-columns:repeat(3,minmax(0,1fr))}.payroll-flow-step:nth-child(3):after{display:none}.payroll-config-steps,.salary-db-sheet-grid{grid-template-columns:repeat(2,1fr)}.salary-db-guide{grid-template-columns:1fr}.payroll-config-nav{grid-template-columns:repeat(3,1fr)}.payroll-config-form .form-grid,.payroll-rule-checks,.payroll-guide-steps,.payroll-guide-roles{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-operation-grid{grid-template-columns:1fr}.payroll-operation-fields.three{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-operation-total{grid-template-columns:1fr}}@media (max-width:680px){.salary-workspace-main>button{min-height:78px}.salary-workspace-settings{flex-direction:column;align-items:stretch}.salary-workspace-settings>span{margin:0 0 2px}.salary-workspace-settings button{text-align:left;width:100%}.payroll-flow-map{scroll-snap-type:x proximity;display:flex;overflow-x:auto}.payroll-flow-step{scroll-snap-align:start;flex:0 0 190px}.payroll-flow-step:nth-child(3):after{display:block}.payroll-config-welcome{padding:15px}.payroll-config-steps{grid-template-columns:1fr}.salary-db-hero{flex-direction:column;align-items:stretch;padding:20px 17px}.salary-db-main-action{width:100%}.salary-db-stats{grid-template-columns:repeat(2,1fr)}.salary-db-sheet-grid{grid-template-columns:1fr}.salary-db-sheet{min-height:0}.salary-db-guide{padding:18px 14px}.payroll-config-manager{border-radius:16px}.payroll-config-manager-head{flex-direction:column;align-items:stretch;padding:17px 15px}.payroll-config-manager-head .btn{justify-content:center;width:100%}.payroll-config-head-actions{grid-auto-flow:row;width:100%}.payroll-config-nav{scrollbar-width:thin;padding:9px;display:flex;overflow-x:auto}.payroll-config-nav button{flex:0 0 142px}.payroll-config-panel{padding:15px 12px 18px}.payroll-config-panel-head{flex-direction:column;align-items:stretch}.payroll-config-panel-head .btn{justify-content:center;width:100%}.payroll-config-table-wrap{border:0;max-height:none;overflow:visible}.payroll-config-table{min-width:0}.payroll-config-modal{width:calc(100vw - 16px)}.payroll-config-form{padding:0 12px 18px}.payroll-config-form .form-grid{grid-template-columns:1fr}.payroll-field-wide{grid-column:auto}.payroll-rule-checks{grid-template-columns:1fr}.payroll-guide-modal{width:calc(100vw - 12px)}.payroll-guide-body{gap:14px;padding:0 11px 16px}.payroll-guide-intro{padding:16px 14px}.payroll-guide-intro h2{font-size:18px}.payroll-guide-steps,.payroll-guide-roles{grid-template-columns:1fr}.payroll-guide-warning{flex-direction:column;gap:4px}.payroll-operation-hero{flex-direction:column;align-items:stretch;padding:19px 16px}.payroll-operation-hero .btn{justify-content:center;width:100%}.payroll-operation-picker{grid-template-columns:1fr}.payroll-operation-picker .btn{justify-content:center;width:100%}.payroll-operation-empty{flex-direction:column;align-items:stretch}.payroll-operation-empty .btn{justify-content:center;width:100%}.payroll-operation-person{grid-template-columns:44px minmax(0,1fr)}.payroll-operation-person>span:last-child{grid-column:1/-1;justify-self:start}.payroll-operation-fields,.payroll-operation-fields.three{grid-template-columns:1fr}.payroll-operation-score-head{display:none}.payroll-operation-score{grid-template-columns:1fr 56px 1fr 1fr}.payroll-operation-score>div{grid-column:1/-1}.payroll-operation-p3{grid-template-columns:1fr 1fr}.payroll-operation-p3>div{grid-column:1/-1}.payroll-operation-breakdown{grid-template-columns:repeat(2,minmax(0,1fr))}.payroll-operation-actions{flex-direction:column;align-items:stretch;position:static}.payroll-operation-actions>div{margin-right:0}.payroll-operation-actions .btn{justify-content:center;width:100%}}.phieu-danhgia-hero{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:16px;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;display:flex}.phieu-danhgia-hero span{letter-spacing:.06em;color:var(--primary);font-size:11.5px;font-weight:700}.phieu-danhgia-hero h2{margin:4px 0 2px;font-size:19px}.phieu-danhgia-hero p{color:var(--muted);margin:0;font-size:13.5px}.phieu-danhgia-picker{grid-template-columns:1fr 1fr auto;align-items:end;gap:14px;margin-top:14px;display:grid}.phieu-danhgia-picker label{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.phieu-danhgia-actions{align-items:center;gap:12px;margin:16px 0;display:flex}.phieu-danhgia-print-area{background:var(--surface-solid);border:1px solid var(--border);box-shadow:var(--shadow-sm);border-radius:16px;max-width:820px;padding:28px 32px}.phieu-danhgia-print-head{text-align:center;margin-bottom:18px}.phieu-danhgia-print-head h1{letter-spacing:.04em;margin:0;font-size:20px}.phieu-danhgia-print-head p{color:var(--muted);margin:4px 0 0;font-size:13.5px}.phieu-danhgia-print-area table{border-collapse:collapse;width:100%;margin:10px 0 16px;font-size:13.5px}.phieu-danhgia-print-area th,.phieu-danhgia-print-area td{border:1px solid var(--border);text-align:left;padding:7px 10px}.phieu-danhgia-info td:first-child,.phieu-danhgia-info td:nth-child(3){color:var(--muted);width:110px}.phieu-danhgia-print-area h3{margin:18px 0 6px;font-size:14.5px}.phieu-danhgia-tong{margin:0 0 14px;font-size:13.5px}.phieu-danhgia-total-row td{background:var(--surface-subtle);font-weight:700}.phieu-danhgia-signatures{text-align:center;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:34px;display:grid}.phieu-danhgia-signatures span{font-weight:600;display:block}.phieu-danhgia-signatures small{color:var(--muted);margin-top:46px;font-size:12px;display:block}@media print{.no-print,.sidebar,.mobile-topbar,.salary-workspace-nav,.page-header-banner{display:none!important}body,.page{background:#fff!important}.phieu-danhgia-print-area{box-shadow:none;border:none;max-width:none;padding:0}}@media (max-width:720px){.phieu-danhgia-hero{flex-direction:column;align-items:stretch}.phieu-danhgia-picker{grid-template-columns:1fr}.phieu-danhgia-print-area{padding:18px}.phieu-danhgia-signatures{grid-template-columns:1fr;gap:0;margin-top:24px}.phieu-danhgia-signatures>div{border-top:1px dashed var(--border);padding:16px 0}.phieu-danhgia-signatures>div:first-child{border-top:none;padding-top:0}.phieu-danhgia-signatures small{margin-top:20px}}.payroll-config-panel-actions{gap:8px;display:flex}.payroll-bulk-chips{flex-wrap:wrap;gap:6px;display:flex}.payroll-bulk-chips span{color:#087b5f;background:#dcf8ed;border-radius:999px;align-items:center;gap:6px;padding:4px 6px 4px 10px;font-size:11px;font-weight:700;display:inline-flex}.payroll-bulk-chips button{color:#087b5f;cursor:pointer;background:#087b5f26;border:none;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.payroll-bulk-list{border:1px solid #dce8e3;border-radius:12px;flex-direction:column;gap:2px;max-height:260px;padding:6px;display:flex;overflow-y:auto}.payroll-bulk-row{border-radius:8px;align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:flex}.payroll-bulk-row:hover{background:#f3f8f6}.payroll-bulk-row small{color:#74857f;margin-left:4px}.payroll-bulk-tag{color:#b45309;margin-left:auto;font-size:10.5px}.tudanhgia-welcome{justify-content:center;padding:32px 16px;display:flex}.tudanhgia-tabs{gap:8px;margin:18px 0 14px;display:flex}.tudanhgia-tabs button{border:1px solid var(--border);background:var(--surface-solid);color:var(--muted);cursor:pointer;border-radius:10px;align-items:center;gap:6px;padding:9px 16px;font-size:13px;font-weight:700;display:inline-flex}.tudanhgia-tabs button.active{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-hover)}.tudanhgia-count{background:var(--primary);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10.5px;display:inline-flex}.tudanhgia-panel{flex-direction:column;gap:14px;display:flex}.tudanhgia-picker{grid-template-columns:1fr auto;align-items:end;gap:12px;padding:16px;display:grid}.tudanhgia-picker.three{grid-template-columns:1fr 1fr auto}.tudanhgia-picker label{color:var(--muted);gap:6px;font-size:12.5px;display:grid}.tudanhgia-notice{background:var(--warn-bg);color:var(--warn);border-radius:10px;padding:10px 14px;font-size:13px}.tudanhgia-notice.ok{background:var(--primary-soft);color:var(--primary-hover)}.tudanhgia-table-wrap{overflow-x:auto}.tudanhgia-table th,.tudanhgia-table td{vertical-align:top;padding:10px 14px}.tudanhgia-table input.input{margin-bottom:4px}.tudanhgia-readonly b{display:block}.tudanhgia-readonly small{color:var(--muted);margin-top:2px;font-size:11.5px;display:block}.tudanhgia-footer{background:var(--surface-solid);border:1px solid var(--border);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;font-size:13px;display:flex}@media (max-width:720px){.tudanhgia-picker,.tudanhgia-picker.three{grid-template-columns:1fr}.tudanhgia-tabs{flex-wrap:wrap}.tudanhgia-footer{flex-direction:column;align-items:stretch}}
