:root{--bg:#f4f7fb;--surface:#fff;--line:#e5eaf1;--text:#172033;--muted:#68758a;--primary:#2563eb;--primary-dark:#1d4ed8;--nav:#0f172a;--nav-soft:#17223a;--success:#0f8a57;--success-bg:#ecfdf5;--danger:#b42318;--danger-bg:#fef3f2;--shadow:0 10px 30px rgba(15,23,42,.06);--radius:16px}
*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body{margin:0;background:var(--bg);color:var(--text);font-size:14px}a{color:inherit;text-decoration:none}button,input{font:inherit}
.app-shell{display:flex;min-height:100vh}.sidebar{width:250px;background:var(--nav);color:#d7deea;display:flex;flex-direction:column;position:fixed;inset:0 auto 0 0;z-index:20}.brand{display:flex;align-items:center;gap:12px;padding:24px 20px 22px}.brand-mark{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);display:grid;place-items:center;color:#fff;font-weight:800;letter-spacing:-.04em}.brand-mark.large{width:50px;height:50px;border-radius:14px;font-size:16px}.brand-name{font-weight:800;letter-spacing:.02em;font-size:16px}.brand-sub{font-size:11px;color:#8995a9;margin-top:2px}.side-section{font-size:10px;letter-spacing:.12em;color:#778399;font-weight:700;padding:8px 20px 10px}.nav-menu{padding:0 12px}.nav-item{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:10px;color:#b8c3d4;margin-bottom:4px}.nav-item:hover{background:var(--nav-soft);color:#fff}.nav-item.active{background:#1e3a8a;color:#fff}.nav-icon{width:22px;height:22px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.12);border-radius:6px;font-size:11px;font-weight:700}.sidebar-bottom{margin-top:auto;padding:16px}.side-note{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);padding:13px;border-radius:12px;margin-bottom:12px}.side-note strong,.side-note span{display:block}.side-note strong{font-size:12px}.side-note span{font-size:10px;line-height:1.5;color:#8c98aa;margin-top:4px}.logout-item{color:#aeb9ca}
.main-wrap{margin-left:250px;min-width:0;flex:1}.topbar{height:78px;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 30px;gap:18px;position:sticky;top:0;z-index:10}.topbar-title{font-weight:750}.topbar-subtitle{color:var(--muted);font-size:12px;margin-top:3px}.topbar-user{margin-left:auto;display:flex;align-items:center;gap:9px}.avatar{width:36px;height:36px;border-radius:50%;background:#e0e7ff;color:#3730a3;display:grid;place-items:center;font-weight:800}.topbar-user-text{display:flex;flex-direction:column;gap:2px}.topbar-user-text strong{font-size:12px}.topbar-user-text span{font-size:10px;color:var(--muted)}.logout-mini{font-size:12px;color:var(--muted);margin-left:10px}.menu-toggle{display:none;border:0;background:transparent;font-size:22px;color:var(--text)}
.content{padding:28px 30px 18px;max-width:1500px;margin:0 auto}.page-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.page-head h1{margin:0;font-size:24px;letter-spacing:-.025em}.page-head p{margin:5px 0 0;color:var(--muted)}.period-chip{border:1px solid var(--line);background:#fff;border-radius:999px;padding:8px 13px;font-weight:700;font-size:12px;color:#334155}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;display:flex;gap:14px;align-items:flex-start}.stat-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-weight:800}.icon-blue{background:#eff6ff;color:#2563eb}.icon-indigo{background:#eef2ff;color:#4f46e5}.icon-amber{background:#fffbeb;color:#b45309}.icon-green{background:#ecfdf5;color:#047857}.stat-card span,.stat-card small{display:block;color:var(--muted)}.stat-card strong{display:block;font-size:24px;margin:3px 0 1px}.stat-card small{font-size:11px}.grid-2{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:18px;overflow:hidden}.panel-head{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-start}.panel-head h2{font-size:15px;margin:0}.panel-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.panel-head a{color:var(--primary);font-size:12px;font-weight:700}.schedule-list,.activity-list{padding:5px 20px}.schedule-row{display:flex;align-items:center;gap:13px;padding:13px 0;border-bottom:1px solid #eef1f5}.schedule-row:last-child,.activity-row:last-child{border-bottom:0}.date-box{width:48px;height:52px;border-radius:11px;background:#eff6ff;color:#1d4ed8;display:flex;flex-direction:column;justify-content:center;align-items:center;flex:0 0 auto}.date-box strong{font-size:17px;line-height:1}.date-box span{font-size:9px;margin-top:3px;font-weight:800}.schedule-main{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px}.schedule-main strong{font-size:12px}.schedule-main span,.schedule-main small{color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.badge{font-size:9px;padding:5px 8px;border-radius:999px;font-weight:800}.badge-blue{background:#eff6ff;color:#1d4ed8}.activity-row{display:flex;gap:11px;align-items:flex-start;padding:13px 0;border-bottom:1px solid #eef1f5}.activity-dot{margin-top:5px;width:8px;height:8px;background:#3b82f6;border-radius:50%;flex:0 0 auto}.activity-row div:nth-child(2){min-width:0;flex:1}.activity-row strong,.activity-row span{display:block;font-size:11px}.activity-row span{color:var(--muted);margin-top:3px}.activity-row time{font-size:10px;color:#8b97a8}.empty{padding:28px 20px;text-align:center;color:var(--muted);font-size:12px}.progress-panel{padding-bottom:20px}.stepper{display:flex;align-items:center;padding:20px;gap:8px;overflow:auto}.step{display:flex;align-items:center;gap:8px;white-space:nowrap}.step-number{width:28px;height:28px;border-radius:50%;background:#eef2f7;color:#667085;display:grid;place-items:center;font-size:11px;font-weight:800}.step:first-child .step-number{background:#dbeafe;color:#1d4ed8}.step span{font-size:11px;font-weight:700;color:#526077}.step-line{height:1px;background:#dce3ec;min-width:22px}.footer{padding:0 30px 25px;color:#98a2b3;font-size:10px}
.alert{padding:11px 13px;border-radius:11px;font-size:12px;margin-bottom:14px}.alert-error{background:var(--danger-bg);border:1px solid #fecdca;color:var(--danger)}.alert-success{background:var(--success-bg);border:1px solid #a7f3d0;color:var(--success)}
.login-page{min-height:100vh;background:#eef3f9;display:grid;place-items:center;position:relative;overflow:hidden}.login-background{position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(37,99,235,.14),transparent 30%),radial-gradient(circle at 80% 75%,rgba(15,23,42,.11),transparent 30%)}.login-wrap{width:min(430px,calc(100% - 28px));position:relative;z-index:1}.login-card{background:#fff;border:1px solid rgba(255,255,255,.7);border-radius:22px;box-shadow:0 24px 70px rgba(15,23,42,.12);padding:30px}.login-brand{display:flex;align-items:center;gap:12px}.login-heading{margin:28px 0 20px}.login-heading h1{font-size:25px;letter-spacing:-.03em;margin:0}.login-heading p{color:var(--muted);font-size:12px;margin:7px 0 0}.login-form label{display:block;margin-bottom:15px}.login-form label>span{display:block;font-size:12px;font-weight:700;margin-bottom:7px}.login-form input{width:100%;height:44px;padding:0 13px;border:1px solid #d8e0ea;border-radius:11px;outline:none;background:#fbfcfe;color:var(--text)}.login-form input:focus{border-color:#93b4ff;box-shadow:0 0 0 3px rgba(37,99,235,.09)}.password-wrap{position:relative}.password-wrap input{padding-right:65px}.password-wrap button{position:absolute;right:8px;top:7px;height:30px;border:0;background:#f1f5f9;border-radius:8px;padding:0 9px;color:#64748b;font-size:11px;cursor:pointer}.btn{display:inline-flex;justify-content:center;align-items:center;border:0;border-radius:11px;padding:11px 15px;font-weight:750;cursor:pointer}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-dark)}.btn-block{width:100%;height:45px}.login-footer{text-align:center;color:#98a2b3;font-size:10px;margin-top:22px}.empty-state{background:#fff;border:1px solid var(--line);border-radius:18px;padding:50px;text-align:center;box-shadow:var(--shadow)}.empty-code{font-size:58px;font-weight:900;color:#dbe3ef;letter-spacing:-.05em}.empty-state h1{margin:5px 0}.empty-state p{color:var(--muted);margin-bottom:20px}
@media(max-width:1000px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2{grid-template-columns:1fr}}
@media(max-width:720px){.sidebar{transform:translateX(-100%);transition:transform .2s ease;box-shadow:12px 0 30px rgba(15,23,42,.15)}.sidebar-open .sidebar{transform:translateX(0)}.main-wrap{margin-left:0}.menu-toggle{display:block}.topbar{padding:0 16px;height:68px}.topbar-user-text,.logout-mini{display:none}.content{padding:20px 14px}.footer{padding:0 14px 20px}.stat-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:13px}.stat-card strong{font-size:20px}.page-head{align-items:flex-start}.page-head h1{font-size:21px}.stepper{padding:17px 14px}.panel-head{padding:15px}.schedule-list,.activity-list{padding:5px 15px}.login-card{padding:24px}}
@media(max-width:480px){.stat-grid{grid-template-columns:1fr}.period-chip{display:none}.stat-icon{width:38px;height:38px}.schedule-row{align-items:flex-start;flex-wrap:wrap}.schedule-row .badge{margin-left:61px;margin-top:-7px}.login-card{border-radius:18px}}

/* SIMPKG v1.2 refinements */
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:15}.sidebar-open .sidebar-overlay{display:block}
.topbar .topbar-brand-mobile{display:none}.topbar-user{min-width:0}.topbar-user-text strong,.topbar-user-text span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}
.brand-mark{box-shadow:0 8px 22px rgba(37,99,235,.24)}
.nav-item{transition:background-color .15s ease,color .15s ease,transform .15s ease}.nav-item:active{transform:translateY(1px)}
.btn:focus-visible,.nav-item:focus-visible,.password-wrap button:focus-visible,.menu-toggle:focus-visible{outline:3px solid rgba(37,99,235,.25);outline-offset:2px}
.login-card{position:relative}.login-card::after{content:"";position:absolute;inset:-1px;border-radius:22px;pointer-events:none;box-shadow:inset 0 1px rgba(255,255,255,.7)}
.login-kicker{font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#64748b;margin-bottom:8px}.login-brand .brand-name{font-size:18px}.login-heading h1{font-weight:800}.login-form .btn-primary{box-shadow:0 8px 18px rgba(37,99,235,.18)}
@media(max-width:720px){.sidebar-overlay{display:none}.sidebar-open .sidebar-overlay{display:block}.topbar-user{gap:0}.topbar-user-text strong,.topbar-user-text span{max-width:140px}}

/* Guru module */
.guru-toolbar-head{gap:20px;flex-wrap:wrap}.import-box{margin-left:auto;display:flex;align-items:center;gap:9px;flex-wrap:wrap}.inline-form{display:flex;align-items:center;gap:7px}.file-btn{position:relative;display:inline-flex;align-items:center;height:38px;padding:0 12px;border:1px solid var(--line);background:#fff;border-radius:10px;color:#475569;font-size:12px;font-weight:700;cursor:pointer;overflow:hidden}.file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}.small{font-size:11px}.text-link{color:var(--primary);font-weight:700}.filter-bar{padding:14px 20px;border-bottom:1px solid var(--line);display:flex;gap:9px;align-items:center}.filter-bar .search-wrap{flex:1;min-width:200px}.filter-bar input,.filter-bar select,.form-grid input,.form-grid select{height:40px;border:1px solid #d8e0ea;border-radius:10px;padding:0 12px;outline:none;background:#fbfcfe;color:var(--text);width:100%}.filter-bar input:focus,.filter-bar select:focus,.form-grid input:focus,.form-grid select:focus{border-color:#93b4ff;box-shadow:0 0 0 3px rgba(37,99,235,.09)}.btn-secondary{background:#eef2f7;color:#334155}.btn-secondary:hover{background:#e5eaf1}.btn-ghost{background:#fff;color:#475569;border:1px solid var(--line)}.btn-ghost:hover{background:#f8fafc}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:980px}.data-table th,.data-table td{padding:13px 14px;border-bottom:1px solid #eef1f5;text-align:left;vertical-align:middle}.data-table th{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#718096;background:#fbfcfe;white-space:nowrap}.data-table td{font-size:12px;color:#334155}.data-table td strong,.data-table td small{display:block}.data-table td small{font-size:10px;color:var(--muted);margin-top:3px}.table-empty{padding:45px!important;text-align:center!important;color:var(--muted)!important}.code-pill{display:inline-flex;padding:4px 7px;border-radius:6px;background:#eef2ff;color:#3730a3;font-size:10px;font-weight:800}.muted{color:var(--muted)}.badge-green{background:#ecfdf5;color:#047857}.badge-gray{background:#f1f5f9;color:#64748b}.badge-indigo{background:#eef2ff;color:#4338ca}.actions{white-space:nowrap}.action-link{color:var(--primary);font-weight:700;font-size:11px;margin-right:9px}.pagination{display:flex;gap:6px;padding:15px 20px}.page-link{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#475569;font-size:11px;font-weight:700}.page-link.active{background:var(--primary);border-color:var(--primary);color:#fff}.form-panel{padding:0 22px 22px}.form-section{padding:20px 0 12px;border-bottom:1px solid var(--line);margin-bottom:18px}.form-section h2{margin:0;font-size:15px}.form-section p{margin:4px 0 0;color:var(--muted);font-size:11px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.form-grid label{display:block}.form-grid label>span{display:block;font-size:11px;font-weight:700;margin-bottom:6px}.form-grid label>span b{color:#dc2626}.form-grid .full{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px;padding-top:18px;border-top:1px solid var(--line)}.page-head-actions{display:flex;gap:8px}.detail-grid{align-items:start}.profile-card{text-align:left;padding:24px}.profile-badge{width:64px;height:64px;border-radius:18px;background:#e0e7ff;color:#3730a3;display:grid;place-items:center;font-size:24px;font-weight:900;margin-bottom:16px}.profile-card h2{margin:0;font-size:20px}.profile-card>p{margin:5px 0 20px}.detail-list{display:grid;gap:0;border-top:1px solid var(--line)}.detail-list>div{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid var(--line)}.detail-list span{font-size:11px;color:var(--muted)}.detail-list strong{text-align:right;font-size:11px}.form-panel .btn{min-width:145px}
@media(max-width:720px){.filter-bar{flex-wrap:wrap;padding:12px 14px}.filter-bar .search-wrap{width:100%;min-width:0;flex-basis:100%}.guru-toolbar-head{padding:15px}.import-box{margin-left:0;width:100%}.inline-form{width:100%}.file-btn{flex:1}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.form-panel{padding:0 15px 18px}.page-head-actions{width:100%;justify-content:flex-start}.detail-grid{display:block}.profile-card{margin-bottom:18px}}

/* Asesor & Penugasan */
.assignment-top-grid{align-items:stretch}.mini-list{padding:7px 20px}.mini-row{display:flex;align-items:center;gap:11px;padding:12px 0;border-bottom:1px solid #eef1f5}.mini-row:last-child{border-bottom:0}.person-avatar{width:38px;height:38px;border-radius:11px;background:#eff6ff;color:#2563eb;display:grid;place-items:center;font-weight:800;flex:0 0 auto}.mini-main{min-width:0;flex:1}.mini-main strong,.mini-main span,.mini-meta strong,.mini-meta span{display:block}.mini-main strong{font-size:12px}.mini-main span{font-size:10px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-meta{text-align:right;min-width:65px}.mini-meta strong{font-size:14px}.mini-meta span{font-size:9px;color:var(--muted)}.icon-btn{width:28px;height:28px;border:1px solid var(--line);background:#fff;border-radius:8px;cursor:pointer;font-size:17px;line-height:1}.icon-btn.danger{color:#b42318}.compact-form{padding:18px 20px;display:flex;gap:12px;align-items:flex-end}.compact-form label{flex:1}.compact-form label>span,.assignment-fields label>span{display:block;font-size:11px;font-weight:700;margin-bottom:6px}.compact-form label b,.assignment-fields label b{color:#dc2626}.compact-form select,.assignment-fields input,.assignment-fields select,.compact-filter input,.compact-filter select{height:40px;width:100%;border:1px solid #d8e0ea;border-radius:10px;padding:0 12px;background:#fbfcfe;color:var(--text);outline:none}.compact-form select:focus,.assignment-fields input:focus,.assignment-fields select:focus,.compact-filter input:focus,.compact-filter select:focus{border-color:#93b4ff;box-shadow:0 0 0 3px rgba(37,99,235,.09)}.assignment-form{padding:18px 20px}.assignment-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.assignment-fields .full{grid-column:1/-1}.assignment-actions{padding-top:16px;margin-top:16px}.assignment-head{gap:20px;align-items:center}.compact-filter{display:flex;gap:8px;min-width:min(600px,100%)}.compact-filter input{flex:1;min-width:160px}.assignment-table{min-width:1120px}.table-progress{display:flex;align-items:center;gap:7px;min-width:100px}.table-progress strong{font-size:10px}.table-progress-track{height:7px;background:#edf2f7;border-radius:999px;flex:1;overflow:hidden}.table-progress-track span{display:block;height:100%;background:#3b82f6;border-radius:999px}.danger-link{color:#b42318;background:transparent;border:0;padding:0;cursor:pointer;font-weight:700;font-size:11px}
@media(max-width:900px){.assignment-top-grid{grid-template-columns:1fr}.compact-form{display:block}.compact-form label{display:block;margin-bottom:12px}.assignment-fields{grid-template-columns:1fr 1fr}.assignment-fields .full{grid-column:1/-1}.assignment-head{align-items:flex-start;flex-wrap:wrap}.compact-filter{width:100%;min-width:0}}
@media(max-width:620px){.assignment-fields{grid-template-columns:1fr}.assignment-fields .full{grid-column:auto}.compact-filter{display:grid;grid-template-columns:1fr 1fr}.compact-filter input{grid-column:1/-1;min-width:0}.compact-filter .btn{grid-column:1/-1}.mini-list{padding:7px 14px}.assignment-form{padding:15px}.compact-form{padding:15px}.mini-meta{display:none}}

.inline-delete-form{display:inline;margin:0}.action-danger{border:0;background:none;padding:0;cursor:pointer;font:inherit}.action-danger{color:#c0392b}.action-danger:hover{text-decoration:underline}.btn-danger{background:#c0392b;color:#fff;border:0}.btn-danger:hover{background:#a93226}

/* Penugasan multi-asesi */
.assignment-picker{margin-top:16px;border:1px solid #e4eaf2;border-radius:14px;background:#fbfcfe;overflow:hidden}.picker-head{padding:15px 16px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid #e4eaf2;background:#fff}.picker-head>div:first-child{min-width:0}.picker-head strong{display:block;font-size:13px}.picker-head span{display:block;color:var(--muted);font-size:10px;margin-top:4px}.picker-tools{display:flex;gap:8px;align-items:center;flex:0 0 auto}.picker-tools input{height:38px;min-width:230px;border:1px solid #d8e0ea;border-radius:10px;padding:0 11px;background:#fff;color:var(--text);outline:none}.picker-tools input:focus{border-color:#93b4ff;box-shadow:0 0 0 3px rgba(37,99,235,.09)}.selected-counter{padding:9px 16px;background:#f5f8fc;border-bottom:1px solid #e4eaf2;color:#475467;font-size:11px}.selected-counter strong{color:#2563eb}.asesi-list{max-height:360px;overflow:auto;padding:5px}.asesi-option{display:flex;align-items:center;gap:11px;padding:10px 11px;border-radius:10px;cursor:pointer;transition:background .15s ease}.asesi-option:hover{background:#f1f5f9}.asesi-option input{position:absolute;opacity:0;pointer-events:none}.check-ui{width:19px;height:19px;border:1.5px solid #c7d2e1;border-radius:6px;background:#fff;display:grid;place-items:center;flex:0 0 auto}.asesi-option input:checked + .check-ui{background:#2563eb;border-color:#2563eb}.asesi-option input:checked + .check-ui:after{content:'✓';color:#fff;font-size:12px;font-weight:800}.asesi-person{flex:1;min-width:0}.asesi-person strong{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asesi-person small{display:block;color:var(--muted);font-size:9px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asesi-state{font-size:9px;font-weight:700;padding:5px 8px;border-radius:999px;white-space:nowrap}.asesi-state.available{color:#166534;background:#dcfce7}.asesi-state.locked{color:#9a3412;background:#ffedd5}.asesi-option.is-locked{cursor:not-allowed;opacity:.78}.assignment-extra-fields{margin-top:16px}
@media(max-width:760px){.picker-head{display:block}.picker-tools{margin-top:12px}.picker-tools input{min-width:0;flex:1;width:100%}.picker-tools{width:100%}.picker-tools .btn{white-space:nowrap}.asesi-state{display:none}}

/* Progress PKG */
.progress-filter-form{display:grid;grid-template-columns:minmax(220px,1fr) 180px 160px auto;gap:9px;width:100%;align-items:center}.progress-filter-form select,.progress-filter-form input{height:40px;border:1px solid #d8e0ea;border-radius:10px;padding:0 12px;background:#fbfcfe;color:var(--text);outline:none}.progress-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.progress-cell{min-width:120px}.progress-cell small{display:block;margin-top:4px;color:var(--muted);font-size:10px}.progress-table{min-width:1100px}.progress-hero{padding:22px;display:grid;grid-template-columns:1.4fr .6fr;gap:22px;align-items:center}.progress-identity{display:flex;align-items:center;gap:15px}.progress-identity h2{margin:0;font-size:20px}.progress-identity p{margin:4px 0;color:var(--muted);font-size:12px}.progress-identity span{font-size:11px;color:var(--muted)}.hero-progress{border-left:1px solid var(--line);padding-left:22px}.hero-progress>span,.hero-progress>small{display:block;color:var(--muted);font-size:10px}.hero-progress strong{display:block;font-size:26px;margin:2px 0 8px}.hero-progress-track{height:9px;background:#edf2f7;border-radius:999px;overflow:hidden}.hero-progress-track span{display:block;height:100%;background:#2563eb;border-radius:999px}.progress-timeline{padding:16px 22px 22px}.progress-step{position:relative;display:grid;grid-template-columns:42px 1fr minmax(320px,420px);gap:14px;align-items:start;padding:16px 0;border-bottom:1px solid #eef1f5}.progress-step:last-child{border-bottom:0}.step-index{width:36px;height:36px;border-radius:50%;background:#eef2f7;color:#64748b;display:grid;place-items:center;font-weight:800}.progress-step.is-active .step-index{background:#eff6ff;color:#2563eb}.progress-step.is-done .step-index{background:#dcfce7;color:#15803d}.step-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.step-title strong{font-size:13px}.step-meta{margin-top:5px;color:var(--muted);font-size:10px}.step-note{margin-top:7px;padding:8px 10px;background:#f8fafc;border-radius:8px;color:#475569;font-size:11px}.step-form{display:grid;grid-template-columns:150px 1fr auto;gap:7px}.step-form select,.step-form input{height:36px;border:1px solid #d8e0ea;border-radius:9px;padding:0 10px;background:#fff;color:var(--text);outline:none;min-width:0}.step-form .btn{height:36px;padding:0 12px}.badge-gray{background:#f1f5f9;color:#64748b}
@media(max-width:1050px){.progress-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.progress-hero{grid-template-columns:1fr}.hero-progress{border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:16px}.progress-filter-form{grid-template-columns:1fr 1fr}.progress-filter-form .search-wrap{grid-column:1/-1}.progress-filter-form .btn{grid-column:1/-1}}
@media(max-width:700px){.progress-summary-grid{grid-template-columns:1fr}.progress-filter-form{grid-template-columns:1fr}.progress-filter-form .search-wrap,.progress-filter-form .btn{grid-column:auto}.progress-step{grid-template-columns:34px 1fr}.step-form{grid-column:2;grid-template-columns:1fr}.step-form .btn{width:100%}.progress-hero{padding:17px}.progress-timeline{padding:12px 15px 18px}}

/* Jadwal Observasi */
.schedule-create-panel .schedule-form{padding:18px 20px}.schedule-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.schedule-form-grid .full{grid-column:1/-1}.schedule-form-grid label>span{display:block;font-size:11px;font-weight:700;margin-bottom:6px}.schedule-form-grid label b{color:#dc2626}.schedule-form-grid input,.schedule-form-grid select,.schedule-filter input,.schedule-filter select{height:40px;width:100%;border:1px solid #d8e0ea;border-radius:10px;padding:0 12px;background:#fbfcfe;color:var(--text);outline:none}.schedule-form-grid input:focus,.schedule-form-grid select:focus,.schedule-filter input:focus,.schedule-filter select:focus{border-color:#93b4ff;box-shadow:0 0 0 3px rgba(37,99,235,.09)}.schedule-filter{padding:16px 20px;display:grid;grid-template-columns:minmax(220px,1.4fr) 180px 155px 145px 145px auto;gap:8px}.schedule-layout{display:grid;grid-template-columns:1.15fr .85fr;gap:18px}.schedule-calendar-panel,.schedule-list-panel{min-width:0}.calendar-head{align-items:center}.calendar-nav{display:flex;gap:6px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.calendar-weekday{padding:10px 8px;text-align:center;font-size:10px;font-weight:800;color:var(--muted);background:#f8fafc;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.calendar-day{min-height:116px;padding:7px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}.calendar-day.is-empty{background:#fbfcfe}.calendar-day.is-today{background:#f8fbff}.calendar-day-num{font-size:11px;font-weight:800;color:#667085;margin-bottom:5px}.calendar-day.is-today .calendar-day-num{display:inline-grid;place-items:center;width:24px;height:24px;background:#2563eb;color:#fff;border-radius:50%}.calendar-events{display:grid;gap:4px}.calendar-event{display:block;border-radius:7px;padding:5px 6px;background:#eff6ff;color:#1d4ed8;font-size:9px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event strong{font-size:9px}.calendar-event.status-selesai{background:#ecfdf5;color:#047857}.calendar-event.status-dilaksanakan{background:#fffbeb;color:#a16207}.calendar-event.status-dibatalkan{background:#f1f5f9;color:#64748b;text-decoration:line-through}.calendar-more{font-size:9px;color:var(--muted);padding:2px 5px}.schedule-table-wrap{overflow:auto}.schedule-table{min-width:920px}.schedule-table td small,.schedule-table th small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.badge-amber{background:#fffbeb;color:#a16207}.calendar-head .panel-head{padding:16px 20px}
@media(max-width:1200px){.schedule-filter{grid-template-columns:1fr 1fr 1fr}.schedule-filter input:first-child{grid-column:1/-1}.schedule-filter .btn{grid-column:1/-1}.schedule-layout{grid-template-columns:1fr}.schedule-form-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.schedule-create-panel .schedule-form{padding:15px}.schedule-form-grid{grid-template-columns:1fr}.schedule-form-grid .full{grid-column:auto}.schedule-filter{padding:14px;grid-template-columns:1fr 1fr}.schedule-filter input:first-child{grid-column:1/-1}.schedule-filter .btn{grid-column:1/-1}.calendar-day{min-height:92px;padding:5px}.calendar-day-num{font-size:10px}.calendar-event{padding:4px 5px;font-size:8px}.calendar-event strong{font-size:8px}.calendar-more{font-size:8px}.calendar-nav .btn{padding:8px 10px}.schedule-table{min-width:850px}}


/* SIMPKG v1.8 - Jadwal & Kalender refinement */
.schedule-table{min-width:860px}.schedule-actions{white-space:nowrap}.schedule-actions form{display:inline-block;margin:0 4px 0 0}.delete-link{color:#b91c1c}.calendar-filter-panel{margin-bottom:18px}.calendar-filter{display:grid;grid-template-columns:1.4fr 220px auto;gap:12px;align-items:end;padding:16px 20px}.calendar-filter label span{display:block;font-size:11px;font-weight:700;margin-bottom:6px}.calendar-filter input,.calendar-filter select{height:40px;width:100%;border:1px solid #d8e0ea;border-radius:10px;padding:0 12px;background:#fbfcfe;color:var(--text)}.calendar-main-panel{overflow:hidden}.calendar-grid-large .calendar-day{min-height:138px}.calendar-summary-panel{margin-top:18px}.calendar-agenda-list{padding:0 20px 12px}.calendar-agenda-item{display:grid;grid-template-columns:66px 1fr auto;gap:14px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.calendar-agenda-item:last-child{border-bottom:0}.agenda-date{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:8px 5px}.agenda-date strong{font-size:18px;line-height:1}.agenda-date span{font-size:9px;color:var(--muted);margin-top:4px}.agenda-main{display:flex;flex-direction:column;gap:3px;min-width:0}.agenda-main strong{font-size:13px}.agenda-main span{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:900px){.calendar-filter{grid-template-columns:1fr 1fr}.calendar-filter .btn{grid-column:1/-1}.calendar-grid-large .calendar-day{min-height:110px}}
@media(max-width:700px){.calendar-filter{grid-template-columns:1fr}.calendar-filter .btn{grid-column:auto}.calendar-grid-large .calendar-day{min-height:92px}.calendar-agenda-list{padding:0 14px 10px}.calendar-agenda-item{grid-template-columns:54px 1fr}.calendar-agenda-item .badge{grid-column:2;justify-self:start}.agenda-main strong{font-size:12px}}

/* SIMPKG v1.9 - Bulk scheduling + asesor alerts */
.schedule-bulk-panel{overflow:hidden}.pending-count{display:flex;flex-direction:column;align-items:flex-end}.pending-count strong{font-size:24px;line-height:1}.pending-count span{font-size:10px;color:var(--muted);margin-top:3px}.bulk-schedule-wrap{overflow:auto}.bulk-schedule-table{min-width:980px}.bulk-schedule-table input{height:38px;width:100%;border:1px solid #d8e0ea;border-radius:9px;padding:0 9px;background:#fbfcfe;color:var(--text);min-width:110px;outline:none}.bulk-schedule-table td small{display:block;color:var(--muted);font-size:9px;margin-top:3px}.bulk-schedule-table input:focus{border-color:#93b4ff;box-shadow:0 0 0 3px rgba(37,99,235,.08)}.unit-pill{display:inline-flex;padding:5px 8px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:10px;font-weight:800}.bulk-form-actions{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-top:1px solid var(--line)}.bulk-form-actions>span{font-size:11px;color:var(--muted)}
.notification-wrap{position:relative}.notification-btn{position:relative;width:34px;height:34px;border:1px solid var(--line);background:#fff;border-radius:10px;display:grid;place-items:center;cursor:pointer;color:#64748b}.notification-icon{font-size:12px;color:#94a3b8}.notification-count{position:absolute;top:-5px;right:-5px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:#dc2626;color:#fff;font-size:9px;font-weight:800;display:grid;place-items:center;border:2px solid #fff}.notification-menu{position:absolute;top:44px;right:0;width:350px;max-height:calc(100vh - 78px);background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 40px rgba(15,23,42,.14);display:none;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;z-index:30;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}.notification-open .notification-menu{display:block}.notification-menu-head{padding:14px 16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;align-items:center}.notification-menu-head strong{font-size:12px}.notification-menu-head span{font-size:9px;color:var(--muted)}.notification-empty{padding:22px 16px;color:var(--muted);font-size:11px}.notification-item{display:flex;gap:10px;padding:12px 14px;border-bottom:1px solid #eef2f7;text-decoration:none;color:var(--text);position:relative}.notification-item:last-child{border-bottom:0}.notification-item:hover{background:#f8fafc}.notification-item-dot{width:8px;height:8px;border-radius:50%;background:#cbd5e1;margin-top:5px;flex:0 0 auto}.notification-item>div:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}.notification-item strong{font-size:11px}.notification-item span{font-size:10px;color:#64748b}.notification-item small{font-size:9px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-item.level-soon .notification-item-dot{background:#f59e0b}.notification-item.level-urgent .notification-item-dot{background:#ea580c}.notification-item.level-critical .notification-item-dot{background:#dc2626}.notification-item.level-critical{background:#fff7f7}.advisor-alert-panel{margin-bottom:18px}.advisor-alert-list{padding:0 20px 10px;display:grid;gap:8px}.advisor-alert{display:grid;grid-template-columns:145px 1fr;gap:14px;align-items:center;padding:12px 14px;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--text);background:#fff}.advisor-alert:hover{background:#f8fafc}.advisor-alert-days{display:flex;flex-direction:column;gap:3px}.advisor-alert-days strong{font-size:12px}.advisor-alert-days span{font-size:10px;color:var(--muted)}.advisor-alert-main{display:flex;flex-direction:column;gap:3px}.advisor-alert-main strong{font-size:12px}.advisor-alert-main span{font-size:10px;color:var(--muted)}.advisor-alert.level-soon{border-left:4px solid #f59e0b}.advisor-alert.level-urgent{border-left:4px solid #ea580c;background:#fffaf5}.advisor-alert.level-critical{border-left:4px solid #dc2626;background:#fff5f5}.advisor-alert.level-critical .advisor-alert-days strong{color:#b91c1c}
@media(max-width:700px){.bulk-form-actions{align-items:stretch;flex-direction:column;gap:10px}.bulk-form-actions .btn{width:100%}.pending-count{align-items:flex-start}.notification-menu{position:fixed;top:62px;right:12px;left:12px;width:auto;max-height:calc(100vh - 74px)}.advisor-alert{grid-template-columns:1fr}.advisor-alert-days{flex-direction:row;justify-content:space-between;align-items:center}}

/* SIMPKG v2.1 - Profile & account menu */
.profile-menu-wrap{position:relative}.profile-menu-btn{border:0;background:transparent;padding:4px 4px 4px 6px;border-radius:12px;display:flex;align-items:center;gap:9px;cursor:pointer;color:var(--text)}.profile-menu-btn:hover{background:#f8fafc}.profile-menu-caret{font-size:15px;color:#64748b;line-height:1}.profile-dropdown{display:none;position:absolute;right:0;top:50px;width:250px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 40px rgba(15,23,42,.14);overflow:hidden;z-index:40}.profile-menu-open .profile-dropdown{display:block}.profile-dropdown-head{padding:14px 15px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:3px}.profile-dropdown-head strong{font-size:12px}.profile-dropdown-head span{font-size:10px;color:var(--muted)}.profile-dropdown a{display:block;padding:11px 15px;font-size:12px}.profile-dropdown a:hover{background:#f8fafc}.profile-dropdown a.danger{color:#b42318}.profile-dropdown-divider{height:1px;background:var(--line)}.password-toggle{position:absolute;right:8px;top:7px;height:30px;border:0;background:#f1f5f9;border-radius:8px;padding:0 9px;color:#64748b;font-size:11px;cursor:pointer}.password-wrap .password-toggle{display:block}.password-wrap input{padding-right:65px}.profile-page-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:18px;align-items:start}.profile-security-card{grid-column:1/-1}.profile-account-card{padding:24px}.profile-account-head{display:flex;align-items:center;gap:14px;margin-bottom:20px}.profile-badge.large{width:72px;height:72px;font-size:28px;margin-bottom:0}.profile-account-head h2{margin:0;font-size:20px}.profile-account-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.password-hint{color:var(--muted);font-size:11px;line-height:1.5;margin-top:-4px}.login-form .password-wrap{position:relative}.login-form .password-toggle{display:block}
@media(max-width:720px){.profile-menu-wrap{margin-left:auto}.profile-menu-caret{display:none}.profile-dropdown{position:fixed;top:62px;right:12px;left:12px;width:auto}.profile-page-grid{grid-template-columns:1fr}.profile-security-card{grid-column:auto}.profile-account-card{padding:18px}}

/* v2.2 account menu refinement */
.profile-menu-wrap{position:relative}
.profile-menu-btn{appearance:none;border:1px solid transparent;background:transparent;padding:5px 8px 5px 6px;border-radius:13px;display:flex;align-items:center;gap:10px;cursor:pointer;color:var(--text);min-width:0}
.profile-menu-btn:hover,.profile-menu-btn:focus-visible{background:#f8fafc;border-color:#e6ebf2}
.profile-menu-btn:focus-visible{outline:3px solid rgba(37,99,235,.14);outline-offset:2px}
.profile-menu-caret{font-size:16px;color:#64748b;line-height:1;margin-left:2px;transition:transform .16s ease}
.profile-menu-open .profile-menu-caret{transform:rotate(180deg)}
.profile-dropdown{display:none;position:absolute;right:0;top:calc(100% + 10px);width:280px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 22px 50px rgba(15,23,42,.16);overflow:hidden;z-index:100}
.profile-menu-open .profile-dropdown{display:block}
.profile-dropdown-head{padding:14px 15px;border-bottom:1px solid var(--line);background:#fbfcfe}
.profile-dropdown-person{display:flex;align-items:center;gap:11px}
.profile-dropdown-avatar{width:42px;height:42px;flex:0 0 42px}
.profile-dropdown-head strong{display:block;font-size:13px}
.profile-dropdown-head span{display:block;font-size:11px;color:var(--muted);margin-top:3px}
.profile-dropdown a{display:flex;align-items:center;gap:10px;padding:12px 15px;font-size:12px;color:var(--text);text-decoration:none}
.profile-dropdown a:hover{background:#f8fafc}
.profile-dropdown a.danger{color:#b42318}
.profile-dropdown-divider{height:1px;background:var(--line)}
.menu-icon{width:18px;text-align:center;color:#64748b;font-weight:700}.profile-dropdown a.danger .menu-icon{color:#b42318}
.password-wrap .password-toggle{position:absolute;right:8px;top:7px;height:30px;border:0;background:#eef2f6;border-radius:8px;padding:0 10px;color:#475569;font-size:11px;font-weight:700;cursor:pointer}
.password-wrap .password-toggle:hover{background:#e2e8f0}
@media(max-width:720px){.profile-dropdown{position:fixed;top:62px;right:12px;left:12px;width:auto}.topbar-user{margin-left:auto}.profile-menu-btn{padding-right:3px}.profile-menu-caret{display:none}.profile-dropdown-person{justify-content:flex-start}}
/* v2.2.2: profil langsung dari identitas pengguna di topbar */
.topbar-account-link{display:flex;align-items:center;gap:9px;padding:4px 7px 4px 5px;border-radius:12px;text-decoration:none;color:var(--text)}
.topbar-account-link:hover{background:#f8fafc}


/* v2.3 - role-specific PKG dashboard */
.eyebrow{display:block;font-size:10px;letter-spacing:.12em;color:var(--muted);font-weight:800;margin-bottom:5px}.personal-overview-card{padding:24px}.personal-overview-head{display:flex;justify-content:space-between;gap:20px;align-items:center}.personal-overview-head h2{margin:0;font-size:20px}.personal-overview-head p{margin:5px 0 0;color:var(--muted)}.personal-progress-circle{width:86px;height:86px;border-radius:50%;background:#eff6ff;border:8px solid #dbeafe;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:0 0 86px}.personal-progress-circle strong{font-size:19px;color:var(--primary);line-height:1}.personal-progress-circle span{font-size:9px;color:var(--muted);margin-top:2px}.personal-overview-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:22px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}.personal-overview-meta>div{background:#fff;padding:13px}.personal-overview-meta span{display:block;font-size:10px;color:var(--muted);margin-bottom:4px}.personal-overview-meta strong{font-size:12px}.personal-pkg-panel{margin-top:18px}.pkg-journey{display:flex;flex-direction:column}.pkg-stage{display:grid;grid-template-columns:42px 1fr;gap:14px;padding:18px 20px;border-top:1px solid var(--line)}.pkg-stage:first-child{border-top:0}.pkg-stage-index{width:36px;height:36px;border-radius:50%;background:#eef2f6;color:#64748b;display:grid;place-items:center;font-weight:800}.pkg-stage.is-active .pkg-stage-index{background:#dbeafe;color:#1d4ed8}.pkg-stage.is-done .pkg-stage-index{background:#dcfce7;color:#15803d}.pkg-stage-body{min-width:0}.pkg-stage-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.pkg-stage-top>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pkg-stage-top h3{margin:0;font-size:14px}.pkg-stage-top>a{font-size:11px;color:var(--primary);font-weight:800}.pkg-stage-body p{margin:7px 0 6px;color:var(--muted);font-size:12px;line-height:1.6;max-width:900px}.pkg-stage-meta{font-size:10px;color:var(--muted)}.pkg-stage-note{margin-top:8px;padding:8px 10px;border-radius:8px;background:#f8fafc;border:1px solid var(--line);font-size:10px;color:#475569}.personal-schedule-panel{margin-top:18px}.personal-empty-panel{text-align:center;padding:42px 20px}.personal-empty-panel h2{margin:14px 0 6px}.personal-empty-panel p{max-width:620px;margin:0 auto;color:var(--muted);line-height:1.6}.empty-icon{width:58px;height:58px;border-radius:16px;background:#eff6ff;color:var(--primary);display:grid;place-items:center;font-weight:900;margin:0 auto}.advisor-team-panel{margin-top:18px}.advisor-team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px 20px 20px}.advisor-team-card{border:1px solid var(--line);border-radius:12px;padding:13px;background:#fff;display:flex;flex-direction:column;gap:9px}.advisor-team-card:hover{background:#f8fafc}.advisor-team-card>div:first-child{display:flex;flex-direction:column;gap:3px}.advisor-team-card strong{font-size:12px}.advisor-team-card span,.advisor-team-card small{font-size:10px;color:var(--muted)}.advisor-team-progress{display:flex!important;align-items:center;gap:8px}.advisor-team-progress .table-progress-track{flex:1}.advisor-team-progress strong{font-size:11px;color:var(--text)}
@media(max-width:800px){.personal-overview-meta{grid-template-columns:1fr}.advisor-team-grid{grid-template-columns:1fr}.personal-overview-head{align-items:flex-start}.personal-progress-circle{width:74px;height:74px;flex-basis:74px;border-width:6px}.pkg-stage{padding:16px 14px}.pkg-stage-top{flex-direction:column;gap:6px}}

/* v2.3.1 — mata pelajaran diampu */
.subject-highlight{margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc;display:flex;flex-direction:column;gap:4px}.subject-highlight span{font-size:10px;color:var(--muted);font-weight:700}.subject-highlight strong{font-size:12px;line-height:1.5;white-space:normal}.detail-multiline{line-height:1.55;white-space:normal}.field-help{display:block;margin-top:5px;font-size:10px;color:var(--muted);line-height:1.45}.form-grid textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;color:var(--text);background:#fff;resize:vertical}.form-grid textarea:focus{outline:3px solid rgba(37,99,235,.12);border-color:#93c5fd}
@media(max-width:720px){.subject-highlight{margin-top:10px}.subject-highlight strong{font-size:11px}}

/* v2.3.3 - mapel observasi pada penjadwalan */
.bulk-schedule-table select{min-width:180px;max-width:240px}.bulk-schedule-table select:disabled{color:#94a3b8;background:#f8fafc}.schedule-table td:nth-child(4){max-width:220px}.personal-overview-meta{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:900px){.bulk-schedule-wrap{overflow-x:auto}.bulk-schedule-table{min-width:1100px}}

/* v2.3.5 refinements */
.badge-amber{background:#fff7ed;color:#c2410c}.badge-red{background:#fef2f2;color:#b91c1c}.progress-bulk-form{margin:0}.bulk-progress-actions{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-top:1px solid var(--line);background:#fbfcfe}.bulk-progress-actions>span{font-size:11px;color:var(--muted)}.progress-step.is-deferred .step-index{background:#fef3c7;color:#b45309}.progress-step.is-overdue{background:#fff8f8}.progress-step.is-overdue .step-index{background:#fee2e2;color:#b91c1c}.overdue-badge{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;background:#fee2e2;color:#b91c1c;font-size:9px;font-weight:800}.step-form{display:grid;grid-template-columns:180px minmax(180px,1fr);gap:8px}.step-form select,.step-form input{height:38px;border:1px solid #d8e0ea;border-radius:9px;padding:0 10px;background:#fff;color:var(--text);outline:none;min-width:0}.notification-icon{font-size:17px;line-height:1;color:#475569}.notification-overdue{background:#fff7f7}.notification-overdue .notification-item-dot{background:#dc2626}.notification-question{margin-top:6px;font-size:10px;font-weight:800;color:#991b1b}.notification-actions{display:flex;gap:6px;margin-top:7px}.btn-xs{height:28px!important;padding:0 9px!important;font-size:10px!important;border-radius:8px!important}.btn-success{background:#16a34a;color:#fff}.btn-success:hover{background:#15803d}.btn-warning{background:#f59e0b;color:#fff}.btn-warning:hover{background:#d97706}.mapel-list-compact{display:flex;flex-direction:column;gap:3px}.mapel-list-compact span{display:inline-block;font-size:10px;color:#334155;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:3px 6px;width:max-content;max-width:220px}.mapel-empty{font-size:10px;color:#b45309;font-weight:700}
@media(max-width:700px){.bulk-progress-actions{align-items:stretch;flex-direction:column;gap:10px}.bulk-progress-actions .btn{width:100%}.step-form{grid-template-columns:1fr}.mapel-list-compact span{max-width:180px}}

.calendar-event.status-ditunda{background:#fff7ed;color:#c2410c}

.overdue-dashboard-panel{margin-bottom:18px}.overdue-dashboard-panel .advisor-alert{grid-template-columns:145px 1fr auto}.overdue-dashboard-panel .advisor-alert-main small{font-size:9px;color:#991b1b;margin-top:3px}
@media(max-width:700px){.overdue-dashboard-panel .advisor-alert{grid-template-columns:1fr}.overdue-dashboard-panel .notification-actions{justify-content:flex-start}}

/* Progress color system */
.progress-low .table-progress-track span,.progress-low .hero-progress-track span{background:#dc2626!important}.progress-warning .table-progress-track span,.progress-warning .hero-progress-track span{background:#f59e0b!important}.progress-medium .table-progress-track span,.progress-medium .hero-progress-track span{background:#2563eb!important}.progress-good .table-progress-track span,.progress-good .hero-progress-track span{background:#16a34a!important}.progress-complete .table-progress-track span,.progress-complete .hero-progress-track span{background:#15803d!important}.progress-low .table-progress strong,.progress-low>.hero-progress strong{color:#dc2626}.progress-warning .table-progress strong,.progress-warning>.hero-progress strong{color:#d97706}.progress-medium .table-progress strong,.progress-medium>.hero-progress strong{color:#2563eb}.progress-good .table-progress strong,.progress-good>.hero-progress strong{color:#16a34a}.progress-complete .table-progress strong,.progress-complete>.hero-progress strong{color:#15803d}.personal-progress-circle.progress-low{background:#fef2f2;border-color:#fecaca}.personal-progress-circle.progress-low strong{color:#dc2626}.personal-progress-circle.progress-warning{background:#fffbeb;border-color:#fde68a}.personal-progress-circle.progress-warning strong{color:#d97706}.personal-progress-circle.progress-medium{background:#eff6ff;border-color:#bfdbfe}.personal-progress-circle.progress-medium strong{color:#2563eb}.personal-progress-circle.progress-good{background:#f0fdf4;border-color:#bbf7d0}.personal-progress-circle.progress-good strong{color:#16a34a}.personal-progress-circle.progress-complete{background:#ecfdf5;border-color:#86efac}.personal-progress-circle.progress-complete strong{color:#15803d}

/* v2.3.10 - checkbox stability: keep native checkbox in normal flow */
.asesi-option input[type="checkbox"]{position:static;opacity:1;pointer-events:auto;width:19px;height:19px;margin:0;flex:0 0 auto;accent-color:#2563eb;cursor:pointer}
.asesi-option.is-locked input[type="checkbox"]{cursor:not-allowed}
.asesi-option:focus-within{outline:2px solid rgba(37,99,235,.18);outline-offset:-2px}

/* v2.4 - monitoring sekolah */
.monitoring-filter-panel{margin-bottom:18px}.monitoring-filter-form{display:flex;gap:10px;align-items:center;padding:16px 20px;flex-wrap:wrap}.monitoring-filter-form select{min-width:190px}.monitoring-main-grid,.monitoring-secondary-grid{align-items:start}.monitoring-table td{vertical-align:middle}.monitoring-ranking-list{padding:8px 20px 16px}.monitoring-ranking-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(220px,.9fr);gap:16px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}.monitoring-ranking-row:first-child{border-top:0}.monitoring-ranking-row>div:first-child{display:flex;flex-direction:column;gap:3px}.monitoring-ranking-row span{font-size:10px;color:var(--muted);line-height:1.45}.monitoring-ranking-value{display:grid;grid-template-columns:minmax(80px,1fr) auto;gap:8px;align-items:center}.monitoring-ranking-value small{grid-column:1 / -1;font-size:10px;color:var(--muted)}.monitoring-ranking-value strong{font-size:11px}.progress-inline{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:800}.attention-list{display:flex;flex-direction:column}.attention-item{display:flex;justify-content:space-between;gap:14px;padding:14px 20px;border-top:1px solid var(--line)}.attention-item:first-child{border-top:0}.attention-item:hover{background:#fafcff}.attention-item>div:first-child{display:flex;flex-direction:column;gap:4px;min-width:0}.attention-item strong{font-size:12px}.attention-item span{font-size:10px;color:var(--muted)}.attention-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:0 0 auto}.attention-right small{font-size:9px;color:var(--danger)}.attention-overdue{background:#fff8f8}.attention-overdue:hover{background:#fff3f3}.progress-inline.progress-low{background:#fee2e2;color:#b91c1c}.progress-inline.progress-warning{background:#fef3c7;color:#b45309}.progress-inline.progress-medium{background:#dbeafe;color:#1d4ed8}.progress-inline.progress-good{background:#dcfce7;color:#15803d}.progress-inline.progress-complete{background:#bbf7d0;color:#166534}
@media(max-width:900px){.monitoring-ranking-row{grid-template-columns:1fr}.monitoring-filter-form select,.monitoring-filter-form .btn{flex:1 1 180px}.monitoring-filter-form{align-items:stretch}.attention-item{align-items:flex-start}}

/* v2.4.1 - Monitoring Sekolah: compact, searchable, paginated */
.monitoring-main-grid{grid-template-columns:minmax(0,1.45fr) minmax(300px,.85fr)}
.monitoring-progress-panel{min-width:0}
.monitoring-section-head{align-items:center}
.monitoring-search-row{display:flex;align-items:center;gap:12px;padding:12px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fcfdff}
.monitoring-search{position:relative;flex:1;min-width:0}
.monitoring-search input{width:100%;height:38px;border:1px solid #d8e0ea;border-radius:10px;padding:0 12px 0 34px;background:#fff;color:var(--text);outline:none;font-size:12px}
.monitoring-search input:focus{border-color:#93b4ff;box-shadow:0 0 0 3px rgba(37,99,235,.09)}
.monitoring-search .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#94a3b8;font-size:18px;pointer-events:none}
.monitoring-page-info{font-size:10px;color:var(--muted);white-space:nowrap}
.monitoring-table-wrap{overflow:hidden}
.monitoring-table{min-width:0!important;table-layout:fixed}
.monitoring-table th,.monitoring-table td{padding:12px 12px}
.monitoring-table th:nth-child(1){width:27%}.monitoring-table th:nth-child(2){width:15%}.monitoring-table th:nth-child(3){width:22%}.monitoring-table th:nth-child(4){width:26%}.monitoring-table th:nth-child(5){width:10%}
.monitoring-table .col-action{text-align:center}
.monitoring-table td:nth-child(3){word-break:break-word}
.monitoring-asesor-text{display:block;line-height:1.4}
.monitoring-pagination{display:flex;gap:6px;justify-content:flex-end;padding:12px 20px;border-top:1px solid var(--line);background:#fcfdff}
.monitoring-pagination .page-link{appearance:none;cursor:pointer}
.monitoring-pagination .page-link:disabled{opacity:.4;cursor:not-allowed}
.monitoring-empty-search[hidden]{display:none}
.monitoring-advisor-panel{min-width:0}
.advisor-monitoring-list{padding:6px 20px 12px}
.advisor-monitoring-item{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(100px,.6fr) minmax(140px,.8fr);gap:14px;align-items:center;padding:14px 0;border-top:1px solid var(--line)}
.advisor-monitoring-item:first-child{border-top:0}
.advisor-monitoring-main{min-width:0;display:flex;flex-direction:column;gap:3px}
.advisor-monitoring-main strong{font-size:12px;line-height:1.35}
.advisor-monitoring-main small{font-size:9px;color:var(--muted)}
.advisor-monitoring-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.advisor-monitoring-stats div{display:flex;flex-direction:column;gap:3px}
.advisor-monitoring-stats span,.advisor-monitoring-progress>span{font-size:9px;color:var(--muted)}
.advisor-monitoring-stats strong{font-size:14px}
.advisor-monitoring-progress{display:grid;grid-template-columns:54px minmax(70px,1fr) 34px;gap:7px;align-items:center}
.advisor-monitoring-progress strong{font-size:11px;text-align:right}
.monitoring-filter-form select,.calendar-filter select,.schedule-filter select,.schedule-form-grid select,.form-grid select{appearance:none;background-color:#fff;background-image:linear-gradient(45deg,transparent 50%,#64748b 50%),linear-gradient(135deg,#64748b 50%,transparent 50%);background-position:calc(100% - 17px) 17px,calc(100% - 12px) 17px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:32px}
.monitoring-filter-form select:hover,.calendar-filter select:hover,.schedule-filter select:hover,.schedule-form-grid select:hover,.form-grid select:hover{border-color:#b8c4d4}
.monitoring-filter-form select:focus,.calendar-filter select:focus,.schedule-filter select:focus,.schedule-form-grid select:focus,.form-grid select:focus{border-color:#93b4ff;box-shadow:0 0 0 3px rgba(37,99,235,.09)}
@media(max-width:1100px){.monitoring-main-grid{grid-template-columns:1fr}.advisor-monitoring-item{grid-template-columns:minmax(0,1.2fr) minmax(110px,.7fr) minmax(150px,.9fr)}}
@media(max-width:760px){.monitoring-search-row{align-items:stretch;flex-direction:column}.monitoring-page-info{align-self:flex-end}.monitoring-table{display:block}.monitoring-table thead{display:none}.monitoring-table tbody,.monitoring-table tr,.monitoring-table td{display:block;width:100%}.monitoring-table tbody tr{padding:12px 14px;border-bottom:1px solid var(--line)}.monitoring-table td{padding:3px 0;border:0}.monitoring-table td:nth-child(1){padding-top:0}.monitoring-table td:nth-child(1) strong{font-size:13px}.monitoring-table td:nth-child(1) small{display:block}.monitoring-table td:nth-child(2)::before{content:'Unit: ';font-weight:700;color:#64748b}.monitoring-table td:nth-child(3)::before{content:'Asesor: ';font-weight:700;color:#64748b}.monitoring-table td:nth-child(4){padding-top:7px}.monitoring-table td:nth-child(5){padding-top:7px}.monitoring-table .col-action{text-align:left}.monitoring-table .action-link{display:inline-flex;align-items:center;padding:7px 10px;border:1px solid #dbe3ee;border-radius:8px;background:#fff;margin:0}.advisor-monitoring-item{grid-template-columns:1fr}.advisor-monitoring-stats{max-width:180px}.advisor-monitoring-progress{grid-template-columns:62px minmax(70px,1fr) 38px}
}

/* v2.4.2 — kontrol hak akses pengguna */
.role-edit-form { margin: 0; }
.role-edit-control { display: flex; align-items: center; gap: 6px; min-width: 180px; }
.role-edit-control select { min-width: 150px; max-width: 190px; }
.btn-icon { width: 36px; height: 36px; padding: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; }
@media (max-width: 700px) {
  .role-edit-control { min-width: 0; }
  .role-edit-control select { min-width: 128px; max-width: 160px; }
}

/* v2.4.6 — reactive search fields */
.instant-search-form .instant-search-input,
.search-wrap .instant-search-input,
.compact-filter .instant-search-input{
  transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;
}
.instant-search-form .instant-search-input:focus,
.search-wrap .instant-search-input:focus,
.compact-filter .instant-search-input:focus{
  border-color:#93b4ff;
  box-shadow:0 0 0 3px rgba(37,99,235,.08);
}

/* v2.4.7 — true live listing search */
.live-list-search{transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease}.live-list-search:focus{border-color:#93b4ff;box-shadow:0 0 0 3px rgba(37,99,235,.08)}

/* v2.6 — detail RHK & indikator */
.pkg-context{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px;align-items:center}
.pkg-context div{display:flex;flex-direction:column;gap:4px}.pkg-context span{color:var(--muted);font-size:13px}
.form-grid-single{max-width:none}.form-grid-single label{display:flex;flex-direction:column;gap:8px;color:#0f172a;font-weight:700}.form-grid-single label>span{color:#dc2626}.form-grid-single input,.form-grid-single textarea,.form-grid-single select{font:inherit;font-weight:400;border:1px solid #d9e1ec;border-radius:12px;padding:11px 13px;background:#fff;color:#0f172a;box-sizing:border-box;width:100%}.form-grid-single textarea{resize:vertical}.form-grid-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-actions{display:flex;justify-content:flex-end;padding-top:4px}.identity-meta{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px;color:var(--muted);font-size:12px}.step-action{margin-top:6px}.step-action .action-link{display:inline-flex}
@media(max-width:760px){.pkg-context{grid-template-columns:1fr}.form-grid-two{grid-template-columns:1fr}.form-actions{justify-content:stretch}.form-actions .btn{width:100%}}

/* v2.7 — alur PKG Form A-D dan laporan */
.kinerja-info-strip{display:flex;gap:18px;flex-wrap:wrap;padding:12px 16px;margin-top:-8px;margin-bottom:18px;color:var(--muted);font-size:12px}.kinerja-info-strip span{background:#fff;border:1px solid var(--line);padding:8px 10px;border-radius:10px}.kinerja-info-strip strong{color:var(--text)}
.kinerja-context{margin-bottom:10px}.form-section{overflow:visible}.field-help{display:block!important;font-weight:400!important;color:var(--muted)!important;font-size:11px!important;line-height:1.5;margin-top:-2px}.subsection-title{font-size:14px;margin:22px 20px 12px;color:var(--text)}
.responsive-table{width:100%;overflow-x:auto}.kinerja-table{min-width:900px}.kinerja-table input,.kinerja-table textarea,.kinerja-table select{width:100%;border:1px solid #d9e1ec;border-radius:9px;padding:8px 9px;background:#fff;color:var(--text);font:inherit;box-sizing:border-box}.form-b-table{min-width:1250px}.form-c-table{min-width:1200px}.radio-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.radio-card-grid label{border:1px solid #d9e1ec;border-radius:12px;padding:12px;display:flex;align-items:center;gap:8px;background:#fff;color:var(--text);font-size:12px}.radio-card-grid input{accent-color:var(--primary)}
.report-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:18px 20px}.report-summary div{display:flex;flex-direction:column;gap:4px}.report-summary span{font-size:10px;color:var(--muted)}.report-summary strong{font-size:16px}.report-stage-list{display:flex;flex-direction:column}.report-stage-item{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 20px;border-top:1px solid var(--line)}.report-stage-index{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#eef2f7;color:#64748b;font-weight:800;font-size:11px}.report-stage-index.is-done{background:#dcfce7;color:#15803d}.report-stage-item>div:nth-child(2){display:flex;flex-direction:column;gap:3px;min-width:0}.report-stage-item strong{font-size:12px}.report-stage-item span{font-size:10px;color:var(--muted)}.inline-filter select{min-width:190px}
.pkg-stage-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}.pkg-stage-actions .action-link{font-size:10px}
@media(max-width:760px){.radio-card-grid,.report-summary{grid-template-columns:1fr}.report-stage-item{grid-template-columns:34px minmax(0,1fr)}.report-stage-item>a{grid-column:2;justify-self:start}.kinerja-info-strip{gap:8px}}
@media print{body{background:#fff}.no-print{display:none!important}}

/* SIMPKG v2.7.1 - evidence upload */
.evidence-list{display:grid;gap:12px;padding:14px 20px 20px}.evidence-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,360px);gap:18px;align-items:center;padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:#fff}.evidence-main{display:flex;align-items:flex-start;gap:12px}.evidence-main .step-index{flex:0 0 36px}.evidence-main strong{display:block;font-size:13px}.evidence-main p{margin:4px 0 0;color:var(--muted);font-size:11px;line-height:1.5}.evidence-file{display:flex;justify-content:flex-end;align-items:center;gap:10px;flex-wrap:wrap}.evidence-file>div:first-child{min-width:0}.evidence-file small{display:block;margin-top:4px;color:var(--muted);font-size:10px;overflow-wrap:anywhere}.evidence-upload-form{display:flex;justify-content:flex-end;align-items:center;gap:7px;flex-wrap:wrap}.evidence-actions{display:flex;gap:6px;align-items:center}.btn-xs{height:30px!important;padding:0 9px!important;font-size:10px!important;border-radius:8px!important}.file-btn{display:inline-flex;align-items:center;height:34px;padding:0 10px;border:1px solid var(--line);background:#fff;border-radius:9px;color:#475569;font-size:10px;font-weight:700;cursor:pointer;overflow:hidden;position:relative}.file-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}.file-btn:hover{background:#f8fafc}.step-main .action-link{font-size:11px}.progress-step.is-deferred .step-index{background:#fef3c7;color:#b45309}
@media(max-width:720px){.evidence-card{grid-template-columns:1fr}.evidence-file{justify-content:flex-start}.evidence-upload-form{justify-content:flex-start;width:100%}.evidence-upload-form .file-btn{flex:1;min-width:180px}.evidence-actions{width:100%}}

/* v2.7.2 - inline PKG evidence workflow */
.pkg-stage{padding:16px 20px}.pkg-stage-top>a{display:none}.pkg-evidence-inline{margin-top:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fbfdff}.pkg-evidence-inline.has-evidence{display:flex;justify-content:space-between;align-items:center;gap:14px}.pkg-evidence-info{min-width:0}.pkg-evidence-info>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pkg-evidence-info strong{font-size:11px;overflow-wrap:anywhere}.pkg-evidence-info small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.pkg-evidence-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.inline-evidence-upload{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.inline-evidence-upload .file-btn{margin:0}.inline-evidence-upload .muted{font-size:9px}.evidence-replace-form{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}
@media(max-width:800px){.pkg-evidence-inline.has-evidence{display:block}.pkg-evidence-actions{margin-top:8px}.inline-evidence-upload{align-items:stretch}.inline-evidence-upload .file-btn,.inline-evidence-upload .btn{width:100%;justify-content:center}.pkg-stage{padding:14px}}


/* v2.7.3 — professional flash toast notifications */
.toast-stack{position:fixed;top:18px;right:18px;z-index:120;display:grid;gap:10px;width:min(380px,calc(100vw - 36px));pointer-events:none}
.toast{pointer-events:auto;display:grid;grid-template-columns:34px minmax(0,1fr) 28px;gap:10px;align-items:center;padding:12px 12px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 18px 45px rgba(15,23,42,.16);animation:toast-in .22s ease-out}
.toast-icon{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:13px}
.toast-success{border-color:#bbf7d0}.toast-success .toast-icon{background:#dcfce7;color:#15803d}.toast-error{border-color:#fecaca}.toast-error .toast-icon{background:#fee2e2;color:#b91c1c}
.toast-body{display:flex;flex-direction:column;gap:2px;min-width:0}.toast-body strong{font-size:11px;color:var(--text)}.toast-body span{font-size:10px;line-height:1.45;color:#64748b;overflow-wrap:anywhere}
.toast-close{border:0;background:transparent;color:#94a3b8;font-size:20px;line-height:1;cursor:pointer;padding:2px;border-radius:7px}.toast-close:hover{background:#f1f5f9;color:#475569}
.toast-hide{animation:toast-out .22s ease-in forwards}
@keyframes toast-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
@keyframes toast-out{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-6px)}}
@media(max-width:700px){.toast-stack{top:12px;right:12px;left:12px;width:auto}.toast{grid-template-columns:30px minmax(0,1fr) 26px;padding:11px}}

/* v2.7.4 — upload feedback and preview modal */
.file-selected{display:inline-flex;align-items:center;min-height:30px;padding:0 9px;border-radius:8px;background:#f1f5f9;color:#64748b;font-size:10px;font-weight:600;max-width:min(300px,100%);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-selected.is-ready{background:#ecfdf5;color:#047857}.preview-modal{position:fixed;inset:0;background:rgba(15,23,42,.62);z-index:130;display:none;align-items:center;justify-content:center;padding:24px}.preview-modal.is-open{display:flex}.preview-modal-card{width:min(1100px,96vw);height:min(88vh,900px);background:#fff;border-radius:16px;box-shadow:0 22px 70px rgba(15,23,42,.3);display:flex;flex-direction:column;overflow:hidden}.preview-modal-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line);gap:12px}.preview-modal-title{font-size:12px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-modal-close{border:0;background:#f1f5f9;width:32px;height:32px;border-radius:8px;color:#475569;font-size:18px;cursor:pointer}.preview-modal-body{flex:1;background:#eef2f7}.preview-modal-frame{width:100%;height:100%;border:0;background:#fff}@media(max-width:720px){.preview-modal{padding:10px}.preview-modal-card{width:100%;height:92vh;border-radius:12px}.file-selected{width:100%;max-width:none}}

/* v2.7.5 — PDF-only evidence and cleaner layout */
.pkg-context{grid-template-columns:minmax(0,1.25fr) minmax(180px,0.95fr) minmax(160px,0.75fr);align-items:center;gap:24px;padding:18px 22px}.pkg-context>div{min-width:0}.pkg-context>div>strong{display:block;margin-bottom:4px}.pkg-context>div>span{display:block;line-height:1.55;overflow-wrap:anywhere}.evidence-card{grid-template-columns:minmax(0,1fr) minmax(360px,0.72fr);align-items:center;gap:28px}.evidence-file{min-width:0}.evidence-actions{justify-content:flex-end}.evidence-upload-form{justify-content:flex-end}.file-selected{max-width:420px}.preview-modal-card{height:min(92vh,960px)}
@media(max-width:1000px){.pkg-context{grid-template-columns:1fr 1fr}.pkg-context>div:last-child{grid-column:1 / -1}.evidence-card{grid-template-columns:1fr;gap:16px}.evidence-actions,.evidence-upload-form{justify-content:flex-start}}
@media(max-width:720px){.pkg-context{grid-template-columns:1fr;padding:16px}.pkg-context>div:last-child{grid-column:auto}.evidence-card{padding:16px}.file-selected{max-width:100%}}

/* v2.7.7 - report polish and single-action evidence workflow */
.report-context{margin-top:0}.report-panel{overflow:hidden}.report-table th,.report-table td{vertical-align:middle}.report-table th{text-align:left}.report-table td:first-child{text-align:center;width:55px}.report-signature-preview{padding:26px 24px;margin-top:16px}.signature-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;text-align:center;font-size:12px;line-height:1.5}.signature-space{height:58px}.report-table .action-link{font-size:11px}
@media(max-width:760px){.report-signature-preview{padding:20px 16px}.signature-grid{grid-template-columns:1fr}.report-context{grid-template-columns:1fr}.report-table{min-width:760px}}


/* v2.7.16 — school observation monitoring */
.school-overdue-panel{margin-bottom:16px}.school-observation-panel{margin-bottom:16px}.observation-status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:16px 20px 20px}.observation-status-card{border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:#fff;display:flex;flex-direction:column;gap:4px}.observation-status-card span{font-size:10px;font-weight:800;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.observation-status-card strong{font-size:22px;line-height:1}.observation-status-card small{font-size:10px;color:var(--muted)}.observation-status-card.status-scheduled{border-left:4px solid #2563eb}.observation-status-card.status-complete{border-left:4px solid #16a34a}.observation-status-card.status-deferred{border-left:4px solid #d97706}.observation-status-card.status-overdue{border-left:4px solid #dc2626;background:#fffafa}
@media(max-width:900px){.observation-status-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.observation-status-grid{grid-template-columns:1fr}}

/* v2.7.17: compact and professional reminder cards */
.advisor-alert-list{padding:12px 16px 16px;display:grid;gap:10px}
.advisor-alert{display:grid;grid-template-columns:170px minmax(0,1fr);gap:18px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:14px;text-decoration:none;color:var(--text);background:#fff;box-shadow:0 2px 8px rgba(15,23,42,.03)}
.advisor-alert-main strong{font-size:13px;line-height:1.35}.advisor-alert-main span{font-size:11px;color:#64748b}.advisor-alert-main small{font-size:10px;color:#94a3b8}
.advisor-alert-days strong{font-size:13px}.advisor-alert-days span{font-size:11px;color:#64748b}
.advisor-alert.level-soon{border-left:4px solid #f59e0b}.advisor-alert.level-urgent{border-left:4px solid #ea580c;background:#fffaf5}.advisor-alert.level-critical{border-left:4px solid #dc2626;background:#fff6f6}
@media(max-width:700px){.advisor-alert{grid-template-columns:1fr;gap:8px}.advisor-alert-list{padding:10px 12px 14px}}


/* v2.7.18 — report search and pagination */
.report-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fcfdff}.report-live-search-wrap{position:relative;flex:1;max-width:560px}.report-live-search-wrap input{width:100%;box-sizing:border-box;padding:10px 12px 10px 34px;border:1px solid #d9e1ec;border-radius:10px;background:#fff;color:var(--text);font:inherit}.report-live-search-wrap input:focus{outline:0;border-color:#9ab7f2;box-shadow:0 0 0 3px rgba(37,99,235,.08)}.report-live-search-wrap .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#64748b;font-size:16px;pointer-events:none}.report-page-info{font-size:11px;color:var(--muted);white-space:nowrap}.report-pagination{display:flex;justify-content:flex-end;align-items:center;gap:5px;padding:12px 20px;border-top:1px solid var(--line);background:#fcfdff}.report-pagination .page-link{min-width:32px;height:32px;padding:0 8px;border:1px solid #dbe3ee;border-radius:8px;background:#fff;color:#334155;font-weight:700;font-size:11px;cursor:pointer}.report-pagination .page-link:hover:not(:disabled){background:#f8fafc}.report-pagination .page-link.is-active{background:#2563eb;border-color:#2563eb;color:#fff}.report-pagination .page-link:disabled{opacity:.45;cursor:not-allowed}.pagination-ellipsis{padding:0 3px;color:#94a3b8;font-size:12px}.report-table tbody tr[hidden]{display:none!important}
@media(max-width:760px){.report-toolbar{align-items:stretch;flex-direction:column}.report-live-search-wrap{max-width:none}.report-page-info{text-align:right}.report-pagination{justify-content:center}.report-table{min-width:760px}}

/* Logo resmi sekolah: mempertahankan desain/warna UI SIMPKG lama. */
.brand-mark.school-logo{background:transparent;box-shadow:none;overflow:hidden;padding:3px;}
.brand-mark.school-logo img{width:100%;height:100%;object-fit:contain;display:block;}
.brand-mark.large.school-logo{padding:4px;}
@media(max-width:720px){.brand-mark.school-logo{padding:2px;}}

/* v2.9 information architecture */
.sidebar-groups{overflow:auto;padding-bottom:8px}.side-group{margin-bottom:8px}.side-group:last-child{margin-bottom:0}.sidebar .side-section{padding-top:10px}.topbar-account-link{cursor:pointer}.role-pills{display:flex;gap:4px;flex-wrap:wrap}

.workspace-switcher{display:inline-flex;gap:4px;padding:4px;background:#eef2f7;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:14px}.workspace-switcher-item{padding:8px 14px;border-radius:9px;color:#64748b;text-decoration:none;font-weight:700;font-size:13px}.workspace-switcher-item:hover{color:#0f172a;background:#fff}.workspace-switcher-item.is-active{background:#fff;color:#1d4ed8;box-shadow:0 1px 3px rgba(15,23,42,.08)}

/* v2.9.1 contextual pagination */
.table-pagination{display:flex;justify-content:flex-end;align-items:center;gap:6px;padding:12px 20px;border-top:1px solid var(--line);background:#fcfdff;flex-wrap:wrap}.table-pagination .page-link{appearance:none;cursor:pointer}.table-pagination .page-link:disabled{opacity:.4;cursor:not-allowed}.table-pagination .page-link.active{background:var(--primary);border-color:var(--primary);color:#fff}@media(max-width:760px){.table-pagination{justify-content:center}}

/* v2.9.2 - separate Asesor workspaces */
.workspace-tabs{display:inline-flex;gap:4px;padding:4px;background:#eef2f7;border:1px solid #e2e8f0;border-radius:14px;margin-bottom:16px}
.workspace-tab{appearance:none;border:0;background:transparent;color:#64748b;padding:10px 18px;border-radius:10px;font:inherit;font-weight:800;font-size:13px;cursor:pointer;transition:.16s ease}
.workspace-tab:hover{background:#fff;color:#0f172a}
.workspace-tab.is-active{background:#fff;color:#1d4ed8;box-shadow:0 1px 4px rgba(15,23,42,.10)}
.workspace-panel[hidden]{display:none!important}
@media(max-width:560px){.workspace-tabs{width:100%;display:grid;grid-template-columns:1fr 1fr}.workspace-tab{padding:9px 10px}}

/* v2.9.4 — Sidebar desktop: satu alur scroll, tanpa scrollbar yang mengganggu */
.sidebar{overflow-y:auto;overflow-x:hidden;scrollbar-width:none;}
.sidebar::-webkit-scrollbar{width:0;height:0;}
.sidebar-groups{overflow:visible;}
.sidebar-bottom{margin-top:16px;}

.calendar-more{border:0;background:transparent;text-align:left;cursor:pointer;font:inherit;font-size:9px;padding:2px 5px;color:var(--primary);font-weight:700}.calendar-more:hover{text-decoration:underline}.calendar-day-modal{width:min(760px,calc(100vw - 30px));max-height:min(78vh,720px);overflow:hidden}.calendar-day-modal-list{padding:4px 20px 18px;overflow:auto;max-height:60vh}.calendar-modal-item{display:grid;grid-template-columns:90px 1fr auto;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.calendar-modal-item:last-child{border-bottom:0}.calendar-modal-time{font-weight:800;color:var(--primary);font-size:12px}.calendar-modal-main{display:flex;flex-direction:column;gap:3px;min-width:0}.calendar-modal-main strong{font-size:13px}.calendar-modal-main span,.calendar-modal-main small{color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.42);display:grid;place-items:center;padding:15px;z-index:2000}.modal-backdrop[hidden]{display:none}.modal-dialog{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 80px rgba(15,23,42,.22)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;padding:18px 20px;border-bottom:1px solid var(--line)}.modal-head h3{margin:0;font-size:18px}.modal-head p{margin:4px 0 0;color:var(--muted);font-size:12px}.modal-close{width:34px;height:34px;border:1px solid var(--line);border-radius:10px;background:#f8fafc;color:var(--text);font-size:22px;line-height:1;cursor:pointer}.modal-open{overflow:hidden}@media(max-width:700px){.calendar-modal-item{grid-template-columns:1fr auto}.calendar-modal-time{grid-column:1/-1}.calendar-day-modal-list{padding-left:14px;padding-right:14px}}

.progress-date-field{display:flex;flex-direction:column;gap:4px;min-width:150px}.progress-date-field span{font-size:12px;color:var(--muted,#64748b);font-weight:600}.progress-date-field input{min-height:42px}

/* v2.9.15 - schedule edit + stage photo documentation */
.schedule-actions .action-link{display:inline-flex;align-items:center;text-decoration:none}.schedule-actions form{vertical-align:middle}
.photo-stage-panel{margin-top:18px}.photo-stage-list{display:grid;gap:14px;padding:14px 20px 20px}.photo-stage-card{border:1px solid var(--line);border-radius:14px;background:#fff;padding:15px}
.photo-stage-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.photo-stage-head h3{margin:3px 0 0;font-size:14px}.photo-stage-head .eyebrow{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}
.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:13px}.photo-card{border:1px solid #e6ebf2;border-radius:12px;overflow:hidden;background:#fbfcfe}
.photo-preview-link{display:block;aspect-ratio:16/10;background:#eef2f7;overflow:hidden}.photo-preview-link img{display:block;width:100%;height:100%;object-fit:cover}
.photo-card-body{padding:10px}.photo-card-body strong{display:block;font-size:11px;line-height:1.45;min-height:31px}.photo-card-body small{display:block;margin-top:5px;color:var(--muted);font-size:9px;overflow-wrap:anywhere}.photo-card-body form{margin-top:7px}
.photo-empty{margin-top:12px;padding:12px;border:1px dashed #dbe3ee;border-radius:10px;color:var(--muted);font-size:10px;background:#fbfcfe}
.photo-upload-form{margin-top:12px;padding-top:12px;border-top:1px dashed #dbe3ee}.photo-upload-fields{display:grid;grid-template-columns:auto minmax(180px,1fr) auto;gap:8px;align-items:center}
.photo-upload-fields input[type=text]{height:34px;border:1px solid #d8e0ea;border-radius:9px;padding:0 10px;outline:none;background:#fff;color:var(--text)}.photo-upload-fields input[type=text]:focus{border-color:#93b4ff;box-shadow:0 0 0 3px rgba(37,99,235,.09)}
.photo-file-selected{display:block;margin-top:6px;color:var(--muted);font-size:9px}.photo-preview-modal{position:fixed;inset:0;display:none;align-items:center;justify-content:center;z-index:150}.photo-preview-modal.is-open{display:flex}
.photo-preview-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.72)}.photo-preview-dialog{position:relative;z-index:1;max-width:min(1100px,92vw);max-height:90vh;padding:10px;border-radius:16px;background:#fff;box-shadow:0 28px 80px rgba(15,23,42,.3)}
.photo-preview-dialog img{display:block;max-width:88vw;max-height:82vh;width:auto;height:auto;border-radius:10px}.photo-preview-close{position:absolute;right:-12px;top:-12px;width:34px;height:34px;border:1px solid #dbe3ee;border-radius:50%;background:#fff;color:#334155;font-size:24px;line-height:1;cursor:pointer;box-shadow:0 8px 20px rgba(15,23,42,.18)}
@media(max-width:780px){.photo-grid{grid-template-columns:1fr 1fr}.photo-upload-fields{grid-template-columns:1fr}.photo-upload-fields .file-btn,.photo-upload-fields .btn{width:100%;justify-content:center}}@media(max-width:520px){.photo-grid{grid-template-columns:1fr}}

/* v2.9.19 - Foto Dokumentasi benar-benar di panel kanan Dokumen Pendukung */
.pkg-doc-photo-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(400px,480px);gap:18px;align-items:start;width:100%;}
.pkg-doc-photo-layout>.panel{min-width:0;width:auto;margin:0;}
.pkg-doc-photo-layout>.panel.photo-stage-panel{margin-top:0;}
.pkg-doc-photo-layout>.panel>.panel-head{padding:18px 20px;}
.pkg-doc-photo-layout>.panel>.panel-head h2{margin:0;font-size:16px;}
.pkg-doc-photo-layout>.panel>.panel-head p{margin:4px 0 0;font-size:11px;line-height:1.45;}
.pkg-doc-photo-layout .evidence-list{padding:12px 16px 16px;gap:10px;}
.pkg-doc-photo-layout .evidence-card{grid-template-columns:minmax(0,1fr) minmax(300px,.8fr);gap:16px;padding:13px 14px;border-radius:12px;}
.pkg-doc-photo-layout .evidence-main{gap:10px;}
.pkg-doc-photo-layout .evidence-main .step-index{flex-basis:32px;width:32px;height:32px;font-size:11px;}
.pkg-doc-photo-layout .evidence-main strong{font-size:12px;}
.pkg-doc-photo-layout .evidence-main p{font-size:10px;}
.pkg-doc-photo-layout .photo-stage-list{padding:10px 14px 14px;gap:9px;}
.pkg-doc-photo-layout .photo-stage-card{padding:11px;border-radius:11px;}
.pkg-doc-photo-layout .photo-stage-head{align-items:center;gap:8px;}
.pkg-doc-photo-layout .photo-stage-head .eyebrow{font-size:8px;}
.pkg-doc-photo-layout .photo-stage-head h3{font-size:11px;line-height:1.35;margin:2px 0 0;}
.pkg-doc-photo-layout .photo-stage-head .badge{font-size:9px;padding:4px 7px;white-space:nowrap;}
.pkg-doc-photo-layout .photo-grid{grid-template-columns:1fr 1fr;gap:7px;margin-top:8px;}
.pkg-doc-photo-layout .photo-preview-link{aspect-ratio:16/10;}
.pkg-doc-photo-layout .photo-card-body{padding:7px;}
.pkg-doc-photo-layout .photo-card-body strong{font-size:9px;line-height:1.35;min-height:0;}
.pkg-doc-photo-layout .photo-card-body small{font-size:8px;margin-top:4px;}
.pkg-doc-photo-layout .photo-card-body form{margin-top:5px;}
.pkg-doc-photo-layout .photo-empty{margin-top:8px;padding:8px;font-size:9px;}
.pkg-doc-photo-layout .photo-upload-form{margin-top:8px;padding-top:8px;}
.pkg-doc-photo-layout .photo-upload-fields{grid-template-columns:1fr 1.45fr auto;gap:6px;align-items:center;}
.pkg-doc-photo-layout .photo-upload-fields .file-btn{width:auto!important;justify-content:center;min-width:82px;height:32px;font-size:9px;}
.pkg-doc-photo-layout .photo-upload-fields input[type=text]{height:32px;font-size:10px;min-width:0;}
.pkg-doc-photo-layout .photo-upload-fields .btn{width:auto!important;white-space:nowrap;height:32px!important;font-size:9px!important;padding:0 9px!important;}
.pkg-doc-photo-layout .photo-file-selected{font-size:8px;margin-top:5px;}
@media(max-width:1200px){
  .pkg-doc-photo-layout{grid-template-columns:minmax(0,1fr) 370px;gap:14px;}
  .pkg-doc-photo-layout .evidence-card{grid-template-columns:1fr;}
  .pkg-doc-photo-layout .evidence-file,.pkg-doc-photo-layout .evidence-actions,.pkg-doc-photo-layout .evidence-upload-form{justify-content:flex-start;}
}
@media(max-width:900px){
  .pkg-doc-photo-layout{grid-template-columns:1fr;}
  .pkg-doc-photo-layout>.panel.photo-stage-panel{margin-top:0;}
  .pkg-doc-photo-layout .photo-upload-fields{grid-template-columns:auto minmax(0,1fr) auto;}
}
@media(max-width:620px){
  .pkg-doc-photo-layout .photo-upload-fields{grid-template-columns:1fr;}
  .pkg-doc-photo-layout .photo-upload-fields .file-btn,.pkg-doc-photo-layout .photo-upload-fields .btn{width:100%!important;}
  .pkg-doc-photo-layout .photo-grid{grid-template-columns:1fr 1fr;}
}
@media(max-width:420px){
  .pkg-doc-photo-layout .photo-grid{grid-template-columns:1fr;}
}


/* v2.9.20 - hard override: document + photo side-by-side on desktop */
/* Keep the two panels side-by-side for any desktop/tablet CSS viewport.
   The older max-width:900px rule was too aggressive and could stack the panels
   on desktop browsers running with zoom/scaling. */
.pkg-doc-photo-layout{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) minmax(360px,460px) !important;
  gap:18px !important;
  align-items:start !important;
  width:100% !important;
}
.pkg-doc-photo-layout > .panel{
  width:auto !important;
  min-width:0 !important;
  margin:0 !important;
}
.pkg-doc-photo-layout > .panel.photo-stage-panel{margin-top:0 !important;}
.pkg-doc-photo-layout .photo-stage-list{max-height:none;}

@media (max-width:700px){
  .pkg-doc-photo-layout{
    grid-template-columns:1fr !important;
    gap:14px !important;
  }
}


/* v2.9.24 - Photo documentation layout 30/70 + upload states + modal preview */
.pkg-doc-photo-layout{
  grid-template-columns:minmax(340px,30fr) minmax(520px,70fr) !important;
  gap:18px !important;
  align-items:start !important;
}
.pkg-doc-photo-layout > .panel.photo-stage-panel{margin-top:0 !important;}
.pkg-doc-photo-layout .photo-stage-list{max-height:none !important;}
.pkg-doc-photo-layout .photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;}
.pkg-doc-photo-layout .photo-upload-fields{grid-template-columns:minmax(88px,0.9fr) minmax(0,2fr) minmax(92px,auto);}
.pkg-doc-photo-layout .photo-file-selected{
  display:flex !important; align-items:center; min-height:26px; padding:0 8px;
  border-radius:8px; background:#f1f5f9; color:#64748b;
  font-size:8px; font-weight:600; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.pkg-doc-photo-layout .photo-file-selected.is-ready{background:#ecfdf5;color:#047857;}
.pkg-doc-photo-layout .photo-file-selected.is-invalid{background:#fef2f2;color:#b91c1c;}
.photo-preview-modal{z-index:3000 !important;padding:24px;}
.photo-preview-dialog{max-width:min(1180px,94vw) !important;max-height:92vh !important;padding:0 !important;overflow:hidden !important;}
.photo-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);background:#fff;}
.photo-preview-title{font-size:12px;font-weight:800;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.photo-preview-body{display:flex;align-items:center;justify-content:center;min-height:220px;max-height:calc(92vh - 58px);padding:14px;background:#eef2f7;overflow:auto;}
.photo-preview-dialog img{display:block;max-width:100%;max-height:calc(92vh - 90px);width:auto;height:auto;border-radius:10px;object-fit:contain;}
.photo-preview-close{position:static !important;width:32px !important;height:32px !important;border-radius:8px !important;font-size:22px !important;box-shadow:none !important;}
@media(max-width:700px){
  .pkg-doc-photo-layout{grid-template-columns:1fr !important;gap:14px !important;}
  .pkg-doc-photo-layout .photo-grid{grid-template-columns:1fr 1fr;}
  .pkg-doc-photo-layout .photo-upload-fields{grid-template-columns:1fr;}
  .pkg-doc-photo-layout .photo-upload-fields .file-btn,.pkg-doc-photo-layout .photo-upload-fields .btn{width:100% !important;}
}
@media(max-width:420px){.pkg-doc-photo-layout .photo-grid{grid-template-columns:1fr;}}


/* v2.9.26 - final Dokumen Pendukung : Foto Dokumentasi = 40 : 60 */
.pkg-doc-photo-layout{
  grid-template-columns:minmax(0,4fr) minmax(0,6fr) !important;
  gap:18px !important;
}
@media(max-width:1100px) and (min-width:701px){
  .pkg-doc-photo-layout{grid-template-columns:minmax(0,1fr) minmax(360px,0.95fr) !important;}
}
@media(max-width:700px){
  .pkg-doc-photo-layout{grid-template-columns:1fr !important;}
}


/* v2.9.26 - assignment action group */
.table-actions{display:flex;align-items:center;gap:8px;white-space:nowrap;}
.inline-form{display:inline-flex;margin:0;}
@media(max-width:720px){.table-actions{flex-wrap:wrap;}}


/* v2.9.33 — no empty third column on read-only progress; photo is inline per stage. */
.progress-step.progress-step-readonly{grid-template-columns:42px minmax(0,1fr) !important;}
.progress-step.progress-step-readonly .step-main{min-width:0;width:100%;}
.progress-step.progress-step-readonly .step-note{max-width:none;}
.progress-step.progress-step-editable{grid-template-columns:42px minmax(0,1fr) minmax(320px,420px) !important;}
.step-photo-checkpoint{margin-top:9px;padding:9px 11px;border:1px solid #dbe4ef;border-radius:9px;background:#fbfdff;}
.step-photo-checkpoint>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.step-photo-checkpoint strong{font-size:11px;color:#0f172a;}
.step-photo-count{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:9px;font-weight:800;}
.step-photo-checkpoint.is-done .step-photo-count{background:#dcfce7;color:#047857;}
.step-photo-checkpoint small{display:block;margin-top:4px;color:#64748b;font-size:9px;line-height:1.45;}
.step-photo-checkpoint .action-link{display:inline-block;margin-top:5px;font-size:10px;}
@media(max-width:1050px){.progress-step.progress-step-editable,.progress-step.progress-step-readonly{grid-template-columns:34px minmax(0,1fr) !important;}.progress-step.progress-step-editable .step-form{grid-column:2;}}
@media(max-width:700px){.progress-step.progress-step-editable,.progress-step.progress-step-readonly{grid-template-columns:34px minmax(0,1fr) !important;}.progress-step.progress-step-editable .step-form{grid-column:2;grid-template-columns:1fr;}}


/* v2.9.36 — final responsive fix for read-only Progress PKG.
   Read-only rows have no action column; never reserve phantom width. */
.progress-step.progress-step-readonly,
.progress-step[data-readonly="1"]{
  grid-template-columns:42px minmax(0,1fr) !important;
  width:100% !important;
  min-width:0 !important;
}
.progress-step.progress-step-readonly .step-main,
.progress-step[data-readonly="1"] .step-main{
  grid-column:2 !important;
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
}
.progress-step.progress-step-readonly .step-note,
.progress-step[data-readonly="1"] .step-note{
  width:100% !important;
  max-width:none !important;
}
@media(max-width:1050px){
  .progress-step.progress-step-readonly,
  .progress-step[data-readonly="1"]{
    grid-template-columns:38px minmax(0,1fr) !important;
  }
}
@media(max-width:700px){
  .progress-step.progress-step-readonly,
  .progress-step[data-readonly="1"]{
    grid-template-columns:34px minmax(0,1fr) !important;
  }
}


/* v2.9.37 — definitive read-only Progress PKG layout fix.
   Read-only steps use flex so no unused third grid column can reserve width. */
.progress-step.progress-step-readonly,
.progress-step[data-readonly="1"]{
  display:flex !important;
  align-items:flex-start !important;
  gap:14px !important;
  width:100% !important;
  min-width:0 !important;
}
.progress-step.progress-step-readonly > .step-index,
.progress-step[data-readonly="1"] > .step-index{
  flex:0 0 42px !important;
}
.progress-step.progress-step-readonly > .step-main,
.progress-step[data-readonly="1"] > .step-main{
  flex:1 1 auto !important;
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
}
.progress-step.progress-step-readonly .step-note,
.progress-step[data-readonly="1"] .step-note{
  width:100% !important;
  max-width:none !important;
  box-sizing:border-box !important;
}
@media(max-width:1050px){
  .progress-step.progress-step-readonly > .step-index,
  .progress-step[data-readonly="1"] > .step-index{flex-basis:38px !important;}
}
@media(max-width:700px){
  .progress-step.progress-step-readonly,
  .progress-step[data-readonly="1"]{gap:10px !important;}
  .progress-step.progress-step-readonly > .step-index,
  .progress-step[data-readonly="1"] > .step-index{flex-basis:34px !important;}
}

/* v2.9.37 — Dokumen Pendukung : Foto Dokumentasi = 45 : 55.
   Keep the ratio intact down to mobile breakpoint; remove earlier min-width overrides. */
.pkg-doc-photo-layout{
  grid-template-columns:minmax(0,45fr) minmax(0,55fr) !important;
  gap:18px !important;
}
@media(max-width:700px){
  .pkg-doc-photo-layout{grid-template-columns:1fr !important;}
}


/* v2.9.45 — clear Jadwal Real / Jadwal RGTK layout */
.schedule-reference-grid{
  display:grid !important;
  grid-template-columns:1fr 1fr !important;
  gap:14px !important;
  align-items:stretch !important;
}
.schedule-reference-card{
  min-width:0;
  display:grid;
  gap:4px;
  padding:16px 18px;
  border:1px solid #e2e8f0;
  border-radius:12px;
  background:#f8fafc;
}
.schedule-reference-card-rgtk{
  background:#f8fbff;
}
.schedule-reference-label{
  font-size:11px;
  font-weight:800;
  color:#64748b;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.schedule-reference-card strong{
  font-size:16px;
  line-height:1.2;
}
.schedule-reference-card span:not(.schedule-reference-label){
  color:#475569;
}
@media(max-width:760px){
  .schedule-reference-grid{grid-template-columns:1fr !important;}
}


/* SIMPKG v2.9.56 — monitoring layout hardening */
.monitoring-page-root{width:100%;min-width:0}
.monitoring-page-root .monitoring-main-grid{display:block!important;grid-template-columns:none!important}
.monitoring-page-root .monitoring-progress-panel{width:100%;margin:0 0 18px}
.monitoring-page-root .monitoring-resource-layout{display:grid!important;grid-template-columns:calc(70% - 9px) calc(30% - 9px)!important;gap:18px!important;align-items:stretch;margin:0 0 18px;width:100%!important;box-sizing:border-box!important}
.monitoring-page-root .monitoring-resource-layout>*{min-width:0}
.monitoring-page-root .monitoring-recent-grid{display:grid;grid-template-columns:1fr 1fr}
.monitoring-page-root .monitoring-secondary-layout{display:grid;grid-template-columns:calc(70% - 9px) calc(30% - 9px);gap:18px;align-items:start;width:100%;box-sizing:border-box}
.monitoring-page-root .monitoring-secondary-layout>*{min-width:0}
@media(max-width:1100px){.monitoring-page-root .monitoring-resource-layout{grid-template-columns:calc(68% - 9px) calc(32% - 9px)!important}}
@media(max-width:900px){.monitoring-page-root .monitoring-resource-layout,.monitoring-page-root .monitoring-secondary-layout{grid-template-columns:1fr}.monitoring-page-root .monitoring-recent-grid{grid-template-columns:1fr}}


/* v2.9.74 — Global Periode Kinerja */
.period-switcher-wrap{display:flex;align-items:center;margin-right:8px}
.period-switcher-btn{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:180px;padding:7px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--text);cursor:pointer;text-align:left;line-height:1.15}
.period-switcher-btn:hover{background:#f8fafc;border-color:#cbd5e1}
.period-switcher-label{font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
.period-switcher-btn strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}
.period-switcher-dialog{width:min(520px,calc(100vw - 30px))}
.period-switcher-form{padding:20px}
.period-switcher-form label{display:grid;gap:6px}
.period-switcher-form label>span{font-size:11px;font-weight:700;color:var(--text)}
.period-switcher-form select,.period-switcher-form input[type=text]{width:100%;height:42px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--text);font:inherit;box-sizing:border-box}
.period-switcher-form select:disabled{background:#f8fafc;color:#64748b}
.period-switcher-note{margin-top:12px;padding:10px 12px;border-radius:10px;background:#f8fafc;color:#64748b;font-size:10px;line-height:1.55}
.period-switcher-form .modal-actions{display:flex;justify-content:flex-end;margin-top:16px}
.period-context-field{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:40px;padding:0 12px;border:1px solid var(--line);border-radius:10px;background:#fff;box-sizing:border-box}
.period-context-field>span{font-size:9px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.period-context-field>strong{font-size:11px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.period-context-field.report-period-context{min-width:210px}
@media(max-width:900px){.period-switcher-btn{min-width:150px}.period-switcher-btn strong{max-width:150px}.period-switcher-wrap{margin-right:4px}}
@media(max-width:700px){.period-switcher-label{display:none}.period-switcher-btn{min-width:44px;height:38px;align-items:center;padding:0 8px}.period-switcher-btn strong{max-width:110px}.period-context-field{width:100%}}


/* v2.9.78 — notification dropdown scroll */
.notification-menu::-webkit-scrollbar{width:7px}.notification-menu::-webkit-scrollbar-track{background:transparent}.notification-menu::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:999px}.notification-menu::-webkit-scrollbar-thumb:hover{background:#94a3b8}.notification-menu-head{position:sticky;top:0;z-index:2;background:#fff}


/* SIMPKG v2.9.82 — change-password responsive scroll fix */
.login-page{
  min-height:100dvh !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  box-sizing:border-box;
}
@media (max-height:850px),(max-width:720px){
  .login-page{
    align-items:flex-start !important;
    justify-items:center !important;
    padding:16px 0 !important;
  }
  .login-wrap{
    margin:0 auto !important;
  }
  .login-card{
    max-height:none !important;
  }
}
@media (max-width:480px){
  .login-page{padding:10px 0 !important;}
  .login-wrap{width:min(430px,calc(100% - 20px)) !important;}
  .login-card{padding:20px !important;}
}
