:root{--pp-green:#2e7d32;--pp-green-dark:#1b5e20;--pp-green-darker:#0d3d11;--pp-green-light:#e8f5e9;--pp-green-50:#f1f8f2;--pp-yellow:#f9a825;--pp-yellow-light:#fff8e1;--pp-yellow-dark:#f57f17;--gray-25:#fcfcfd;--gray-50:#f9fafb;--gray-100:#f2f4f7;--gray-200:#e4e7ec;--gray-300:#d0d5dd;--gray-400:#98a2b3;--gray-500:#667085;--gray-600:#475467;--gray-700:#344054;--gray-800:#1d2939;--gray-900:#101828;--pp-bg:#f7f9f8;--pp-bg-elev:#fff;--pp-border:#e4e7ec;--pp-border-soft:#eff1f4;--pp-muted:#667085;--st-red-bg:#fef3f2;--st-red-fg:#b42318;--st-red-border:#fecdca;--st-amber-bg:#fffaeb;--st-amber-fg:#b54708;--st-amber-border:#fedf89;--st-green-bg:#ecfdf3;--st-green-fg:#027a48;--st-green-border:#abefc6;--st-blue-bg:#eff8ff;--st-blue-fg:#175cd3;--st-blue-border:#b2ddff;--st-purple-bg:#f4f3ff;--st-purple-fg:#5925dc;--st-purple-border:#d9d6fe;--st-orange-bg:#fff6ed;--st-orange-fg:#b93815;--st-orange-border:#fdb022;--st-gray-bg:#f2f4f7;--st-gray-fg:#344054;--st-gray-border:#d0d5dd;--shadow-xs:0 1px 2px #1018280d;--shadow-sm:0 1px 3px #1018280f, 0 1px 2px #1018280a;--shadow-md:0 4px 8px -2px #10182814, 0 2px 4px -2px #1018280a;--shadow-lg:0 12px 24px -6px #1018281a, 0 4px 8px -2px #1018280d;--shadow-xl:0 20px 40px -8px #10182824, 0 8px 16px -4px #1018280f;--shadow-2xl:0 24px 48px -12px #1018282e;--ring-green:0 0 0 4px #2e7d321f;--t-fast:.12s ease-out;--t-base:.2s cubic-bezier(.16, 1, .3, 1);--t-slow:.32s cubic-bezier(.16, 1, .3, 1);--r-sm:6px;--r-md:8px;--r-lg:10px;--r-xl:14px;--r-2xl:18px;--r-full:999px;--fs-xs:12px;--fs-sm:13px;--fs-base:14px;--fs-md:15px;--fs-lg:16px;--fs-xl:18px;--fs-2xl:22px;--fs-3xl:28px;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--lh-tight:1.25;--lh-snug:1.4;--lh-base:1.5}@media (width<=767px){:root{--fs-xs:13px;--fs-sm:14px;--fs-base:15.5px;--fs-md:16px;--fs-lg:17px;--fs-xl:19px;--fs-2xl:23px;--fs-3xl:30px}}html,body,#root{height:100%;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:var(--fs-base);font-weight:var(--fw-medium);line-height:var(--lh-base);background:var(--pp-bg);color:var(--gray-900);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11";text-rendering:optimizelegibility;margin:0}*{box-sizing:border-box}h1{font-family:Plus Jakarta Sans,Inter,sans-serif;font-size:var(--fs-3xl);font-weight:var(--fw-bold);letter-spacing:-.02em;line-height:var(--lh-tight);color:var(--gray-900);margin:0}h2{font-family:Plus Jakarta Sans,Inter,sans-serif;font-size:var(--fs-2xl);font-weight:var(--fw-bold);letter-spacing:-.02em;line-height:var(--lh-tight);color:var(--gray-900);margin:0}h3{font-family:Plus Jakarta Sans,Inter,sans-serif;font-size:var(--fs-xl);font-weight:var(--fw-semibold);letter-spacing:-.015em;line-height:var(--lh-snug);color:var(--gray-900);margin:0}h4{font-family:Plus Jakarta Sans,Inter,sans-serif;font-size:var(--fs-lg);font-weight:var(--fw-semibold);letter-spacing:-.01em;line-height:var(--lh-snug);color:var(--gray-900);margin:0}small{font-size:var(--fs-xs);color:var(--pp-muted)}input,textarea,select,button{font-family:inherit;font-size:var(--fs-base)}@media (width<=767px){input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],input[type=tel],input[type=url],input[type=date],input[type=time],input[type=datetime-local],textarea,select{font-size:16px}table.pp-table{-webkit-overflow-scrolling:touch;display:block;overflow-x:auto}.card,.dropdown-item,.drawer-content{overflow-wrap:anywhere;word-break:break-word}}::-webkit-scrollbar-thumb{background:var(--gray-200);border:2px solid var(--pp-bg);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--gray-300)}.pp-page-enter{animation:.28s cubic-bezier(.16,1,.3,1) pageEnter}@keyframes pageEnter{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.pp-logo-mark{background:linear-gradient(135deg, var(--pp-green) 0%, var(--pp-green-dark) 100%);border-radius:var(--r-md);color:#fff;width:36px;height:36px;box-shadow:var(--shadow-sm), inset 0 1px 0 #ffffff1a;flex-shrink:0;justify-content:center;align-items:center;font-size:20px;font-weight:700;display:flex}.pp-nav-item{cursor:pointer;font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--gray-600);transition:all var(--t-fast);border-radius:0 var(--r-md) var(--r-md) 0;border-left:3px solid #0000;align-items:center;gap:12px;margin-right:8px;padding:10px 20px;display:flex;position:relative}.pp-nav-item:hover{background:var(--gray-50);color:var(--gray-900)}.pp-nav-item.active{color:var(--pp-green-dark);background:linear-gradient(90deg, var(--pp-green-light) 0%, #e8f5e94d 70%, transparent 100%);border-left-color:var(--pp-green);font-weight:600}.pp-nav-item.active:after{content:"";background:var(--pp-green);border-radius:50%;width:6px;height:6px;position:absolute;top:50%;right:14px;transform:translateY(-50%);box-shadow:0 0 0 4px #2e7d321f}.pp-kpi{background:var(--pp-bg-elev);border:1px solid var(--pp-border-soft);border-radius:var(--r-xl);box-shadow:var(--shadow-xs);transition:transform var(--t-base), box-shadow var(--t-base), border-color var(--t-base);padding:18px 20px;position:relative;overflow:hidden}.pp-kpi:before{content:"";background:linear-gradient(90deg, var(--pp-green) 0%, var(--pp-yellow) 100%);opacity:0;height:3px;transition:opacity var(--t-base);position:absolute;top:0;left:0;right:0}.pp-kpi:hover{box-shadow:var(--shadow-md);border-color:var(--pp-border);transform:translateY(-2px)}.pp-kpi:hover:before{opacity:1}.pp-kpi-icon{border-radius:var(--r-lg);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:18px;display:flex}.badge{border-radius:var(--r-full);white-space:nowrap;letter-spacing:.01em;align-items:center;gap:5px;padding:3px 10px;font-size:11px;font-weight:600;line-height:1.4;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;flex-shrink:0;width:5px;height:5px}.badge-overdue{background:var(--st-red-bg);color:var(--st-red-fg);border:1px solid var(--st-red-border)}.badge-completed{background:var(--st-green-bg);color:var(--st-green-fg);border:1px solid var(--st-green-border)}.badge-completed-overdue{background:var(--st-orange-bg);color:var(--st-orange-fg);border:1px solid var(--st-orange-border)}.badge-ongoing{background:var(--st-amber-bg);color:var(--st-amber-fg);border:1px solid var(--st-amber-border)}.badge-scheduled{background:var(--st-purple-bg);color:var(--st-purple-fg);border:1px solid var(--st-purple-border)}.badge-verified{background:var(--st-blue-bg);color:var(--st-blue-fg);border:1px solid var(--st-blue-border)}.badge-tag{background:var(--st-gray-bg);color:var(--st-gray-fg);border:1px solid var(--st-gray-border)}.badge-tag:before{display:none}.avatar{background:linear-gradient(135deg, var(--pp-green) 0%, var(--pp-green-dark) 100%);color:#fff;width:28px;height:28px;box-shadow:var(--shadow-xs);border:2px solid #fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:inline-flex}.avatar-stack>.avatar{margin-left:-8px}.avatar-stack>.avatar:first-child{margin-left:0}.icon-btn{border-radius:var(--r-md);width:36px;height:36px;color:var(--gray-500);cursor:pointer;transition:all var(--t-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{background:var(--gray-100);color:var(--gray-900)}.icon-btn:active{background:var(--gray-200);transform:scale(.96)}.btn{border-radius:var(--r-md);border:1px solid var(--pp-border);color:var(--gray-700);cursor:pointer;min-height:38px;transition:all var(--t-fast);box-shadow:var(--shadow-xs);letter-spacing:.01em;background:#fff;align-items:center;gap:6px;padding:9px 16px;font-family:inherit;font-size:13px;font-weight:600;display:inline-flex}.btn:hover{background:var(--gray-50);border-color:var(--gray-300)}.btn:active{box-shadow:none;transform:translateY(.5px)}.btn:focus-visible{box-shadow:var(--ring-green);outline:none}.btn-primary{background:linear-gradient(180deg, var(--pp-green) 0%, var(--pp-green-dark) 100%);color:#fff;border-color:var(--pp-green-dark);box-shadow:var(--shadow-sm), inset 0 1px 0 #ffffff1f}.btn-primary:hover{background:linear-gradient(180deg, var(--pp-green-dark) 0%, var(--pp-green-darker) 100%);border-color:var(--pp-green-darker)}.btn-danger{color:#fff;box-shadow:var(--shadow-sm);background:#d92d20;border-color:#b42318}.btn-danger:hover{background:#b42318}.btn:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.pp-tab{cursor:pointer;color:var(--gray-500);font-size:var(--fs-base);font-weight:var(--fw-semibold);white-space:nowrap;transition:all var(--t-fast);border-bottom:2px solid #0000;flex-shrink:0;padding:10px 14px;position:relative}.pp-tab:hover{color:var(--gray-800)}.pp-tab.active{color:var(--pp-green-dark);border-bottom-color:var(--pp-green);font-weight:600}.pp-view-switch{background:var(--gray-100);border:1px solid var(--pp-border-soft);border-radius:var(--r-lg);gap:0;padding:3px;display:inline-flex}.pp-view-switch button{cursor:pointer;color:var(--gray-500);transition:all var(--t-fast);background:0 0;border:none;border-radius:7px;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:500;display:inline-flex}.pp-view-switch button:hover{color:var(--gray-800)}.pp-view-switch button.active{color:var(--pp-green-dark);box-shadow:var(--shadow-xs);background:#fff;font-weight:600}table.pp-table{border-collapse:separate;border-spacing:0;background:#fff;width:100%}table.pp-table th{text-align:left;color:var(--gray-600);background:var(--gray-50);border-bottom:1px solid var(--pp-border);white-space:nowrap;text-transform:uppercase;letter-spacing:.05em;padding:11px 14px;font-size:11px;font-weight:600}table.pp-table td{color:var(--gray-700);border-bottom:1px solid var(--pp-border-soft);padding:12px 14px;font-size:13px}table.pp-table tbody tr:hover{background:var(--pp-green-50)}table.pp-table tbody tr:last-child td{border-bottom:none}.modal-overlay{-webkit-backdrop-filter:blur(6px)saturate(120%);z-index:1000;animation:fadeIn var(--t-base);background:#10182880;justify-content:center;align-items:center;padding:14px;display:flex;position:fixed;inset:0}.modal-content{border-radius:var(--r-2xl);width:680px;max-width:100%;max-height:92vh;box-shadow:var(--shadow-2xl);animation:slideUp var(--t-slow);background:#fff;flex-direction:column;display:flex;overflow:hidden}.modal-body{flex:auto;padding:22px;overflow-y:auto}.modal-large{width:1000px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}.drawer-overlay{-webkit-backdrop-filter:blur(2px);z-index:999;animation:fadeIn var(--t-base);background:#10182873;position:fixed;inset:0}.drawer-content{z-index:1000;width:960px;max-width:100vw;box-shadow:var(--shadow-2xl);animation:slideInRight var(--t-slow);background:#fff;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:none}}.form-input{border:1px solid var(--pp-border);border-radius:var(--r-md);width:100%;color:var(--gray-900);min-height:40px;transition:border-color var(--t-fast), box-shadow var(--t-fast);box-shadow:var(--shadow-xs);background:#fff;outline:none;padding:10px 12px;font-family:inherit;font-size:14px}.form-input::placeholder{color:var(--gray-400)}.form-input:hover:not(:disabled):not(:focus){border-color:var(--gray-300)}.form-input:focus{border-color:var(--pp-green);box-shadow:var(--ring-green)}.form-input:disabled{background:var(--gray-50);color:var(--gray-500);cursor:not-allowed}textarea.form-input{resize:vertical;min-height:90px;line-height:1.5}select.form-input{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23667085' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:12px;padding-right:36px}.filter-chip{background:var(--pp-green-light);color:var(--pp-green-dark);border-radius:var(--r-full);transition:all var(--t-fast);border:1px solid #bbdfbe;align-items:center;gap:5px;padding:4px 10px 4px 12px;font-size:11px;font-weight:600;display:inline-flex}.filter-chip:hover{background:#dbeedd}.tag-chip{border-radius:var(--r-full);border:1px solid;align-items:center;gap:5px;padding:3px 10px;font-size:11px;font-weight:600;line-height:1.4;display:inline-flex}.toast{background:var(--gray-900);color:#fff;border-radius:var(--r-lg);box-shadow:var(--shadow-xl);border-left:3px solid var(--pp-green);max-width:90vw;padding:11px 16px 11px 14px;font-size:13px;font-weight:500;animation:.28s cubic-bezier(.16,1,.3,1) toastSlide}@keyframes toastSlide{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.report-card{border:1px solid var(--pp-border-soft);border-radius:var(--r-xl);cursor:pointer;transition:all var(--t-base);box-shadow:var(--shadow-xs);background:#fff;align-items:flex-start;gap:14px;padding:18px;display:flex}.report-card:hover{border-color:var(--pp-green);box-shadow:var(--shadow-md);transform:translateY(-2px)}.toggle{cursor:pointer;width:40px;height:22px;transition:background var(--t-base);border-radius:11px;flex-shrink:0;position:relative;box-shadow:inset 0 1px 2px #1018280f}.toggle.on{background:var(--pp-green)}.toggle.off{background:var(--gray-300)}.toggle-knob{width:18px;height:18px;transition:left var(--t-base);background:#fff;border-radius:50%;position:absolute;top:2px;box-shadow:0 1px 3px #10182833}.toggle.on .toggle-knob{left:20px}.toggle.off .toggle-knob{left:2px}.dropdown{border:1px solid var(--pp-border-soft);border-radius:var(--r-lg);box-shadow:var(--shadow-xl);z-index:50;background:#fff;min-width:220px;margin-top:8px;padding:6px;animation:.18s cubic-bezier(.16,1,.3,1) dropFade;position:absolute;top:100%;right:0}@keyframes dropFade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.dropdown-item{color:var(--gray-700);border-radius:var(--r-sm);cursor:pointer;transition:background var(--t-fast);align-items:center;gap:9px;padding:9px 12px;font-size:13px;display:flex}.dropdown-item:hover{background:var(--gray-50);color:var(--gray-900)}.checkbox{border:1.5px solid var(--gray-300);border-radius:var(--r-sm);cursor:pointer;width:20px;height:20px;transition:all var(--t-fast);background:#fff;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.checkbox:hover{border-color:var(--pp-green)}.checkbox.checked{background:var(--pp-green);border-color:var(--pp-green);color:#fff;box-shadow:var(--shadow-xs);font-size:13px}.ref-img{aspect-ratio:1;background:linear-gradient(135deg, var(--pp-green-50), #eff8ff);border-radius:var(--r-md);width:100%;color:var(--gray-500);text-align:center;border:1px solid var(--pp-border-soft);transition:all var(--t-base);justify-content:center;align-items:center;padding:6px;font-size:11px;display:flex;position:relative;overflow:hidden}.ref-img:hover{border-color:var(--pp-green);box-shadow:var(--shadow-sm);transform:scale(1.02)}.ref-img img{object-fit:cover;width:100%;height:100%}.ref-img-label{color:#fff;background:linear-gradient(#0000 0%,#000000b3 100%);padding:6px 8px 4px;font-size:10px;font-weight:500;position:absolute;bottom:0;left:0;right:0}.mention{color:var(--pp-green-dark);background:var(--pp-green-light);border-radius:var(--r-sm);border:1px solid #c7e5c9;padding:1px 6px;font-weight:600}.online-dot{border-radius:4px;width:8px;height:8px;display:inline-block;position:relative}.online-dot.online{background:#12b76a;box-shadow:0 0 0 3px #12b76a26}.online-dot.online:after{content:"";opacity:.35;background:#12b76a;border-radius:50%;animation:2s ease-out infinite pulse;position:absolute;inset:-2px}.online-dot.offline{background:#f04438}@keyframes pulse{0%{opacity:.6;transform:scale(.6)}to{opacity:0;transform:scale(2)}}.mobile-card{border:1px solid var(--pp-border-soft);border-radius:var(--r-xl);box-shadow:var(--shadow-xs);transition:transform var(--t-fast), box-shadow var(--t-fast), border-color var(--t-fast);background:#fff;margin-bottom:10px;padding:14px}.mobile-card:hover{box-shadow:var(--shadow-sm);border-color:var(--pp-border)}.mobile-card:active{transform:scale(.99)}.bottom-nav{-webkit-backdrop-filter:blur(16px)saturate(180%);border-top:1px solid var(--pp-border-soft);padding:6px 0 calc(6px + env(safe-area-inset-bottom));z-index:50;background:#fffffff0;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 28px #10182814}.bottom-nav-item{color:var(--gray-500);cursor:pointer;transition:color var(--t-fast), transform var(--t-fast);flex-direction:column;flex:1;align-items:center;gap:3px;padding:8px 4px;font-size:10.5px;font-weight:500;display:flex;position:relative}.bottom-nav-item:active{transform:scale(.92)}.bottom-nav-item.active{color:var(--pp-green-dark);font-weight:700}.bottom-nav-item.active:before{content:"";background:var(--pp-green);border-radius:0 0 3px 3px;width:24px;height:3px;position:absolute;top:0;left:50%;transform:translate(-50%)}.spinner{border:3px solid var(--gray-200);border-top-color:var(--pp-green);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.modal-sticky-footer{background:var(--gray-50);border-top:1px solid var(--pp-border-soft);z-index:5;position:sticky;bottom:0;left:0;right:0}.login-hero{background:radial-gradient(circle at 15% 25%,#2e7d321f 0%,#0000 45%),radial-gradient(circle at 85% 75%,#f9a8251a 0%,#0000 45%),linear-gradient(135deg,#f7f9f8 0%,#fff 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex;position:relative;overflow:hidden}.login-hero:before{content:"";pointer-events:none;background-image:radial-gradient(circle,#2e7d320a 1px,#0000 1px);background-size:32px 32px;position:absolute;inset:0}:focus-visible{box-shadow:var(--ring-green);border-radius:var(--r-sm);outline:none}button:focus-visible,a:focus-visible{box-shadow:var(--ring-green)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}.safe-top{padding-top:env(safe-area-inset-top,0px)}.safe-bottom{padding-bottom:env(safe-area-inset-bottom,0px)}.safe-left{padding-left:env(safe-area-inset-left,0px)}.safe-right{padding-right:env(safe-area-inset-right,0px)}@supports (padding:max(0px)){.topbar-safe{padding-left:max(18px, env(safe-area-inset-left));padding-right:max(18px, env(safe-area-inset-right))}.modal-overlay{padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0)}}@media (display-mode:standalone){body{overscroll-behavior-y:contain}}@keyframes aiVerdictIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.ai-banner{animation:.3s cubic-bezier(.16,1,.3,1) aiVerdictIn}html{scroll-behavior:smooth}@media (width<=768px){.modal-overlay{align-items:stretch;padding:0}.modal-content{width:100%;max-width:100vw;height:100dvh;max-height:100dvh;padding-top:env(safe-area-inset-top,0px);border-radius:0;animation:.3s cubic-bezier(.16,1,.3,1) slideUpMobile}@keyframes slideUpMobile{0%{transform:translateY(100%)}to{transform:none}}.drawer-content{width:100vw;padding-top:env(safe-area-inset-top,0px)}body{font-size:14px}.form-input{font-size:16px}.topbar-dropdown{max-width:340px;max-height:70vh;overflow-y:auto;top:calc(60px + env(safe-area-inset-top,0px))!important;width:calc(100vw - 16px)!important;position:fixed!important;left:auto!important;right:8px!important}.icon-btn{width:40px;height:40px}.pp-kpi{padding:14px 16px}h2{font-size:18px!important}.btn{min-height:42px}.checkbox{width:22px;height:22px}}@media (width>=769px) and (width<=1023px){aside{width:200px!important}.modal-content{width:92vw;max-width:720px}.drawer-content{width:88vw}}@media (width>=1600px){.modal-large{width:1100px}}@media print{.pp-nav-item,.bottom-nav,.icon-btn,.btn{display:none!important}}.gradient-text{background:linear-gradient(135deg, var(--pp-green) 0%, var(--pp-green-dark) 100%);color:#0000;-webkit-background-clip:text;background-clip:text}.card-elev{border:1px solid var(--pp-border-soft);border-radius:var(--r-xl);box-shadow:var(--shadow-xs);background:#fff}.surface-bg{background:var(--pp-bg)}.text-muted{color:var(--gray-500)}:root{--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px);--press-scale:.97;--motion-quick:.12s;--motion-base:.2s;--motion-slow:.32s;--focus-ring:0 0 0 3px #2e7d3252}*{-webkit-tap-highlight-color:transparent}body{padding-top:var(--safe-top);padding-left:var(--safe-left);padding-right:var(--safe-right);overscroll-behavior-y:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (display-mode:standalone){body{background:var(--pp-green-dark)}.pwa-install-hint{display:none!important}}button,.icon-btn,.pp-tab,.nav-item,[role=button],a.btn,.btn{touch-action:manipulation;min-width:44px;min-height:44px}.icon-btn.compact,.icon-btn[data-compact=true]{min-width:0;min-height:0}:focus-visible{box-shadow:var(--focus-ring);border-radius:var(--r-sm,6px);outline:none}button:active:not(:disabled),.icon-btn:active:not(.disabled),[role=button]:active,.pp-tab:active{transform:scale(var(--press-scale));transition:transform var(--motion-quick) ease-out}button,.icon-btn,[role=button],.pp-tab,.nav-item{transition:background-color var(--motion-base) ease, color var(--motion-base) ease, border-color var(--motion-base) ease, transform var(--motion-quick) ease-out}.bottom-nav,.pp-bottom-nav,nav.bottom{padding-bottom:calc(var(--safe-bottom) + 6px)}.modal-footer-sticky,.sticky-footer{padding-bottom:calc(var(--safe-bottom) + 12px)}.topbar,header.topbar,.app-topbar{padding-top:calc(var(--safe-top) + 8px)}.modal,.drawer,[role=dialog]{padding-top:var(--safe-top);padding-bottom:var(--safe-bottom)}@media (width<=768px){.modal.fullscreen,.drawer.fullscreen{height:100dvh;max-height:100vh}}.toast{-webkit-backdrop-filter:blur(8px);color:#fff;margin-bottom:calc(var(--safe-bottom) + 4px);animation:toastEnter var(--motion-slow) cubic-bezier(.16, 1, .3, 1);border-radius:999px;padding:10px 18px;font-size:13px;box-shadow:0 8px 24px #0000002e,0 2px 6px #0000001a}@keyframes toastEnter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.skeleton{background:linear-gradient(90deg, var(--gray-100) 0%, var(--gray-50) 50%, var(--gray-100) 100%);border-radius:var(--r-sm,6px);background-size:200% 100%;animation:1.4s linear infinite shimmer}.drawer-enter,.modal-enter{animation:drawerIn var(--motion-base) cubic-bezier(.16, 1, .3, 1)}@keyframes drawerIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}input,select,textarea{font-size:16px}input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]),select,textarea{appearance:none}input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus{outline:none;box-shadow:0 0 0 3px #2e7d3224;border-color:var(--pp-green)!important}input[type=checkbox],input[type=radio]{accent-color:var(--pp-green);cursor:pointer;width:16px;height:16px}button:disabled,.btn:disabled,[aria-disabled=true]{opacity:.55;cursor:not-allowed;transform:none!important}@media (hover:none) and (pointer:coarse){.pp-tab{padding:12px 14px}.icon-btn{padding:8px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}::selection{background:var(--pp-green-light);color:var(--pp-green-dark)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--gray-100);background-clip:padding-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--gray-200);background-clip:padding-box;border:2px solid #0000}::-webkit-scrollbar-track{background:0 0}.ai-banner:hover,[role=button][title*=history]:hover{filter:brightness(.98)}@keyframes obFill{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes rt-spin{to{transform:rotate(360deg)}}.rt-app{background:var(--pp-bg,#f6f8f7);min-height:100dvh;display:flex}.rt-main{flex-direction:column;flex:1;min-width:0;display:flex}.rt-content{flex:1;min-width:0;padding:22px 26px 96px;overflow-x:hidden}.rt-sidebar{border-right:1px solid var(--pp-border-soft,#e7ece9);background:#fff;flex-direction:column;flex-shrink:0;width:240px;height:100dvh;display:flex;position:sticky;top:0}.rt-nav-item{color:var(--gray-700,#374151);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:10px;align-items:center;gap:12px;width:calc(100% - 20px);margin:2px 10px;padding:11px 14px;font-size:15px;font-weight:600;display:flex}.rt-nav-item:hover{background:var(--pp-green-light,#e8f5e9)}.rt-nav-item.active{background:var(--pp-green-light,#e8f5e9);color:var(--pp-green-dark,#1b5e20)}.rt-bottom-nav,.rt-show-mobile{display:none}@media (width<=768px){.rt-hide-mobile{display:none!important}.rt-show-mobile{display:inline-flex}}.rt-table-wrap{-webkit-overflow-scrolling:touch;border:1px solid var(--pp-border-soft,#eef2f7);background:#fff;border-radius:14px;overflow-x:auto}table.pp-table td{vertical-align:middle}.rt-card{border:1px solid var(--pp-border-soft,#eff1f4);border-radius:var(--r-xl,14px);box-shadow:var(--shadow-sm);background:#fff;padding:18px}.rt-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;border-bottom:1px solid var(--pp-border-soft,#eef2f7);flex-wrap:nowrap;gap:4px;margin-bottom:14px;display:flex;overflow:auto hidden}.rt-tabs::-webkit-scrollbar{display:none}.rt-tab{cursor:pointer;color:var(--pp-muted,#64748b);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;flex:none;margin-bottom:-1px;padding:10px 14px;font-weight:600}.rt-tab.active{color:var(--pp-green-dark,#1b5e20);border-bottom-color:var(--pp-green,#2e7d32)}@media (width<=768px){.rt-sidebar{display:none}.rt-content{padding:16px 14px 88px}.rt-bottom-nav{border-top:1px solid var(--pp-border-soft,#e7ece9);padding:6px 4px calc(env(safe-area-inset-bottom,0px) + 6px);z-index:500;background:#fff;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.rt-bottom-item{color:var(--pp-muted,#64748b);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;padding:4px 8px;font-size:10px;font-weight:600;display:flex}.rt-bottom-item.active{color:var(--pp-green,#2e7d32)}.rt-card,.rt-content [style*="display: grid"]>*,.rt-content [style*=display\:grid]>*,.rt-content [style*="display: flex"]>*,.rt-content [style*=display\:flex]>*{min-width:0}.rt-table-wrap{min-width:0;max-width:100%}.rt-table-wrap table.pp-table{width:max-content;min-width:100%}}@media (width<=480px){[style*=repeat\(3],[style*=repeat\(4],[style*="1fr 1fr 1fr"]{grid-template-columns:1fr 1fr!important}}.btn{justify-content:center;min-width:84px}.btn.icon-btn,.icon-btn{min-width:0}@media (width<=768px){.modal-footer-sticky{flex-direction:column;align-items:stretch;gap:8px}.modal-footer-sticky>.btn{width:100%;min-height:48px;font-size:15px}.modal-footer-sticky>label{width:100%;margin:0}.topbar .rt-topbar-create{display:none!important}.topbar{gap:6px!important;padding-left:12px!important;padding-right:12px!important}}.drawer-content .btn{min-height:40px}@media (width<=768px){.drawer-content{width:100vw!important;max-width:100vw!important}}.rt-scope{background:var(--gray-100,#f1f5f9);border-radius:12px;align-self:flex-start;gap:4px;padding:4px;display:inline-flex}.rt-scope-btn{color:var(--gray-600,#475569);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:9px;padding:8px 18px;font-size:14px;font-weight:600;transition:background .15s,color .15s,box-shadow .15s}.rt-scope-btn:hover{color:var(--gray-900,#0f172a)}.rt-scope-btn.active{color:var(--pp-green-dark,#1b5e20);box-shadow:var(--shadow-xs,0 1px 2px #1018280f);background:#fff;font-weight:700}.rt-scope-count{opacity:.6;font-weight:600}.rt-scope-btn.active .rt-scope-count{opacity:.85}@media (width<=768px){.rt-scope{width:100%;display:flex}.rt-scope-btn{text-align:center;flex:1;padding:11px 10px}}.task-cards{flex-direction:column;gap:10px;padding:2px 0 4px;display:flex}.task-card{border:1px solid var(--pp-border-soft,#e2e8f0);-webkit-tap-highlight-color:transparent;background:#fff;border-radius:14px;padding:12px 14px 12px 18px;transition:transform .18s,box-shadow .18s;animation:.38s cubic-bezier(.16,1,.3,1) both taskCardIn;position:relative;overflow:hidden;box-shadow:0 1px 2px #1018280a,0 1px 3px #1018280f}.task-card:active{transform:scale(.985);box-shadow:0 1px 2px #1018280f}.task-card__accent{background:var(--accent,#94a3b8);border-radius:14px 0 0 14px;width:5px;position:absolute;top:0;bottom:0;left:0}.task-card.status-overdue{--accent:#ef4444}.task-card.status-ongoing{--accent:#16a34a}.task-card.status-scheduled{--accent:#f59e0b}.task-card.status-awaiting_approval{--accent:#6366f1}.task-card.status-completed,.task-card.status-completed_overdue{--accent:#94a3b8}.task-card.status-rejected{--accent:#f43f5e}.task-card.status-cancelled{--accent:#cbd5e1}.task-card__top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.task-card__check{width:18px;height:18px;accent-color:var(--pp-green-dark,#1b5e20);flex-shrink:0}.task-card__overdue{color:#b42318;background:#fef3f2;border-radius:8px;padding:2px 7px;font-size:11px;font-weight:700}.task-card__title{color:#0f172a;flex-wrap:wrap;align-items:center;gap:6px;font-size:15px;font-weight:600;line-height:1.3;display:flex}.task-card__title>span{word-break:break-word}.task-card__sub{color:var(--pp-muted,#94a3b8);margin-top:3px;font-size:11.5px}.task-card__tags{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.task-card__meta{justify-content:space-between;align-items:center;gap:8px;margin-top:10px;display:flex}.task-card__due{color:var(--pp-muted,#64748b);align-items:center;gap:5px;font-size:12.5px;font-weight:600;display:inline-flex}.task-card__due:before{content:"🗓";opacity:.8;font-size:12px}.task-card__action{margin-top:10px}.task-card__action :is(button,.btn){justify-content:center;width:100%}@keyframes taskCardIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.task-card{animation:none}.task-card:active{transform:none}}:root{--rt-ease:cubic-bezier(.22,.7,.2,1);--rt-spring:cubic-bezier(.22,.9,.3,1)}.rt-glass{-webkit-backdrop-filter:blur(16px)saturate(1.25);box-shadow:var(--shadow-lg)!important;background:#ffffffbd!important;border:1px solid #ffffffa6!important}body:after{content:"";z-index:2000;pointer-events:none;background:linear-gradient(90deg, var(--pp-green), var(--pp-yellow), var(--pp-green-dark), var(--pp-green));background-size:300% 100%;height:3px;animation:9s linear infinite rt-flow;position:fixed;top:0;left:0;right:0}@keyframes rt-flow{to{background-position:300% 0}}.rt-app{background:0 0!important}body{background:#edf3ef}body:before{content:"";z-index:-1;pointer-events:none;filter:saturate(1.06);will-change:transform;background-color:#0000;background-image:radial-gradient(38% 34% at 8% 4%,#2e7d3242,#0000 60%),radial-gradient(34% 30% at 94% 2%,#f9a82538,#0000 60%),radial-gradient(44% 42% at 84% 94%,#2e7d3238,#0000 62%),radial-gradient(40% 38% at 4% 96%,#0d3d1129,#0000 60%),linear-gradient(120deg,#eef6f0,#f5f3ec);background-position:0 0,0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat,repeat;background-size:auto,auto,auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box,border-box;animation:24s ease-in-out infinite alternate rt-aurora;position:fixed;inset:-20%}@keyframes rt-aurora{0%{transform:translate(0,0)scale(1)}50%{transform:translate(-2.5%,2%)scale(1.1)}to{transform:translate(3%,-2%)scale(1.14)}}.rt-sidebar{-webkit-backdrop-filter:blur(18px)saturate(1.3);box-shadow:1px 0 40px #1018280d;background:#ffffffad!important;border-right:1px solid #ffffff8c!important}.topbar{-webkit-backdrop-filter:blur(18px)saturate(1.3);border-bottom:1px solid #ffffff80;background:#fff9!important}.pp-kpi,.rt-card,.mobile-card{-webkit-backdrop-filter:blur(14px)saturate(1.15);background:#ffffffc2!important;border:1px solid #ffffffa8!important}.rt-table-wrap{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffc7!important}.modal-content,.drawer-content{-webkit-backdrop-filter:blur(24px)saturate(1.3);background:#ffffffeb!important}@keyframes rt-fade{0%{opacity:0}to{opacity:1}}@keyframes rt-rise{0%{opacity:0;transform:translateY(16px)scale(.985)}to{opacity:1;transform:none}}@keyframes rt-pop{0%{opacity:0;transform:translateY(10px)scale(.96)}to{opacity:1;transform:none}}.rt-content{animation:.5s both rt-fade}.pp-kpi,.rt-card,.mobile-card{animation:rt-rise .6s var(--rt-ease) backwards}.pp-kpi:first-child{animation-delay:50ms}.pp-kpi:nth-child(2){animation-delay:.12s}.pp-kpi:nth-child(3){animation-delay:.19s}.pp-kpi:nth-child(4){animation-delay:.26s}.pp-kpi{box-shadow:var(--shadow-md);transition:transform .3s var(--rt-ease), box-shadow .3s ease, border-color .3s ease;position:relative;overflow:hidden}.pp-kpi:after{content:"";background:linear-gradient(90deg, var(--pp-green), var(--pp-yellow));transform-origin:0;height:3px;transition:transform .4s var(--rt-ease);position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.pp-kpi:hover{box-shadow:0 28px 50px -16px #2e7d324d, var(--shadow-xl);transform:translateY(-6px)scale(1.012);border-color:#2e7d3273!important}.pp-kpi:hover:after{transform:scaleX(1)}.pp-kpi-icon{transition:transform .35s var(--rt-spring), box-shadow .35s ease;box-shadow:0 8px 20px -6px #2e7d3266}.pp-kpi:hover .pp-kpi-icon{transform:scale(1.12)rotate(-5deg);box-shadow:0 12px 26px -6px #2e7d3280}.rt-card,.mobile-card{transition:transform .25s var(--rt-ease), box-shadow .25s ease, border-color .25s ease}.mobile-card:hover,.rt-card:hover{box-shadow:var(--shadow-xl);transform:translateY(-4px);border-color:#2e7d3259!important}h1{background:linear-gradient(100deg, var(--gray-900,#101828) 30%, var(--pp-green-dark,#1b5e20));color:#0000;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.btn{transition:transform .15s var(--rt-ease), box-shadow .2s ease, background .2s ease, border-color .2s ease}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)scale(.97)}.btn-primary{position:relative;overflow:hidden;box-shadow:0 8px 20px -6px #2e7d328c}.btn-primary:hover{box-shadow:0 14px 28px -6px #2e7d3299}.btn-primary:after{content:"";background:linear-gradient(90deg,#0000,#fff6,#0000);width:60%;height:100%;position:absolute;top:0;left:-120%;transform:skew(-20deg)}.btn-primary:hover:after{transition:left .7s;left:140%}.rt-nav-item{transition:background .2s ease, color .2s ease, transform .2s var(--rt-ease);border-radius:12px;position:relative}.rt-nav-item:hover{transform:translate(4px)}.rt-nav-item.active{box-shadow:inset 0 0 0 1px #2e7d322e;background:linear-gradient(90deg, var(--pp-green-light,#e8f5e9), #e8f5e940)!important}.rt-nav-item.active:before{content:"";background:linear-gradient(180deg, var(--pp-green), var(--pp-green-dark));border-radius:0 4px 4px 0;width:4px;position:absolute;top:9px;bottom:9px;left:-10px;box-shadow:0 0 12px #2e7d3299}.modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:.22s both rt-fade;background:#0d1e1173!important}.modal-content{animation:rt-pop .32s var(--rt-spring) both;box-shadow:var(--shadow-2xl)}@keyframes rt-slide-in{0%{opacity:.3;transform:translate(34px)}to{opacity:1;transform:none}}.drawer-content{animation:rt-slide-in .34s var(--rt-ease) both;box-shadow:var(--shadow-2xl)}.rt-tab{border-radius:8px 8px 0 0;transition:color .2s,background .2s,border-color .2s}.rt-tab:hover{color:var(--pp-green-dark,#1b5e20);background:var(--pp-green-50,#f1f8f2)}.rt-scope-btn.active{animation:.25s both rt-pop}table.pp-table thead th{position:sticky;top:0}table.pp-table tbody tr{transition:background .18s,box-shadow .18s}table.pp-table tbody tr:hover{box-shadow:inset 3px 0 0 var(--pp-green)}.form-input,input,select,textarea{transition:border-color .18s,box-shadow .18s,background .18s}.form-input:focus,input:focus,select:focus,textarea:focus{outline:none;box-shadow:0 0 0 4px #2e7d3229;border-color:var(--pp-green)!important}.badge{transition:transform .15s,box-shadow .15s}.badge:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.icon-btn,.topbar button{transition:background .18s ease, transform .14s var(--rt-ease);border-radius:10px}.icon-btn:hover,.topbar button:hover{background:var(--pp-green-light,#e8f5e9)}.icon-btn:active,.topbar button:active{transform:scale(.92)}.rt-bottom-item{transition:color .2s ease, transform .2s var(--rt-ease)}.rt-bottom-item.active{transform:translateY(-2px)}.toggle,.toggle .toggle-knob{transition:background .22s ease, left .22s var(--rt-ease), transform .22s ease}.login-hero{place-items:center;display:grid;position:fixed;inset:0;overflow:hidden;background:linear-gradient(135deg,#0b3a10 0%,#14501a 38%,#2e7d32 72%,#256528 100%)!important}.login-hero:before{content:"";filter:blur(36px);background:radial-gradient(28% 28% at 18% 22%,#f9a8258c,#0000 60%),radial-gradient(26% 26% at 84% 24%,#8ce6a066,#0000 60%),radial-gradient(34% 34% at 72% 88%,#08280ca6,#0000 62%),radial-gradient(24% 24% at 30% 86%,#f9a8254d,#0000 60%);animation:18s ease-in-out infinite alternate rt-aurora;position:absolute;inset:-25%}.login-hero:after{content:"";opacity:.35;pointer-events:none;background-image:radial-gradient(#ffffff2e 1px,#0000 1px);background-size:22px 22px;position:absolute;inset:0}.login-hero>div{-webkit-backdrop-filter:blur(22px)saturate(1.2);animation:rt-pop .55s var(--rt-spring) both;border:1px solid #fff9;background:#fffffff0!important;box-shadow:0 44px 90px -24px #00000080,0 0 0 1px #1018280a!important}::-webkit-scrollbar-thumb{border-radius:8px;background:linear-gradient(180deg, var(--pp-green), var(--pp-green-dark))!important;background-clip:padding-box!important;border:2px solid #0000!important}::selection{background:#2e7d322e}@media (prefers-reduced-motion:reduce){body:before,body:after,.login-hero:before,.rt-content,.pp-kpi,.rt-card,.mobile-card,.modal-overlay,.modal-content,.drawer-content,.rt-scope-btn.active,.login-hero>div{animation:none}.pp-kpi:hover,.mobile-card:hover,.rt-card:hover,.btn:hover,.btn:active,.rt-nav-item:hover,.icon-btn:active,.topbar button:active,.rt-bottom-item.active,.pp-kpi:hover .pp-kpi-icon{transform:none}.btn-primary:after{display:none}}
