
:root{
  --bg:#f4f7fb;--surface:#ffffff;--surface-2:#f8fafc;--ink:#0f172a;--muted:#64748b;--line:#e2e8f0;
  --primary:#0f766e;--primary-2:#14b8a6;--blue:#2563eb;--amber:#d97706;--red:#dc2626;--green:#16a34a;--purple:#7c3aed;
  --shadow:0 18px 50px rgba(15,23,42,.08);--shadow-soft:0 8px 22px rgba(15,23,42,.06);--radius:22px;
  --sidebar:#0f172a;--sidebar-soft:#172033;--sidebar-text:#e5edf8;
}
[data-theme=dark]{--bg:#0b1220;--surface:#111827;--surface-2:#0f172a;--ink:#e5edf8;--muted:#94a3b8;--line:#243244;--shadow:0 18px 50px rgba(0,0,0,.28);--shadow-soft:0 8px 22px rgba(0,0,0,.22);--sidebar:#080d18;--sidebar-soft:#111827;--sidebar-text:#f8fafc}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;font-size:14px}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}textarea{min-height:118px;resize:vertical}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:286px;background:var(--sidebar);color:var(--sidebar-text);padding:18px 14px;overflow:auto;z-index:50;transition:transform .25s ease,box-shadow .25s ease}.brand{display:flex;gap:12px;align-items:center;padding:12px 10px 20px;margin-bottom:4px;border-bottom:1px solid rgba(255,255,255,.10)}.brand-logo{width:46px;height:46px;border-radius:15px;background:#14b8a6;color:white;display:grid;place-items:center;font-weight:950;letter-spacing:-.04em;box-shadow:0 12px 28px rgba(20,184,166,.24)}.brand b{display:block;font-size:16px}.brand small{display:block;color:#9fb1c9;margin-top:3px}.nav-group{padding:10px 0}.nav-title{padding:12px 12px 7px;color:#8ea0b8;font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:900}.nav-link{position:relative;display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:15px;color:#cbd5e1;font-weight:800;margin:3px 0;transition:transform .18s ease,background .18s ease,color .18s ease}.nav-link span{width:32px;height:32px;border-radius:12px;background:rgba(255,255,255,.08);display:grid;place-items:center;transition:transform .18s ease,background .18s ease}.nav-link:hover{background:rgba(255,255,255,.08);color:#fff;transform:translateX(4px)}.nav-link:hover span{transform:rotate(-5deg) scale(1.05);background:rgba(20,184,166,.20)}.nav-link.active{background:#14b8a6;color:#fff;box-shadow:0 12px 28px rgba(20,184,166,.18)}.nav-link.active span{background:rgba(255,255,255,.20)}.nav-link.logout{margin-top:14px;color:#fecaca}.main{margin-left:286px;min-height:100vh;padding:18px}.topbar{position:sticky;top:12px;z-index:30;background:rgba(255,255,255,.88);backdrop-filter:blur(18px);border:1px solid var(--line);border-radius:24px;padding:14px 16px;display:flex;justify-content:space-between;align-items:center;gap:14px;box-shadow:var(--shadow-soft)}[data-theme=dark] .topbar{background:rgba(17,24,39,.86)}.topbar-left{display:flex;gap:13px;align-items:center}.topbar h1{margin:0;font-size:23px;letter-spacing:-.04em}.topbar p{margin:3px 0 0;color:var(--muted);font-weight:650}.topbar-actions{display:flex;align-items:center;gap:10px}.hamb{display:none;width:42px;height:42px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}.content{padding:18px 0 8px}.footer{padding:20px;text-align:center;color:var(--muted);font-weight:700}.card,.filter-panel,.stat-card,.kpi-card,.report-card,.month-card,.rs-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-soft)}.card{padding:18px;margin-bottom:18px}.card-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;margin-bottom:16px}.card-head h3{margin:0;font-size:19px;letter-spacing:-.035em}.card-head p{margin:5px 0 0;color:var(--muted);font-weight:650;line-height:1.5}.hero-dashboard{background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:24px;display:flex;justify-content:space-between;gap:18px;align-items:center;box-shadow:var(--shadow);margin-bottom:18px;position:relative;overflow:hidden}.hero-dashboard:after{content:"";position:absolute;right:-44px;top:-44px;width:138px;height:138px;border-radius:50%;background:#eefdfb;border:1px solid #ccfbf1}[data-theme=dark] .hero-dashboard:after{background:#102b2a;border-color:#164e4a}.hero-dashboard>*{position:relative;z-index:1}.hero-badge{display:inline-flex;gap:8px;align-items:center;border:1px solid #99f6e4;background:#f0fdfa;color:var(--primary);border-radius:999px;padding:8px 11px;font-weight:900;font-size:12px;text-transform:uppercase;letter-spacing:.06em}.hero-badge i{width:8px;height:8px;border-radius:50%;background:var(--primary-2);box-shadow:0 0 0 5px rgba(20,184,166,.14)}.hero-dashboard h2{font-size:33px;letter-spacing:-.06em;margin:12px 0 7px}.hero-dashboard p{max-width:760px;margin:0;color:var(--muted);font-weight:650;line-height:1.6}.hero-action{display:flex;gap:10px;flex-wrap:wrap}.filter-panel{display:grid;grid-template-columns:180px minmax(220px,1fr) auto;gap:14px;align-items:end;padding:16px;margin-bottom:18px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid .full{grid-column:1/-1}.form-actions{display:flex;gap:10px;align-items:center;margin-top:16px}label{display:block;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;margin:0 0 7px}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:15px;background:var(--surface);color:var(--ink);padding:11px 13px;outline:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}input:focus,select:focus,textarea:focus{border-color:#14b8a6;box-shadow:0 0 0 4px rgba(20,184,166,.13)}.btn,button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border:1px solid var(--line);border-radius:14px;padding:0 14px;background:var(--surface);color:var(--ink);font-weight:900;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background .16s ease,border-color .16s ease}.btn:hover,button:hover{transform:translateY(-1px);box-shadow:var(--shadow-soft)}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-success{background:var(--green);border-color:var(--green);color:#fff}.btn-danger{background:var(--red);border-color:var(--red);color:#fff}.btn-light{background:#fff;color:var(--primary);border-color:#ccfbf1}.btn-sm{min-height:32px;border-radius:11px;padding:0 11px;font-size:12px}.btn-block{width:100%}.theme-toggle,.login-theme{width:42px;height:42px;border-radius:14px}.rs-switch select{min-width:215px}.user-pill{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--surface);border-radius:17px;padding:8px 10px}.avatar{width:34px;height:34px;border-radius:12px;background:var(--primary);color:white;display:grid;place-items:center;font-weight:950}.user-pill b{display:block;font-size:13px}.user-pill small{display:block;color:var(--muted);font-weight:800}.stat-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-bottom:18px}.stat-card{position:relative;padding:18px;overflow:hidden;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.stat-card:hover,.kpi-card:hover,.card:hover,.report-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.stat-icon{width:46px;height:46px;border-radius:16px;background:#eef2ff;color:var(--blue);display:grid;place-items:center;font-size:18px;font-weight:950;margin-bottom:14px}.stat-card.tone-success .stat-icon{background:#dcfce7;color:#047857}.stat-card.tone-info .stat-icon{background:#dbeafe;color:#1d4ed8}.stat-card.tone-warning .stat-icon{background:#fef3c7;color:#92400e}.stat-card.tone-danger .stat-icon{background:#fee2e2;color:#b91c1c}.stat-card p,.kpi-card span{margin:0;color:var(--muted);font-size:12px;font-weight:950;letter-spacing:.06em;text-transform:uppercase}.stat-card h3{margin:8px 0 5px;font-size:23px;letter-spacing:-.045em}.stat-card span,.kpi-card small{color:var(--muted);font-weight:750;line-height:1.45}.kpi-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin:0 0 18px}.kpi-card{padding:17px;position:relative;overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}.kpi-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--primary-2)}.kpi-card.hot:before{background:var(--amber)}.kpi-card b{display:block;margin:8px 0 4px;font-size:19px;letter-spacing:-.03em}.chart-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.clean-chart-card{padding:18px}.chart-canvas-wrap{position:relative;width:100%;height:360px;border:1px solid var(--line);background:var(--surface-2);border-radius:18px;padding:12px}.chart-canvas-wrap canvas{width:100%!important;height:100%!important;display:block}.chart-horizontal{height:390px}.chart-note{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:10px;color:var(--muted);font-size:12px;font-weight:750}.chart-tooltip{position:fixed;z-index:500;pointer-events:none;background:#0f172a;color:#fff;border-radius:11px;padding:8px 10px;font-size:12px;font-weight:850;box-shadow:0 12px 30px rgba(0,0,0,.22);transform:translate(-50%,-120%);white-space:nowrap}.unit-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}.unit-detail-card{border:1px solid var(--line);background:var(--surface);border-radius:18px;padding:14px}.unit-detail-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.unit-detail-head b{font-size:15px}.unit-detail-head span{color:var(--primary);font-weight:950}.unit-mini-months{height:96px;display:grid;grid-template-columns:repeat(12,minmax(16px,1fr));gap:5px;align-items:end}.unit-mini-bar{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}.unit-mini-bar i{display:block;width:100%;max-width:24px;min-height:3px;border-radius:7px 7px 3px 3px;background:var(--primary-2);animation:growBar .8s ease both}.unit-mini-bar:nth-child(3n) i{background:var(--amber)}.unit-mini-bar:nth-child(4n) i{background:var(--blue)}.unit-mini-bar small{font-size:9px;color:var(--muted);font-weight:900}.monthly-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.month-card{padding:14px;transition:transform .18s ease}.month-title{display:flex;justify-content:space-between;gap:10px;margin-bottom:11px}.month-title b{font-size:17px}.month-title span{color:var(--muted);font-weight:900}.barline{display:grid;grid-template-columns:82px 1fr 36px;gap:8px;align-items:center;margin:8px 0}.barline span{font-size:12px;font-weight:900;color:var(--muted)}.barline i{height:9px;border-radius:999px;background:var(--primary-2);animation:barGrow .75s ease both}.barline.alt i{background:var(--amber)}.barline.third i{background:var(--blue)}.barline b{text-align:right;font-size:12px}.month-card small{display:block;color:var(--muted);font-weight:750;margin:-3px 0 7px 90px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:18px;background:var(--surface)}table{width:100%;border-collapse:separate;border-spacing:0}th,td{padding:12px 13px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}th{background:var(--surface-2);color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em;font-weight:950}tbody tr{transition:background .14s ease}tbody tr:hover{background:rgba(20,184,166,.06)}tbody tr:last-child td{border-bottom:0}.empty,.empty-state{text-align:center;color:var(--muted);padding:28px!important}.empty-state{border:1px dashed var(--line);border-radius:18px;background:var(--surface-2)}.empty-state b{display:block;color:var(--ink);font-size:16px;margin-bottom:6px}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:950}.badge-soft{background:#f0fdfa;color:var(--primary);border:1px solid #ccfbf1}.badge-success{background:#dcfce7;color:#047857}.badge-warning{background:#fef3c7;color:#92400e}.badge-danger{background:#fee2e2;color:#b91c1c}.badge-info{background:#dbeafe;color:#1d4ed8}.toolbar{display:flex;gap:10px;justify-content:space-between;align-items:center;margin-bottom:14px}.search{min-width:260px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.rs-summary,.report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.rs-card,.report-card{padding:16px}.rs-card b{display:block;font-size:16px}.rs-card>span{display:inline-block;margin:5px 0 12px;color:var(--muted);font-weight:850}.rs-card div{display:flex;justify-content:space-between;border-top:1px dashed var(--line);padding-top:9px;margin-top:8px}.big-number{font-size:32px;font-weight:950;color:var(--primary);letter-spacing:-.05em}.item-row{display:grid;grid-template-columns:1fr 140px 120px auto;gap:10px;align-items:end;margin-bottom:10px}.approval-box{border:1px solid var(--line);border-radius:18px;background:var(--surface-2);padding:14px}.action-stack{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.muted{color:var(--muted)}.nowrap{white-space:nowrap}.login-body{min-height:100vh;background:var(--bg)}.login-theme{position:fixed;right:22px;top:22px;z-index:10}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;gap:28px;align-items:center;max-width:1120px;margin:auto;padding:24px}.login-hero{min-height:520px;border-radius:34px;background:var(--sidebar);color:#fff;padding:48px;display:flex;flex-direction:column;justify-content:center;box-shadow:var(--shadow);position:relative;overflow:hidden}.login-hero:after{content:"";position:absolute;right:-70px;bottom:-70px;width:190px;height:190px;background:#14b8a6;border-radius:44px;transform:rotate(18deg);opacity:.22}.login-hero h1{margin:22px 0 14px;font-size:52px;line-height:1.03;letter-spacing:-.065em}.login-hero p{font-size:17px;line-height:1.7;color:#cbd5e1;max-width:520px}.hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:30px}.hero-stats div{border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.06);border-radius:20px;padding:16px}.hero-stats b{display:block;font-size:25px}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:32px;box-shadow:var(--shadow);padding:38px}.login-logo{width:70px;height:70px;border-radius:23px;background:var(--primary);display:grid;place-items:center;color:white;font-weight:950;font-size:24px;margin:0 auto 18px}.login-card h2{text-align:center;margin:0;font-size:29px;letter-spacing:-.045em}.login-card p{text-align:center;color:var(--muted);margin:6px 0 26px}.login-copy{text-align:center;margin-top:20px;display:block;color:var(--muted)}.alert{border-radius:16px;padding:13px 14px;margin-bottom:14px;border:1px solid var(--line);background:var(--surface)}.alert-danger{background:#fef2f2;border-color:#fecaca;color:#991b1b}.alert-success{background:#f0fdf4;border-color:#bbf7d0;color:#166534}.alert-warning{background:#fffbeb;border-color:#fde68a;color:#92400e}.swal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.52);display:grid;place-items:center;z-index:9999;animation:fadeIn .18s ease}.swal-box{width:min(430px,calc(100% - 28px));background:var(--surface);border:1px solid var(--line);border-radius:26px;padding:26px;text-align:center;box-shadow:0 25px 90px rgba(0,0,0,.28);animation:popIn .22s ease}.swal-icon{width:58px;height:58px;margin:0 auto 14px;border-radius:999px;display:grid;place-items:center;font-size:28px;font-weight:950}.swal-success .swal-icon{background:#dcfce7;color:#047857}.swal-danger .swal-icon,.swal-error .swal-icon{background:#fee2e2;color:#b91c1c}.swal-warning .swal-icon{background:#fef3c7;color:#b45309}.swal-box h3{margin:0 0 8px;font-size:22px}.swal-box p{margin:0 0 18px;color:var(--muted);line-height:1.55}.swal-actions{display:flex;gap:10px;justify-content:center}.swal-actions .btn{min-width:110px}.smart-select{position:relative;width:100%}.smart-select-original{display:none!important}.smart-select-trigger{min-height:44px;border:1px solid var(--line);border-radius:15px;background:var(--surface);color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 13px;font-weight:850;cursor:pointer;box-shadow:none}.smart-select-trigger:after{content:'⌄';font-size:14px;color:var(--muted)}.smart-select.open .smart-select-trigger{border-color:#14b8a6;box-shadow:0 0 0 4px rgba(20,184,166,.13)}.smart-panel{display:none;position:absolute;z-index:80;left:0;right:0;top:calc(100% + 8px);border:1px solid var(--line);background:var(--surface);border-radius:18px;box-shadow:0 24px 70px rgba(15,23,42,.22);padding:10px}.smart-select.open .smart-panel{display:block;animation:dropdownPop .18s ease}.smart-search{height:42px;margin-bottom:8px}.smart-options{max-height:260px;overflow:auto;display:grid;gap:5px}.smart-option{border:0;background:transparent;color:var(--ink);text-align:left;border-radius:12px;padding:10px 11px;cursor:pointer;font-weight:800}.smart-option:hover,.smart-option.active{background:#f0fdfa;color:var(--primary)}.smart-empty{padding:14px;color:var(--muted);font-weight:800;text-align:center}.ui-ready .card,.ui-ready .stat-card,.ui-ready .kpi-card,.ui-ready .report-card,.ui-ready .month-card,.ui-ready .unit-detail-card{opacity:0;transform:translateY(10px)}.ui-ready .visible,.ui-ready .content>*{animation:fadeUp .45s ease forwards}@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes popIn{from{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}@keyframes dropdownPop{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}@keyframes barGrow{from{width:0;opacity:.45}to{opacity:1}}@keyframes growBar{from{height:0!important;opacity:.45}to{opacity:1}}
@media(max-width:1350px){.stat-grid{grid-template-columns:repeat(3,1fr)}.kpi-strip{grid-template-columns:repeat(3,1fr)}}@media(max-width:1120px){.chart-grid,.grid-2,.login-wrap{grid-template-columns:1fr}.monthly-grid{grid-template-columns:repeat(3,1fr)}.unit-detail-grid{grid-template-columns:1fr}.rs-summary,.report-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:980px){.hamb{display:grid}.sidebar{transform:translateX(-110%)}.sidebar.open{transform:none;box-shadow:0 0 0 999px rgba(15,23,42,.45)}.backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:40;opacity:0;pointer-events:none;transition:.2s}.backdrop.show{opacity:1;pointer-events:auto}.main{margin-left:0;padding:12px}.topbar{align-items:flex-start}.topbar-actions{flex-wrap:wrap;justify-content:flex-end}.filter-panel{grid-template-columns:1fr 1fr}.login-hero{display:none}.login-card{max-width:480px;margin:auto}.item-row{grid-template-columns:1fr 120px}.item-row input:nth-child(3){grid-column:1/-1}.chart-canvas-wrap{height:330px}}@media(max-width:680px){.stat-grid,.kpi-strip,.monthly-grid,.rs-summary,.report-grid,.form-grid,.filter-panel{grid-template-columns:1fr}.topbar{display:block}.topbar-actions{margin-top:12px;justify-content:space-between}.user-pill div:last-child{display:none}.hero-dashboard{display:block;padding:20px}.hero-dashboard h2{font-size:28px}.hero-action{margin-top:14px}.btn,button{width:100%;margin-bottom:7px}.toolbar{display:block}.search{min-width:0;margin-bottom:10px}.form-actions{display:block}.card-head{display:block}.month-card small{margin-left:0}.barline{grid-template-columns:76px 1fr 30px}.chart-canvas-wrap{height:300px;padding:8px}.chart-horizontal{height:350px}.unit-mini-months{grid-template-columns:repeat(6,1fr);height:150px}.smart-panel{position:fixed;left:14px;right:14px;top:20%;max-height:65vh}.smart-options{max-height:46vh}}


/* Flow pengajuan aset */
.flow-note{background:#f8fafc;border:1px solid var(--line);border-radius:16px;padding:12px 14px;margin-bottom:14px;color:var(--muted);line-height:1.5}
.flow-note b{color:var(--ink)}
.process-flow{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:18px}
.process-flow>div{position:relative;display:flex;align-items:center;justify-content:center;height:54px;border-radius:16px;background:#f8fafc;border:1px solid var(--line);font-weight:800;color:var(--muted);box-shadow:0 8px 20px rgba(15,23,42,.04);transition:.25s ease;animation:softRise .45s ease both}
.process-flow>div span{font-size:11px;font-weight:700;margin-left:6px;color:var(--muted)}
.process-flow>div.done{background:#ecfdf5;border-color:#99f6e4;color:#0f766e;transform:translateY(-1px)}
.approval-stack{display:grid;grid-template-columns:auto 1fr;gap:4px 6px;align-items:center;min-width:160px}.approval-stack small{color:var(--muted)}
.summary-box{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 18px 0}.summary-box>div{background:#f8fafc;border:1px solid var(--line);border-radius:16px;padding:14px}.summary-box span{display:block;color:var(--muted);font-size:12px;margin-bottom:4px}.summary-box b{color:var(--ink)}
@media(max-width:900px){.process-flow,.summary-box{grid-template-columns:1fr}.approval-stack{grid-template-columns:1fr}.approval-stack small{margin-bottom:5px}}


/* Corporate icon + approval timeline update */
.icon{width:18px;height:18px;display:block}.nav-ico{color:inherit}.nav-link .nav-badge{margin-left:auto;min-width:24px;height:24px;border-radius:999px;background:#ef4444;color:#fff;display:grid;place-items:center;font-style:normal;font-size:11px;font-weight:950;box-shadow:0 10px 22px rgba(239,68,68,.25);animation:pulseBadge 1.8s infinite}.nav-link b{white-space:nowrap}.nav-link.active .nav-badge{background:#fff;color:#0f766e}.stat-icon .icon{width:23px;height:23px}.role-panel{overflow:hidden;position:relative}.role-panel:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--primary)}.role-panel-head{display:flex;align-items:center;gap:14px;margin-bottom:16px}.role-panel-head h3{margin:0;font-size:20px}.role-panel-head p{margin:5px 0 0;color:var(--muted);font-weight:700}.role-panel-head>b{margin-left:auto;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:8px 12px;color:var(--primary)}.role-icon{width:48px;height:48px;border-radius:17px;background:#ecfeff;color:var(--primary);display:grid;place-items:center;box-shadow:0 12px 24px rgba(20,184,166,.12)}.role-icon .icon{width:24px;height:24px}.role-panel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.role-mini-card{border:1px solid var(--line);background:var(--surface-2);border-radius:18px;padding:14px;display:flex;gap:12px;align-items:flex-start;transition:.18s ease;animation:fadeUp .45s ease both}.role-mini-card:hover{transform:translateY(-2px);background:#f0fdfa}.role-mini-card>span{width:38px;height:38px;border-radius:14px;background:#fff;color:var(--primary);display:grid;place-items:center;box-shadow:var(--shadow-soft)}.role-mini-card b{display:block;font-size:18px;letter-spacing:-.03em}.role-mini-card small{display:block;color:var(--ink);font-weight:950;margin-top:2px}.role-mini-card em{display:block;color:var(--muted);font-style:normal;font-size:12px;font-weight:700;margin-top:3px;line-height:1.4}.approval-timeline{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0 0 16px}.approval-timeline.compact{display:flex;flex-wrap:wrap;gap:6px;min-width:280px;margin:0}.timeline-step{position:relative;border:1px solid var(--line);background:var(--surface-2);border-radius:17px;padding:12px;display:flex;gap:10px;align-items:flex-start;min-height:72px;transition:.2s ease}.timeline-step:after{content:"";position:absolute;right:-11px;top:50%;width:10px;height:2px;background:var(--line)}.timeline-step:last-child:after{display:none}.timeline-step i{width:28px;height:28px;border-radius:999px;display:grid;place-items:center;font-style:normal;font-weight:950;flex:0 0 auto;background:#e2e8f0;color:#64748b}.timeline-step b{display:block;font-size:13px}.timeline-step span{display:block;color:var(--muted);font-size:12px;font-weight:750;margin-top:2px}.timeline-step small{display:block;color:var(--muted);font-size:11px;margin-top:3px;line-height:1.35}.timeline-step.done{background:#f0fdfa;border-color:#99f6e4;box-shadow:0 8px 22px rgba(20,184,166,.08)}.timeline-step.done i{background:#14b8a6;color:#fff}.timeline-step.wait{background:#fff7ed;border-color:#fed7aa}.timeline-step.wait i{background:#fed7aa;color:#92400e}.approval-timeline.compact .timeline-step{min-height:0;padding:7px 9px;border-radius:999px;align-items:center}.approval-timeline.compact .timeline-step:after,.approval-timeline.compact .timeline-step small{display:none}.approval-timeline.compact .timeline-step i{width:20px;height:20px;font-size:11px}.approval-timeline.compact .timeline-step b{font-size:11px}.approval-timeline.compact .timeline-step span{display:none}.approval-actions{min-width:260px}.btn-disabled,button:disabled,.btn:disabled{background:#f1f5f9!important;border-color:#e2e8f0!important;color:#94a3b8!important;cursor:not-allowed!important;box-shadow:none!important;transform:none!important}.btn-dark{background:#0f172a;border-color:#0f172a;color:#fff}.process-flow>div{overflow:hidden}.process-flow>div.done:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:translateX(-120%);animation:shine 2.8s ease infinite}.card,.stat-card,.kpi-card,.role-mini-card,.nav-link{will-change:transform}.table-wrap tbody tr{animation:rowIn .35s ease both}.table-wrap tbody tr:nth-child(2){animation-delay:.03s}.table-wrap tbody tr:nth-child(3){animation-delay:.06s}.table-wrap tbody tr:nth-child(4){animation-delay:.09s}@keyframes pulseBadge{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes shine{0%{transform:translateX(-130%)}55%,100%{transform:translateX(130%)}}@keyframes rowIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(max-width:1120px){.role-panel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.approval-timeline{grid-template-columns:1fr}.timeline-step:after{display:none}}@media(max-width:680px){.role-panel-head{display:block}.role-panel-head>b{display:inline-block;margin:12px 0 0}.role-panel-grid{grid-template-columns:1fr}.approval-actions{min-width:0}.approval-timeline.compact{min-width:0}.timeline-step{min-height:0}}

/* Fix closing form: make input area clearly editable and prevent decorative layers from blocking typing */
.process-flow{grid-template-columns:repeat(4,minmax(0,1fr))}
.approval-timeline{grid-template-columns:repeat(4,minmax(0,1fr))}
.process-flow>div.done:before{pointer-events:none;z-index:0}
.process-flow>div>*{position:relative;z-index:1}
.closing-card{margin-top:18px}
.closing-card.input-ready{border-color:#99f6e4;box-shadow:0 18px 55px rgba(20,184,166,.12)}
.closing-card.input-ready input:not([type=file]),.closing-card.input-ready textarea{background:#fff;border-color:#99f6e4;box-shadow:0 0 0 3px rgba(20,184,166,.08)}
[data-theme=dark] .closing-card.input-ready input:not([type=file]),[data-theme=dark] .closing-card.input-ready textarea{background:#111827;border-color:#0f766e}
.form-card input,.form-card textarea,.form-card select{position:relative;z-index:2;pointer-events:auto}


/* Soft corporate visual tuning 2026-06-01: reduce glare, keep modern layout */
:root{
  --bg:#eef3f8;
  --surface:#fbfcfe;
  --surface-2:#f4f7fb;
  --ink:#172033;
  --muted:#6b778a;
  --line:#d9e3ee;
  --primary:#0f766e;
  --primary-2:#2dd4bf;
  --shadow:0 16px 42px rgba(26,42,70,.075);
  --shadow-soft:0 8px 22px rgba(26,42,70,.055);
  --sidebar:#132033;
  --sidebar-soft:#1d2b42;
  --sidebar-text:#e8eef7;
}
body{background:linear-gradient(180deg,#eef3f8 0%,#e9f0f6 100%);}
.main{background:transparent;}
.topbar{background:rgba(251,252,254,.94);border-color:#dde6f0;box-shadow:0 12px 34px rgba(26,42,70,.07)}
.card,.filter-panel,.stat-card,.kpi-card,.report-card,.month-card,.rs-card,.user-pill,.theme-toggle,.hamb,.rs-switch select{background:#fbfcfe;border-color:#dde6f0;box-shadow:0 8px 22px rgba(26,42,70,.05)}
.card:hover,.stat-card:hover,.kpi-card:hover,.report-card:hover{box-shadow:0 14px 38px rgba(26,42,70,.085);}
input,select,textarea{background:#f7f9fc;border-color:#dbe5ef;color:#172033;}
input:focus,select:focus,textarea:focus{border-color:#5eead4;box-shadow:0 0 0 4px rgba(45,212,191,.13);background:#fff;}
.table-wrap{background:#fbfcfe;}
.table-wrap thead th{background:#f1f5fa;color:#667489;border-bottom-color:#dbe5ef;}
.table-wrap tbody tr{background:#fbfcfe;}
.table-wrap tbody tr:hover{background:#f6f9fc;}
.flow-note,.summary-box>div,.process-flow>div,.approval-box{background:#f4f7fb;border-color:#dbe5ef;color:#64748b;}
.timeline-step{background:#f4f7fb;border-color:#dbe5ef;}
.timeline-step.done,.process-flow>div.done{background:#edf8f6;border-color:#b8eee6;color:#0f766e;box-shadow:0 8px 20px rgba(15,118,110,.06)}
.timeline-step.wait{background:#fff6e8;border-color:#f4d7ab;}
.timeline-step.wait i{background:#f4d7ab;color:#8a5a12;}
.badge-info{background:#e7f7ff!important;color:#0369a1!important;border-color:#bae6fd!important;}
.badge-success{background:#eafaf2!important;color:#047857!important;border-color:#bbf7d0!important;}
.badge-warning{background:#fff6e8!important;color:#92400e!important;border-color:#f4d7ab!important;}
.btn-primary{background:#0f766e;border-color:#0f766e;box-shadow:0 10px 22px rgba(15,118,110,.14)}
.btn-primary:hover{background:#115e59;border-color:#115e59;}
.btn,button{box-shadow:none;}
.btn:hover,button:hover{box-shadow:0 9px 20px rgba(26,42,70,.08)}
.closing-card.input-ready{border-color:#b8eee6;box-shadow:0 14px 36px rgba(15,118,110,.09)}
.closing-card.input-ready input:not([type=file]),.closing-card.input-ready textarea{background:#f8fbfd;border-color:#b8eee6;box-shadow:0 0 0 3px rgba(45,212,191,.08)}
.hero-dashboard:after{background:#eaf7f5;border-color:#c7eee8;opacity:.75;}
.stat-icon,.role-icon{box-shadow:0 8px 18px rgba(26,42,70,.06)}
.nav-link.active{background:#0f766e;box-shadow:0 12px 26px rgba(15,118,110,.16)}
.nav-link:hover{background:rgba(255,255,255,.07)}
[data-theme=dark]{--bg:#0d1421;--surface:#111a28;--surface-2:#0f1724;--ink:#e6edf6;--muted:#9aa8bb;--line:#27364a;--sidebar:#080f1b;--sidebar-soft:#111a28;}
[data-theme=dark] body{background:#0d1421;}
[data-theme=dark] .topbar,[data-theme=dark] .card,[data-theme=dark] .filter-panel,[data-theme=dark] .stat-card,[data-theme=dark] .kpi-card,[data-theme=dark] .report-card,[data-theme=dark] .month-card,[data-theme=dark] .rs-card,[data-theme=dark] .user-pill{background:#111a28;border-color:#27364a;}
[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background:#0f1724;border-color:#27364a;color:#e6edf6;}
[data-theme=dark] .table-wrap thead th{background:#0f1724;color:#a8b5c7;}
[data-theme=dark] .table-wrap tbody tr,[data-theme=dark] .table-wrap{background:#111a28;}
[data-theme=dark] .table-wrap tbody tr:hover{background:#142033;}
[data-theme=dark] .flow-note,[data-theme=dark] .summary-box>div,[data-theme=dark] .process-flow>div,[data-theme=dark] .approval-box,[data-theme=dark] .timeline-step{background:#0f1724;border-color:#27364a;}

/* Dashboard quick action cleanup - 20260601 */
.dashboard-titlebar{display:flex;align-items:center;justify-content:flex-start;margin:0 0 12px}
.dashboard-actions{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;margin-bottom:18px;background:var(--surface);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow-soft)}
.dashboard-actions h3{margin:4px 0 4px;font-size:20px;letter-spacing:-.035em}
.dashboard-actions p{margin:0;color:var(--muted);font-weight:650;line-height:1.5}
.section-kicker{display:inline-flex;align-items:center;border:1px solid #ccfbf1;background:#f0fdfa;color:var(--primary);border-radius:999px;padding:5px 9px;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.06em}
.dashboard-action-buttons{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.dashboard-action-buttons .btn{gap:8px;padding-inline:15px;white-space:nowrap}
.dashboard-action-buttons .btn svg{width:17px;height:17px;stroke-width:2.4}
.btn-soft-primary{background:#eefaf8;color:var(--primary);border-color:#c7eee8}
.btn-soft-primary:hover{background:#ddf7f2;border-color:#9ee6dc;transform:translateY(-1px)}
[data-theme=dark] .section-kicker{background:#123331;border-color:#1f5b56;color:#5eead4}
[data-theme=dark] .btn-soft-primary{background:#123331;border-color:#1f5b56;color:#5eead4}
@media(max-width:760px){.dashboard-actions{display:block}.dashboard-action-buttons{justify-content:stretch;margin-top:14px}.dashboard-action-buttons .btn{width:100%;justify-content:center}}


.asset-detail-grid{display:grid;grid-template-columns:280px 1fr;gap:18px;align-items:start}.qr-card{text-align:center}.qr-card img{width:220px;height:220px;border:1px solid var(--line);border-radius:22px;padding:12px;background:#fff}.qr-mini{width:58px;height:58px;border-radius:12px;border:1px solid var(--line);padding:4px;background:#fff}.flow-note{background:#f8fafc;border:1px solid #e2e8f0;color:#475569;border-radius:16px;padding:14px 16px;margin-bottom:16px}.action-stack .btn{margin:2px}.summary-box{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:14px 0}.summary-box>div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:12px}.summary-box span{display:block;font-size:12px;color:#64748b;margin-bottom:4px}.summary-box b{font-size:15px;color:#0f172a}@media(max-width:800px){.asset-detail-grid{grid-template-columns:1fr}.summary-box{grid-template-columns:1fr}.qr-card img{width:180px;height:180px}}body.dark .flow-note,body.dark .summary-box>div{background:#111827;border-color:#243244;color:#cbd5e1}body.dark .summary-box b{color:#f8fafc}


/* Big feature update: active indicator, KPI count, print pages, audit, logo */
.nav-link{position:relative;overflow:hidden}.nav-link:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:4px;border-radius:999px;background:transparent;transition:.2s ease}.nav-link.active:before{background:#ffffff}.nav-link:hover .nav-ico{transform:translateX(3px)}.nav-ico{transition:.2s ease}.brand-logo-img{background:#fff!important;overflow:hidden}.brand-logo-img img{width:100%;height:100%;object-fit:contain}.logo-preview{width:92px;height:92px;border:1px solid var(--line);border-radius:20px;background:var(--surface-2);display:grid;place-items:center;margin-bottom:10px;overflow:hidden}.logo-preview img{width:100%;height:100%;object-fit:contain}.bottleneck-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.bottleneck-item{border:1px solid var(--line);border-radius:20px;background:var(--surface-2);padding:18px;display:flex;gap:14px;align-items:center}.bottleneck-item>span{width:44px;height:44px;border-radius:16px;background:#ecfeff;color:var(--primary);display:grid;place-items:center}.bottleneck-item b{font-size:28px;display:block}.bottleneck-item small{display:block;font-weight:900}.bottleneck-item em{font-style:normal;color:var(--muted);font-weight:750}.bottleneck-item em.danger{color:#b91c1c}.insight-grid .table-wrap{max-height:360px}.print-toolbar{position:sticky;top:0;z-index:10;background:#ffffffd9;backdrop-filter:blur(12px);border-bottom:1px solid #e2e8f0;padding:12px 20px;display:flex;gap:10px}.print-body{background:#e5e7eb!important}.print-page{width:210mm;min-height:297mm;margin:18px auto;background:#fff;padding:18mm;color:#0f172a;box-shadow:0 12px 40px rgba(15,23,42,.15)}.print-head{display:flex;align-items:center;gap:18px;border-bottom:2px solid #0f766e;padding-bottom:16px;margin-bottom:18px}.print-head h1{margin:0;font-size:24px}.print-head p{margin:4px 0 0;color:#64748b;font-weight:800}.print-logo{width:94px;height:94px;border:1px solid #e2e8f0;border-radius:18px;display:grid;place-items:center;overflow:hidden}.print-logo img{max-width:100%;max-height:100%;object-fit:contain}.print-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:16px 0}.print-summary>div,.print-box{border:1px solid #e2e8f0;background:#f8fafc;border-radius:14px;padding:12px}.print-summary span{display:block;font-size:11px;color:#64748b;font-weight:900;text-transform:uppercase}.print-summary b{display:block;margin-top:5px}.asset-label-print{text-align:center;display:grid;place-items:center;margin-top:30mm}.asset-label-print img{width:70mm;height:70mm}.asset-label-print h1{font-size:28px;margin:12px 0 4px}.asset-label-print h2{font-size:18px;margin:0 0 8px;color:#334155}.kpi-card b,.stat-card h3,.role-mini-card b,.kpi-count{transition:.2s ease}.report-card{color:inherit;text-decoration:none}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.action-stack{display:flex;gap:8px;flex-wrap:wrap;align-items:center}@media(max-width:1100px){.bottleneck-grid,.grid-3{grid-template-columns:1fr}.print-page{width:auto;min-height:0;margin:0;padding:18px}.print-summary{grid-template-columns:1fr 1fr}}@media print{.print-toolbar{display:none!important}.print-body{background:#fff!important}.print-page{width:auto;min-height:auto;margin:0;box-shadow:none;padding:0}.sidebar,.topbar,.footer{display:none!important}.table-wrap{overflow:visible!important}table{font-size:11px}a{color:#000;text-decoration:none}}

/* Soft hospital corporate layout + paginated tables - 20260601 */
:root{
  --bg:#f6f8fb;
  --surface:#ffffff;
  --surface-2:#f8fafc;
  --ink:#172033;
  --muted:#69778c;
  --line:#e3eaf2;
  --primary:#0f766e;
  --primary-2:#14b8a6;
  --blue:#2563eb;
  --amber:#d97706;
  --red:#dc2626;
  --green:#059669;
  --purple:#7c3aed;
  --shadow:0 18px 44px rgba(17,34,64,.075);
  --shadow-soft:0 7px 20px rgba(17,34,64,.055);
}
body{background:#f6f8fb!important;color:var(--ink);letter-spacing:.003em}.main{background:transparent}.content{padding-top:16px}.topbar{background:rgba(255,255,255,.94)!important;border-color:#e3eaf2!important;border-radius:20px;box-shadow:0 10px 28px rgba(17,34,64,.065)!important}.topbar h1{font-size:22px}.topbar p{color:#748298}.card,.filter-panel,.stat-card,.kpi-card,.report-card,.month-card,.rs-card,.dashboard-actions,.user-pill,.theme-toggle,.hamb,.rs-switch select{background:#fff!important;border-color:#e3eaf2!important;box-shadow:0 7px 20px rgba(17,34,64,.05)!important}.card,.filter-panel{border-radius:20px}.card:hover,.stat-card:hover,.kpi-card:hover,.report-card:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(17,34,64,.075)!important}.card-head h3{color:#172033}.card-head p{color:#6b7a8f}.sidebar{background:#122036!important;border-right:1px solid rgba(255,255,255,.08);box-shadow:10px 0 28px rgba(15,23,42,.08)}.brand{border-bottom-color:rgba(255,255,255,.08)}.nav-title{color:#91a1b8}.nav-link{border-radius:14px;color:#c7d4e7;position:relative;overflow:hidden}.nav-link span,.nav-link .nav-ico{transition:transform .18s ease,background .18s ease,color .18s ease}.nav-link:hover{background:rgba(255,255,255,.075)!important;transform:none;color:#fff}.nav-link:hover span,.nav-link:hover .nav-ico{transform:translateX(4px)}.nav-link:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:4px;border-radius:999px;background:transparent;transition:.18s ease}.nav-link.active{background:rgba(20,184,166,.12)!important;color:#ffffff!important;box-shadow:none!important}.nav-link.active:before{background:#14b8a6!important}.nav-link.active span{background:#0f766e!important;color:#fff}.nav-link .nav-badge{animation:pulseSoft 1.9s ease-in-out infinite}.stat-grid{gap:14px}.stat-card{border-radius:20px;padding:17px}.stat-card p,.kpi-card span{color:#718096}.stat-card h3{font-size:25px;color:#172033}.stat-icon,.role-icon{box-shadow:none}.stat-card.tone-info .stat-icon{background:#e8f1ff;color:#2563eb}.stat-card.tone-success .stat-icon{background:#e8fbf3;color:#047857}.stat-card.tone-warning .stat-icon{background:#fff7e8;color:#a15c07}.stat-card.tone-danger .stat-icon{background:#fff0f1;color:#be123c}.kpi-strip{gap:14px}.kpi-card{border-radius:20px}.kpi-card:before{width:4px}.filter-panel{padding:15px}.form-grid{gap:15px}label{color:#6b7a8f;font-size:11px}input,select,textarea{background:#f8fafc!important;border-color:#dfe8f2!important;border-radius:14px;color:#172033}input:focus,select:focus,textarea:focus{background:#fff!important;border-color:#5eead4!important;box-shadow:0 0 0 4px rgba(20,184,166,.12)!important}.btn,button{border-radius:13px;box-shadow:none!important}.btn-primary{background:#0f766e!important;border-color:#0f766e!important}.btn-primary:hover{background:#115e59!important;border-color:#115e59!important}.btn-success{background:#059669!important;border-color:#059669!important}.btn-danger{background:#dc2626!important;border-color:#dc2626!important}.btn-light,.btn-soft-primary{background:#eefaf8!important;border-color:#cdeee8!important;color:#0f766e!important}.badge{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:26px;border-radius:999px;border:1px solid transparent;padding:3px 10px;font-size:11px;font-weight:900;white-space:nowrap}.badge-soft{background:#f1f5f9!important;color:#475569!important;border-color:#e2e8f0!important}.badge-info{background:#e8f1ff!important;color:#1d4ed8!important;border-color:#bfdbfe!important}.badge-success{background:#e8fbf3!important;color:#047857!important;border-color:#bbf7d0!important}.badge-warning{background:#fff7e8!important;color:#9a5a05!important;border-color:#fde0aa!important}.badge-danger,.badge-error{background:#fff0f1!important;color:#be123c!important;border-color:#fecdd3!important}.badge-approved{background:#e8f1ff!important;color:#2563eb!important;border-color:#bfdbfe!important}.badge-closed{background:#e8fbf3!important;color:#047857!important;border-color:#bbf7d0!important}.badge-pending{background:#fff7e8!important;color:#9a5a05!important;border-color:#fde0aa!important}.badge-draft{background:#f1f5f9!important;color:#64748b!important;border-color:#e2e8f0!important}.table-wrap{border:1px solid #e3eaf2;border-radius:18px;overflow:auto;background:#fff!important;box-shadow:none}.table-wrap table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.table-wrap thead th{position:sticky;top:0;z-index:2;background:#f3f6fa!important;color:#607087!important;font-size:11px;letter-spacing:.055em;text-transform:uppercase;border-bottom:1px solid #dfe8f2!important}.table-wrap th,.table-wrap td{padding:12px 13px;border-bottom:1px solid #edf2f7;vertical-align:middle}.table-wrap tbody tr{background:#fff!important;transition:background .16s ease,transform .16s ease,box-shadow .16s ease}.table-wrap tbody tr:nth-child(even){background:#fbfdff!important}.table-wrap tbody tr:hover{background:#f3f8fb!important;box-shadow:inset 4px 0 0 #99f6e4}.table-wrap tbody tr.dt-hidden{display:none!important}.chart-canvas-wrap{background:#fbfdff!important;border-color:#e3eaf2!important}.chart-tooltip{background:#172033!important;border:1px solid rgba(255,255,255,.08)}.approval-timeline{grid-template-columns:repeat(4,minmax(0,1fr))}.timeline-step{background:#f8fafc!important;border-color:#e3eaf2!important}.timeline-step.done{background:#eefaf8!important;border-color:#b9eee5!important;color:#0f766e!important}.timeline-step.wait{background:#fff8ec!important;border-color:#f8d9a4!important}.flow-note,.summary-box>div,.process-flow>div,.approval-box,.bottleneck-item{background:#f8fafc!important;border-color:#e3eaf2!important}.dashboard-actions{border-radius:20px}.section-kicker{background:#eefaf8!important;border-color:#cdeee8!important;color:#0f766e!important}.smart-select-trigger{background:#f8fafc!important;border-color:#dfe8f2!important}.smart-menu{border-color:#e3eaf2!important;box-shadow:0 18px 42px rgba(17,34,64,.13)!important}.smart-option:hover,.smart-option.active{background:#eefaf8!important}.data-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 4px 0;color:#69778c;font-size:12px;font-weight:800}.data-pagination .page-info{display:flex;align-items:center;gap:8px}.data-pagination .page-buttons{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.data-pagination button{min-height:32px;min-width:34px;border-radius:10px;padding:0 10px;background:#fff!important;border-color:#dfe8f2!important;color:#475569}.data-pagination button.active{background:#0f766e!important;border-color:#0f766e!important;color:#fff}.data-pagination button:disabled{background:#f1f5f9!important;color:#9aa8bb!important}.data-pagination select{width:auto;min-width:78px;height:32px;padding:4px 8px;border-radius:10px;background:#fff!important}.content>.card,.content>.stat-grid,.content>.kpi-strip,.content>.chart-grid,.content>.filter-panel,.content>.dashboard-actions,.content>.toolbar{animation:softFadeUp .38s ease both}.content>.card:nth-child(2),.content>.stat-grid:nth-child(2),.content>.kpi-strip:nth-child(2),.content>.chart-grid:nth-child(2){animation-delay:.03s}.content>.card:nth-child(3),.content>.stat-grid:nth-child(3),.content>.kpi-strip:nth-child(3),.content>.chart-grid:nth-child(3){animation-delay:.06s}@keyframes softFadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes pulseSoft{0%,100%{transform:scale(1);box-shadow:0 0 0 rgba(239,68,68,0)}50%{transform:scale(1.06);box-shadow:0 0 0 5px rgba(239,68,68,.10)}}[data-theme=dark] body{background:#0d1421!important}[data-theme=dark] .topbar,[data-theme=dark] .card,[data-theme=dark] .filter-panel,[data-theme=dark] .stat-card,[data-theme=dark] .kpi-card,[data-theme=dark] .report-card,[data-theme=dark] .month-card,[data-theme=dark] .rs-card,[data-theme=dark] .dashboard-actions,[data-theme=dark] .table-wrap{background:#111a28!important;border-color:#27364a!important}[data-theme=dark] .table-wrap thead th{background:#0f1724!important;color:#a8b5c7!important}[data-theme=dark] .table-wrap tbody tr,[data-theme=dark] .table-wrap tbody tr:nth-child(even){background:#111a28!important}[data-theme=dark] .table-wrap tbody tr:hover{background:#142033!important}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea,[data-theme=dark] .smart-select-trigger{background:#0f1724!important;border-color:#27364a!important;color:#e6edf6}[data-theme=dark] .badge-soft{background:#0f1724!important;color:#cbd5e1!important;border-color:#27364a!important}[data-theme=dark] .data-pagination button,[data-theme=dark] .data-pagination select{background:#0f1724!important;border-color:#27364a!important;color:#cbd5e1!important}@media(max-width:760px){.main{padding:12px}.topbar{border-radius:18px}.stat-grid,.kpi-strip,.chart-grid,.monthly-grid,.role-panel-grid,.unit-detail-grid{grid-template-columns:1fr!important}.table-wrap th,.table-wrap td{padding:10px 11px}.data-pagination{display:block}.data-pagination .page-buttons{margin-top:10px}}


/* Dark mode readability hotfix + closing bulanan UI - 20260601 */
[data-theme=dark]{
  --bg:#0d1421!important;--surface:#111a28!important;--surface-2:#0f1724!important;--ink:#e6edf6!important;--muted:#a8b5c7!important;--line:#27364a!important;
}
[data-theme=dark] body,[data-theme=dark] .main,[data-theme=dark] .content{background:#0d1421!important;color:#e6edf6!important}
[data-theme=dark] h1,[data-theme=dark] h2,[data-theme=dark] h3,[data-theme=dark] h4,[data-theme=dark] b,[data-theme=dark] strong,
[data-theme=dark] .card-head h3,[data-theme=dark] .topbar h1,[data-theme=dark] .stat-card h3,[data-theme=dark] .kpi-card b,
[data-theme=dark] .report-card h3,[data-theme=dark] .month-card h3,[data-theme=dark] .unit-detail-head b{color:#f3f7fc!important}
[data-theme=dark] p,[data-theme=dark] small,[data-theme=dark] span,[data-theme=dark] td,[data-theme=dark] th,[data-theme=dark] label,
[data-theme=dark] .card-head p,[data-theme=dark] .topbar p,[data-theme=dark] .stat-card p,[data-theme=dark] .stat-card span,
[data-theme=dark] .kpi-card span,[data-theme=dark] .kpi-card small,[data-theme=dark] .muted,[data-theme=dark] .chart-note,
[data-theme=dark] .data-pagination,[data-theme=dark] .footer{color:#a8b5c7!important}
[data-theme=dark] .card,[data-theme=dark] .filter-panel,[data-theme=dark] .stat-card,[data-theme=dark] .kpi-card,[data-theme=dark] .report-card,
[data-theme=dark] .month-card,[data-theme=dark] .rs-card,[data-theme=dark] .dashboard-actions,[data-theme=dark] .user-pill,
[data-theme=dark] .theme-toggle,[data-theme=dark] .hamb,[data-theme=dark] .closing-locked{background:#111a28!important;border-color:#27364a!important;box-shadow:0 12px 30px rgba(0,0,0,.20)!important}
[data-theme=dark] .topbar{background:rgba(17,26,40,.94)!important;border-color:#27364a!important}
[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea,[data-theme=dark] .smart-select-trigger,[data-theme=dark] .smart-menu,
[data-theme=dark] .data-pagination select{background:#0f1724!important;border-color:#2b3b51!important;color:#e6edf6!important}
[data-theme=dark] input::placeholder,[data-theme=dark] textarea::placeholder{color:#73849b!important}
[data-theme=dark] input:focus,[data-theme=dark] select:focus,[data-theme=dark] textarea:focus{background:#121d2e!important;border-color:#2dd4bf!important;box-shadow:0 0 0 4px rgba(45,212,191,.13)!important}
[data-theme=dark] .btn,[data-theme=dark] button{background:#152235!important;border-color:#2b3b51!important;color:#e6edf6!important}
[data-theme=dark] .btn:hover,[data-theme=dark] button:hover{background:#1a2a41!important}
[data-theme=dark] .btn-primary{background:#0f766e!important;border-color:#14b8a6!important;color:#fff!important}
[data-theme=dark] .btn-success{background:#047857!important;border-color:#10b981!important;color:#fff!important}
[data-theme=dark] .btn-danger{background:#be123c!important;border-color:#fb7185!important;color:#fff!important}
[data-theme=dark] .btn-light,[data-theme=dark] .btn-soft-primary{background:#113333!important;border-color:#1f6b65!important;color:#99f6e4!important}
[data-theme=dark] .table-wrap{background:#111a28!important;border-color:#27364a!important}
[data-theme=dark] .table-wrap table{color:#e6edf6!important}
[data-theme=dark] .table-wrap thead th{background:#0f1724!important;color:#b8c5d6!important;border-bottom-color:#2b3b51!important}
[data-theme=dark] .table-wrap td,[data-theme=dark] .table-wrap th{border-bottom-color:#223146!important}
[data-theme=dark] .table-wrap tbody tr,[data-theme=dark] .table-wrap tbody tr:nth-child(even){background:#111a28!important;color:#e6edf6!important}
[data-theme=dark] .table-wrap tbody tr:hover{background:#152235!important;box-shadow:inset 4px 0 0 #14b8a6}
[data-theme=dark] .flow-note,[data-theme=dark] .summary-box>div,[data-theme=dark] .process-flow>div,[data-theme=dark] .approval-box,
[data-theme=dark] .bottleneck-item,[data-theme=dark] .timeline-step,[data-theme=dark] .chart-canvas-wrap,[data-theme=dark] .unit-detail-card,
[data-theme=dark] .print-summary>div,[data-theme=dark] .print-box{background:#0f1724!important;border-color:#27364a!important;color:#d9e4f2!important}
[data-theme=dark] .timeline-step.done{background:#0e2f2d!important;border-color:#1f6b65!important;color:#99f6e4!important}
[data-theme=dark] .timeline-step.wait{background:#302614!important;border-color:#7c4a10!important;color:#fde68a!important}
[data-theme=dark] .badge-soft{background:#172235!important;color:#cbd5e1!important;border-color:#2b3b51!important}
[data-theme=dark] .badge-info,[data-theme=dark] .badge-approved{background:#102544!important;color:#bfdbfe!important;border-color:#1d4ed8!important}
[data-theme=dark] .badge-success,[data-theme=dark] .badge-closed{background:#0d3026!important;color:#bbf7d0!important;border-color:#047857!important}
[data-theme=dark] .badge-warning,[data-theme=dark] .badge-pending{background:#302614!important;color:#fde68a!important;border-color:#92400e!important}
[data-theme=dark] .badge-danger,[data-theme=dark] .badge-error{background:#34131d!important;color:#fecdd3!important;border-color:#be123c!important}
.closing-summary .stat-card{min-height:168px}.closing-locked .action-stack{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.print-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.print-summary>div{border:1px solid var(--line);background:var(--surface-2);border-radius:14px;padding:12px}.print-summary span{display:block;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.print-summary b{display:block;margin-top:5px;font-size:15px}.print-box{border:1px solid var(--line);background:var(--surface-2);border-radius:14px;padding:13px;line-height:1.6}


/* full existing merge additions */
.nav-link.active{border-left:4px solid var(--primary);padding-left:calc(var(--space-3,12px) - 4px)}
.flow-note{background:var(--soft-primary,#ecfdf5);border:1px solid var(--border,#e5e7eb);border-radius:14px;padding:12px 14px;margin-bottom:14px;color:var(--text,#0f172a)}
.dark .flow-note{background:#142033;color:#dbeafe;border-color:#334155}
.item-row{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr;gap:10px;align-items:center;margin-bottom:10px}.item-row select,.item-row input{width:100%}
.print-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:14px 0}.print-summary>div{border:1px solid var(--border,#e5e7eb);border-radius:12px;padding:10px}.print-summary span{display:block;color:var(--muted,#64748b);font-size:12px}.print-summary b{font-size:15px}
@media(max-width:800px){.item-row{grid-template-columns:1fr}}

/* final existing-flow finishing */
.lock-note{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;padding:10px 12px;border-radius:14px;margin:8px 0}.dark .lock-note{background:#431407;border-color:#7c2d12;color:#fed7aa}.action-stack form{display:inline-flex;margin:0}.print-summary{gap:10px}.svg-qr-fallback{font-size:11px;word-break:break-all;color:#64748b}
.qty-approve-input{max-width:120px;text-align:right;font-weight:700}
.anfra-detail-form input[name^="catatan_item"]{min-width:180px}
.dark .qty-approve-input,.dark .anfra-detail-form input[name^="catatan_item"]{background:#111827;color:#e5e7eb;border-color:#374151}

/* PO detail legacy layout */
.po-info-table{width:100%;border-collapse:collapse}.po-info-table th{width:16%;background:#f8fafc;color:#6b7280;text-transform:uppercase;letter-spacing:.08em;font-size:12px;border-bottom:1px solid var(--border);padding:14px 18px;text-align:left}.po-info-table td{border-bottom:1px solid var(--border);padding:14px 18px}.po-detail-table tfoot th,.po-detail-table tfoot td{background:#f8fafc;font-weight:700}.action-card small{align-self:center;color:var(--muted)}
body.dark .po-info-table th,body.dark .po-detail-table tfoot th,body.dark .po-detail-table tfoot td{background:#152338;color:#d8e2f0}

/* =========================================================
   E-Logistik v2.0.0 Flatkit Corporate Tosca
   Override final untuk tampilan corporate, soft, dan tidak menyilaukan.
   ========================================================= */
:root{
  --bg:#eef4f5;
  --surface:#fbfefe;
  --surface-2:#f3f8f8;
  --ink:#173033;
  --muted:#667f84;
  --line:#d9e7e9;
  --primary:#0f8f86;
  --primary-2:#36cfc0;
  --primary-soft:#e7faf7;
  --sidebar:#103235;
  --sidebar-soft:#163f42;
  --sidebar-text:#e8fbf8;
  --shadow:0 18px 46px rgba(18,55,59,.09);
  --shadow-soft:0 8px 22px rgba(18,55,59,.065);
  --radius:18px;
}
html{scroll-behavior:smooth}
body{background:radial-gradient(circle at 18% 0%,rgba(54,207,192,.13),transparent 30%),linear-gradient(180deg,#eef6f7 0%,#f6f9fb 54%,#edf4f5 100%);color:var(--ink);font-size:14px;letter-spacing:.005em;}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.35) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.22) 1px,transparent 1px);background-size:34px 34px;opacity:.22;z-index:-1}
.app-shell{min-height:100vh}.main{padding:20px;transition:margin-left .22s ease}.content{max-width:1680px;margin:0 auto;padding:20px 0 10px}.sidebar{width:292px;background:linear-gradient(180deg,#102f33 0%,#0e282c 100%);border-right:1px solid rgba(255,255,255,.08);box-shadow:16px 0 50px rgba(9,40,43,.14);scrollbar-width:thin;scrollbar-color:rgba(54,207,192,.5) transparent}.brand{padding:18px 14px 22px;margin-bottom:8px;border-bottom:1px solid rgba(255,255,255,.10)}.brand-logo{background:linear-gradient(135deg,#0f8f86,#36cfc0);box-shadow:0 14px 32px rgba(54,207,192,.24)}.brand b{font-size:17px;letter-spacing:-.02em}.brand small{font-weight:700;color:#aee8e1}.nav-title{margin:12px 8px 8px;padding:0;color:#8fd7d0;font-size:10px;letter-spacing:.16em}.nav-link{border:1px solid transparent;margin:5px 0;border-radius:16px;color:#d8ebe9;min-height:46px}.nav-link b{font-size:13px;line-height:1.2}.nav-link span{background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.07)}.nav-link:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.08);transform:translateX(3px)}.nav-link.active{background:linear-gradient(135deg,#0f8f86,#1db5aa);box-shadow:0 14px 30px rgba(15,143,134,.22);border-color:rgba(255,255,255,.18)}.nav-badge{margin-left:auto;background:#f59e0b;color:#fff;min-width:25px;height:25px;border-radius:999px;display:grid;place-items:center;font-size:11px;font-weight:950}.topbar{top:14px;padding:13px 16px;background:rgba(251,254,254,.9);backdrop-filter:blur(18px);border-color:#d4e5e7;box-shadow:0 16px 42px rgba(18,55,59,.08);border-radius:24px}.topbar h1{font-size:24px;line-height:1.1;color:#113b3e}.topbar p{font-size:13px;color:#6d8589}.hamb{display:inline-grid;place-items:center;border-radius:15px;background:#f8ffff;color:#0f8f86;font-weight:900}.version-pill{display:inline-flex;align-items:center;justify-content:center;border:1px solid #c8ece8;background:#f0fffc;color:#0d766f;border-radius:999px;min-height:34px;padding:0 12px;font-weight:900;font-size:12px;white-space:nowrap}.user-pill,.rs-switch select,.theme-toggle{background:#f8ffff;border-color:#d7e8ea;box-shadow:0 8px 18px rgba(18,55,59,.045)}.avatar{background:linear-gradient(135deg,#0f8f86,#36cfc0);box-shadow:0 10px 20px rgba(15,143,134,.16)}.card,.filter-panel,.stat-card,.kpi-card,.report-card,.month-card,.rs-card,.unit-detail-card{border:1px solid #dce9eb;background:rgba(251,254,254,.94);box-shadow:0 12px 30px rgba(18,55,59,.06);border-radius:22px;animation:elogFadeUp .38s ease both}.card{padding:20px;margin-bottom:18px}.card-head h3{font-size:20px;color:#153b3e}.card-head p{font-size:13px}.card:hover,.stat-card:hover,.kpi-card:hover,.report-card:hover,.month-card:hover{transform:translateY(-2px);box-shadow:0 18px 42px rgba(18,55,59,.095)}.hero-dashboard{background:linear-gradient(135deg,#faffff 0%,#effbf9 100%);border-color:#d4efec}.hero-badge,.section-kicker{background:#e9fbf8;border-color:#c5eee9;color:#0f7d76}.btn,button{border-radius:14px;border-color:#d7e8ea;background:#fbffff;color:#173033;font-weight:900;box-shadow:none}.btn:hover,button:hover{box-shadow:0 12px 24px rgba(18,55,59,.08);transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg,#0f8f86,#16b3a8);border-color:#0f8f86;color:#fff;box-shadow:0 12px 24px rgba(15,143,134,.17)}.btn-success{background:#10b981;border-color:#10b981;color:#fff}.btn-danger{background:#ef4444;border-color:#ef4444;color:#fff}.btn-soft-primary{background:#e9fbf8;color:#0f766e;border-color:#bcebe5}.badge{border-radius:999px;padding:.42em .72em;font-weight:900;letter-spacing:.01em}.badge-soft{background:#edf4f5!important;color:#567277!important;border-color:#d7e6e8!important}.badge-info{background:#e8f7ff!important;color:#0a6590!important}.badge-success{background:#e8fbf1!important;color:#047857!important}.badge-warning{background:#fff6df!important;color:#92400e!important}.badge-danger{background:#ffe8e8!important;color:#b91c1c!important}.table-wrap{border-radius:22px;border:1px solid #dce9eb;box-shadow:0 8px 20px rgba(18,55,59,.035);background:#fbffff}.table-wrap table{border-collapse:separate;border-spacing:0;width:100%}.table-wrap thead th{background:#edf8f7;color:#234e52;border-bottom:1px solid #dce9eb;font-size:12px;letter-spacing:.08em}.table-wrap tbody tr{transition:background .16s ease,transform .16s ease}.table-wrap tbody tr:nth-child(even){background:#f8fbfc}.table-wrap tbody tr:hover{background:#eefbf8}.table-wrap td{border-bottom:1px solid #e6eff1;vertical-align:top}.filter-panel{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end}.form-grid{gap:14px}label{color:#5f7a7e}input,select,textarea{border-radius:14px;background:#f8fbfc;border-color:#d7e6e8;color:#173033}input:focus,select:focus,textarea:focus{border-color:#36cfc0;box-shadow:0 0 0 4px rgba(54,207,192,.13);background:#fff}.login-body{background:radial-gradient(circle at 20% 10%,rgba(54,207,192,.20),transparent 34%),linear-gradient(135deg,#0f3538,#0d2428 55%,#102f33);}.login-card{border-radius:28px;background:rgba(255,255,255,.94);border:1px solid rgba(255,255,255,.66);box-shadow:0 24px 70px rgba(0,0,0,.22)}.login-hero h1{letter-spacing:-.06em}.login-logo{background:linear-gradient(135deg,#0f8f86,#36cfc0);box-shadow:0 16px 34px rgba(54,207,192,.22)}.footer{font-size:12px;color:#6c8287}.smart-select-trigger{background:#f8fbfc!important;border-color:#d7e6e8!important}.smart-panel{border-color:#d7e6e8!important;box-shadow:0 18px 46px rgba(18,55,59,.12)!important}.swal-box{border-radius:26px!important}.chart-canvas-wrap{background:#f8fbfc;border-color:#dce9eb}.print-page{box-shadow:0 14px 48px rgba(18,55,59,.13)}
@keyframes elogFadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@keyframes elogPulseSoft{0%,100%{box-shadow:0 0 0 0 rgba(54,207,192,.18)}50%{box-shadow:0 0 0 8px rgba(54,207,192,0)}}
.nav-link.active .nav-ico,.hero-badge i{animation:elogPulseSoft 2.4s ease-in-out infinite}.stat-card:nth-child(2),.kpi-card:nth-child(2){animation-delay:.04s}.stat-card:nth-child(3),.kpi-card:nth-child(3){animation-delay:.08s}.stat-card:nth-child(4),.kpi-card:nth-child(4){animation-delay:.12s}.stat-card:nth-child(5),.kpi-card:nth-child(5){animation-delay:.16s}
[data-theme=dark]{--bg:#0d171a;--surface:#111f23;--surface-2:#0f1b1f;--ink:#e8f3f4;--muted:#9fb3b6;--line:#294044;--sidebar:#081316;--sidebar-soft:#102127;--sidebar-text:#e8fbf8}.dark body,[data-theme=dark] body{background:linear-gradient(180deg,#0d171a,#0b1417)}[data-theme=dark] .topbar,[data-theme=dark] .card,[data-theme=dark] .filter-panel,[data-theme=dark] .stat-card,[data-theme=dark] .kpi-card,[data-theme=dark] .report-card,[data-theme=dark] .month-card,[data-theme=dark] .rs-card,[data-theme=dark] .user-pill,[data-theme=dark] .theme-toggle,[data-theme=dark] .hamb{background:#111f23;border-color:#294044;color:#e8f3f4}[data-theme=dark] .topbar h1,[data-theme=dark] .card-head h3{color:#e8f3f4}[data-theme=dark] input,[data-theme=dark] select,[data-theme=dark] textarea{background:#0f1b1f;border-color:#294044;color:#e8f3f4}[data-theme=dark] .table-wrap,[data-theme=dark] .table-wrap tbody tr{background:#111f23;border-color:#294044}[data-theme=dark] .table-wrap thead th{background:#102b2f;color:#a7d7d2}[data-theme=dark] .table-wrap tbody tr:nth-child(even){background:#102026}[data-theme=dark] .table-wrap tbody tr:hover{background:#122b2f}[data-theme=dark] .version-pill{background:#102b2f;border-color:#1e5753;color:#6ee7d8}
@media(max-width:980px){.sidebar{transform:translateX(-105%)}.sidebar.open{transform:translateX(0)}.main{margin-left:0!important;padding:14px}.topbar{top:8px;border-radius:20px}.topbar p,.version-pill,.rs-switch{display:none}.topbar-actions{gap:8px}.stat-grid,.kpi-strip,.chart-grid,.unit-detail-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.table-wrap{overflow:auto}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.nav-title{cursor:pointer;display:flex;align-items:center;justify-content:space-between}.nav-title:after{content:"⌄";font-size:13px;transition:transform .18s ease}.nav-group.nav-collapsed .nav-title:after{transform:rotate(-90deg)}.nav-group.nav-collapsed .nav-link{display:none}.nav-group:has(.nav-link.active).nav-collapsed .nav-link.active{display:flex}
