body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Montserrat,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.landing-container{display:flex;font-family:Montserrat,sans-serif;height:100vh}.sidebar .logo{margin-bottom:40px;margin-top:20px}.sidebar .menu a.active .menu-icon,.sidebar .menu a:hover .menu-icon{filter:brightness(1.2)}.user-info h4{font-size:.9rem;margin:0}.user-info p{color:#555;font-size:.7rem;margin:0}.popup-card{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;padding:12px 20px;position:absolute;right:20px;top:65px;transition:all .2s ease-in-out;z-index:200}.popup-text{color:#333;font-size:16px;font-weight:500;text-decoration:none}.popup-text:hover{color:#152259}.hero{flex-direction:row;font-style:bold}body,html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Montserrat,Arial,sans-serif;margin:0;padding:0}.login-container{align-items:center;background:url(/static/media/bg-login.ca166a2cd5f77aa142e9.png) no-repeat 50%/cover;display:flex;justify-content:center;min-height:100vh;padding:20px}.login-card{background:#fffffff2;border-radius:16px;box-shadow:0 6px 20px #0000004d;height:500px;max-width:90%;padding:30px 25px;text-align:center;width:400px}.login-logo{margin-bottom:15px;width:80px}.login-card h2{color:#222;font-size:1.5rem;font-style:bold;font-weight:600;margin-bottom:10px}.login-card p{color:#444;font-size:.9rem;font-style:bold;line-height:1.4;margin-bottom:20px}.form-group{font-style:bold;margin-bottom:15px;text-align:left;width:100%}.form-group label{display:block;font-size:14px;font-weight:500;margin-bottom:5px}.required{color:red}.form-group input{border:1px solid #ddd;border-radius:8px;box-sizing:border-box;font-size:14px;outline:none;padding:12px 14px;transition:border .3s;width:100%}.form-group input:focus{border-color:#007bff}.btn-login{background:linear-gradient(90deg,#007bff,#00a2ff);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:15px;padding:12px;transition:opacity .3s;width:100%}.btn-login:hover{opacity:.9}@media (max-width:480px){.login-card{border-radius:12px;padding:20px 15px}.login-logo{width:65px}.login-card h2{font-size:1.2rem}.login-card p{font-size:.8rem}.btn-login,.form-group input{font-size:.9rem;padding:10px}}:root{--sidebar-w:230px}.sidebar{gap:10px;inset:0 auto 0 0;overflow-y:auto;padding:44px 22px;position:fixed;scrollbar-width:thin;width:230px;width:var(--sidebar-w);z-index:20}.sidebar::-webkit-scrollbar{width:8px}.sidebar::-webkit-scrollbar-thumb{background:#ffffff2e;border-radius:10px}.sidebar::-webkit-scrollbar-thumb:hover{background:#ffffff47}.dashboard-container>.content{box-sizing:border-box;margin-left:230px;margin-left:var(--sidebar-w);min-width:0;padding:22px 26px}.logo{align-items:center;display:flex;flex-direction:column;gap:10px;margin:4px 0 26px;text-align:center}.logo-icon{height:92px;object-fit:contain;width:92px}.logo-text{font-size:20px;font-weight:900;letter-spacing:.5px}.menu-section{margin-bottom:10px}.menu-title{font-size:11px;letter-spacing:.14em;margin:0 0 10px;opacity:.85}.menu a{align-items:center;border-radius:12px;color:#cfd8e3;display:flex;font-size:14px;gap:10px;margin:8px 0;padding:10px 12px;text-decoration:none;transition:background .18s ease,color .18s ease,transform .14s ease;width:100%}.menu a .menu-icon{height:20px;object-fit:contain;width:20px}.menu a:hover{background:#1e3a8a8c;color:#fff;transform:translateX(3px)}.menu a.active{background:#1e3a8a;color:#fff}.submenu-toggle{align-items:center;background:#0000;border:none;border-radius:12px;color:#cfd8e3;cursor:pointer;display:flex;font-size:14px;margin:8px 0;padding:10px 12px;transition:background .18s ease,color .18s ease,transform .14s ease;width:100%}.submenu-toggle-left{align-items:center;display:flex;gap:10px}.submenu-toggle .menu-icon{height:20px;object-fit:contain;width:20px}.submenu-arrow{font-size:12px;margin-left:auto;opacity:.85}.submenu-toggle:hover{background:#1e3a8a8c;color:#fff;transform:translateX(3px)}.submenu{display:flex;flex-direction:column;gap:6px;margin:6px 0 10px;padding-left:12px}.submenu-link{border-radius:10px;color:#e5e7eb;font-size:13px;opacity:.95;padding:6px 10px 6px 14px;position:relative;text-decoration:none}.submenu-link:before{color:#9ca3af;content:"•";left:6px;position:absolute;top:50%;transform:translateY(-52%)}.submenu-link:hover{background:#ffffff0f}.submenu-link.active{background:#38bdf81a;color:#38bdf8;font-weight:800}.submenu-link.active:before{color:#0ea5e9}@media (max-width:1024px){:root{--sidebar-w:210px}}@media (max-width:640px){.sidebar{padding:32px 16px}.logo-icon{height:78px;width:78px}.dashboard-container>.content{padding:16px}}.pp{margin:0 auto;max-width:1120px}.pp .pp-hero{margin-bottom:14px}.pp .pp-subnav{margin:10px 0 0}.pp .pp-btn{--btn-bg:linear-gradient(135deg,#5b7cfa,#6b4efc 45%,#4c79ff);--btn-text:#fff;--btn-shadow:0 8px 18px #4c79ff59;--btn-border:#0000;background:var(--btn-bg);border:1px solid var(--btn-border);border-radius:999px;box-shadow:var(--btn-shadow);color:var(--btn-text);display:inline-flex;font-size:14px;font-weight:800;letter-spacing:.2px;line-height:1;padding:10px 16px;transition:transform .12s ease,box-shadow .12s ease,filter .2s ease,background .2s ease;-webkit-user-select:none;user-select:none;white-space:nowrap}.pp .pp-btn:hover{box-shadow:0 10px 22px #4c79ff73}.pp .pp-btn:active{transform:translateY(0)}.pp .pp-btn[disabled]{box-shadow:none;opacity:.55;transform:none}.pp .pp-btn--outline{--btn-bg:linear-gradient(#fff,#fff);--btn-text:#3b5bdb;--btn-border:#3b5bdb40;--btn-shadow:0 6px 14px #3b5bdb26}.pp .pp-btn--outline:hover{background:linear-gradient(#f9fbff,#fff);border-color:#3b5bdb59;box-shadow:0 10px 20px #3b5bdb33;filter:none}.pp .pp-btn--danger{--btn-bg:linear-gradient(135deg,#ff6b6b,#ff3d69 45%,#ff4d4f);--btn-text:#fff;--btn-shadow:0 8px 18px #ff4d4f59}.pp .pp-btn--danger:hover{box-shadow:0 12px 24px #ff4d4f73;filter:brightness(1.03)}.pp .pp-btn--sm{font-size:.82rem;padding:8px 12px}.pp .pp-btnIcon{border:1px solid #0f172a0f;transition:background .15s ease,box-shadow .15s ease,transform .1s ease}.pp .pp-btnIcon:hover{box-shadow:0 8px 16px #02061714}.pp .pp-btnIcon:disabled{box-shadow:none;transform:none}.pp .pp-search,.pp .pp-sort{border-radius:999px}.pp .pp-pager{flex-wrap:wrap}.pp .pp-pager select{border-radius:999px;padding:6px 10px}.pp .pp-avatar{border-radius:12px}.pp .pp-tiny{padding:4px 10px}.pp .pp-cellJudul{word-wrap:break-word;white-space:normal}.pp .pp-sk{border-radius:10px}.pp .pp-sk--btn{border-radius:999px;width:92px}.pp .pp-close{border-radius:999px;padding:8px 10px}.pp .pp-drawer__actions{flex-wrap:wrap}.pp .pp-kvCard{border-radius:14px}.pp .pp-noteBody{border-radius:12px}.pp .pp-judulItem{border-radius:14px}.pp .pp-iconGhost{border-radius:999px;padding:4px 8px}.pp-banner{border-radius:14px}.pp .pp-modal{border-radius:18px}.pp .pp-uploadBox{border-radius:16px}.note-card{border-radius:18px}.trail-card{border-radius:16px}:focus-visible{border-radius:999px}.pp .pp-hero--compact{border-radius:18px;padding:18px}.pp .pp-heroTitleClamp{font-size:22px;font-weight:900;letter-spacing:.2px;margin:8px 0 0}.pp .pp-heroDesc{margin:6px 0 0;max-width:70ch;opacity:.92}.pf-progressWrap{align-items:flex-end;display:flex;flex-direction:column;gap:8px;justify-content:center;min-width:220px}.pf-progressTrack{background:#ffffff2e;border:1px solid #ffffff38;border-radius:999px;height:10px;overflow:hidden;width:220px}.pf-progressBar{background:linear-gradient(90deg,#ffffffe6,#ffffff8c);border-radius:999px;height:100%}.pf-card{background:#fff;background:var(--pp-card);border:1px solid #e7e9f2;border:1px solid var(--pp-border);border-radius:18px;box-shadow:0 12px 30px #02061714;box-shadow:var(--pp-shadow);margin-top:14px;padding:16px}.pf-alert{border:1px solid #0000000f;border-radius:14px;font-weight:700;margin-bottom:10px;padding:10px 12px}.pf-alert--danger{background:#fef2f2;border-color:#ef444433;color:#991b1b}.pf-alert--info{background:#eff6ff;border-color:#3b82f633;color:#1e3a8a}.pf-form{display:flex;flex-direction:column;gap:12px}.pf-stepHeader{grid-gap:2px 10px;align-items:center;background:color-mix(in srgb,#f6f7fb 88%,#0000);background:color-mix(in srgb,var(--pp-bg) 88%,#0000);border:1px dashed #e7e9f2;border:1px dashed var(--pp-border);border-radius:16px;display:grid;gap:2px 10px;grid-template-columns:34px 1fr;grid-template-rows:auto auto;padding:12px}.pf-stepIndex{align-items:center;background:linear-gradient(135deg,#2563eb,#7c3aed);background:linear-gradient(135deg,var(--pp-accent),var(--pp-accent-2));border-radius:12px;color:#fff;display:flex;font-weight:900;grid-row:1/span 2;height:34px;justify-content:center;width:34px}.pf-stepTitle{font-weight:900;letter-spacing:.2px}.pf-stepHint{color:#64748b;color:var(--pp-muted);font-size:13px;line-height:1.3}.pf-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}@media (max-width:920px){.pf-grid{grid-template-columns:1fr}}.pf-group{display:flex;flex-direction:column;gap:6px}.pf-group label{color:#0f172a;color:var(--pp-text);font-size:13px;font-weight:800}.pf-req{color:#ef4444;margin-left:4px}.pf-group input,.pf-group select,.pf-group textarea{background:#f6f7fb;background:var(--pp-bg);border:1px solid #e7e9f2;border:1px solid var(--pp-border);border-radius:14px;font-size:14px;outline:none;padding:10px 12px;transition:box-shadow .15s ease,border-color .15s ease,background .15s ease}.pf-group textarea{min-height:112px;resize:vertical}.pf-group input:focus,.pf-group select:focus,.pf-group textarea:focus{background:#fff;border-color:#2563eb73;box-shadow:0 0 0 4px #2563eb1f}.pf-muted{color:#64748b;color:var(--pp-muted);font-size:12px}.pf-combo{display:flex;flex-direction:column;gap:8px}.pf-combo__search{background:color-mix(in srgb,#f6f7fb 92%,#0000);background:color-mix(in srgb,var(--pp-bg) 92%,#0000);border-style:dashed}.pf-textareaWrap{position:relative}.pf-counter{background:color-mix(in srgb,#fff 80%,#0000);background:color-mix(in srgb,var(--pp-card) 80%,#0000);border:1px solid #e7e9f2;border:1px solid var(--pp-border);border-radius:999px;bottom:8px;color:#64748b;color:var(--pp-muted);font-size:12px;padding:2px 8px;position:absolute;right:10px}.pf-divider{background:#e7e9f2;background:var(--pp-border);border:0;height:1px;margin:4px 0;opacity:.9}.pf-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;margin-top:6px}.pf-group input:disabled,.pf-group select:disabled,.pf-group textarea:disabled{cursor:not-allowed;opacity:.6}@media (max-width:720px){.pf-progressWrap{align-items:flex-start}.pf-progressTrack{width:180px}}.pp-card--narrow{margin:18px auto 0;max-width:980px}.pp-kvGrid--2{grid-gap:14px;align-items:start;display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width:900px){.pp-kvGrid--2{grid-template-columns:1fr}}.pp-kvCard{min-width:0}.pp-card--narrow .form-control{width:100%}.pp-card--narrow .form-label{align-items:center;display:inline-flex;gap:8px;margin-bottom:8px}.pp-card--narrow .form-control-lg{padding-bottom:10px;padding-top:10px}.pp .pp-badgeHero{font-weight:900}.pp .pp-heroCtas{flex-wrap:wrap}.pp-subnavBar{margin:14px 0 0;overflow-x:auto}.pp-subnavList{display:flex;gap:18px;list-style:none;margin:0;padding:0 6px}.pp-subnavLink{border-radius:999px;color:#64748b;color:var(--pp-muted);display:inline-block;font-size:14px;font-weight:900;padding:10px 12px;text-decoration:none;transition:background .18s ease,color .18s ease}.pp-subnavLink:hover{background:color-mix(in srgb,#fff 70%,#0000);background:color-mix(in srgb,var(--pp-card) 70%,#0000);color:#0f172a;color:var(--pp-text)}.pp-subnavLink.is-active{background:color-mix(in srgb,#2563eb 14%,#fff);background:color-mix(in srgb,var(--pp-accent) 14%,var(--pp-card));color:color-mix(in srgb,#2563eb 80%,#0f172a);color:color-mix(in srgb,var(--pp-accent) 80%,var(--pp-text))}.pp .pp-btn--outline2{background:#0000;border:1px solid #e7e9f2;border:1px solid var(--pp-border);box-shadow:none;color:#0f172a;color:var(--pp-text)}.pp .pp-chip{font-weight:900}.pp .pp-chip.active{background:color-mix(in srgb,#2563eb 10%,#fff);background:color-mix(in srgb,var(--pp-accent) 10%,var(--pp-card));border-color:color-mix(in srgb,#2563eb 40%,#e7e9f2);border-color:color-mix(in srgb,var(--pp-accent) 40%,var(--pp-border))}.pp .pp-selectedHint{font-weight:900}.pp .pp-pager select{color:#0f172a;color:var(--pp-text)}.pp-statusCell{flex-direction:column;gap:6px}.pp-statusControl{display:flex}.pp-select{background:#f6f7fb;background:var(--pp-bg);border:1px solid #e7e9f2;border:1px solid var(--pp-border);border-radius:12px;color:#0f172a;color:var(--pp-text);font-weight:900;max-width:190px;outline:none;padding:8px 10px;width:100%}.pp-select:focus{border-color:color-mix(in srgb,#2563eb 55%,#e7e9f2);border-color:color-mix(in srgb,var(--pp-accent) 55%,var(--pp-border));box-shadow:0 0 0 4px color-mix(in srgb,#2563eb 18%,#0000);box-shadow:0 0 0 4px color-mix(in srgb,var(--pp-accent) 18%,#0000)}.pp-cellActions,.pp-iconBtn{align-items:center;justify-content:center}.pp-iconBtn{background:#f6f7fb;background:var(--pp-bg);border:1px solid #e7e9f2;border:1px solid var(--pp-border);border-radius:12px;color:#0f172a;color:var(--pp-text);cursor:pointer;display:inline-flex;height:38px;transition:transform .08s ease,box-shadow .18s ease,filter .18s ease;width:38px}.pp-iconBtn:hover{box-shadow:0 10px 22px #0206171a;filter:brightness(1.03);transform:translateY(-1px)}.pp-iconBtn:disabled{box-shadow:none;cursor:not-allowed;opacity:.55;transform:none}.pp-iconBtn--danger{background:#fef2f2;border-color:#fecaca;color:#b91c1c}label.pp-iconBtn{-webkit-user-select:none;user-select:none}.pp .pp-drawer{transition:transform .22s ease-in-out}.pp .pp-kvKey{font-weight:800}.pp-iconGhost{align-items:center;background:#f6f7fb;background:var(--pp-bg);border:1px solid #e7e9f2;border:1px solid var(--pp-border);border-radius:10px;cursor:pointer;display:inline-flex;height:34px;justify-content:center;width:34px}.pp-statusLine{align-items:center;display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}.pp-dot{background:color-mix(in srgb,#64748b 40%,#0000);background:color-mix(in srgb,var(--pp-muted) 40%,#0000);border-radius:99px;height:5px;width:5px}.pp-banner__title{font-weight:900}.pp-modalOverlay{align-items:center;background:#02061761;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1300}.pp-modal{background:#fff;background:var(--pp-card);border:1px solid #e7e9f2;border:1px solid var(--pp-border);border-radius:16px;box-shadow:0 18px 40px #0206171f;box-shadow:var(--pp-shadow-2);overflow:hidden;width:min(520px,96vw)}.pp-modalHead{align-items:center;border-bottom:1px solid #e7e9f2;border-bottom:1px solid var(--pp-border);display:flex;justify-content:space-between;padding:12px 14px}.pp-modalBody{padding:14px}.pp-modalActions{border-top:1px solid #e7e9f2;border-top:1px solid var(--pp-border);display:flex;gap:10px;justify-content:flex-end;padding:12px 14px}@media print{.pp .pp-drawerOverlay,.pp .pp-drawer__actions{display:none!important}}:root{--rjs-bg:#0b1020;--rjs-card:#0f172a;--rjs-surface:#111827;--rjs-border:#1f2937;--rjs-text:#e5e7eb;--rjs-muted:#9ca3af;--rjs-primary:#3b82f6;--rjs-primary-weak:#3b82f61f;--rjs-success:#10b981;--rjs-warning:#f59e0b;--rjs-danger:#ef4444;--rjs-info:#06b6d4;--rjs-shadow:0 8px 24px #00000040;--rjs-radius:14px}.rjs{color:#e5e7eb;color:var(--rjs-text)}.rjs a{color:#3b82f6;color:var(--rjs-primary);text-decoration:none}.rjs a:hover{text-decoration:underline}.rjs-hero{background:radial-gradient(900px 300px at 0 -10%,#3b82f659 0,#0000 60%),radial-gradient(700px 260px at 100% 0,#6366f14d 0,#0000 60%),linear-gradient(135deg,#0c1e5b,#2563eb);border-radius:14px;border-radius:var(--rjs-radius);box-shadow:0 8px 24px #00000040;box-shadow:var(--rjs-shadow);color:#fff;margin-bottom:16px;padding:22px 20px;position:relative}.rjs-hero__title{font-size:24px;font-weight:800;margin:0 0 6px}.rjs-hero__sub{margin:0;opacity:.95}.rjs-hero__stats{display:flex;flex-wrap:wrap;gap:12px;margin-top:12px}.rjs-stat{background:#ffffff1a;border:1px solid #ffffff26;border-radius:12px;padding:10px 12px}.rjs-stat b{display:block;font-size:12px;opacity:.85}.rjs-stat span{font-size:18px;font-weight:800}.rjs-toolbar{align-items:center;background:#0f172a;background:var(--rjs-card);border:1px solid #1f2937;border:1px solid var(--rjs-border);border-radius:14px;border-radius:var(--rjs-radius);display:flex;flex-wrap:wrap;gap:10px;margin-bottom:12px;padding:10px}.rjs-spacer{flex:1 1}.rjs-search{align-items:center;display:flex;position:relative}.rjs-search input{background:#111827;background:var(--rjs-surface);border:1px solid #1f2937;border:1px solid var(--rjs-border);border-radius:10px;color:#e5e7eb;color:var(--rjs-text);max-width:100%;outline:none;padding:10px 12px 10px 36px;width:260px}.rjs-search input::placeholder{color:#9ca3af;color:var(--rjs-muted)}.rjs-search .rjs-icon{left:10px;opacity:.6;position:absolute}.rjs-select{-webkit-appearance:none;appearance:none;border:1px solid #1f2937;border:1px solid var(--rjs-border);border-radius:10px;min-width:120px;padding:10px 12px}.rjs-chip,.rjs-select{background:#111827;background:var(--rjs-surface);color:#e5e7eb;color:var(--rjs-text)}.rjs-chip{border:1px solid #1f2937;border:1px solid var(--rjs-border);border-radius:999px;cursor:pointer;font-size:12px;padding:8px 10px}.rjs-chip.active{border-color:#3b82f6;border-color:var(--rjs-primary);box-shadow:0 0 0 2px #3b82f61f;box-shadow:0 0 0 2px var(--rjs-primary-weak)}.rjs-tableCard{background:#0f172a;background:var(--rjs-card);border:1px solid #1f2937;border:1px solid var(--rjs-border);border-radius:14px;border-radius:var(--rjs-radius);box-shadow:0 8px 24px #00000040;box-shadow:var(--rjs-shadow)}.rjs-tableHead{align-items:center;display:flex;justify-content:space-between;padding:12px 12px 0}.rjs-tableWrap{overflow:auto;padding:6px 12px 12px;width:100%}.rjs-table{border-collapse:initial;border-spacing:0;width:100%}.rjs-table td,.rjs-table th{border-bottom:1px solid #1f2937;border-bottom:1px solid var(--rjs-border);padding:12px;vertical-align:top}.rjs-table thead th{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:linear-gradient(180deg,#111827f5,#111827eb);color:#9ca3af;color:var(--rjs-muted);font-size:12px;letter-spacing:.04em;position:-webkit-sticky;position:sticky;text-transform:uppercase;top:0;z-index:2}.rjs-table tbody tr:hover{background:#ffffff05}.rjs-badge{align-items:center;border:1px solid #0000;border-radius:999px;display:inline-flex;font-size:12px;font-weight:700;gap:6px;padding:6px 10px}.rjs-badge--pending{background:#f59e0b1f;border-color:#f59e0b59;color:#fbbf24}.rjs-badge--revisi{background:#06b6d41f;border-color:#06b6d459;color:#22d3ee}.rjs-badge--diterima{background:#10b9811f;border-color:#10b98159;color:#34d399}.rjs-badge--ditolak{background:#ef44441f;border-color:#ef444459;color:#f87171}.rjs-btn{align-items:center;background:#111827;background:var(--rjs-surface);border:1px solid #1f2937;border:1px solid var(--rjs-border);border-radius:10px;color:#e5e7eb;color:var(--rjs-text);cursor:pointer;display:inline-flex;font-weight:600;gap:8px;padding:8px 12px}.rjs-btn--primary,.rjs-btn:hover{border-color:#3b82f6;border-color:var(--rjs-primary)}.rjs-btn--primary{background:#3b82f6;background:var(--rjs-primary);color:#fff}.rjs-btn--danger{background:#ef4444;background:var(--rjs-danger);border-color:#ef4444;border-color:var(--rjs-danger);color:#fff}.rjs-btn--outline{background:#0000}.rjs-btn--sm{border-radius:8px;font-size:12px;padding:6px 10px}.rjs-btnIcon{align-items:center;background:#111827;background:var(--rjs-surface);border:1px solid #1f2937;border:1px solid var(--rjs-border);border-radius:10px;color:#e5e7eb;color:var(--rjs-text);display:inline-flex;height:36px;justify-content:center;width:36px}.rjs-btnIcon:hover{border-color:#3b82f6;border-color:var(--rjs-primary)}.rjs-pager{align-items:center;display:flex;gap:8px}.rjs-muted{color:#9ca3af;color:var(--rjs-muted)}.rjs-uploadBox{align-items:center;background:#111827;background:var(--rjs-surface);border:1px dashed #1f2937;border:1px dashed var(--rjs-border);gap:8px;padding:10px}.rjs-alert,.rjs-uploadBox{border-radius:12px;display:flex}.rjs-alert{align-items:flex-start;border:1px solid;gap:10px;margin-bottom:12px;padding:10px 12px}.rjs-alert--info{background:#3b82f614;border-color:#3b82f659;color:#bfdbfe}.rjs-alert--success{background:#10b98114;border-color:#10b98159;color:#bbf7d0}.rjs-alert--warning{background:#f59e0b14;border-color:#f59e0b59;color:#fde68a}.rjs-alert--danger{background:#ef444414;border-color:#ef444459;color:#fecaca}.rjs-modalOverlay{-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);background:#00000080;display:none;inset:0;position:fixed;z-index:60}.rjs-modalOverlay.show{display:block}.rjs-modal{background:#0f172a;background:var(--rjs-card);border:1px solid #1f2937;border:1px solid var(--rjs-border);border-radius:16px;box-shadow:0 8px 24px #00000040;box-shadow:var(--rjs-shadow);left:50%;max-width:92vw;min-width:320px;padding:16px;position:fixed;top:50%;transform:translate(-50%,-50%);z-index:61}.rjs-modal__head{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.rjs-modal__actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}.rjs-skel{animation:rjsShine 1.4s infinite;background:linear-gradient(90deg,#ffffff0f,#ffffff24,#ffffff0f);background-size:200% 100%;border-radius:8px;height:12px}.rjs-skel--wide{width:100%}.rjs-skel--text{width:60%}@keyframes rjsShine{0%{background-position:200% 0}to{background-position:-200% 0}}.rjs-empty{color:#9ca3af;color:var(--rjs-muted);padding:28px;text-align:center}.rjs-empty svg{opacity:.2}.rjs-pill{background:#111827;background:var(--rjs-surface);gap:8px}.rjs-datePill,.rjs-pill{align-items:center;border:1px solid #1f2937;border:1px solid var(--rjs-border);border-radius:999px;display:inline-flex;padding:6px 10px}.rjs-datePill{color:#9ca3af;color:var(--rjs-muted);gap:6px}.rjs-titleClamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.rjs-btn:focus,.rjs-btnIcon:focus,.rjs-search input:focus,.rjs-select:focus{border-color:#3b82f6;border-color:var(--rjs-primary);box-shadow:0 0 0 3px #3b82f61f;box-shadow:0 0 0 3px var(--rjs-primary-weak);outline:none}@media (max-width:1024px){.rjs-hero{padding:18px}}@media (max-width:780px){.rjs-tableWrap{padding:4px 8px 10px}.rjs-search input{width:100%}.rjs-table td,.rjs-table th{padding:10px}}@media (max-width:520px){.rjs-toolbar{gap:8px}.rjs-btn{padding:7px 10px}.rjs-btnIcon{height:34px;width:34px}}@media print{.rjs-alert,.rjs-btn,.rjs-btnIcon,.rjs-chip,.rjs-hero,.rjs-toolbar{display:none!important}.rjs-tableCard{border:none;box-shadow:none}.rjs-table td,.rjs-table th{border-color:#ddd;color:#111}body{background:#fff;color:#111}}.pp .pp-cellActions{gap:6px}.pp .pp-btnIcon{background:#eff6ff;border-radius:10px;color:#1d4ed8;transition:transform .08s ease,filter .2s,box-shadow .15s}.pp .pp-btnIcon--danger{background:#fef2f2;border-color:#fee2e2;color:#b91c1c}.pp .pp-label--md{display:none;font-weight:800;margin-left:6px}@media (min-width:640px){.pp .pp-label--md{display:inline}}.pp-btnIcon{align-items:center;background:#f7f8fc;border:1px solid #0f172a0f;border-radius:999px;box-shadow:0 4px 10px #0206170f;color:#334155;cursor:pointer;display:inline-flex;gap:6px;padding:8px 10px;transition:background .15s ease,box-shadow .15s ease,transform .1s ease}.pp-btnIcon:hover{background:#eef2ff;box-shadow:0 8px 16px #02061714;transform:translateY(-1px)}.pp-btnIcon--danger{background:#fff1f0;border-color:#ffd6d6;color:#b42318}.pp-btnIcon--danger:hover{background:#ffe5e5}.pp-label--md{font-size:13px;font-weight:600}.pp-cellActions{display:flex;flex-wrap:wrap;gap:8px}.pp-cellJudul{word-wrap:break-word;max-width:380px;white-space:normal}.pp-toast{border-radius:14px}@media (max-width:900px){.pp-cellJudul{max-width:260px}}.pp-card form{margin:0 auto;max-width:720px}.pp-card fieldset{background:#fff;border:1px solid #e5e7eb;border-radius:10px;margin:0;padding:16px 18px 18px}.pp-card fieldset+fieldset{margin-top:16px}.pp-card legend{color:#111827;font-size:14px;font-weight:600;padding:0 8px}.pp-formRow{display:flex;flex-direction:column;gap:4px;margin-top:4px}.pp-label{color:#111827;font-size:14px;font-weight:600}.pp-help{color:#6b7280;font-size:12px}.pp-card input[type=file]{background-color:#f9fafb;border:1px solid #d1d5db;border-radius:8px;cursor:pointer;display:block;font-size:13px;padding:7px 10px;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease;width:100%}.pp-card input[type=file]:hover{background-color:#f3f4f6;border-color:#9ca3af}.pp-card input[type=file]:focus{background-color:#f9fafb;border-color:#2563eb;box-shadow:0 0 0 1px #2563eb40;outline:none}.pp-card input[type=file]:disabled{cursor:not-allowed;opacity:.7}.pp-card .pp-formActions{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}.pp .pp-banner{margin-bottom:12px}@media (max-width:768px){.pp-hero{padding:16px 14px}.pp-heroLeft h1{font-size:20px}.pp-card{padding:14px!important}.pp-card form{max-width:100%}.pp-card fieldset{padding:12px 12px 14px}}:root{--pp-font:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Apple Color Emoji","Segoe UI Emoji";--pp-brand:#0c1e5b;--pp-accent:#2563eb;--pp-accent-2:#7c3aed;--pp-ok:#16a34a;--pp-warn:#f59e0b;--pp-info:#0ea5e9;--pp-danger:#ef4444;--pp-text:#0f172a;--pp-muted:#64748b;--pp-bg:#f6f7fb;--pp-card:#fff;--pp-border:#e7e9f2;--pp-radius:16px;--pp-shadow:0 12px 30px #02061714;--pp-shadow-2:0 18px 40px #0206171f;--pp-glass:#ffffffa6;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--pp-text:#e5e7eb;--pp-muted:#9aa6c0;--pp-bg:#0b1020;--pp-card:#0f152b;--pp-border:#1f2a44;--pp-shadow:0 12px 30px #00000059;--pp-shadow-2:0 18px 40px #00000073;--pp-glass:#11182766}}*{box-sizing:border-box}body,html{height:100%}body{background:#f6f7fb;background:var(--pp-bg);color:#0f172a;color:var(--pp-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Apple Color Emoji,Segoe UI Emoji;font-family:var(--pp-font);margin:0}img{height:auto;max-width:100%}button,input,select,textarea{font:inherit}html{scroll-behavior:smooth}.dashboard-container{background:#f6f7fb;background:var(--pp-bg);min-height:100vh}.content{padding:24px}.pp{color:#0f172a;color:var(--pp-text);padding:2px 0}.pp.pp--compact .pp-filter{padding:10px}.pp.pp--compact .pp-btn{padding:8px 12px}.pp.pp--compact .pp-table td{padding:8px 10px}.pp.pp--compact .pp-table thead th{padding:10px 8px}.pp .pp-hero{align-items:stretch;background:radial-gradient(1200px 380px at 0 -20%,#3b82f659 0,#0000 60%),radial-gradient(900px 280px at 100% 0,#7c3aed40 0,#0000 60%),linear-gradient(135deg,#0c1e5b,#2563eb);background:radial-gradient(1200px 380px at 0 -20%,#3b82f659 0,#0000 60%),radial-gradient(900px 280px at 100% 0,#7c3aed40 0,#0000 60%),linear-gradient(135deg,var(--pp-brand),var(--pp-accent));border-radius:22px;box-shadow:0 18px 40px #0206171f;box-shadow:var(--pp-shadow-2);color:#fff;display:flex;gap:18px;justify-content:space-between;overflow:hidden;padding:26px 22px;position:relative}.pp .pp-hero:before{animation:sheen 9s ease-in-out infinite;background:radial-gradient(600px 220px at 60% -10%,#ffffff47,#0000 70%);content:"";filter:blur(6px);inset:-30%;pointer-events:none;position:absolute;transform:rotate(8deg)}@keyframes sheen{0%,to{transform:translateY(0) rotate(8deg)}50%{transform:translateY(8px) rotate(8deg)}}.pp .pp-badgeHero{align-items:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#ffffff1a;border:1px solid #ffffff40;border-radius:999px;display:inline-flex;font-weight:800;gap:8px;padding:6px 12px}.pp .pp-hero h1{font-size:clamp(24px,3.2vw,36px);letter-spacing:.2px;margin:10px 0 2px}.pp .pp-hero p{color:#e7eeff;margin:6px 0 14px;max-width:60ch}.pp .pp-heroCtas{display:flex;gap:12px}.pp .pp-heroLeft{flex:1.15 1}.pp .pp-heroRight{grid-gap:10px;align-content:flex-start;display:grid;flex:.85 1;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:960px){.pp .pp-heroRight{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.pp .pp-heroRight{grid-template-columns:1fr 1fr}}.pp .pp-heroStat{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:linear-gradient(180deg,#ffffff22,#ffffff10);border:1px solid #ffffff3a;border-radius:14px;color:#fff;display:flex;flex-direction:column;gap:6px;padding:12px}.pp .pp-heroStat .pp-name{font-size:19px;font-weight:900}.pp .pp-error{color:#fee2e2}.pp .pp-subnav{border-bottom:1px solid #0000000f;margin:14px 0 0;overflow-x:auto}.pp .pp-subnavList{display:flex;gap:28px;list-style:none;margin:0;padding:0 6px}.pp .pp-subnavLink{color:#8b8e98;display:inline-block;font-size:14px;font-weight:800;padding:12px 2px 14px;position:relative;text-decoration:none;transition:color .2s ease;white-space:nowrap}.pp .pp-subnavLink:hover{color:#5a5f6d}.pp .pp-subnavLink.active{color:#2f6df6}.pp .pp-subnavLink.active:after{background:#2f6df6;border-radius:2px;bottom:-1px;content:"";height:2px;left:0;position:absolute;right:0}.pp .pp-btn{align-items:center;background:#eff6ff;border:1px solid #dbeafe;border-radius:12px;box-shadow:0 8px 20px #3852db14;color:#1d4ed8;cursor:pointer;display:flex;font-weight:900;gap:8px;padding:10px 14px;transition:transform .08s ease,filter .2s,box-shadow .2s}.pp .pp-btn:hover{box-shadow:0 10px 24px #3852db24;filter:brightness(1.03);transform:translateY(-1px)}.pp .pp-btn--add{background:linear-gradient(135deg,#2563eb,#7c3aed);background:linear-gradient(135deg,var(--pp-accent),var(--pp-accent-2));border-color:#0000;box-shadow:0 14px 24px #2563eb47;color:#fff}.pp .pp-btn--outline{background:#ffffff24;border:1px solid #fff6;color:#fff}.pp .pp-btn--danger{background:#fff2f2;border-color:#ffe0e0;color:#b42323}.pp .pp-btn[disabled]{cursor:not-allowed;opacity:.6}.pp .pp-chip{background:#fff;background:var(--pp-card);border:1px solid #e7e9f2;border:1px solid var(--pp-border);border-radius:999px;color:#0f172a;color:var(--pp-text);cursor:pointer;font-weight:800;padding:8px 12px;transition:transform .08s ease,background .2s ease,box-shadow .18s ease}.pp .pp-chip:hover{box-shadow:0 8px 18px #0206170f;transform:translateY(-1px)}.pp .pp-chip.active{background:linear-gradient(180deg,#eef2ff,#e9edff);border-color:#c7d2fe;color:#3730a3}.pp .pp-filter{background:#fff;background:var(--pp-card);border:1px solid #e7e9f2;border:1px solid var(--pp-border);border-radius:16px;border-radius:var(--pp-radius);box-shadow:0 12px 30px #02061714;box-shadow:var(--pp-shadow);flex-wrap:wrap;gap:10px;margin-bottom:14px;padding:12px}.pp .pp-filter,.pp .pp-search{align-items:center;display:flex}.pp .pp-search{background:#f6f7fb;background:var(--pp-bg);border:1px solid #e7e9f2;border:1px solid var(--pp-border);border-radius:12px;flex:1 1;gap:8px;min-width:280px;padding:10px 12px}.pp .pp-search input{background:#0000;border:none;color:#0f172a;color:var(--pp-text);outline:none;width:100%}.pp .pp-rightSpacer{flex:1 1}.pp .pp-sort{align-items:center;background:#f6f7fb;background:var(--pp-bg);border:1px solid #e7e9f2;border:1px solid var(--pp-border);border-radius:10px;display:flex;gap:8px;padding:8px 10px}.pp .pp-sort select{background:#0000;border:none;color:#0f172a;color:var(--pp-text);outline:none}.pp .pp-tableCard{background:#fff;background:var(--pp-card);border:1px solid #e7e9f2;border:1px solid var(--pp-border);border-radius:16px;border-radius:var(--pp-radius);box-shadow:0 12px 30px #02061714;box-shadow:var(--pp-shadow);overflow:hidden}.pp .pp-tableHead{align-items:center;border-bottom:1px solid #e7e9f2;border-bottom:1px solid var(--pp-border);display:flex;justify-content:space-between;padding:12px 14px}.pp .pp-tableTitle{align-items:center;display:flex;gap:12px}.pp .pp-selectedHint{background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;color:#3730a3;font-weight:800;padding:4px 8px}.pp .pp-muted{color:#64748b;color:var(--pp-muted)}.pp .pp-pager{align-items:center;display:flex;gap:8px}.pp .pp-pager select{background:#f6f7fb;background:var(--pp-bg);border:1px solid #e7e9f2;border:1px solid var(--pp-border);border-radius:10px;padding:6px 8px}.pp .pp-table{border-collapse:collapse;width:100%}.pp .pp-table thead th{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:color-mix(in srgb,#fff 92%,#f6f7fb);background:color-mix(in srgb,var(--pp-card) 92%,var(--pp-bg));border-bottom:1px solid #e7e9f2;border-bottom:1px solid var(--pp-border);color:#64748b;color:var(--pp-muted);font-size:.78rem;letter-spacing:.4px;padding:12px 10px;position:-webkit-sticky;position:sticky;text-transform:uppercase;top:0;z-index:1}.pp .pp-table tbody tr{transition:background .15s ease}.pp .pp-table tbody tr:hover{background:color-mix(in srgb,#f6f7fb 90%,#0000);background:color-mix(in srgb,var(--pp-bg) 90%,#0000)}.pp .pp-table td{border-bottom:1px dashed color-mix(in srgb,#e7e9f2 80%,#0000);border-bottom:1px dashed color-mix(in srgb,var(--pp-border) 80%,#0000);padding:12px 10px}.pp .pp-cellName{align-items:center;display:flex;gap:10px}.pp .pp-avatar{align-items:center;background:linear-gradient(135deg,#a78bfa,#60a5fa);border-radius:10px;color:#fff;display:flex;font-weight:900;height:36px;justify-content:center;width:36px}.pp .pp-name{font-weight:900;letter-spacing:.2px}.pp .pp-tiny{background:#f6f7fb;background:var(--pp-bg);border:1px solid #e7e9f2;border:1px solid var(--pp-border);border-radius:999px;color:#64748b;color:var(--pp-muted);display:inline-block;font-size:.82rem;padding:4px 8px}.pp .pp-cellJudul{max-width:520px}.pp .pp-cellJudul p{margin:0 0 6px}.pp .pp-cellActions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.pp .pp-btnIcon{align-items:center;background:#f7f8fc;border:1px solid #dbeafe;border-radius:999px;box-shadow:0 4px 10px #0206170f;color:#334155;cursor:pointer;display:inline-flex;gap:6px;padding:8px 10px;transition:transform .08s ease,filter .2s,box-shadow .15s,background .15s ease}.pp .pp-btnIcon:hover{background:#eef2ff;box-shadow:0 8px 20px #3852db2e;filter:brightness(1.05);transform:translateY(-1px)}.pp .pp-btnIcon:disabled{cursor:not-allowed;opacity:.5}.pp .pp-btnIcon--danger{background:#fff1f0;border-color:#ffd6d6;color:#b42318}.pp .pp-btnIcon--danger:hover{background:#ffe5e5}.pp .pp-pill{align-items:center;border-radius:999px;box-shadow:inset 0 -1px 0 #0000000f;display:inline-flex;font-size:.82rem;font-weight:900;gap:8px;padding:6px 12px}.pp .pp-pill--gray{background:#f1f5f9;border:1px solid #e5e7eb;color:#344254}.pp .pp-pill--warn{background:#fff4db;border:1px solid #f7e0b5;color:#9a5b09}.pp .pp-pill--danger{background:#ffe9ea;border:1px solid #ffc9cf;color:#991b1b}.pp .pp-pill--info{background:#eaf2ff;border:1px solid #cfe0ff;color:#1e3a8a}.pp .pp-pill--primary{background:#eaffe5;border:1px solid #b9f3c4;color:#065f46}.pp-statusCell{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.pp-statusCell select{background:#f6f7fb;background:var(--pp-bg,#f9fafb);border:1px solid #e7e9f2;border:1px solid var(--pp-border,#e5e7eb);border-radius:8px;color:#0f172a;color:var(--pp-text,#111827);font-size:.8rem;padding:4px 8px}.pp .pp-sk{background:#e5e7eb;border-radius:8px;height:14px;overflow:hidden;position:relative}.pp .pp-sk:after{animation:pp-shimmer 1.2s infinite;background:linear-gradient(90deg,#0000,#ffffff59,#0000);content:"";inset:0;position:absolute}.pp .pp-sk--text{height:12px;width:120px}.pp .pp-sk--textWide{height:12px;width:200px}.pp .pp-sk--textSm{height:10px;width:80px}.pp .pp-sk--pill{border-radius:999px;height:24px;width:100px}.pp .pp-sk--btn{height:32px;width:72px}@keyframes pp-shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.pp .pp-empty{color:#64748b;color:var(--pp-muted);padding:32px 0;text-align:center}.pp .pp-empty h4{color:#0f172a;color:var(--pp-text);margin:10px 0 4px}.pp .pp-drawer{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:color-mix(in srgb,#fff 80%,#ffffffa6);background:color-mix(in srgb,var(--pp-card) 80%,var(--pp-glass));border-left:1px solid #e7e9f2;border-left:1px solid var(--pp-border);box-shadow:0 18px 40px #0206171f;box-shadow:var(--pp-shadow-2);display:flex;flex-direction:column;height:100%;position:fixed;right:0;top:0;transform:translateX(100%);transition:transform .22s ease-in-out,-webkit-backdrop-filter .22s ease-in-out;transition:transform .22s ease-in-out,backdrop-filter .22s ease-in-out;transition:transform .22s ease-in-out,backdrop-filter .22s ease-in-out,-webkit-backdrop-filter .22s ease-in-out;width:min(560px,92vw);z-index:1200}.pp .pp-drawer.open{transform:translateX(0)}.pp .pp-drawerOverlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#02061761;inset:0;opacity:0;pointer-events:none;position:fixed;transition:opacity .18s ease;z-index:1195}.pp .pp-drawerOverlay.show{opacity:1;pointer-events:auto}.pp .pp-drawer__header{align-items:flex-start;border-bottom:1px solid #e7e9f2;border-bottom:1px solid var(--pp-border);display:flex;gap:8px;justify-content:space-between;padding:14px 14px 10px}.pp .pp-drawer__header h2{margin:2px 0 6px}.pp .pp-close{background:#eef2ff;border:1px solid #dbeafe;border-radius:10px;color:#1e40af;cursor:pointer;padding:8px}.pp .pp-drawer__body{flex:1 1;overflow:auto;padding:12px}.pp .pp-drawer__actions{align-items:center;border-top:1px solid #e7e9f2;border-top:1px solid var(--pp-border);display:flex;gap:8px;padding:10px 12px}.pp .pp-kvGrid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:10px}@media (max-width:800px){.pp .pp-kvGrid{grid-template-columns:1fr}}.pp .pp-kvCard{background:linear-gradient(180deg,#f6f7fb,color-mix(in srgb,#f6f7fb 80%,#0000));background:linear-gradient(180deg,var(--pp-bg),color-mix(in srgb,var(--pp-bg) 80%,#0000));border:1px dashed #e7e9f2;border:1px dashed var(--pp-border);border-radius:12px;padding:12px}.pp .pp-kvKey{color:#64748b;color:var(--pp-muted);font-weight:700;margin-bottom:4px}.pp .pp-kvVal{align-items:center;display:flex;font-weight:900;gap:8px}.pp .pp-noteBody{background:#f6f7fb;background:var(--pp-bg);border:1px dashed #e7e9f2;border:1px dashed var(--pp-border);border-radius:10px;padding:10px}.pp .pp-detailBlock{margin-top:16px}.pp .pp-judulList{grid-gap:10px;display:grid;gap:10px}.pp .pp-judulItem{background:#fff;background:var(--pp-card);border:1px solid #e7e9f2;border:1px solid var(--pp-border);border-radius:12px;padding:10px}.pp .pp-judulHead{align-items:center;display:flex;gap:8px;margin-bottom:4px}.pp .pp-badge{align-items:center;background:#e5e7eb;border-radius:999px;color:#111827;display:inline-flex;font-weight:900;height:24px;justify-content:center;width:24px}.pp .pp-iconGhost{background:#0000;border:none;border-radius:8px;color:#64748b;color:var(--pp-muted);cursor:pointer;padding:4px}.pp .pp-iconGhost:hover{background:#f6f7fb;background:var(--pp-bg)}.pp .pp-abstract{margin:0;opacity:.95}.pp-banner{align-items:flex-start;background:#fff;border:1px solid #0000000f;border-radius:12px;box-shadow:0 4px 20px #11182714;display:flex;gap:12px;margin:14px 0;padding:12px 14px}.pp-banner__icon{font-size:18px;margin-top:2px}.pp-banner__title{display:block;margin-bottom:2px}.pp-banner__msg{opacity:.95}.pp-banner__close{background:#0000;border:0;color:#64748b;cursor:pointer;font-size:20px;line-height:1;margin-left:auto}.pp-banner--success{background:#ecfdf5;border-color:#10b98133}.pp-banner--warning{background:#fffbeb;border-color:#f59e0b33}.pp-banner--danger{background:#fef2f2;border-color:#ef444433}.pp-banner--info{background:#eff6ff;border-color:#3b82f633}.pp .pp-modalOverlay{align-items:center;animation:pp-fadeIn .18s ease;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#02061773;display:flex;inset:0;justify-content:center;position:fixed;z-index:1600}.pp .pp-modal{animation:pp-zoomIn .18s ease forwards;background:#fff;background:var(--pp-card);border:1px solid #e7e9f2;border:1px solid var(--pp-border);border-radius:16px;box-shadow:0 12px 30px #02061714;box-shadow:var(--pp-shadow);display:flex;flex-direction:column;max-height:min(86vh,880px);overflow:hidden;transform:translateY(6px) scale(.98);width:min(92vw,720px)}.pp .pp-modalHead{align-items:center;border-bottom:1px solid #e7e9f2;border-bottom:1px solid var(--pp-border);display:flex;gap:10px;justify-content:space-between;padding:12px 14px}.pp .pp-modalBody{overflow:auto;padding:12px 14px}.pp .pp-modalActions{align-items:center;background:color-mix(in srgb,#fff 94%,#f6f7fb);background:color-mix(in srgb,var(--pp-card) 94%,var(--pp-bg));border-top:1px solid #e7e9f2;border-top:1px solid var(--pp-border);display:flex;gap:10px;justify-content:flex-end;padding:10px 14px}.pp .pp-upload{margin-top:10px}.pp .pp-uploadBox{grid-gap:10px;background:#f6f7fb;background:var(--pp-bg);border:2px dashed #e7e9f2;border:2px dashed var(--pp-border);border-radius:14px;color:#64748b;color:var(--pp-muted);cursor:pointer;display:grid;gap:10px;min-height:120px;padding:16px;place-items:center;text-align:center;width:100%}.pp .pp-uploadBox input[type=file]{display:none}.pp .pp-uploadIcon{color:#2563eb;color:var(--pp-accent);font-size:22px}.pp .pp-uploadText b{color:#0f172a;color:var(--pp-text)}@keyframes pp-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes pp-zoomIn{to{transform:translateY(0) scale(1)}}@media (max-width:520px){.pp .pp-modal{max-height:88vh;width:94vw}}body.pp-modal-open{overflow:hidden}.pp .pp-rowChild td{background:color-mix(in srgb,#f6f7fb 92%,#0000);background:color-mix(in srgb,var(--pp-bg) 92%,#0000)}.pp .pp-stairWrap{padding-left:18px;position:relative}.pp .pp-stairWrap.is-child:before{background:linear-gradient(180deg,#e9d5ff,#c7d2fe 30%,#bfdbfe 60%,#fde68a);border-radius:2px;bottom:-12px;content:"";left:8px;opacity:.7;position:absolute;top:-8px;width:2px}.pp .pp-stairElbow{height:12px;margin-bottom:4px;margin-left:-10px;position:relative}.pp .pp-stairElbow:before{border-bottom:2px solid #cbd5e1;border-left:2px solid #cbd5e1;border-radius:0 0 0 6px;content:"";height:12px;left:8px;opacity:.7;position:absolute;top:0;width:14px}.pp .pp-datePill{align-items:center;background:color-mix(in srgb,#f6f7fb 92%,#0000);background:color-mix(in srgb,var(--pp-bg) 92%,#0000);border:1px solid #e7e9f2;border:1px solid var(--pp-border);border-radius:999px;color:#64748b;color:var(--pp-muted);display:inline-flex;font-size:.8rem;gap:6px;padding:6px 10px}.page-student{margin:0 auto;max-width:980px}.head-row{gap:12px;justify-content:space-between;margin:8px 0 16px}.head-row,.note-title{align-items:center;display:flex}.note-title{color:#0f172a;color:var(--pp-text);font-weight:900;gap:10px;letter-spacing:.2px;margin:10px 0 8px}.note-card{background:linear-gradient(180deg,color-mix(in srgb,#fff 95%,#0000),#fff);background:linear-gradient(180deg,color-mix(in srgb,var(--pp-card) 95%,#0000),var(--pp-card));background-clip:padding-box,border-box;background-image:linear-gradient(#fff,#fff),linear-gradient(135deg,#7c3aed59,#3b82f659);background-image:linear-gradient(var(--pp-card),var(--pp-card)),linear-gradient(135deg,#7c3aed59,#3b82f659);background-origin:border-box;border:1px solid #0000;border-radius:16px;box-shadow:0 12px 30px #02061714;box-shadow:var(--pp-shadow);padding:14px 16px;position:relative}.note-card:after{background:repeating-linear-gradient(90deg,#f2e9c7 0 6px,#0000 6px 12px);border-radius:8px 8px 0 0;content:"";height:16px;left:18px;opacity:.45;position:absolute;top:-8px;width:86px}.note-pin{background-image:linear-gradient(#fffbed,#fffbed),linear-gradient(135deg,#fde68a66,#60a5fa55)}.note-trail{background-image:linear-gradient(#fff,#fff),linear-gradient(135deg,#60a5fa55,#a78bfa55);background-image:linear-gradient(var(--pp-card),var(--pp-card)),linear-gradient(135deg,#60a5fa55,#a78bfa55)}.note-card--muted{background-image:none;background:linear-gradient(180deg,color-mix(in srgb,#f6f7fb 94%,#0000),color-mix(in srgb,#f6f7fb 98%,#0000));background:linear-gradient(180deg,color-mix(in srgb,var(--pp-bg) 94%,#0000),color-mix(in srgb,var(--pp-bg) 98%,#0000));border-color:#e7e9f2;border-color:var(--pp-border);border-style:dashed}.note-body{line-height:1.58;padding:6px 2px 2px}.trail-list{list-style:none;margin:0;padding-left:18px;position:relative}.trail-list:before{background:repeating-linear-gradient(#e5e7eb,#e5e7eb 12px,#0000 0,#0000 18px);bottom:8px;content:"";left:5px;position:absolute;top:8px;width:2px}.trail-item{margin:10px 0 14px;position:relative}.trail-dot{background:linear-gradient(135deg,#a78bfa,#60a5fa);border-radius:50%;box-shadow:0 0 0 3px #60a5fa2e;height:10px;left:0;position:absolute;top:12px;width:10px}.trail-card{background:#fff;background:var(--pp-card);border:1px solid #e7e9f2;border:1px solid var(--pp-border);border-radius:14px;box-shadow:0 12px 30px #02061714;box-shadow:var(--pp-shadow);padding:12px 14px}.trail-head{align-items:center;display:flex;gap:10px;margin-bottom:8px}.pp-btn--sm{background:#eff6ff;border:1px solid #dbeafe;border-radius:10px;color:#1d4ed8;font-size:.82rem;padding:8px 12px;transition:transform .08s ease,filter .18s ease,box-shadow .18s ease}.pp-btn--sm:hover{box-shadow:0 8px 20px #3852db2e;filter:brightness(1.03);transform:translateY(-1px)}.note-statusbar{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-bottom:6px}.pp .pp-label--md{font-size:13px;font-weight:600}@media (max-width:640px){.pp .pp-label--md{display:none}}.pp .pp-titleClamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.pp .pp-dot{background:currentColor;border-radius:50%;display:inline-block;height:4px;margin:0 6px;opacity:.35;width:4px}.hidden{display:none!important}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.text-center{text-align:center}.w-full{width:100%}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}@media (max-width:760px){.pp .pp-table{display:block;overflow-x:auto;white-space:nowrap}}@media print{.pp .pp-drawerOverlay,.pp .pp-drawer__actions,.pp .pp-toastWrap{display:none!important}}*{scrollbar-color:color-mix(in srgb,#e7e9f2 80%,#0000) #0000;scrollbar-color:color-mix(in srgb,var(--pp-border) 80%,#0000) #0000;scrollbar-width:thin}::-webkit-scrollbar{height:10px;width:10px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:color-mix(in srgb,#e7e9f2 90%,#0000);background:color-mix(in srgb,var(--pp-border) 90%,#0000);background-clip:content-box;border:2px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,#e7e9f2 70%,#0000);background:color-mix(in srgb,var(--pp-border) 70%,#0000)}:focus-visible{border-radius:8px;outline:3px solid color-mix(in srgb,#2563eb 50%,#0000);outline:3px solid color-mix(in srgb,var(--pp-accent) 50%,#0000);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}[dir=rtl] .pp .pp-stairWrap{padding-left:0;padding-right:18px}[dir=rtl] .pp .pp-stairWrap.is-child:before{left:auto;right:8px}[dir=rtl] .pp .pp-stairElbow{margin-left:0;margin-right:-10px}[dir=rtl] .pp .pp-stairElbow:before{border-bottom:2px solid #cbd5e1;border-left:none;border-radius:0 0 6px 0;border-right:2px solid #cbd5e1;left:auto;right:8px}.pp-btn{--btn-bg:linear-gradient(135deg,#5b7cfa,#6b4efc 45%,#4c79ff);--btn-text:#fff;--btn-shadow:0 8px 18px #4c79ff59;--btn-border:#0000;align-items:center;background:var(--btn-bg);border:1px solid var(--btn-border);border-radius:999px;box-shadow:var(--btn-shadow);color:var(--btn-text);cursor:pointer;display:inline-flex;font-size:14px;font-weight:700;gap:8px;letter-spacing:.2px;line-height:1;padding:10px 16px;transition:transform .12s ease,box-shadow .12s ease,background .2s ease,color .2s ease,border-color .2s ease;-webkit-user-select:none;user-select:none;white-space:nowrap}.pp-btn:hover{box-shadow:0 10px 22px #4c79ff73;filter:brightness(1.03);transform:translateY(-1px)}.pp-btn:active{transform:translateY(0)}.pp-btn:focus-visible{box-shadow:0 0 0 3px #526dff40,var(--btn-shadow);outline:0}.pp-btn--outline{--btn-bg:linear-gradient(#fff,#fff);--btn-text:#3b5bdb;--btn-border:#3b5bdb40;--btn-shadow:0 6px 14px #3b5bdb26;background:var(--btn-bg);color:var(--btn-text)}.pp-btn--outline:hover{background:linear-gradient(#f9fbff,#fff);border-color:#3b5bdb59;box-shadow:0 10px 20px #3b5bdb33}.pp-btn--danger{--btn-bg:linear-gradient(135deg,#ff6b6b,#ff3d69 45%,#ff4d4f);--btn-text:#fff;--btn-shadow:0 8px 18px #ff4d4f59;--btn-border:#0000}.pp-btn--danger:hover{box-shadow:0 12px 24px #ff4d4f73;filter:brightness(1.03)}.pp-btn.is-disabled,.pp-btn[disabled]{box-shadow:none;cursor:not-allowed;filter:grayscale(.15);opacity:.55;transform:none}.pp-tabs{-webkit-overflow-scrolling:touch;align-items:flex-end;background:linear-gradient(#fff,#f8fafc);border-bottom:1px solid #e5e7eb;display:flex;gap:28px;overflow-x:auto;padding:10px 12px 0;scrollbar-width:none}.pp-tabs::-webkit-scrollbar{display:none}.pp-tab{align-items:center;color:#64748b;display:inline-flex;font-weight:600;height:44px;padding:0 6px;position:relative;text-decoration:none;transition:color .15s ease;white-space:nowrap}.pp-tab.is-active,.pp-tab:hover{color:#0f172a}.pp-tab.is-active:after{background:linear-gradient(90deg,#3b82f6,#6366f1);border-radius:3px 3px 0 0;bottom:-1px;content:"";height:3px;left:8px;position:absolute;right:8px}.pp-tab .pp-tabText{line-height:1}.dark .pp-tabs{background:linear-gradient(#0b1220,#0b1220);border-bottom-color:#ffffff14}.dark .pp-tab{color:#94a3b8}.dark .pp-tab.is-active{color:#e2e8f0}.dark .pp-tab.is-active:after{background:linear-gradient(90deg,#60a5fa,#a78bfa)}.dashboard-container{display:flex;font-family:Montserrat,sans-serif;height:100vh}.sidebar{background:#152259;color:#fff;padding:50px 30px;width:220px}.sidebar,.sidebar .logo{display:flex;flex-direction:column}.sidebar .logo{align-items:center;font-size:20px;font-weight:700;gap:8px;margin:20px 0 40px}.sidebar .logo .logo-icon{height:100px;margin-bottom:20px;object-fit:contain;width:100px}.sidebar .menu a{align-items:center;border-radius:8px;color:#cfd8e3;display:flex;font-size:14px;gap:10px;margin:20px 0;padding:10px 12px;text-decoration:none;transition:background .3s,color .3s,transform .2s}.sidebar .menu a.active,.sidebar .menu a:hover{background:#1e3a8a;color:#fff;transform:translateX(5px)}.sidebar .menu a .menu-icon{height:20px;object-fit:contain;width:20px}.content{background:#f7f8fc;display:flex;flex:1 1;flex-direction:column;padding:20px 30px}.topbar{align-items:center;background:#fff;border-radius:10px;box-shadow:0 2px 6px #0000001a;display:flex;font-size:.9rem;justify-content:space-between;margin-bottom:20px;padding:10px 20px;position:relative}.search-bar{border:1px solid #ddd;border-radius:8px;font-size:.85rem;margin-left:50px;padding:6px 10px;width:300px}.user-info{align-items:center;display:flex;gap:10px}.user-info img{border-radius:50%;cursor:pointer;height:40px;object-fit:cover;width:40px}.profile-popup{background:#fff;border-radius:12px;box-shadow:0 6px 18px #00000026;padding:15px;position:absolute;right:30px;top:70px;width:250px;z-index:100}.profile-header{align-items:center;border-bottom:1px solid #eee;display:flex;gap:12px;margin-bottom:10px;padding-bottom:10px}.popup-avatar{border-radius:50%;height:45px;object-fit:cover;width:45px}.profile-info strong{color:#333;font-size:14px}.profile-info p{color:#666;font-size:12px;margin:2px 0 0}.popup-actions{display:flex;justify-content:flex-start;margin-top:10px}.logout-btn{color:#d32f2f;font-size:14px;font-weight:500;text-decoration:none;transition:.3s}.logout-btn:hover{color:#a10000}.hero{align-items:center;background:#152259;border-radius:16px;box-shadow:0 6px 20px #0000004d;color:#fff;display:flex;justify-content:space-between;margin-bottom:20px;padding:40px}.hero h1{font-size:30px;margin-bottom:30px;margin-top:-10px}.alert{align-items:flex-start;background:#fff;border-radius:15px;box-shadow:0 4px 12px #00000026;color:#000;display:flex;gap:20px;padding:20px 80px}.alert-icon{font-size:22px;margin-left:-50px}.alert-content strong{color:#d32f2f;display:block;font-size:15px;margin-bottom:5px}.alert-content p{font-size:13px;margin-bottom:20px}.alert-actions{display:flex;font-size:13px;gap:15px}.alert-actions a{color:#007bff;text-decoration:none}.alert-actions button{background:none;border:none;color:#555;cursor:pointer}.hero-image img{height:auto;margin-right:80px;width:450px}.tabs{display:flex;gap:15px;margin-bottom:15px}.tabs button{background:#e5e7eb;border:none;border-radius:8px;cursor:pointer;font-weight:500;padding:10px 20px;transition:background .2s,transform .1s}.tabs button:hover{transform:translateY(-1px)}.tabs button.active{background:#007bff;color:#fff}.card{background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a;padding:20px}.placeholder{color:#6b7280;font-size:14px;padding:8px 2px}.timeline.pretty{width:100%}.tl-legend{align-items:center;color:#6b7280;display:flex;flex-wrap:wrap;font-size:12px;gap:14px;margin-bottom:14px}.legend-item{align-items:center;display:inline-flex;gap:6px}.dot{border-radius:50%;display:inline-block;height:10px;width:10px}.ring{border:1px solid #0000000d;box-shadow:0 0 0 3px #0000000d}.legend-text{white-space:nowrap}.gantt.fancy{position:relative;width:100%}.gantt-grid{border-bottom:1px solid #e5e7eb;display:grid;grid-template-columns:repeat(9,1fr);margin-left:160px;position:relative}.gantt-col{background-image:linear-gradient(180deg,#fff0,#00000005);border-left:1px dashed #e5e7eb;height:34px;position:relative}.gantt-col:first-child{border-left:none}.gantt-month{color:#94a3b8;font-size:11px;left:8px;position:absolute;top:7px}.today-line{background:linear-gradient(180deg,#60a5fa,#3b82f6);bottom:-8px;box-shadow:0 0 10px #3b82f680;position:absolute;top:0;transform:translateX(-1px);width:2px}.today-chip{background:#3b82f6;border-radius:999px;box-shadow:0 2px 6px #00000026;color:#fff;font-size:10px;left:6px;padding:2px 6px;position:absolute;top:-16px}.gantt-row,.gantt-rows{position:relative}.gantt-row{align-items:center;border-bottom:1px solid #f1f5f9;display:flex;height:46px}.gantt-label{color:#374151;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:160px}.gantt-track{background:#0000;flex:1 1;height:14px;position:relative}.gantt-bar{border-radius:9px;height:18px;overflow:visible;position:absolute;top:-2px}.gantt-bar:after{background:linear-gradient(120deg,#0000,#ffffff59 40%,#0000 80%);content:"";inset:0;opacity:0;pointer-events:none;position:absolute;transform:translateX(-120%)}.gantt-bar.anim{animation:slideIn .6s cubic-bezier(.22,1,.36,1) both}.gantt-bar.anim:after{animation:shimmer 1.4s ease-in-out .4s 2}.gantt-bar:hover{box-shadow:0 8px 18px #0000001f;filter:brightness(1.02);transform:translateY(-1px);transition:box-shadow .25s,transform .25s,filter .25s}.bar-glow{border-radius:9px;box-shadow:0 8px 20px #0000001f,inset 0 0 8px #ffffff26;inset:0;opacity:.25}.bar-glow,.bar-tooltip{pointer-events:none;position:absolute}.bar-tooltip{background:#111827;border-radius:8px;box-shadow:0 6px 18px #0000002e;color:#fff;font-size:11px;left:50%;line-height:1.2;opacity:0;padding:6px 10px;top:-40px;transform:translateX(-50%) scale(.95);transition:opacity .2s,transform .2s;white-space:nowrap}.bar-tooltip strong{display:block;font-weight:700;margin-bottom:2px}.gantt-bar:hover .bar-tooltip{opacity:1;transform:translateX(-50%) scale(1)}.bar-tooltip:after{background:#111827;border-radius:1px;bottom:-5px;content:"";height:8px;left:50%;position:absolute;rotate:45deg;transform:translateX(-50%);width:8px}@keyframes slideIn{0%{opacity:0;transform:translateY(6px) scaleX(.7)}to{opacity:1;transform:translateY(0) scaleX(1)}}@keyframes shimmer{0%{opacity:0;transform:translateX(-120%)}20%{opacity:.45}to{opacity:0;transform:translateX(120%)}}@media (max-width:900px){.gantt-grid{margin-left:120px}.gantt-label{width:120px}.gantt-month{font-size:10px}}.topbar-left-title h2{color:#111827;font-size:18px;font-weight:600;margin:0}.admin-page{margin-top:10px}.staf-card{background:#fff;border-radius:16px;box-shadow:0 4px 14px #0f172a0f;padding:20px 24px}.staf-toolbar{align-items:center;display:flex;justify-content:space-between;margin-bottom:18px}.staf-search-wrap{position:relative;width:260px}.staf-search-icon{font-size:14px;left:12px;opacity:.6;position:absolute;top:50%;transform:translateY(-50%)}.staf-search-input{background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px;font-size:13px;outline:none;padding:8px 12px 8px 34px;width:100%}.staf-search-input:focus{background:#fff;border-color:#3b82f6}.staf-add-btn{align-items:center;background:#3b82f6;border:none;border-radius:10px;box-shadow:0 4px 10px #3b82f659;color:#fff;cursor:pointer;display:inline-flex;font-size:13px;font-weight:600;gap:6px;padding:8px 18px}.staf-add-btn:hover{filter:brightness(1.05)}.staf-alert-error{background:#fee2e2;color:#991b1b}.staf-alert-error,.staf-alert-success{border-radius:8px;font-size:13px;margin-bottom:10px;padding:8px 10px}.staf-alert-success{background:#dcfce7;color:#166534}.staf-table-wrapper{overflow-x:auto;width:100%}.staf-table{border-collapse:collapse;font-size:13px;width:100%}.staf-table thead th{background:#f9fafb;border-bottom:1px solid #e5e7eb;color:#6b7280;font-weight:600;padding:10px 8px;text-align:left}.staf-table tbody td{border-bottom:1px solid #f3f4f6;color:#111827;padding:10px 8px}.staf-table tbody tr:hover{background:#f9fafb}.staf-table .col-actions{text-align:right;white-space:nowrap}.staf-action-btn{align-items:center;background:#f3f4f6;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-size:14px;height:32px;justify-content:center;margin-left:6px;transition:background .2s,transform .1s;width:32px}.staf-action-btn:hover{background:#e5e7eb;transform:translateY(-1px)}.staf-modal-backdrop{align-items:center;background:#0f172a59;display:flex;inset:0;justify-content:center;position:fixed;z-index:300}.staf-modal{background:#fff;border-radius:16px;box-shadow:0 25px 50px #0f172a66;max-width:95%;padding:18px 20px 16px;width:720px}.staf-modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.staf-modal-header h3{font-size:16px;font-weight:600}.staf-modal-close{background:#0000;border:none;cursor:pointer;font-size:18px}.staf-modal-body{margin-top:4px}.staf-modal-grid{grid-gap:12px 16px;display:grid;gap:12px 16px;grid-template-columns:repeat(2,minmax(0,1fr))}.staf-modal-body .form-group{display:flex;flex-direction:column;gap:4px}.staf-modal-body label{color:#4b5563;font-size:12px}.staf-modal-body label span{color:#9ca3af;font-size:11px;font-weight:400;margin-left:4px}.staf-modal-body input,.staf-modal-body select{border:1px solid #e5e7eb;border-radius:8px;font-size:13px;outline:none;padding:7px 10px}.staf-modal-body input:focus,.staf-modal-body select:focus{border-color:#3b82f6}.staf-modal-footer{display:flex;gap:8px;justify-content:flex-end;margin-top:18px}.staf-modal-footer .btn-primary,.staf-modal-footer .btn-secondary{border:none;border-radius:999px;cursor:pointer;font-size:13px;padding:8px 18px}.staf-modal-footer .btn-secondary{background:#e5e7eb;color:#111827}.staf-modal-footer .btn-primary{background:#3b82f6;color:#fff}@media (max-width:768px){.staf-modal-grid{grid-template-columns:1fr}}