:root{--kap-ink:#17191d;--kap-ink-2:#22262b;--kap-ink-3:#30363d;--kap-red:#e33242;--kap-red-dark:#b91f30;--kap-green:#08a66a;--kap-green-dark:#087b51;--kap-paper:#f3f5f7;--kap-line:#e2e6e9;--kap-muted:#77808a;--kap-white:#fff;--kap-shadow:0 18px 48px rgba(17,23,28,.09);--kap-radius:20px}
.kap-portal-wrap{width:100%;max-width:none;margin:0 auto;color:var(--kap-ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;font-size:14px;line-height:1.5}
.kap-portal-wrap *{box-sizing:border-box}.kap-portal-wrap button,.kap-portal-wrap input,.kap-portal-wrap select,.kap-portal-wrap textarea{font:inherit}.kap-portal-wrap button{cursor:pointer}.kap-portal-wrap img{max-width:100%;height:auto}.kap-portal-wrap [hidden]{display:none!important}
.kap-auth-shell{min-height:calc(100vh - 40px);display:grid;grid-template-columns:minmax(0,1.12fr) minmax(390px,.88fr);overflow:hidden;border-radius:28px;background:#0c1014;box-shadow:0 28px 90px rgba(8,13,18,.18)}
.kap-auth-visual{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:space-between;min-height:720px;padding:38px clamp(28px,5vw,72px);overflow:hidden;color:#fff;background:linear-gradient(90deg,rgba(8,12,16,.78) 0%,rgba(8,12,16,.63) 52%,rgba(8,12,16,.52) 100%),linear-gradient(0deg,rgba(7,11,15,.38) 0%,rgba(7,11,15,.08) 58%,rgba(7,11,15,.18) 100%),url("login-hero.jpg") center center / cover no-repeat}
.kap-auth-visual:before{content:"";position:absolute;inset:0;z-index:-1;opacity:.2;background-image:linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);background-size:40px 40px;mask-image:linear-gradient(120deg,#000,transparent 92%)}
.kap-auth-visual:after{content:"";position:absolute;z-index:-1;right:-160px;bottom:-220px;width:570px;height:570px;border:1px solid rgba(227,50,66,.34);border-radius:50%;box-shadow:0 0 0 42px rgba(227,50,66,.035),0 0 0 96px rgba(8,166,106,.035),0 0 0 155px rgba(255,255,255,.018)}
.kap-auth-brand{display:flex;align-items:center;gap:18px;max-width:440px}.kap-logo-full{width:165px;max-height:105px;object-fit:contain;object-position:left center;filter:drop-shadow(0 12px 20px rgba(0,0,0,.24))}.kap-brand-copy{display:flex;flex-direction:column;gap:4px}.kap-brand-copy strong{font-size:17px;letter-spacing:.1px;color:#fff}.kap-brand-copy span{font-size:11px;letter-spacing:1.3px;text-transform:uppercase;color:#aab4bc}
.kap-auth-copy{position:relative;z-index:1;max-width:690px;margin:60px 0}.kap-eyebrow{display:inline-flex;align-items:center;gap:9px;color:#69737d;font-size:10px;font-weight:900;letter-spacing:1.7px;text-transform:uppercase}.kap-eyebrow i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--kap-green);box-shadow:0 0 0 5px rgba(8,166,106,.12)}.kap-auth-visual .kap-eyebrow{padding:8px 12px;border:1px solid rgba(255,255,255,.13);border-radius:999px;background:rgba(255,255,255,.045);color:#d7dce0}.kap-auth-copy h1{font-size:clamp(42px,5.3vw,75px);line-height:.98;letter-spacing:-3.5px;margin:23px 0 22px;color:#fff}.kap-auth-copy h1 em{font-style:normal;color:#ff5968}.kap-auth-copy p{max-width:620px;color:#aeb8c1;font-size:15px;line-height:1.85;margin:0}.kap-auth-pills{display:flex;gap:9px;flex-wrap:wrap;margin-top:26px}.kap-auth-pills span{padding:9px 13px;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:rgba(255,255,255,.045);font-size:11px;font-weight:800;letter-spacing:.5px}.kap-auth-pills span:nth-child(2){border-color:rgba(8,166,106,.35);color:#83e2b7}.kap-auth-pills span:nth-child(1){border-color:rgba(227,50,66,.4);color:#ff8b96}.kap-auth-foot{font-size:10px;color:#77838d;letter-spacing:.4px}
.kap-auth-panel{display:flex;align-items:center;justify-content:center;padding:clamp(20px,4vw,54px);background:radial-gradient(circle at 100% 0,rgba(8,166,106,.08),transparent 28%),linear-gradient(145deg,#f8fafb,#e9edf0)}.kap-auth-card{width:min(470px,100%);padding:30px;border-radius:25px;border:1px solid rgba(255,255,255,.9);background:rgba(255,255,255,.87);box-shadow:0 28px 70px rgba(14,21,27,.15);backdrop-filter:blur(20px)}.kap-auth-mark{width:64px;height:64px;display:grid;place-items:center;margin-bottom:20px;border-radius:18px;border:1px solid #e7eaed;background:#fff;box-shadow:0 10px 24px rgba(18,23,28,.08)}.kap-auth-mark img{width:49px;height:49px;object-fit:contain}.kap-auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:5px;margin-bottom:22px;border-radius:13px;background:#edf0f2}.kap-auth-tabs button{border:0;border-radius:10px;padding:10px 8px;color:#6f7780;background:transparent;font-size:12px;font-weight:850}.kap-auth-tabs button.is-active{color:#fff;background:#1b2025;box-shadow:0 5px 14px rgba(18,23,28,.16)}.kap-auth-form h2{margin:0 0 4px;font-size:27px;letter-spacing:-.8px;color:#191d21}.kap-auth-form>p{margin:0 0 20px;color:#7b838b;font-size:12px}.kap-auth-form label{display:flex;flex-direction:column;gap:7px;margin:13px 0;color:#343b42;font-size:11px;font-weight:850}.kap-auth-form input,.kap-auth-form select{width:100%;min-width:0;padding:12px 13px;border:1px solid #dfe4e7;border-radius:11px;background:#fff;color:#20252a;outline:none;transition:border .2s,box-shadow .2s}.kap-auth-form input:focus,.kap-auth-form select:focus{border-color:var(--kap-green);box-shadow:0 0 0 3px rgba(8,166,106,.1)}.kap-field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.kap-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:11px 15px;border:1px solid transparent;border-radius:11px;font-size:12px;font-weight:850;text-decoration:none;transition:transform .2s,box-shadow .2s,background .2s}.kap-btn:hover{transform:translateY(-1px)}.kap-btn-primary{color:#fff;background:linear-gradient(135deg,var(--kap-red),var(--kap-red-dark));box-shadow:0 10px 20px rgba(185,31,48,.2)}.kap-btn-primary:hover{color:#fff;box-shadow:0 13px 26px rgba(185,31,48,.28)}.kap-btn-dark{color:#fff;background:#20252b}.kap-btn-dark:hover{color:#fff;background:#0e1216}.kap-btn-light{color:#3c444c;background:#eef1f3;border-color:#e0e5e8}.kap-btn-danger{color:#b51d2b;background:#fff0f1;border-color:#f5d1d4}.kap-btn-wide{width:100%;margin-top:8px;padding:13px}.kap-auth-privacy{margin:20px 0 0;padding-top:14px;border-top:1px solid #e8ecef;color:#8a929a;font-size:10px;line-height:1.6}.kap-auth-message{display:none;margin:0 0 13px;padding:10px 12px;border-radius:10px;font-size:11px;font-weight:750}.kap-auth-message.is-visible{display:block}.kap-auth-message.is-error{background:#fff0f1;border:1px solid #f3d1d5;color:#a71e2b}.kap-auth-message.is-success{background:#ecf9f2;border:1px solid #c6ecd8;color:#087b51}
.kap-pending-shell{min-height:75vh;display:grid;place-items:center;padding:35px;background:radial-gradient(circle at 15% 15%,rgba(227,50,66,.08),transparent 28%),#f0f3f5;border-radius:24px}.kap-pending-card{width:min(540px,100%);padding:42px 36px;text-align:center;background:#fff;border:1px solid var(--kap-line);border-radius:25px;box-shadow:var(--kap-shadow)}.kap-pending-card img{display:block;width:82px;height:82px;object-fit:contain;margin:0 auto 18px}.kap-pending-card h1{font-size:29px;letter-spacing:-.8px;margin:14px 0 10px}.kap-pending-card p{margin:0 0 24px;color:#727b84;line-height:1.7}
.kap-app{min-height:calc(100vh - 32px);background:var(--kap-paper);border-radius:22px;overflow:hidden;box-shadow:0 18px 55px rgba(16,22,28,.1)}.kap-app-shell{display:grid;grid-template-columns:252px minmax(0,1fr);min-height:calc(100vh - 32px)}.kap-sidebar{position:relative;display:flex;flex-direction:column;min-height:100%;background:linear-gradient(180deg,#13171b,#20262c 58%,#11161a);color:#fff}.kap-sidebar:after{content:"";position:absolute;top:0;right:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--kap-red),var(--kap-green));opacity:.9}.kap-side-brand{display:flex;align-items:center;gap:12px;padding:22px 17px;border-bottom:1px solid rgba(255,255,255,.08)}.kap-side-brand img{width:46px;height:46px;object-fit:contain;border-radius:13px;background:#fff;padding:3px}.kap-side-brand strong{display:block;font-size:12px;line-height:1.35;letter-spacing:.3px}.kap-side-brand span{display:block;margin-top:3px;font-size:9px;color:#919ba4;letter-spacing:1px;text-transform:uppercase}.kap-side-user{display:flex;align-items:center;gap:10px;margin:14px 12px 8px;padding:11px;border:1px solid rgba(255,255,255,.08);border-radius:13px;background:rgba(255,255,255,.035)}.kap-avatar{width:37px;height:37px;flex:0 0 37px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(135deg,#ff6674,var(--kap-red-dark));color:#fff;font-size:14px;font-weight:950}.kap-side-user strong{display:block;max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.kap-side-user small{display:block;margin-top:3px;color:#a0a9b1;font-size:9px}.kap-nav{flex:1;padding:8px 11px 18px;overflow:auto}.kap-nav-group{margin-top:15px}.kap-nav-group-title{margin:0 9px 7px;color:#78838d;font-size:9px;font-weight:900;letter-spacing:1.7px;text-transform:uppercase}.kap-nav-item{display:flex;align-items:center;gap:11px;width:100%;margin:4px 0;padding:11px 12px;text-align:left;color:#cbd2d8;background:transparent;border:1px solid transparent;border-radius:11px;font-size:11px;font-weight:750;transition:background .2s,color .2s,border .2s}.kap-nav-item:hover{color:#fff;background:rgba(255,255,255,.06)}.kap-nav-item.is-active{color:#fff;background:linear-gradient(100deg,rgba(227,50,66,.24),rgba(8,166,106,.1));border-color:rgba(255,255,255,.1);box-shadow:inset 3px 0 var(--kap-red)}.kap-nav-icon{width:22px;text-align:center;color:#9ca8b1;font-size:16px}.kap-nav-item.is-active .kap-nav-icon{color:#ff6976}.kap-sidebar-foot{padding:14px 13px;border-top:1px solid rgba(255,255,255,.08)}.kap-sidebar-foot button{width:100%;justify-content:flex-start;color:#bdc5cb;background:rgba(255,255,255,.045);border-color:rgba(255,255,255,.06)}
.kap-main{min-width:0;background:linear-gradient(180deg,#f6f8f9,#eef1f4)}.kap-topbar{position:sticky;top:0;z-index:12;display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:78px;padding:14px 26px;background:rgba(249,251,252,.87);border-bottom:1px solid rgba(24,31,37,.08);backdrop-filter:blur(18px)}.kap-topbar-left{display:flex;align-items:center;gap:12px;min-width:0}.kap-mobile-menu{display:none;width:38px;height:38px;align-items:center;justify-content:center;border:1px solid var(--kap-line);border-radius:10px;background:#fff;color:#222}.kap-page-kicker{font-size:9px;font-weight:900;letter-spacing:1.5px;color:#929ba3;text-transform:uppercase}.kap-page-title{margin-top:3px;font-size:20px;font-weight:900;letter-spacing:-.5px;color:#20252a}.kap-topbar-right{display:flex;align-items:center;gap:10px}.kap-top-status{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid #dcefe5;border-radius:999px;background:#eff9f3;color:#177c50;font-size:9px;font-weight:900;letter-spacing:.7px;text-transform:uppercase}.kap-top-status i{width:6px;height:6px;border-radius:50%;background:var(--kap-green)}.kap-content{max-width:1680px;margin:0 auto;padding:26px}
.kap-dashboard-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:25px;align-items:center;overflow:hidden;padding:30px 32px;margin-bottom:20px;border-radius:25px;color:#fff;background:radial-gradient(circle at 75% 20%,rgba(8,166,106,.2),transparent 27%),radial-gradient(circle at 10% 120%,rgba(227,50,66,.23),transparent 38%),linear-gradient(125deg,#11161b,#232b32 66%,#11171c);box-shadow:0 24px 60px rgba(14,20,25,.17)}.kap-dashboard-hero:before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(90deg,#000,transparent 90%)}.kap-hero-copy{position:relative;z-index:1}.kap-hero-copy .kap-eyebrow{color:#c2cbd2}.kap-hero-copy h1{font-size:clamp(30px,3.3vw,46px);line-height:1.05;letter-spacing:-1.7px;margin:17px 0 12px;color:#fff}.kap-hero-copy h1 em{font-style:normal;color:#ff6472}.kap-hero-copy p{max-width:740px;color:#b2bdc5;line-height:1.7;margin:0}.kap-hero-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.kap-hero-meta span{padding:7px 10px;border:1px solid rgba(255,255,255,.1);border-radius:9px;background:rgba(255,255,255,.045);color:#d3dbe0;font-size:10px;font-weight:750}.kap-hero-art{position:relative;display:grid;place-items:center;min-height:170px}.kap-hero-ring{position:absolute;width:160px;height:160px;border-radius:50%;border:1px solid rgba(8,166,106,.35);transform:rotateX(64deg);box-shadow:0 0 0 25px rgba(8,166,106,.035),0 0 0 52px rgba(227,50,66,.025)}.kap-hero-ring:before,.kap-hero-ring:after{content:"";position:absolute;inset:24px;border-radius:50%;border:1px dashed rgba(255,255,255,.18)}.kap-hero-ring:after{inset:48px;border-style:solid;border-color:rgba(227,50,66,.5)}.kap-hero-logo{position:relative;width:92px;height:92px;padding:8px;border-radius:25px;background:#fff;box-shadow:0 20px 42px rgba(0,0,0,.3);object-fit:contain;transform:rotate(-4deg)}
.kap-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:25px 0 13px}.kap-section-heading h2{margin:0;font-size:18px;letter-spacing:-.45px;color:#22282e}.kap-section-heading p{margin:4px 0 0;color:#7d8790;font-size:11px}.kap-section-heading .kap-muted{color:#8d969e;font-size:10px}.kap-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:22px}.kap-stat-card{position:relative;overflow:hidden;padding:18px 19px;border:1px solid rgba(24,31,37,.07);border-radius:18px;background:rgba(255,255,255,.86);box-shadow:0 12px 30px rgba(19,26,32,.05)}.kap-stat-card:before{content:"";position:absolute;top:0;left:0;bottom:0;width:4px;background:var(--kap-red)}.kap-stat-card:nth-child(2):before{background:var(--kap-green)}.kap-stat-card:nth-child(3):before{background:#6479db}.kap-stat-card:nth-child(4):before{background:#d58b32}.kap-stat-label{font-size:10px;color:#7d8790;font-weight:850;text-transform:uppercase;letter-spacing:.65px}.kap-stat-value{margin-top:8px;font-size:34px;font-weight:950;line-height:1;letter-spacing:-1.3px;color:#20262c}.kap-stat-foot{margin-top:8px;color:#9aa2a9;font-size:10px}.kap-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(290px,.7fr);gap:17px}.kap-panel{min-width:0;border:1px solid rgba(24,31,37,.075);border-radius:20px;background:rgba(255,255,255,.87);box-shadow:0 14px 36px rgba(16,23,29,.055);overflow:hidden}.kap-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:17px 19px;border-bottom:1px solid #edf0f2}.kap-panel-head h3{margin:0;font-size:14px;letter-spacing:-.2px;color:#242a30}.kap-panel-head span{color:#929ba3;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:1px}.kap-panel-body{padding:17px 19px}.kap-department-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.kap-department-card{position:relative;display:flex;align-items:flex-start;gap:12px;min-height:115px;padding:15px;border:1px solid #e4e8eb;border-radius:15px;background:linear-gradient(145deg,#fff,#f8fafb);text-align:left;transition:transform .2s,border .2s,box-shadow .2s}.kap-department-card:hover{transform:translateY(-2px);border-color:#d6dbdf;box-shadow:0 12px 22px rgba(17,23,28,.06)}.kap-department-symbol{width:39px;height:39px;flex:0 0 39px;display:grid;place-items:center;border-radius:12px;background:#fff0f1;color:var(--kap-red);font-size:17px}.kap-department-card:nth-child(2) .kap-department-symbol{background:#eaf9f2;color:var(--kap-green-dark)}.kap-department-card:nth-child(3) .kap-department-symbol{background:#edf1ff;color:#5669c7}.kap-department-card:nth-child(4) .kap-department-symbol{background:#fff4e8;color:#b97423}.kap-department-card strong{display:block;margin:2px 0 5px;font-size:12px;color:#242a30}.kap-department-card small{display:block;color:#818b94;font-size:10px;line-height:1.45}.kap-department-card .kap-department-count{position:absolute;right:13px;bottom:12px;color:#929ba3;font-size:10px;font-weight:900}.kap-recent-list{display:flex;flex-direction:column;gap:0}.kap-recent-item{display:flex;align-items:flex-start;gap:11px;padding:12px 0;border-bottom:1px solid #eef1f3}.kap-recent-item:last-child{border-bottom:0}.kap-recent-mark{width:32px;height:32px;flex:0 0 32px;display:grid;place-items:center;border-radius:10px;background:#f1f4f6;color:#56616b;font-size:13px}.kap-recent-copy{min-width:0;flex:1}.kap-recent-copy strong{display:block;font-size:11px;color:#2a3036;overflow-wrap:anywhere}.kap-recent-copy span{display:block;margin-top:3px;color:#8b949c;font-size:9px}.kap-recent-status{align-self:center;padding:4px 7px;border-radius:999px;background:#f0f3f5;color:#68727b;font-size:9px;font-weight:850;white-space:nowrap}.kap-empty{padding:34px 16px;text-align:center;color:#87919a;font-size:11px}.kap-empty strong{display:block;margin-bottom:5px;color:#3e464e;font-size:13px}
.kap-module-banner{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 90px;gap:15px;align-items:center;overflow:hidden;padding:23px 25px;margin-bottom:17px;border-radius:21px;background:radial-gradient(circle at 90% 10%,rgba(8,166,106,.17),transparent 30%),linear-gradient(125deg,#141a1f,#283039);color:#fff;box-shadow:0 18px 42px rgba(16,22,28,.13)}.kap-module-banner:after{content:"";position:absolute;right:0;bottom:0;width:38%;height:5px;background:linear-gradient(90deg,var(--kap-red),var(--kap-green))}.kap-module-banner .kap-eyebrow{color:#b8c2ca}.kap-module-banner h2{margin:10px 0 6px;color:#fff;font-size:26px;letter-spacing:-.8px}.kap-module-banner p{margin:0;color:#aeb8c1;font-size:11px;line-height:1.65}.kap-module-symbol{display:grid;place-items:center;width:70px;height:70px;margin:auto;border:1px solid rgba(255,255,255,.13);border-radius:21px;background:linear-gradient(145deg,rgba(227,50,66,.22),rgba(8,166,106,.14));color:#ff8791;font-size:28px}.kap-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.kap-search{width:min(340px,100%);padding:11px 13px;border:1px solid #dfe4e7;border-radius:11px;background:#fff;outline:none;font-size:11px}.kap-search:focus{border-color:#c9d3d9;box-shadow:0 0 0 3px rgba(40,54,65,.05)}.kap-toolbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.kap-record-count{color:#8c959d;font-size:10px;font-weight:800}.kap-table-panel{overflow:hidden;border:1px solid rgba(24,31,37,.08);border-radius:19px;background:#fff;box-shadow:0 14px 34px rgba(16,23,29,.05)}.kap-table-scroll{width:100%;overflow:auto}.kap-table{width:100%;border-collapse:collapse;min-width:720px}.kap-table th{padding:13px 14px;text-align:left;background:#1b2025;color:#d8e0e5;font-size:9px;font-weight:900;letter-spacing:.8px;text-transform:uppercase;white-space:nowrap}.kap-table td{padding:12px 14px;border-bottom:1px solid #edf0f2;color:#46505a;font-size:10px;vertical-align:top;max-width:280px;overflow-wrap:anywhere}.kap-table tr:last-child td{border-bottom:0}.kap-table tbody tr:hover{background:#fafcfc}.kap-table td:first-child{font-weight:800;color:#252b31}.kap-status{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#f0f3f5;color:#5e6871;font-size:9px;font-weight:900;white-space:nowrap}.kap-status.is-open,.kap-status.is-diajukan,.kap-status.is-berjalan,.kap-status.is-dalam-proses{background:#fff4e7;color:#a96719}.kap-status.is-close,.kap-status.is-selesai,.kap-status.is-disetujui,.kap-status.is-aktif,.kap-status.is-valid{background:#eaf8f0;color:#087b51}.kap-status.is-ditolak,.kap-status.is-kadaluarsa,.kap-status.is-rusak,.kap-status.is-kritis{background:#fff0f1;color:#b91f30}.kap-row-actions{display:flex;gap:6px;white-space:nowrap}.kap-icon-btn{padding:6px 8px;border:1px solid #e2e6e9;border-radius:8px;background:#fff;color:#5c6670;font-size:10px;font-weight:850}.kap-icon-btn:hover{border-color:#cbd2d8;background:#f6f8f9}.kap-icon-btn.is-delete{color:#b91f30}.kap-no-data{padding:46px 20px;text-align:center;color:#89939b;font-size:11px}.kap-no-data strong{display:block;color:#3c454d;font-size:13px;margin-bottom:5px}
.kap-modal-backdrop{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(10,14,18,.65);backdrop-filter:blur(5px)}.kap-modal{display:flex;flex-direction:column;width:min(760px,100%);max-height:92vh;overflow:hidden;border:1px solid rgba(255,255,255,.25);border-radius:21px;background:#fff;box-shadow:0 30px 90px rgba(0,0,0,.32)}.kap-modal-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 21px;background:linear-gradient(120deg,#161b20,#29323a);color:#fff}.kap-modal-head h3{margin:0;font-size:16px;letter-spacing:-.3px}.kap-modal-head p{margin:4px 0 0;color:#aab4bd;font-size:10px}.kap-modal-close{width:32px;height:32px;border:1px solid rgba(255,255,255,.14);border-radius:9px;background:rgba(255,255,255,.06);color:#fff;font-size:18px}.kap-modal-body{padding:20px;overflow:auto}.kap-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.kap-form-field{display:flex;flex-direction:column;gap:7px;margin:0 0 15px;min-width:0}.kap-form-field.is-wide{grid-column:1/-1}.kap-form-field label{font-size:10px;font-weight:900;color:#4c555d}.kap-form-field input,.kap-form-field select,.kap-form-field textarea{width:100%;min-width:0;padding:11px 12px;border:1px solid #dfe4e7;border-radius:10px;background:#fbfcfd;color:#22282e;outline:none;font-size:11px}.kap-form-field textarea{min-height:86px;resize:vertical}.kap-form-field input:focus,.kap-form-field select:focus,.kap-form-field textarea:focus{border-color:#96cdb3;box-shadow:0 0 0 3px rgba(8,166,106,.08);background:#fff}.kap-modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:13px 20px;border-top:1px solid #e9edf0;background:#f8fafb}.kap-toast-zone{position:fixed;right:18px;bottom:18px;z-index:100000;display:flex;flex-direction:column;gap:8px;max-width:min(390px,calc(100vw - 36px))}.kap-toast{padding:12px 15px;border-radius:11px;background:#20262b;color:#fff;border-left:4px solid var(--kap-green);box-shadow:0 16px 34px rgba(0,0,0,.2);font-size:11px;font-weight:750}.kap-toast.is-error{border-left-color:var(--kap-red)}.kap-loading{display:grid;min-height:400px;place-content:center;justify-items:center;color:#7d8790;font-size:12px}.kap-spinner{display:block;width:30px;height:30px;margin-bottom:12px;border:3px solid #dfe5e8;border-top-color:var(--kap-red);border-radius:50%;animation:kap-spin .8s linear infinite}@keyframes kap-spin{to{transform:rotate(360deg)}}.kap-app-error{margin:22px;padding:18px;border:1px solid #f0cbd0;border-radius:13px;background:#fff2f3;color:#a51e2c;font-size:12px}.kap-small-note{margin-top:13px;color:#8c959d;font-size:10px;line-height:1.6}.kap-link{color:var(--kap-green-dark);font-weight:800;text-decoration:none}.kap-link:hover{text-decoration:underline}
@media(max-width:1100px){.kap-auth-shell{grid-template-columns:1fr}.kap-auth-visual{min-height:380px;padding:30px 35px}.kap-auth-copy{margin:40px 0 28px}.kap-auth-copy h1{font-size:52px}.kap-auth-foot{margin-top:10px}.kap-auth-panel{padding:26px}.kap-app-shell{grid-template-columns:220px minmax(0,1fr)}.kap-content{padding:20px}.kap-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kap-dashboard-grid{grid-template-columns:1fr}.kap-hero-art{min-height:140px}.kap-dashboard-hero{grid-template-columns:minmax(0,1fr) 150px}}
@media(max-width:760px){.kap-auth-shell{min-height:calc(100vh - 16px);border-radius:18px}.kap-auth-visual{min-height:300px;padding:23px 21px}.kap-auth-brand{gap:11px}.kap-logo-full{width:118px;max-height:72px}.kap-brand-copy strong{font-size:13px}.kap-brand-copy span{font-size:8px;letter-spacing:.7px}.kap-auth-copy{margin:32px 0 20px}.kap-auth-copy h1{font-size:40px;letter-spacing:-2px;margin:17px 0 12px}.kap-auth-copy p{font-size:12px;line-height:1.65}.kap-auth-pills{margin-top:15px}.kap-auth-pills span{padding:7px 9px;font-size:9px}.kap-auth-foot{font-size:9px}.kap-auth-panel{padding:16px}.kap-auth-card{padding:22px;border-radius:19px}.kap-field-row{grid-template-columns:1fr;gap:0}.kap-pending-shell{padding:16px;min-height:70vh}.kap-pending-card{padding:30px 22px}.kap-app{min-height:calc(100vh - 16px);border-radius:16px;overflow:visible}.kap-app-shell{display:block;min-height:calc(100vh - 16px)}.kap-sidebar{position:fixed;z-index:1000;left:0;top:0;bottom:0;width:min(300px,88vw);min-height:100vh;transform:translateX(-105%);transition:transform .25s ease;box-shadow:20px 0 55px rgba(0,0,0,.28)}.kap-sidebar.is-open{transform:translateX(0)}.kap-main{min-height:calc(100vh - 16px)}.kap-topbar{min-height:72px;padding:12px 14px}.kap-mobile-menu{display:inline-flex;flex:0 0 36px;width:36px;height:36px}.kap-page-title{font-size:17px}.kap-page-kicker{font-size:8px}.kap-top-status{display:none}.kap-content{padding:14px}.kap-dashboard-hero{grid-template-columns:1fr;padding:22px 20px;border-radius:19px}.kap-hero-copy h1{font-size:36px;letter-spacing:-1.8px}.kap-hero-copy p{font-size:11px}.kap-hero-art{min-height:100px}.kap-hero-ring{width:115px;height:115px}.kap-hero-logo{width:65px;height:65px;border-radius:18px}.kap-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.kap-stat-card{padding:14px;border-radius:14px}.kap-stat-value{font-size:28px}.kap-stat-label{font-size:9px}.kap-stat-foot{font-size:9px}.kap-dashboard-grid{grid-template-columns:1fr}.kap-panel{border-radius:16px}.kap-panel-head{padding:14px}.kap-panel-body{padding:13px}.kap-department-grid{grid-template-columns:1fr}.kap-department-card{min-height:95px}.kap-section-heading{margin:20px 0 11px}.kap-section-heading h2{font-size:16px}.kap-module-banner{grid-template-columns:1fr 55px;padding:18px;border-radius:17px}.kap-module-banner h2{font-size:22px}.kap-module-symbol{width:48px;height:48px;border-radius:14px;font-size:20px}.kap-toolbar{align-items:stretch;flex-direction:column}.kap-search{width:100%}.kap-toolbar-actions{justify-content:space-between}.kap-form-grid{grid-template-columns:1fr}.kap-form-field.is-wide{grid-column:auto}.kap-modal-backdrop{padding:8px}.kap-modal{max-height:96vh;border-radius:16px}.kap-modal-body{padding:14px}.kap-modal-head{padding:14px 16px}.kap-modal-foot{padding:12px 14px}.kap-modal-foot .kap-btn{flex:1}.kap-table{min-width:650px}.kap-table th,.kap-table td{padding:10px}.kap-toast-zone{right:10px;bottom:10px}}
@media(max-width:420px){.kap-auth-copy h1{font-size:34px}.kap-auth-card{padding:18px}.kap-stat-grid{grid-template-columns:1fr 1fr}.kap-stat-value{font-size:25px}.kap-topbar-right{display:none}.kap-section-heading{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){.kap-portal-wrap *{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
.kap-sidebar-overlay{display:none}
@media(max-width:760px){.kap-sidebar-overlay.is-visible{display:block;position:fixed;inset:0;z-index:999;background:rgba(7,10,13,.52);backdrop-filter:blur(2px)}}

/* Calculated equipment indicators are read-only and computed automatically. */
.kap-form-field input[readonly]{background:linear-gradient(135deg,#f0f7f4,#e4f1eb);border-color:#b9d9c8;color:#176447;font-weight:900;letter-spacing:.2px;cursor:default}


/* Full-viewport mode for the page containing [khafid_arsyadi_portal].
   Only applies to that page; other site pages retain the active theme layout. */
html:has(body.kap-portal-page) {
  margin-top: 0 !important;
  scroll-padding-top: 0 !important;
}
body.kap-portal-page {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: hidden !important;
}
body.kap-portal-page #wpadminbar {
  display: none !important;
}
body.kap-portal-page .wp-site-blocks {
  width: 100% !important;
  max-width: none !important;
  min-height: 100vh !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.kap-portal-page .wp-site-blocks > header,
body.kap-portal-page .wp-site-blocks > footer,
body.kap-portal-page .wp-site-blocks > .wp-block-template-part,
body.kap-portal-page header.wp-block-template-part,
body.kap-portal-page footer.wp-block-template-part,
body.kap-portal-page .site-header,
body.kap-portal-page .site-footer {
  display: none !important;
}
body.kap-portal-page .wp-site-blocks > main,
body.kap-portal-page main,
body.kap-portal-page .wp-block-post-content,
body.kap-portal-page .entry-content,
body.kap-portal-page .wp-block-shortcode,
body.kap-portal-page .wp-block-group.is-layout-constrained,
body.kap-portal-page .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
  width: 100% !important;
  max-width: none !important;
  margin-block-start: 0 !important;
  margin-block-end: 0 !important;
}
body.kap-portal-page .wp-block-post-content,
body.kap-portal-page .entry-content,
body.kap-portal-page .wp-block-shortcode {
  padding: 0 !important;
}
body.kap-portal-page .kap-portal-wrap {
  display: block !important;
  width: 100% !important;
  max-width: none !important;
  min-height: 100vh !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.kap-portal-page .kap-auth-shell,
body.kap-portal-page .kap-app,
body.kap-portal-page .kap-pending-shell {
  width: 100% !important;
  max-width: none !important;
  min-height: 100vh !important;
  margin: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
body.kap-portal-page .kap-app-shell {
  min-height: 100vh !important;
}
@media (max-width: 760px) {
  body.kap-portal-page .kap-auth-shell,
  body.kap-portal-page .kap-app,
  body.kap-portal-page .kap-app-shell {
    min-height: 100vh !important;
  }
}

/* ===============================================================
   HSE Portal 1.1.0 — compact auto-hide navigation / accordions
   Works independently of the active WordPress theme.
   =============================================================== */
.kap-app-shell{grid-template-columns:76px minmax(0,1fr)!important;position:relative}
.kap-sidebar{
  position:sticky!important;top:0;align-self:start;width:76px;height:100vh;min-height:100vh;
  overflow:hidden;z-index:35;transition:width .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease;
  box-shadow:7px 0 24px rgba(20,25,30,.12)
}
.kap-sidebar.is-expanded,.kap-sidebar.is-pinned,.kap-sidebar:focus-within{
  width:300px;box-shadow:22px 0 40px rgba(19,25,31,.22)
}
.kap-side-brand{position:relative;min-height:92px;padding:16px 13px;gap:12px;white-space:nowrap}
.kap-side-brand img{flex:none;width:48px;height:48px}
.kap-side-brand-name,.kap-side-user>div:last-child{opacity:0;transition:opacity .15s;white-space:nowrap;pointer-events:none}
.kap-sidebar.is-expanded .kap-side-brand-name,.kap-sidebar.is-pinned .kap-side-brand-name,.kap-sidebar:focus-within .kap-side-brand-name,
.kap-sidebar.is-expanded .kap-side-user>div:last-child,.kap-sidebar.is-pinned .kap-side-user>div:last-child,.kap-sidebar:focus-within .kap-side-user>div:last-child{opacity:1;pointer-events:auto}
.kap-side-user{padding:10px 12px;margin:12px 10px 8px;white-space:nowrap;min-height:60px;width:278px}
.kap-nav{overflow-y:auto;overflow-x:hidden;padding:8px 8px 12px}
.kap-nav-group{margin:4px 0 8px}
.kap-nav-group-toggle{display:flex;align-items:center;gap:12px;width:100%;height:45px;padding:8px 14px;color:#e1e6e9;border:1px solid transparent;border-radius:12px;background:transparent;text-align:left;cursor:pointer;white-space:nowrap}
.kap-nav-group-toggle:hover,.kap-nav-group.is-open .kap-nav-group-toggle{background:rgba(255,255,255,.075);color:#fff}
.kap-group-icon{width:24px;min-width:24px;font-size:20px;text-align:center;line-height:1}
.kap-group-title{font-size:12px;font-weight:850;letter-spacing:.3px}
.kap-group-count{margin-left:auto;background:rgba(255,255,255,.08);border-radius:15px;padding:2px 7px;font-size:10px}
.kap-group-chevron{font-size:18px;transition:transform .2s}
.kap-nav-group.is-open .kap-group-chevron{transform:rotate(180deg)}
.kap-group-title,.kap-group-count,.kap-group-chevron{opacity:0;visibility:hidden;transition:opacity .16s}
.kap-sidebar.is-expanded .kap-group-title,.kap-sidebar.is-expanded .kap-group-count,.kap-sidebar.is-expanded .kap-group-chevron,
.kap-sidebar.is-pinned .kap-group-title,.kap-sidebar.is-pinned .kap-group-count,.kap-sidebar.is-pinned .kap-group-chevron,
.kap-sidebar:focus-within .kap-group-title,.kap-sidebar:focus-within .kap-group-count,.kap-sidebar:focus-within .kap-group-chevron{opacity:1;visibility:visible}
.kap-nav-group-items{display:none;padding:2px 0 5px 17px}
.kap-nav-group.is-open .kap-nav-group-items{display:block}
.kap-sidebar:not(.is-expanded):not(.is-pinned):not(:focus-within) .kap-nav-group-items{display:none}
.kap-nav-item{min-height:39px;padding:8px 10px;white-space:nowrap;margin:2px 0}
.kap-nav-label{overflow:hidden;text-overflow:ellipsis}
.kap-sidebar-foot{min-width:290px;min-height:70px}
.kap-pin-sidebar{display:none;flex:none;border:0;background:rgba(255,255,255,.1);color:#e8ecf0;border-radius:9px;padding:7px 9px;cursor:pointer;font-size:11px;margin-left:auto}
.kap-sidebar.is-expanded .kap-pin-sidebar,.kap-sidebar.is-pinned .kap-pin-sidebar,.kap-sidebar:focus-within .kap-pin-sidebar{display:inline-flex}
.kap-pin-sidebar[aria-pressed=true]{background:#fad454;color:#222}
.kap-topbar .kap-mobile-menu{display:inline-flex;flex:none}
.kap-main{min-width:0}
.kap-finding-row{border:1px solid #dfe5e9;background:#f7f9fa;border-radius:14px;padding:14px;display:grid;gap:10px;grid-template-columns:repeat(2,minmax(0,1fr));margin:10px 0}
.kap-finding-row label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:700;color:#48525e}
.kap-finding-row textarea,.kap-finding-row select,.kap-finding-row input{width:100%;border:1px solid #dce1e5;border-radius:9px;padding:9px;background:#fff;font:inherit;font-weight:400}
.kap-finding-row textarea{min-height:65px}
.kap-finding-row button{justify-self:start;align-self:end}
.kap-check-label{display:flex!important;flex-direction:row!important;gap:10px!important;align-items:center}
.kap-check-label input{width:20px!important;height:20px!important}
.kap-gas-intro{padding:18px 22px;margin-bottom:12px;background:white;border:1px solid #e0e6eb;border-radius:16px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.kap-gas-intro h2{font-size:18px;margin:0}
.kap-gas-intro p{font-size:12px;margin:0;color:#5e6873;max-width:650px;line-height:1.6}
.kap-gas-frame{display:block;width:100%;height:calc(100vh - 250px);min-height:590px;border:1px solid #dce1e5;border-radius:13px;background:#fff}
@media(max-width:760px){
  .kap-app-shell{display:block!important}
  .kap-sidebar{position:fixed!important;top:0;left:0;bottom:0;transform:translateX(-110%);width:min(300px,88vw)!important;height:100dvh;min-height:100dvh!important;overflow:hidden;z-index:1000}
  .kap-sidebar.is-open{transform:translateX(0)}
  .kap-side-brand-name,.kap-side-user>div:last-child,.kap-group-title,.kap-group-count,.kap-group-chevron{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
  .kap-nav-group.is-open .kap-nav-group-items{display:block!important}
  .kap-nav-group:not(.is-open) .kap-nav-group-items{display:none!important}
  .kap-pin-sidebar{display:none!important}
  .kap-nav{padding:8px 10px 20px}
  .kap-finding-row{grid-template-columns:1fr}
  .kap-gas-intro{display:block}.kap-gas-intro h2,.kap-gas-intro p{margin-bottom:10px}
  .kap-gas-frame{height:calc(100dvh - 250px);min-height:460px}
}
@media(prefers-reduced-motion:reduce){.kap-sidebar,.kap-nav-group .kap-group-chevron{transition:none!important}}
.kap-profile-trigger{font-family:inherit;border:1px solid rgba(255,255,255,.08);color:white;text-align:left;cursor:pointer}
.kap-profile-trigger:hover{background:rgba(255,255,255,.09)}
.kap-profile-images{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.kap-profile-images section{border:1px solid #e0e5e9;border-radius:15px;padding:15px;background:#fafbfc;min-width:0}
.kap-profile-images h4{margin:0 0 12px;font-size:14px}
.kap-profile-preview{height:180px;display:flex;align-items:center;justify-content:center;background:#f0f2f4;border:1px dashed #cbd3da;color:#79838c;border-radius:12px;margin-bottom:12px;font-size:12px;text-align:center;overflow:hidden}
.kap-profile-preview img{max-width:100%;max-height:100%;object-fit:contain}
.kap-profile-images input[type=file]{width:100%;font-size:12px;margin:0 0 10px}
@media(max-width:760px){.kap-profile-images{grid-template-columns:1fr}.kap-profile-preview{height:130px}}
.kap-expiry-panel{margin-bottom:18px}
.kap-expiry-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(265px,1fr));gap:10px}
.kap-expiry-item{border:1px solid #e2e6eb;padding:12px;background:#fafbfc;border-radius:12px;display:flex;align-items:center;gap:10px;min-width:0}
.kap-expiry-item>div{min-width:0;flex:1}
.kap-expiry-item strong{font-size:11px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kap-expiry-item small{font-size:10px;color:#76818b;display:block;margin-top:4px}
.kap-expiry-dot{width:8px;height:8px;flex:none;border-radius:50%;background:#e3ad24}.kap-expiry-dot.is-expired{background:#d53647}
.kap-days-left{background:#fff3cd;color:#715000;border-radius:12px;padding:5px 7px;font-size:10px;font-weight:800;white-space:nowrap}
.kap-days-left.is-expired{background:#fce1e4;color:#a51c2f}

/* ===============================================================
   v1.2.0 — Native WordPress reporting center and document workflows
   =============================================================== */
.kap-report-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:18px;padding:26px 28px;border-radius:22px;background:radial-gradient(circle at 88% 12%,rgba(245,196,0,.19),transparent 28%),linear-gradient(125deg,#191e23,#303941);color:#fff;box-shadow:0 18px 42px rgba(16,22,28,.13)}
.kap-report-hero .kap-eyebrow{color:#c5cdd4}.kap-report-hero h2{margin:9px 0 7px;color:#fff;font-size:27px;letter-spacing:-.8px}.kap-report-hero p{max-width:790px;margin:0;color:#c2cbd2;font-size:11px;line-height:1.7}.kap-report-hero-mark{display:grid;place-items:center;flex:0 0 95px;min-height:82px;border:1px solid rgba(255,255,255,.15);border-radius:17px;background:rgba(255,255,255,.06);color:#f5c400;font-size:17px;line-height:1.6;font-weight:950;text-align:center;letter-spacing:1px}
.kap-report-filter-panel{margin-bottom:18px}.kap-report-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.kap-report-form>label{display:flex;flex-direction:column;gap:7px;color:#4b555e;font-size:10px;font-weight:900}.kap-report-form input,.kap-report-form select{width:100%;min-width:0;padding:11px 12px;border:1px solid #dfe5e8;border-radius:10px;background:#fff;color:#273039;font-size:11px;outline:none}.kap-report-form input:focus,.kap-report-form select:focus{border-color:#aab7bf;box-shadow:0 0 0 3px rgba(36,46,55,.05)}.kap-report-form .kap-report-search{grid-column:span 2}.kap-report-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;grid-column:1/-1;padding-top:5px}.kap-report-actions .kap-btn{min-height:39px}
.kap-report-preview-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:24px 0 14px}.kap-report-preview-head h3{margin:7px 0 4px;color:#20272d;font-size:21px;letter-spacing:-.6px}.kap-report-preview-head p{margin:0;color:#808b94;font-size:10px;line-height:1.6}.kap-report-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 17px}.kap-report-breakdowns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-bottom:17px}.kap-report-mini-table{width:100%;border-collapse:collapse;min-width:0}.kap-report-mini-table th{padding:9px 10px;background:#f2f4f6;color:#66717a;text-align:left;font-size:9px;text-transform:uppercase;letter-spacing:.6px}.kap-report-mini-table td{padding:10px;border-bottom:1px solid #edf0f2;color:#3c454d;font-size:10px}.kap-report-mini-table tr:last-child td{border-bottom:0}.kap-report-status-list{display:flex;flex-wrap:wrap;gap:8px}.kap-report-status-chip{display:inline-flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid #e3e8eb;border-radius:10px;background:#fafbfc;color:#5c6670;font-size:10px}.kap-report-status-chip strong{color:#20272d;font-size:12px}.kap-report-table-panel{margin-bottom:18px}.kap-report-table{min-width:720px}.kap-report-table td small{display:block;margin-top:5px;color:#8b949c;font-size:9px;line-height:1.5;font-weight:400}.kap-report-warning{margin:12px 0;padding:12px 14px;border:1px solid #f1d9a5;border-radius:11px;background:#fff8e7;color:#8a6214;font-size:10px;line-height:1.6}
.kap-row-actions{flex-wrap:wrap;white-space:normal;min-width:140px}.kap-row-actions .kap-icon-btn{max-width:160px}
@media(max-width:1100px){.kap-report-form{grid-template-columns:repeat(2,minmax(0,1fr))}.kap-report-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kap-report-breakdowns{grid-template-columns:1fr}}
@media(max-width:760px){.kap-report-hero{padding:20px;gap:12px}.kap-report-hero h2{font-size:22px}.kap-report-hero-mark{flex-basis:62px;min-height:60px;font-size:12px}.kap-report-form{grid-template-columns:1fr}.kap-report-form .kap-report-search{grid-column:auto}.kap-report-actions{display:grid;grid-template-columns:1fr 1fr}.kap-report-actions .kap-btn{width:100%;padding:10px 8px;font-size:10px}.kap-report-preview-head{align-items:flex-start;flex-direction:column}.kap-report-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kap-report-stat-grid .kap-stat-value{font-size:25px}}


/* ===============================================================
   v1.2.2 — Fix modal form input and internal scrolling.
   Keep the modal header/footer visible while the form body scrolls.
   =============================================================== */
.kap-modal-backdrop {
  overflow-y: auto !important;
  overflow-x: hidden !important;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}
.kap-modal {
  width: min(760px, 100%);
  max-height: min(92vh, 920px);
  max-height: min(92dvh, 920px);
  min-height: 0;
  flex: 0 0 auto;
}
.kap-modal > form[data-kap-record-form],
.kap-modal > form[data-kap-apd-distribution-form] {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  min-height: 0 !important;
  overflow: hidden !important;
}
.kap-modal-head,
.kap-modal-foot {
  flex: 0 0 auto;
}
.kap-modal-body {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  max-height: none !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior-y: contain;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
  scrollbar-width: thin;
}
.kap-modal-body > .kap-form-grid,
.kap-modal-body > .kap-profile-images {
  min-width: 0;
}
.kap-modal .kap-form-field input,
.kap-modal .kap-form-field select,
.kap-modal .kap-form-field textarea {
  pointer-events: auto;
  user-select: text;
  -webkit-user-select: text;
}
.kap-modal .kap-modal-foot .kap-btn {
  flex: 0 0 auto;
}
@media (max-width: 760px) {
  .kap-modal-backdrop {
    align-items: flex-start !important;
    padding: 8px !important;
  }
  .kap-modal {
    width: 100%;
    max-height: calc(100vh - 16px) !important;
    max-height: calc(100dvh - 16px) !important;
    margin: auto 0;
  }
  .kap-modal-body {
    padding: 14px !important;
  }
  .kap-modal-foot {
    position: relative;
    z-index: 1;
    padding-bottom: max(12px, env(safe-area-inset-bottom));
  }
}


/* v1.2.3 — Industrial-site photo background for the login hero panel. */


/* v1.2.5 — Keep the fixed desktop sidebar from collapsing the main grid column.
   A fixed-position sidebar is removed from grid auto-placement, so explicitly
   place the main content in column 2 to preserve the full portal width. */
@media (min-width: 761px) {
  body.kap-portal-page .kap-app-shell > .kap-sidebar-overlay {
    display: none !important;
  }

  body.kap-portal-page .kap-app-shell > .kap-main {
    grid-column: 2 / 3 !important;
    grid-row: 1 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
  }

  body.kap-portal-page .kap-sidebar {
    position: fixed !important;
    top: 0 !important;
    right: auto !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 76px !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 0 !important;
    max-height: 100vh !important;
    max-height: 100dvh !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    align-self: stretch !important;
    z-index: 1000 !important;
  }

  body.kap-portal-page .kap-sidebar.is-expanded,
  body.kap-portal-page .kap-sidebar.is-pinned,
  body.kap-portal-page .kap-sidebar:focus-within {
    width: 300px !important;
  }

  body.kap-portal-page .kap-nav {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior-y: contain;
    -webkit-overflow-scrolling: touch;
  }

  body.kap-portal-page .kap-side-brand,
  body.kap-portal-page .kap-side-user,
  body.kap-portal-page .kap-sidebar-foot {
    flex-shrink: 0 !important;
  }

  body.kap-portal-page .kap-sidebar-foot {
    margin-top: auto;
  }
}

/* v1.3.0 — village zoning, contextual APD choices, private SIMPER uploads and bulk production entry */
/* v1.3.1 — remove unit type from bulk hauling input and restore vertical modal scrolling */
.kap-modal [hidden]{display:none!important}
.kap-existing-file{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:0 0 8px;padding:9px 10px;border:1px solid #dcebe3;border-radius:10px;background:#f2faf5;color:#286546;font-size:11px}
.kap-file-hint{margin:0 0 7px;color:#8b949b;font-size:10px}
.kap-form-field small{color:#818b94;font-size:10px;line-height:1.5}
.kap-apd-size-control{display:flex;flex-direction:column;gap:8px}
.kap-production-modal{width:min(1400px,100%);height:min(92vh,920px);height:min(92dvh,920px);max-height:min(92vh,920px);max-height:min(92dvh,920px);min-height:0}
.kap-production-modal > form[data-kap-production-batch-form]{display:flex!important;flex:1 1 auto!important;flex-direction:column!important;min-height:0!important;min-width:0!important;margin:0!important;overflow:hidden!important}
.kap-production-modal .kap-modal-body{padding:18px;flex:1 1 auto!important;min-height:0!important;max-height:none!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;scrollbar-width:thin}
.kap-batch-header{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
.kap-batch-info{margin:0 0 14px;padding:11px 13px;border:1px solid #dce9e2;border-radius:10px;background:#f3faf6;color:#52645a;font-size:11px;line-height:1.6}
.kap-batch-info strong{color:#24563c}
.kap-batch-table-scroll{max-width:100%;overflow:auto;border:1px solid #e2e7ea;border-radius:12px}
.kap-batch-table{width:100%;min-width:980px;border-collapse:separate;border-spacing:0;background:#fff}
.kap-batch-table th{position:sticky;top:0;z-index:1;padding:10px 9px;background:#f3f6f7;color:#58636c;text-align:left;font-size:10px;font-weight:900;white-space:nowrap;border-bottom:1px solid #e0e6e9}
.kap-batch-table td{padding:7px;border-bottom:1px solid #edf0f2;vertical-align:middle}
.kap-batch-table tr:last-child td{border-bottom:0}
.kap-batch-table input,.kap-batch-table select{width:100%;min-width:80px;padding:9px 8px;border:1px solid #dfe4e7;border-radius:8px;background:#fbfcfd;color:#252b30;font:inherit;font-size:10px}
.kap-batch-table td:first-child input{min-width:110px}
.kap-batch-table td:nth-child(2) input{min-width:125px}
.kap-batch-table td:nth-child(6) input{min-width:150px}
.kap-batch-table td:last-child{white-space:nowrap}
.kap-batch-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:12px;color:#89929a;font-size:10px}
@media(max-width:760px){
  .kap-production-modal{width:100%;height:calc(100vh - 16px);height:calc(100dvh - 16px);max-height:calc(100vh - 16px)!important;max-height:calc(100dvh - 16px)!important;margin:auto 0}
  .kap-production-modal .kap-modal-body{padding:12px!important}
  .kap-batch-header{grid-template-columns:1fr}
  .kap-batch-table{min-width:980px}
  .kap-existing-file{align-items:flex-start;flex-direction:column}
}
