:root{--green:#b08968;--green2:#7b6248;--deep:#17181b;--card:#222428;--muted:#9f8f7d;--line:rgba(93,230,146,.23);--light:#f6f2ea;--ink:#2b2d31;--}
*{box-sizing:border-box} body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#ebe3d7;color:var(--ink)}
button,input,select{font:inherit}button{cursor:pointer;border:0}.hidden{display:none!important}

/* MOBILE ABSENSI */
.mobile{min-height:100vh;background:linear-gradient(180deg,#efe6d8,#f6f2ea 52%,#ebe3d7)}.wrap{max-width:510px;margin:auto;padding:env(safe-area-inset-top) 16px calc(30px + env(safe-area-inset-bottom))}.card{background:#fffaf3;border:1px solid #ddd3c6;border-radius:24px;padding:17px;box-shadow:0 10px 28px rgba(20,69,45,.08)}.login{padding-top:10vh}.brand{text-align:center;margin-bottom:21px}.logo{height:64px;width:64px;margin:0 auto 12px;border-radius:21px;background:linear-gradient(135deg,#7b6248,#c69c6d);display:grid;place-items:center;color:#fffaf3;font-size:29px;box-shadow:0 12px 26px rgba(11,122,77,.25)}h1{font-size:21px;margin:0;font-weight:900}.brand p{font-size:12px;color:#7e829a;margin:7px 0 0}.label{font-size:12px;font-weight:800;margin:15px 0 7px;display:block}input{width:100%;border:1px solid #ddd2c3;border-radius:14px;padding:13px 14px;font-size:15px;outline:none;background:#fbf7f0}input:focus{border-color:#8c72e8;box-shadow:0 0 0 3px rgba(176,137,104,.12)}.primary{width:100%;margin-top:18px;border-radius:15px;padding:14px;background:linear-gradient(135deg,#7b6248,#c69c6d);color:#fffaf3;font-size:14px;font-weight:850;box-shadow:0 10px 22px rgba(92,60,196,.22)}.hint{font-size:11px;line-height:1.5;text-align:center;color:#7e829a;margin:13px 8px 0}.err{color:#d93434;font-size:12px;margin:11px 0 0;min-height:18px;text-align:center}
.top{padding:19px 4px 14px;display:flex;align-items:center;justify-content:space-between}.top-left{display:flex;align-items:center;gap:10px}.mini-logo{width:42px;height:42px;border-radius:14px;background:linear-gradient(135deg,#7b6248,#c69c6d);color:#fffaf3;display:grid;place-items:center;font-size:20px}.top h2{font-size:16px;margin:0}.top p{font-size:11px;margin:3px 0 0;color:#7e829a}.logout{background:#ece1d0;color:#7b6248;border-radius:10px;padding:8px 10px;font-weight:800;font-size:11px}
.hero{position:relative;overflow:hidden;border-radius:26px;padding:21px;background:linear-gradient(135deg,#0b754a,#0f9b5f);color:#fffaf3;box-shadow:0 14px 34px rgba(20,69,45,.16)}.hero:after{content:"";width:240px;height:240px;border-radius:50%;position:absolute;right:-92px;top:-110px;background:rgba(255,255,255,.11)}.small,.clock,.date,.status{position:relative}.small{font-size:12px;opacity:.84}.clock{font-size:40px;font-weight:900;letter-spacing:-2px;margin:8px 0 3px}.date{font-size:13px;opacity:.92}.status{position:absolute;right:18px;bottom:17px;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.35);font-size:10px;font-weight:800}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.info{padding:14px;border-radius:19px;background:#fffaf3;border:1px solid #ddd3c6;box-shadow:0 7px 17px rgba(15,76,43,.04)}.info .i-label{font-size:10px;color:#7e829a;margin-bottom:6px}.info strong{font-size:14px}.info span{display:block;margin-top:4px;color:#7b6248;font-size:10px;font-weight:800}.section{margin-top:14px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.section-title{font-size:15px;font-weight:900}.sub{font-size:10px;color:#7e829a}.location{display:flex;align-items:center;gap:10px;background:#f8f3eb;border:1px solid #ddd1c1;border-radius:16px;padding:12px}.loc-icon{width:34px;height:34px;border-radius:11px;background:#eadcca;display:grid;place-items:center;color:#7b6248;font-size:19px}.loc-info{flex:1}.loc-title{font-size:12px;font-weight:850}.loc-detail{font-size:10px;color:#7e829a;line-height:1.4;margin-top:2px}.refresh{background:transparent;color:#7b6248;font-size:11px;font-weight:900;padding:6px}.actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.action{border-radius:18px;padding:15px 11px;min-height:86px;text-align:left;display:flex;flex-direction:column;justify-content:center;gap:4px}.action .ico{font-size:23px}.action b{font-size:14px}.action small{font-size:10px;opacity:.83}.in{color:#fffaf3;background:linear-gradient(135deg,#7b6248,#c69c6d);box-shadow:0 12px 24px rgba(92,60,196,.22)}.out{background:#f0f7f3;color:#2d5542;border:1px solid #dcece2}.action:disabled{opacity:.55;filter:grayscale(.75);cursor:not-allowed}.row{display:flex;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid #edf2ee}.row:last-child{border:none}.day{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#ece1d0;color:#7b6248;font-size:11px;font-weight:900}.row-main{flex:1}.row-main b{font-size:12px;display:block}.row-main small{display:block;margin-top:3px;font-size:10px;color:#7e829a}.tag{font-size:9px;font-weight:900;padding:6px 8px;border-radius:999px;background:#ece8ff;color:#9b7653}.tag.out{background:#f3eee7;color:#767b8f}.empty{padding:12px 3px;text-align:center;font-size:11px;color:#7e829a}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:10;background:#252321;color:white;padding:11px 14px;border-radius:12px;font-size:12px;transition:.22s;box-shadow:0 12px 24px rgba(0,0,0,.16);white-space:nowrap}.toast.show{opacity:1;transform:translate(-50%,0)}

/* PC DASHBOARD */
.desktop{display:none}.dashboard{min-height:100vh;background:#171614;color:#f3eadc}.dash-shell{display:grid;grid-template-columns:255px 1fr;min-height:100vh}.dash-side{padding:27px 16px;background:linear-gradient(180deg,#191816,#252320);border-right:1px solid rgba(201,177,149,.12)}.dash-brand{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:950;letter-spacing:-.3px}.dash-logo{height:40px;width:40px;border-radius:13px;background:linear-gradient(135deg,#b08968,#0d7f49);display:grid;place-items:center;color:#fffaf3;box-shadow:0 8px 19px rgba(24,198,92,.22)}.dash-sub{font-size:10px;letter-spacing:.13em;color:#a38f79;margin:28px 10px 10px}.dash-nav{display:grid;gap:7px}.nav-group{border-radius:13px;overflow:hidden}.nav-parent{display:flex!important;align-items:center;justify-content:space-between}.nav-parent .nav-left{display:flex;align-items:center;gap:0}.nav-arrow{font-size:12px!important;width:auto!important;transition:.2s}.nav-group.open .nav-arrow{transform:rotate(180deg)}.nav-children{display:none;padding:3px 0 5px 12px;border-left:2px solid rgba(176,137,104,.40);margin-left:10px}.nav-group.open .nav-children{display:grid;gap:4px}.nav-children button{font-size:12px;padding:11px 10px;background:rgba(255,255,255,.04)!important}.nav-children button.active{background:rgba(176,137,104,.20)!important}.dash-nav button{width:100%;border-radius:13px;padding:13px 12px;background:transparent;color:#c7c1de;text-align:left;font-size:13px;font-weight:850;transition:.16s}.dash-nav button.active,.dash-nav button:hover{background:rgba(176,137,104,.16);color:#fffaf3}.dash-nav b{font-size:16px;display:inline-block;width:26px;text-align:center}.dash-side-note{position:fixed;left:16px;bottom:22px;width:222px;padding:12px;border:1px solid rgba(176,137,104,.15);border-radius:14px;background:rgba(0,0,0,.18);font-size:10px;line-height:1.45;color:#d8c8b4}
.dash-main{min-width:0;min-height:100vh;overflow:auto}.dash-home{min-height:100vh;display:grid;place-items:center;padding:38px;background:radial-gradient(circle at 30% 20%,#2b2521 0%,#201f1d 45%,#0f101a 100%)}.home-welcome{width:min(860px,78vw);border:1px solid rgba(48,220,114,.6);border-radius:23px;background:linear-gradient(105deg,rgba(5,33,37,.94),rgba(4,30,31,.83));box-shadow:0 24px 70px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.05);padding:21px 34px;text-align:center}.home-status{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid rgba(55,224,114,.35);border-radius:999px;color:#69e99e;background:rgba(20,115,72,.17);font-size:10px;font-weight:900;letter-spacing:.03em}.welcome-name{margin:20px 0 4px;color:#42d97b;font-size:42px;line-height:1.05;font-weight:950;letter-spacing:.01em}.welcome-name span{font-size:47px;margin-right:11px;vertical-align:-5px}.home-caption{margin:10px 0 0;color:#9fc8b2;font-size:13px}
.dash-content{display:none;padding:30px 34px 40px;background:linear-gradient(180deg,#161626,#161513);min-height:100vh}.dash-content.show{display:block}.dash-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:26px}.dash-head h1{font-size:24px;line-height:1.05;margin:0;font-weight:950}.dash-head p{margin:7px 0 0;font-size:12px;color:#a18e79}.dash-date{padding:10px 13px;border-radius:13px;background:#3b342d;border:1px solid rgba(176,137,104,.18);font-size:12px;color:#d8d2f5;font-weight:800;white-space:nowrap}.dash-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-bottom:20px}
.shift-topbox{margin-bottom:22px;padding:18px 18px 22px;border-radius:22px;background:linear-gradient(180deg,rgba(52,44,37,.94),rgba(28,26,23,.97));border:1px solid rgba(176,158,255,.16);box-shadow:0 14px 34px rgba(0,0,0,.25)}
.shift-top-title{display:flex;align-items:center;justify-content:center;gap:10px;font-size:20px;font-weight:950;letter-spacing:-.3px;margin-bottom:16px;color:#f3eadc;text-align:center}
.shift-top-title .ico{font-size:24px}
.shift-mini-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;margin-bottom:20px}
.shift-mini-card{padding:18px 12px;border-radius:20px;background:linear-gradient(180deg,#f8f3eb,#efe6d8);border:1px solid #d9c8b6;box-shadow:0 10px 26px rgba(0,0,0,.08);text-align:center;color:#4a3b2c}
.shift-mini-icon{font-size:30px;line-height:1;margin-bottom:10px}
.shift-mini-name{font-size:13px;font-weight:900;letter-spacing:.4px;margin-bottom:8px}
.shift-mini-value{font-size:22px;font-weight:950;line-height:1;margin-bottom:7px}
.shift-mini-sub{font-size:11px;color:#8a7b68}
.shift-date-wrap{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}
.shift-date-card{display:flex;align-items:center;gap:10px;padding:14px 16px;border-radius:18px;background:#f5efe5;border:1px solid #d9c8b6;color:#4a3b2c;box-shadow:0 10px 22px rgba(0,0,0,.08)}
.shift-date-card label{font-size:12px;font-weight:800}
.shift-date-card input{height:38px;padding:0 12px;border-radius:11px;border:1px solid #d2bda8;background:#fffaf3;color:#4a3b2c;outline:none}
.shift-filter-btn{height:38px;padding:0 16px;border-radius:11px;background:#b08968;color:#fffaf3;font-weight:900}
.shift-filter-btn:hover{background:#b88c5a}
@media(max-width:1350px){.shift-mini-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.shift-mini-grid{grid-template-columns:repeat(2,1fr)}}
.dash-stat{background:linear-gradient(160deg,#312b26,#201f1d);border:1px solid rgba(176,137,104,.15);border-radius:18px;padding:17px;box-shadow:0 8px 22px rgba(0,0,0,.14)}.dash-stat .lab{font-size:11px;color:#a9a6bc;font-weight:800}.dash-stat .num{font-size:29px;font-weight:950;margin:7px 0 4px;color:#f3eadc}.dash-stat .cap{font-size:10px;color:#8e7b68}.dash-panel{background:#171626;border:1px solid rgba(176,137,104,.15);border-radius:20px;padding:18px;box-shadow:0 8px 22px rgba(0,0,0,.14)}.dash-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.dash-tools h2{font-size:16px;margin:0;font-weight:950}.dash-tools .tools-right{display:flex;gap:9px;align-items:center}.dash-tools input,.dash-tools select{height:37px;padding:0 11px;border:1px solid rgba(176,137,104,.18);border-radius:10px;background:#171614;color:#f3eadc;font-size:12px;outline:0}.dash-tools input{width:210px}.dash-tools select{min-width:145px}.dash-refresh{height:37px;padding:0 13px;border-radius:10px;background:#9a7856;color:#fffaf3;font-size:12px;font-weight:900}.dash-table-wrap{overflow:auto}.dash-table{width:100%;border-collapse:collapse;min-width:760px}.dash-table th{padding:11px 10px;text-align:left;color:#9a8a77;font-size:10px;letter-spacing:.04em;border-bottom:1px solid rgba(176,137,104,.12)}.dash-table td{padding:14px 10px;border-bottom:1px solid rgba(176,137,104,.09);font-size:12px;color:#efe5d8}.dash-table tr:last-child td{border-bottom:none}.dash-user{font-weight:900}.dash-user small{display:block;margin-top:3px;color:#8f7f6e;font-size:10px;font-weight:700}.dash-pill{display:inline-block;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:900;background:#4d443b;color:#ded3ff}.dash-pill.done{background:#4a433c;color:#d4c7b8}.dash-empty{text-align:center;padding:38px 10px;color:#9bb4a7;font-size:12px}.dash-loc{color:#b59aff;text-decoration:none;font-weight:850;font-size:11px}.shift-sections{display:grid;gap:20px}.shift-section{border:1px solid rgba(176,137,104,.17);border-radius:18px;overflow:hidden;background:rgba(4,22,22,.32)}.shift-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 16px;background:linear-gradient(90deg,rgba(86,59,172,.28),rgba(36,30,67,.25));border-bottom:1px solid rgba(109,233,157,.12)}.shift-section-head h3{margin:0;font-size:14px;font-weight:950;color:#f3eadc}.shift-section-head p{margin:4px 0 0;font-size:10px;color:#a18e79}.shift-count{padding:6px 9px;border-radius:999px;background:rgba(52,208,115,.16);color:#e2d7ff;font-size:10px;font-weight:900;white-space:nowrap}.shift-table{width:100%;border-collapse:collapse;min-width:900px}.shift-table th{padding:10px;text-align:left;font-size:10px;color:#9a8a77;letter-spacing:.04em;border-bottom:1px solid rgba(142,225,170,.1)}.shift-table td{padding:13px 10px;font-size:12px;color:#efe5d8;border-bottom:1px solid rgba(176,137,104,.09)}.shift-table tr:last-child td{border-bottom:none}.shift-time{font-weight:900;color:#efeaff}.shift-badge{display:inline-block;padding:6px 9px;border-radius:999px;background:#9a7856;color:#f3eadc;font-size:10px;font-weight:900}.shift-badge.malam{background:#4d443a;color:#d8cab8}.shift-badge.unset{background:#3b3e2d;color:#f6d79a}.status-action{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.shift-edit{padding:6px 9px;border-radius:8px;background:#9a7856;color:#fffaf3;font-size:10px;font-weight:900}.shift-edit:hover{background:#b88c5a}.shift-reset{padding:6px 9px;border-radius:8px;background:#3a354e;color:#f0ecff;border:1px solid rgba(176,137,104,.26);font-size:10px;font-weight:900}.shift-reset:hover{background:#4b4564}.crosscheck-btn{padding:6px 9px;border-radius:8px;background:#2f2b58;color:#e9e3ff;border:1px solid rgba(176,137,104,.25);font-size:10px;font-weight:900}.crosscheck-btn:hover{background:#6a5846}.crosscheck-time{display:inline-flex;align-items:center;gap:5px;padding:6px 9px;border-radius:999px;background:rgba(103,78,201,.22);color:#dfd7ff;font-size:10px;font-weight:900;white-space:nowrap}.crosscheck-empty{color:#88849d;font-size:11px}.attendance-ok{color:#7aa37a;font-weight:900;font-size:11px}.attendance-late{color:#d3a15f;font-weight:900;font-size:11px}.attendance-wait{color:#9d9bb0;font-weight:800;font-size:11px}.attendance-leave{color:#c48a7a;font-weight:900;font-size:11px}.check-state{display:inline-block;padding:6px 9px;border-radius:999px;font-size:10px;font-weight:900;white-space:nowrap}.check-state.in{background:rgba(101,70,201,.26);color:#eee8ff}.check-state.out{background:rgba(115,95,180,.22);color:#e8e1ff}.check-state.wait{background:rgba(97,92,121,.25);color:#d2cfdd}.shift-unset-box{margin-top:4px;border:1px dashed rgba(255,194,104,.26);background:rgba(130,94,36,.10)}.modal-backdrop{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.62);display:grid;place-items:center;padding:20px}.reset-warning{margin-top:14px;padding:12px 13px;border-radius:12px;background:rgba(193,154,107,.12);border:1px solid rgba(193,154,107,.24);font-size:11px;line-height:1.65;color:#e6cb9e}.reset-warning b{color:#e8c89a}.modal-danger{padding:10px 14px;border-radius:10px;background:#a86a5d;color:#fffaf3;font-size:12px;font-weight:900}.modal-danger:hover{background:#ba7d6e}.modal-card{width:min(430px,100%);border-radius:20px;background:linear-gradient(160deg,#342e29,#151423);border:1px solid rgba(176,137,104,.26);box-shadow:0 24px 80px rgba(0,0,0,.48);padding:21px}.modal-card h3{margin:0;font-size:18px}.modal-card p{margin:7px 0 18px;font-size:12px;color:#a9c3b6;line-height:1.5}.modal-card label{display:block;font-size:11px;font-weight:900;color:#d8cebe;margin-bottom:7px}.modal-card select{width:100%;height:42px;padding:0 12px;border:1px solid rgba(139,233,176,.18);border-radius:11px;background:#081a1b;color:#effff4;outline:none}.modal-card input[type="time"]{width:100%;height:42px;padding:0 12px;border:1px solid rgba(139,233,176,.18);border-radius:11px;background:#081a1b;color:#effff4;outline:none}.time-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.time-field label{margin-bottom:7px}.schedule-kind{display:inline-block;padding:6px 9px;border-radius:999px;background:#9a7856;color:#f3eadc;font-size:10px;font-weight:900}.schedule-kind.malam{background:#4d443a;color:#d8cab8}.schedule-kind.gantung{background:#805c25;color:#ffe7b0}.schedule-kind.nelayan{background:#255d77;color:#c7edff}.schedule-kind.cuti{background:#6d294f;color:#ffd6e4}.time-disabled{opacity:.48;pointer-events:none}.modal-times{margin-top:12px;padding:11px 12px;border-radius:12px;background:rgba(176,137,104,.10);border:1px solid rgba(176,137,104,.14);font-size:11px;color:#cfbfae;line-height:1.65}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.modal-cancel{padding:10px 13px;border-radius:10px;background:transparent;border:1px solid rgba(176,137,104,.18);color:#d1c5b7;font-size:12px;font-weight:900}.modal-save{padding:10px 14px;border-radius:10px;background:#b88652;color:#fffaf3;font-size:12px;font-weight:900}.shift-empty{padding:22px 14px;text-align:center;color:#9bb4a7;font-size:12px}
@media(min-width:768px){.mobile{display:none!important}.desktop{display:block!important}}@media(max-width:1050px){.dash-shell{grid-template-columns:80px 1fr}.dash-side{padding:22px 12px}.dash-brand span,.dash-sub,.dash-nav button span,.dash-side-note{display:none}.dash-brand{justify-content:center}.dash-nav button{text-align:center;padding:13px 7px;font-size:18px}.dash-main{padding:0}.dash-summary{grid-template-columns:repeat(2,1fr)}.dash-content{padding:24px}.home-welcome{width:min(830px,87vw)}} 

/* Cohesive charcoal + bronze refinement */
:root{--bronze:#b18a5d;--bronze-dark:#8d6846;--paper:#e9e1d6;--ink:#201d19;--slate:#141517;--slate2:#1e1e20}
.dashboard{background:#151515!important}
.dash-side{background:linear-gradient(180deg,#171717,#111111)!important;border-right-color:rgba(177,138,93,.16)!important}
.dash-main,.dash-content{background:linear-gradient(180deg,#1c1b1d,#151515)!important}
.dash-home{background:radial-gradient(circle at 28% 18%,#3e352c 0,#221f1c 48%,#151514 100%)!important}
.dash-logo,.mini-logo,.logo{background:linear-gradient(135deg,#b18a5d,#7e6045)!important}
.dash-nav button.active,.dash-nav button:hover{background:rgba(177,138,93,.17)!important;color:#f5ecdf!important}
.dash-panel,.dash-stat,.shift-topbox{background:linear-gradient(160deg,#292521,#1d1b19)!important;border-color:rgba(177,138,93,.17)!important}
.home-welcome{background:linear-gradient(105deg,rgba(34,30,27,.95),rgba(26,24,22,.9))!important;border-color:rgba(177,138,93,.5)!important}
.home-status{border-color:rgba(177,138,93,.35)!important;background:rgba(177,138,93,.13)!important;color:#ead6b8!important}
.welcome-name{color:#d1aa79!important}
.shift-section{background:#1b1b1d!important;border-color:rgba(177,138,93,.18)!important}
.shift-section-head{background:linear-gradient(90deg,rgba(101,77,51,.4),rgba(34,31,29,.22))!important;border-bottom-color:rgba(177,138,93,.16)!important}
.shift-mini-card{background:linear-gradient(180deg,#e9e1d6,#dcd0c0)!important;border-color:#c7b498!important;color:#302923!important;box-shadow:0 8px 18px rgba(0,0,0,.16)!important}
.shift-mini-icon{filter:grayscale(1) sepia(.25) saturate(.4);opacity:.92}
.shift-mini-name,.shift-mini-value{color:#3c2d21!important}
.shift-mini-sub{color:#766656!important}
.shift-date-card{background:#e9e1d6!important;border-color:#c7b498!important;color:#3c2d21!important}
.shift-date-card input{border-color:#c7b498!important;background:#f7f0e6!important;color:#3c2d21!important}
.shift-filter-btn,.dash-refresh,.primary{background:#b18a5d!important;color:#fffaf2!important}
.shift-filter-btn:hover,.dash-refresh:hover,.primary:hover{background:#966f4c!important}
.dash-pill,.schedule-kind,.shift-badge,.check-state,.crosscheck-time,.crosscheck-btn,.shift-edit,.shift-reset{background:#4c4238!important;color:#f4eadc!important;border-color:rgba(218,194,164,.2)!important}
.schedule-kind.malam{background:#413a34!important;color:#f4eadc!important}
.schedule-kind.gantung{background:#5d4b37!important;color:#f4eadc!important}
.schedule-kind.nelayan{background:#4a5048!important;color:#f4eadc!important}
.schedule-kind.cuti{background:#634a46!important;color:#f4eadc!important}
.attendance-ok{color:#a8c39c!important}.attendance-late{color:#d0a866!important}.attendance-wait{color:#b6ada2!important}.attendance-leave{color:#d4a0a0!important}
.modal-card{background:linear-gradient(160deg,#2c2824,#1d1b19)!important;border-color:rgba(177,138,93,.3)!important}
.modal-save{background:#b18a5d!important;color:#fffaf2!important}.modal-danger{background:#995f57!important}
select,input{accent-color:#b18a5d}


/* Gold premium + lampu geser kiri-kanan */
.home-welcome{
  background:linear-gradient(105deg,rgba(39,31,24,.96),rgba(24,20,18,.93))!important;
  border:1px solid rgba(212,170,104,.62)!important;
  box-shadow:0 24px 70px rgba(0,0,0,.45),0 0 0 1px rgba(212,170,104,.12),0 0 28px rgba(212,170,104,.10)!important;
}
.home-status{
  color:#f2d29b!important;
  border-color:rgba(212,170,104,.42)!important;
  background:rgba(212,170,104,.12)!important;
}
.welcome-name{
  color:#f1c98a!important;
  text-shadow:0 0 7px rgba(241,201,138,.56),0 0 14px rgba(212,170,104,.30);
  background:linear-gradient(90deg,#b88342 0%,#f7dc9a 35%,#fff1c5 50%,#f7dc9a 65%,#b88342 100%);
  background-size:220% 100%;
  background-position:0% 50%;
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  animation:goldLampSlide 3.8s ease-in-out infinite alternate;
}
.welcome-name b{
  color:inherit!important;
  text-shadow:inherit;
}
.welcome-name span{
  filter:sepia(.35) saturate(.75) brightness(1.04);
  -webkit-text-fill-color:initial;
}
@keyframes goldLampSlide{
  from{background-position:0% 50%}
  to{background-position:100% 50%}
}


/* === Light white / premium gold theme === */
:root{
  --bg:#f5f6f8;
  --panel:#ffffff;
  --panel-soft:#faf7f2;
  --line:#e7e1d8;
  --text:#1f2125;
  --muted:#7b7f87;
  --gold:#be9461;
  --gold-dark:#9e784d;
  --gold-soft:#efe1cf;
  --header:#1f2024;
  --thead:#232428;
}
.desktop.dashboard,
.dash-main,
.dash-content{
  background:var(--bg)!important;
  color:var(--text)!important;
}
.dash-home{
  background:linear-gradient(180deg,#faf7f2 0%, #f5f6f8 100%)!important;
}
.dash-side{
  background:linear-gradient(180deg,#ffffff 0%, #fbf9f5 100%)!important;
  border-right:1px solid var(--line)!important;
  box-shadow:4px 0 18px rgba(0,0,0,.04);
}
.dash-brand,
.dash-brand span,
.top h2,
.dash-head h1,
.shift-top-title,
.dash-tools h2,
.shift-section-head h3{
  color:var(--text)!important;
}
.dash-sub,
.dash-head p,
.top p,
.dash-side-note,
.shift-section-head p,
.shift-mini-sub,
.dash-stat .cap,
.dash-stat .lab{
  color:var(--muted)!important;
}
.dash-logo,
.mini-logo,
.logo{
  background:linear-gradient(135deg,var(--gold),var(--gold-dark))!important;
  color:#fffdf9!important;
  box-shadow:0 10px 24px rgba(190,148,97,.22)!important;
}
.dash-nav button{
  color:#2d3138!important;
}
.dash-nav button.active,
.dash-nav button:hover,
.nav-children button.active{
  background:rgba(190,148,97,.13)!important;
  color:var(--gold-dark)!important;
}
.nav-children{
  border-left:2px solid rgba(190,148,97,.38)!important;
}
.dash-side-note{
  background:#fff!important;
  border:1px solid var(--line)!important;
  box-shadow:0 8px 24px rgba(0,0,0,.05);
}
.home-welcome{
  background:linear-gradient(135deg,#fffdfa 0%, #f7efe4 100%)!important;
  border:1px solid rgba(190,148,97,.42)!important;
  box-shadow:0 20px 40px rgba(0,0,0,.08), 0 0 0 1px rgba(190,148,97,.06)!important;
}
.home-status{
  background:rgba(190,148,97,.10)!important;
  border-color:rgba(190,148,97,.32)!important;
  color:var(--gold-dark)!important;
}
.welcome-name{
  color:#bd8f57!important;
  text-shadow:0 0 6px rgba(190,148,97,.18), 0 0 14px rgba(190,148,97,.10)!important;
}
.welcome-name b{
  color:#d7a969!important;
}
.home-caption{
  color:#6d6f76!important;
}
.logout{
  background:var(--gold-soft)!important;
  color:var(--gold-dark)!important;
  border:1px solid rgba(190,148,97,.26)!important;
}
.shift-topbox,
.dash-stat,
.dash-panel,
.shift-section,
.shift-mini-card,
.shift-date-card,
.modal-card{
  background:var(--panel)!important;
  border:1px solid var(--line)!important;
  box-shadow:0 10px 28px rgba(0,0,0,.06)!important;
}
.shift-topbox{
  background:linear-gradient(180deg,#fffdfa 0%, #fbf7f2 100%)!important;
}
.shift-section-head{
  background:linear-gradient(90deg,#faf5ee 0%, #ffffff 100%)!important;
  border-bottom:1px solid var(--line)!important;
}
.shift-mini-card{
  background:#fff!important;
  color:var(--text)!important;
}
.shift-mini-name,
.shift-mini-value,
.shift-date-card label,
.dash-stat .num{
  color:var(--text)!important;
}
.shift-mini-icon{
  color:var(--gold-dark)!important;
  filter:none!important;
}
.shift-date-card{
  background:#fff!important;
  color:var(--text)!important;
}
.shift-date-card input,
.modal-card input[type="time"],
.modal-card select,
#dashRole,
#dashSearch,
input,
select{
  background:#fff!important;
  color:var(--text)!important;
  border:1px solid #d8dbe1!important;
  box-shadow:none!important;
}
.shift-filter-btn,
.dash-refresh,
.primary,
.modal-save,
.shift-edit{
  background:linear-gradient(135deg,var(--gold),var(--gold-dark))!important;
  color:#fffdf9!important;
  border:none!important;
}
.shift-filter-btn:hover,
.dash-refresh:hover,
.primary:hover,
.modal-save:hover,
.shift-edit:hover{
  background:linear-gradient(135deg,#c29b6b,#8d6844)!important;
}
.shift-reset{
  background:#f3eee7!important;
  color:#6f5436!important;
  border:1px solid rgba(190,148,97,.28)!important;
}
.shift-reset:hover{
  background:#eadfce!important;
}
.crosscheck-btn{
  background:#f4efe8!important;
  color:#71583e!important;
  border:1px solid rgba(190,148,97,.28)!important;
}
.crosscheck-btn:hover{
  background:#eadfce!important;
}
.crosscheck-time,
.shift-badge,
.schedule-kind,
.check-state{
  background:#f2e6d7!important;
  color:#75593b!important;
  border:1px solid rgba(190,148,97,.18)!important;
}
.check-state.wait{background:#f0f2f5!important;color:#646b76!important;border-color:#dde2e8!important}
.check-state.in{background:#e9f4ec!important;color:#2f7b4b!important;border-color:#c9e5d0!important}
.check-state.out{background:#eef1f5!important;color:#54606f!important;border-color:#d9e0e8!important}
.schedule-kind.malam{background:#ede8ff!important;color:#5b4f8d!important}
.schedule-kind.gantung{background:#fff3e3!important;color:#9b6c2c!important}
.schedule-kind.nelayan{background:#e7f2f8!important;color:#35667d!important}
.schedule-kind.cuti{background:#fdecef!important;color:#a15065!important}
.attendance-ok{color:#2e8b57!important}
.attendance-late{color:#cc7a17!important}
.attendance-wait{color:#7b7f87!important}
.attendance-leave{color:#bb5c73!important}
.shift-count,
.dash-date{
  background:#fff!important;
  color:var(--gold-dark)!important;
  border:1px solid rgba(190,148,97,.22)!important;
}
.dash-date{
  background:var(--panel-soft)!important;
}
.dash-table-wrap{
  background:#fff!important;
  border-radius:16px;
}
.shift-table thead th{
  background:var(--thead)!important;
  color:#fff!important;
  border-bottom:none!important;
}
.shift-table td{
  color:var(--text)!important;
  border-bottom:1px solid #eceff3!important;
  background:#fff!important;
}
.shift-table tr:nth-child(even) td{
  background:#fcfcfd!important;
}
.shift-time{color:#1f2125!important}
.dash-pill{
  background:#f2e6d7!important;
  color:#75593b!important;
}
.modal-card{
  background:#fff!important;
}
.modal-card h3,
.modal-card p,
.modal-card label,
.reset-warning,
.reset-warning b{
  color:var(--text)!important;
}
.modal-cancel{
  background:#fff!important;
  color:#5f6670!important;
  border:1px solid #d8dbe1!important;
}
.modal-danger{
  background:#b6615d!important;
  color:#fff!important;
}
.reset-warning{
  background:#faf4eb!important;
  border:1px solid #eadbc7!important;
}
.toast{
  background:#22262d!important;
  color:#fff!important;
}
@media(max-width:1050px){
  .dash-side{
    box-shadow:none;
  }
}


/* Softer off-white / warm grey refinement */
:root{
  --soft-page:#e9e7e2;
  --soft-panel:#f2efe9;
  --soft-card:#f7f4ee;
  --soft-row:#f4f2ed;
  --soft-line:#d9d2c8;
  --soft-text:#292824;
  --soft-muted:#7a746d;
  --gold:#b58a56;
  --gold-dark:#8e6841;
}
.desktop.dashboard,
.dash-main,
.dash-content{
  background:linear-gradient(180deg,#e9e7e2 0%,#e3e1dc 100%)!important;
  color:var(--soft-text)!important;
}
.dash-home{
  background:radial-gradient(circle at 28% 18%,#f0ece4 0%,#e6e2da 55%,#ddd8cf 100%)!important;
}
.dash-side{
  background:linear-gradient(180deg,#ebe7df 0%,#e1ddd5 100%)!important;
  border-right-color:#d1c9be!important;
}
.dash-side-note{
  background:#ece8e0!important;
  border-color:#d2c8bb!important;
  color:#6f675e!important;
}
.dash-nav button{
  color:#3e3a34!important;
}
.dash-nav button.active,
.dash-nav button:hover,
.nav-children button.active{
  background:rgba(181,138,86,.16)!important;
  color:#7c5a38!important;
}
.shift-topbox{
  background:linear-gradient(180deg,#efebe4 0%,#e6e1d8 100%)!important;
  border-color:#d5c8b6!important;
}
.shift-mini-card,
.shift-date-card,
.dash-stat,
.dash-panel,
.shift-section,
.modal-card{
  background:var(--soft-panel)!important;
  border-color:#d8d0c6!important;
  box-shadow:0 8px 20px rgba(66,55,44,.08)!important;
}
.shift-mini-card{
  background:linear-gradient(180deg,#f5f1e9 0%,#ebe5db 100%)!important;
}
.shift-section-head{
  background:linear-gradient(90deg,#e7dfd4 0%,#efebe5 100%)!important;
  border-bottom-color:#d8cfc2!important;
}
.shift-date-card input,
.modal-card input[type="time"],
.modal-card select,
#dashRole,
#dashSearch,
input,
select{
  background:#f8f6f1!important;
  border-color:#d2c9bd!important;
  color:#332f2a!important;
}
.shift-table td{
  background:#efede8!important;
  border-bottom-color:#ded8cf!important;
  color:#342f2a!important;
}
.shift-table tr:nth-child(even) td{
  background:#e9e6e0!important;
}
.shift-table thead th{
  background:#34302c!important;
}
.home-welcome{
  background:linear-gradient(135deg,#eee8de 0%,#ddd4c7 100%)!important;
  border-color:rgba(181,138,86,.48)!important;
  box-shadow:0 16px 34px rgba(75,59,40,.10),0 0 0 1px rgba(181,138,86,.08)!important;
}
.home-caption{
  color:#6e655c!important;
}
.dash-date{
  background:#e7e0d6!important;
}
.shift-count{
  background:#e5dccf!important;
}
.crosscheck-btn{
  background:#e8e2d8!important;
}
.shift-reset{
  background:#e4ddd4!important;
}
.check-state.wait{
  background:#dfdcd6!important;
  color:#68635c!important;
}


/* === Final layout refinement: dark sidebar + top header === */
.dash-side{
  background:linear-gradient(180deg,#101114 0%, #17181d 100%)!important;
  border-right:1px solid rgba(181,138,86,.18)!important;
  box-shadow:4px 0 18px rgba(0,0,0,.12)!important;
}
.dash-brand,
.dash-brand span{color:#fff6ea!important}
.dash-sub{color:#9b8e7e!important}
.dash-nav button{color:#e6dccf!important}
.dash-nav button.active,
.dash-nav button:hover,
.nav-children button.active{
  background:rgba(181,138,86,.16)!important;
  color:#fff7ec!important;
}
.nav-children{
  border-left:2px solid rgba(181,138,86,.38)!important;
}
.dash-side-note{
  background:rgba(255,255,255,.04)!important;
  border-color:rgba(181,138,86,.18)!important;
  color:#c6baaa!important;
}
.dash-main{
  display:flex!important;
  flex-direction:column!important;
  background:linear-gradient(180deg,#e9e7e2 0%,#e3e1dc 100%)!important;
}
.dash-topbar{
  position:sticky;
  top:0;
  z-index:30;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:14px 26px;
  background:linear-gradient(90deg,#111319 0%,#0d1730 45%,#111319 100%);
  border-bottom:1px solid rgba(181,138,86,.18);
  box-shadow:0 10px 24px rgba(0,0,0,.12);
}
.dash-topbar-left{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.topbar-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  height:38px;
  padding:0 14px;
  border-radius:12px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(181,138,86,.18);
  color:#f4e7d3;
  font-size:13px;
  font-weight:850;
  letter-spacing:.01em;
}
.topbar-chip .ico{
  color:#d8b07c;
}
.dash-topbar-right{
  display:flex;
  align-items:center;
  gap:12px;
}
.topbar-user{
  display:flex;
  align-items:center;
  gap:12px;
  padding:8px 14px 8px 10px;
  border-radius:15px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(181,138,86,.18);
  box-shadow:0 8px 20px rgba(0,0,0,.14);
}
.topbar-avatar{
  width:38px;
  height:38px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,#c89a63,#8f6944);
  color:#fffaf3;
  font-size:14px;
  font-weight:900;
  box-shadow:0 8px 18px rgba(181,138,86,.25);
}
.topbar-user-meta{
  display:grid;
  gap:2px;
  min-width:0;
}
.topbar-user-name{
  color:#fff8ef;
  font-size:14px;
  font-weight:900;
  line-height:1.1;
  white-space:nowrap;
}
.topbar-user-role{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:22px;
  padding:0 10px;
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#d7c5ae;
  font-size:11px;
  font-weight:900;
  width:max-content;
}
.dash-home{
  min-height:calc(100vh - 72px)!important;
  padding:32px!important;
}
.dash-content{
  min-height:calc(100vh - 72px)!important;
}
@media(max-width:1050px){
  .dash-topbar{
    padding:12px 18px;
    flex-wrap:wrap;
  }
  .topbar-user-name{
    max-width:180px;
    overflow:hidden;
    text-overflow:ellipsis;
  }
}


.dash-brand-logo{
  display:block;
  height:34px;
  width:auto;
  object-fit:contain;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.18));
}
@media(max-width:1050px){
  .dash-brand-logo{display:none!important}
}


.dash-brand{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:0;
}
.dash-brand-logo{
  display:block;
  height:56px;
  width:auto;
  max-width:190px;
  object-fit:contain;
  filter:drop-shadow(0 2px 8px rgba(0,0,0,.22));
}
@media(max-width:1050px){
  .dash-brand{
    justify-content:center;
  }
  .dash-brand-logo{
    height:44px;
    max-width:44px;
    object-fit:contain;
  }
}


.dash-brand{
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  padding:2px 0 10px!important;
}
.dash-brand-logo{
  margin:0 auto!important;
}


/* Jam Izin */
.izin-page{display:none;padding:30px 34px 40px;min-height:calc(100vh - 72px);background:linear-gradient(180deg,#e9e7e2 0%,#e3e1dc 100%)}
.izin-page.show{display:block}
.izin-grid{display:grid;grid-template-columns:360px 1fr;gap:18px;align-items:start}
.izin-form-card,.izin-list-card{background:#f2efe9;border:1px solid #d8d0c6;border-radius:18px;padding:18px;box-shadow:0 8px 20px rgba(66,55,44,.08)}
.izin-form-card h2,.izin-list-card h2{font-size:16px;margin:0 0 6px;color:#292824}
.izin-form-card p,.izin-list-card p{font-size:11px;color:#7a746d;margin:0 0 17px;line-height:1.5}
.izin-label{display:block;margin:13px 0 7px;color:#5f574e;font-size:11px;font-weight:900}
.izin-form-card select{width:100%;border:1px solid #d2c9bd;background:#f8f6f1;color:#332f2a;border-radius:11px;padding:11px;font:inherit;outline:none}
.izin-type-info{margin-top:12px;padding:13px;border-radius:12px;background:#ebe3d7;border:1px solid #d8cab9;color:#644c34;font-size:11px;line-height:1.55}
.izin-type-info b{display:block;font-size:14px;color:#392b20;margin-bottom:3px}
.izin-start{width:100%;margin-top:16px;height:42px;border-radius:11px;background:linear-gradient(135deg,#b18a5d,#8e6841);color:#fffdf9;font-weight:900}
.izin-start:disabled{opacity:.55;cursor:not-allowed}
.izin-table{width:100%;border-collapse:collapse;min-width:760px}
.izin-table th{background:#34302c;color:#fff;padding:11px 10px;text-align:left;font-size:10px}
.izin-table td{background:#efede8;color:#342f2a;padding:12px 10px;border-bottom:1px solid #ded8cf;font-size:12px}
.izin-table tr:nth-child(even) td{background:#e9e6e0}
.izin-pill{display:inline-block;padding:6px 9px;border-radius:999px;background:#f2e6d7;color:#75593b;border:1px solid rgba(190,148,97,.18);font-size:10px;font-weight:900}
.izin-active{background:#e7f2e8!important;color:#2e7a48!important;border-color:#bee0c6!important}
.izin-expired{background:#f2e5e2!important;color:#a65e55!important;border-color:#e5c5c1!important}
.izin-timer{font-weight:950;font-variant-numeric:tabular-nums;color:#2a2925}
.izin-timer.near{color:#b2682e}
.izin-timer.done{color:#a65e55}
.izin-empty{padding:28px 12px;text-align:center;color:#7a746d;font-size:12px}
@media(max-width:1100px){.izin-grid{grid-template-columns:1fr}.izin-page{padding:24px}}


/* Mobile Jam Izin - user sendiri */
.mobile-izin{margin-top:14px}
.mobile-izin .izin-current{margin-top:12px;padding:12px;border-radius:14px;background:#f8f3eb;border:1px solid #ddd1c1}
.mobile-izin .izin-current-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.mobile-izin .izin-current-title{font-size:12px;font-weight:900;color:#392b20}
.mobile-izin .izin-current-status{font-size:10px;font-weight:900;padding:5px 8px;border-radius:999px;background:#ece1d0;color:#765536}
.mobile-izin .izin-current-status.active{background:#e7f2e8;color:#2f7b4b}
.mobile-izin .izin-current-status.overdue{background:#f2e5e2;color:#a65e55}
.mobile-izin .izin-times{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:11px}
.mobile-izin .izin-time-box{padding:9px;border-radius:11px;background:#fffaf3;border:1px solid #e6ddd1}
.mobile-izin .izin-time-box small{display:block;color:#7a746d;font-size:9px;margin-bottom:3px}
.mobile-izin .izin-time-box b{font-size:13px;color:#332f2a}
.mobile-izin .izin-countdown{margin-top:10px;text-align:center;font-size:24px;letter-spacing:1px;font-weight:950;color:#8e6841;font-variant-numeric:tabular-nums}
.mobile-izin .izin-countdown.overdue{color:#a65e55}
.mobile-izin-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.mobile-izin-start,.mobile-izin-end{height:43px;border-radius:12px;font-size:12px;font-weight:900}
.mobile-izin-start{background:linear-gradient(135deg,#b18a5d,#8e6841);color:#fffdf9}
.mobile-izin-end{background:#37322d;color:#fffaf3}
.mobile-izin-start:disabled,.mobile-izin-end:disabled{opacity:.5;cursor:not-allowed}

/* Desktop Jam Izin monitor */
.izin-monitor-card{background:#f2efe9;border:1px solid #d8d0c6;border-radius:18px;padding:18px;box-shadow:0 8px 20px rgba(66,55,44,.08)}
.izin-monitor-card h2{font-size:16px;margin:0 0 6px;color:#292824}
.izin-monitor-card p{font-size:11px;color:#7a746d;margin:0 0 17px;line-height:1.5}


/* Clear Jam Izin buttons on HP */
.mobile-izin-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.mobile-izin-choice{
  min-height:72px;border-radius:14px;border:1px solid #d9c8b6;background:#fffaf3;color:#4d3b28;
  padding:11px;text-align:left;font-weight:900;line-height:1.25
}
.mobile-izin-choice .choice-icon{font-size:18px;margin-right:5px}
.mobile-izin-choice span{display:block;font-size:10px;color:#7f6a53;margin-top:5px;font-weight:700}
.mobile-izin-choice.active{border:2px solid #b18a5d;background:#f3e6d5;box-shadow:0 5px 14px rgba(181,138,86,.16)}
.mobile-izin-start,.mobile-izin-end{display:flex;align-items:center;justify-content:center;gap:7px}
.mobile-izin-action-title{margin-top:14px;font-size:11px;font-weight:900;color:#60482f}
.izin-monitor-note{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;background:#f3e6d5;border:1px solid #ddc7aa;color:#75593b;font-size:10px;font-weight:900;margin-bottom:12px}


/* Two-part Jam Izin pages */
.izin-input-page{display:none;padding:30px 34px 40px;min-height:calc(100vh - 72px);background:linear-gradient(180deg,#e9e7e2 0%,#e3e1dc 100%)}
.izin-input-page.show{display:block}
.izin-input-card{max-width:620px;margin:0 auto;background:#f2efe9;border:1px solid #d8d0c6;border-radius:20px;padding:22px;box-shadow:0 8px 20px rgba(66,55,44,.08)}
.izin-input-card h2{margin:0 0 6px;color:#292824;font-size:18px}
.izin-input-card p{margin:0 0 16px;color:#7a746d;font-size:12px;line-height:1.5}
.izin-user-box{display:flex;align-items:center;gap:12px;padding:13px;border-radius:14px;background:#fffaf3;border:1px solid #e3d7c9;margin-bottom:14px}
.izin-user-avatar{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#b18a5d,#8e6841);color:#fffdf9;font-weight:950}
.izin-user-name{font-size:13px;font-weight:950;color:#332f2a}
.izin-user-role{font-size:10px;color:#7a746d;margin-top:3px;font-weight:800}
.izin-input-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
.izin-input-choice{min-height:88px;border-radius:15px;border:1px solid #d9c8b6;background:#fffaf3;color:#4d3b28;padding:13px;text-align:left;font-weight:950;line-height:1.2}
.izin-input-choice span{display:block;margin-top:7px;font-size:11px;font-weight:700;color:#7f6a53}
.izin-input-choice.active{border:2px solid #b18a5d;background:#f3e6d5;box-shadow:0 5px 14px rgba(181,138,86,.16)}
.izin-input-status{margin:14px 0;padding:14px;border-radius:14px;background:#fffaf3;border:1px solid #e3d7c9}
.izin-input-status-top{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;font-weight:900;color:#392b20}
.izin-input-status-badge{padding:5px 8px;border-radius:999px;background:#ece1d0;color:#765536;font-size:10px}
.izin-input-status-badge.active{background:#e7f2e8;color:#2f7b4b}
.izin-input-status-badge.overdue{background:#f2e5e2;color:#a65e55}
.izin-input-times{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.izin-input-time{padding:10px;border-radius:11px;background:#f8f3eb;border:1px solid #e5dbcf}
.izin-input-time small{display:block;color:#7a746d;font-size:9px;margin-bottom:4px}
.izin-input-time b{font-size:14px;color:#332f2a}
.izin-input-countdown{margin-top:12px;text-align:center;font-size:28px;letter-spacing:1px;font-weight:950;color:#8e6841;font-variant-numeric:tabular-nums}
.izin-input-countdown.overdue{color:#a65e55}
.izin-input-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}
.izin-input-start,.izin-input-end{height:44px;border-radius:12px;font-size:12px;font-weight:950}
.izin-input-start{background:linear-gradient(135deg,#b18a5d,#8e6841);color:#fffdf9}
.izin-input-end{background:#37322d;color:#fffaf3}
.izin-input-start:disabled,.izin-input-end:disabled{opacity:.5;cursor:not-allowed}
.izin-login-notice{padding:14px;border-radius:14px;background:#f7eee3;border:1px solid #dfc9ae;color:#765536;font-size:12px;line-height:1.5}


.mobile-izin{display:none!important}

.desk-izin-staff-select{width:100%;margin:12px 0 2px;padding:12px;border-radius:12px;border:1px solid #d7c8b6;background:#fffaf3;color:#3a2f26;font-weight:800}
.desk-izin-staff-label{display:block;margin-top:12px;font-size:11px;font-weight:900;color:#60482f}


/* HP khusus absensi check-in dan check-out */
.mobile-izin{display:none!important}

/* Final PC Jam Izin interaction fix */
#deskIzinLoggedIn{display:block!important}
#deskIzinNoLogin{display:none!important}
#deskIzinStart:not(:disabled),#deskIzinEnd:not(:disabled),
#deskIzinChoices button{pointer-events:auto!important;cursor:pointer!important}


/* Force Clock In/Out controls to be clickable */
#dashIzinInput .izin-input-card,
#dashIzinInput .izin-input-choice,
#dashIzinInput .izin-input-start,
#dashIzinInput .izin-input-end{
  position:relative!important;
  z-index:20!important;
  pointer-events:auto!important;
}
#dashIzinInput .izin-input-choice,
#dashIzinInput .izin-input-start,
#dashIzinInput .izin-input-end{
  cursor:pointer!important;
  user-select:none!important;
}
#dashIzinInput .izin-input-choice:active,
#dashIzinInput .izin-input-start:active,
#dashIzinInput .izin-input-end:active{
  transform:translateY(1px)!important;
}


/* Stable Clock In/Out buttons */
#deskIzinChoices button,#deskIzinStart,#deskIzinEnd{
  pointer-events:auto!important;
  cursor:pointer!important;
  position:relative;
  z-index:5;
}


#deskIzinStart,#deskIzinEnd,#deskChoiceKeluar,#deskChoiceMakan{
  pointer-events:auto!important;
  cursor:pointer!important;
  opacity:1!important;
}
#deskIzinStart:disabled{background:#a77a46!important;color:#fff!important}


/* Desktop login access */
.desktop-login{
  min-height:100vh;
  padding:30px;
  background:
    radial-gradient(circle at 20% 15%, rgba(190,148,97,.16), transparent 32%),
    radial-gradient(circle at 86% 82%, rgba(114,84,50,.10), transparent 34%),
    linear-gradient(135deg,#111319 0%,#1b1b20 48%,#111319 100%);
}
.desktop-login-wrap{
  min-height:calc(100vh - 60px);
  display:grid;
  grid-template-columns:1.1fr .9fr;
  align-items:center;
  gap:46px;
  max-width:1180px;
  margin:0 auto;
}
.desktop-login-copy{
  color:#fff7ec;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.desktop-login-kicker{
  display:inline-flex;align-items:center;gap:8px;
  padding:10px 14px;border-radius:14px;
  background:linear-gradient(180deg,#f7f2ea,#ece4d8);
  border:1px solid rgba(228,205,176,.72);
  box-shadow:0 14px 28px rgba(0,0,0,.22);
  color:#4b3424;font-size:11px;font-weight:900;letter-spacing:.08em;
}
.desktop-login-copy h1{
  font-size:46px;line-height:1.05;margin:18px 0 14px;letter-spacing:-1.3px;
  font-weight:1000;text-transform:uppercase;
}
.desktop-login-copy h1 b{color:#d6a56d}
.desktop-shine-title{
  position:relative;display:inline-block;overflow:hidden;
  background:linear-gradient(105deg,#fff7ec 0%,#fff7ec 38%,#ffe2a4 47%,#ffffff 51%,#ffe2a4 56%,#fff7ec 64%,#fff7ec 100%);
  background-size:240% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:dashboardTitleShine 3.2s linear infinite;
  text-shadow:0 4px 18px rgba(0,0,0,.28);
}
.desktop-shine-title b{color:inherit!important}
@keyframes dashboardTitleShine{
  from{background-position:200% 0}
  to{background-position:-55% 0}
}
.desktop-login-copy p{max-width:560px;color:#bdb5aa;line-height:1.7;font-size:14px}
.desktop-login-rules-title{
  margin-top:22px;
  color:#f5d09a;
  font-size:12px;
  font-weight:1000;
  letter-spacing:.14em;
}
.desktop-login-points{display:grid;gap:12px;margin-top:16px}
.desktop-login-point{
  display:flex;align-items:center;gap:10px;color:#fff5e8;font-size:13px;
  font-weight:850;letter-spacing:.015em;
}
.desktop-login-point i{
  width:28px;height:28px;border-radius:9px;display:grid;place-items:center;
  background:rgba(190,148,97,.22);border:1px solid rgba(234,196,143,.34);
  color:#f7d29b;font-style:normal;font-weight:1000;font-size:11px;
}
.desktop-login-rules .desktop-login-point{color:#fff7ec}
.desktop-login-card{
  width:min(430px,100%);justify-self:end;padding:28px;border-radius:24px;
  background:linear-gradient(180deg,#f7f2ea,#ece4d8);
  border:1px solid rgba(228,205,176,.72);
  box-shadow:0 30px 70px rgba(0,0,0,.35);
  transform:translateX(-180px);
}
.desktop-login-brand{display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.desktop-login-brand img{height:66px;max-width:260px;object-fit:contain}
.desktop-login-card h2{margin:0;color:#30271f;font-size:22px;text-align:center}
.desktop-login-card p{margin:7px 0 18px;color:#7e6e5c;font-size:12px;line-height:1.5}
.desktop-login-card label{display:block;margin:12px 0 7px;color:#5d4a36;font-size:11px;font-weight:900}
.desktop-login-card input{
  width:100%;box-sizing:border-box;padding:13px 14px;border-radius:12px;border:1px solid #d7c7b6;
  background:#fffaf4;color:#30271f;font-size:14px;outline:none;
}
.desktop-login-card input:focus{border-color:#b18a5d;box-shadow:0 0 0 3px rgba(177,138,93,.14)}
.desktop-login-btn{
  width:100%;margin-top:18px;padding:14px;border-radius:13px;
  background:linear-gradient(135deg,#b58a56,#8d6844);color:#fffdf8;font-weight:950;font-size:13px;
  box-shadow:0 12px 24px rgba(141,104,68,.22);
}
.desktop-login-error{min-height:18px;margin-top:11px;text-align:center;color:#b84d4d;font-size:12px;font-weight:800}
.desktop-logout{
  min-height:38px;padding:0 13px;border-radius:12px;border:1px solid rgba(181,138,86,.25);
  background:rgba(255,255,255,.05);color:#f6e8d4;font-size:12px;font-weight:900;
}
.desktop-logout:hover{background:rgba(181,138,86,.16)}
@media(max-width:900px){
  .desktop-login{padding:18px}
  .desktop-login-wrap{grid-template-columns:1fr;gap:18px}
  .desktop-login-copy{padding:10px;text-align:center}
  .desktop-login-copy h1{font-size:34px}
  .desktop-login-card{justify-self:center;transform:none}
}


#desktopLogoutBtn{
  pointer-events:auto!important;
  cursor:pointer!important;
  position:relative!important;
  z-index:999!important;
}
#desktopLogoutBtn:active{transform:translateY(1px)}


#desktopLoginBtn{
  pointer-events:auto!important;
  cursor:pointer!important;
  position:relative!important;
  z-index:9999!important;
}


/* PC screen controller — never show login and dashboard together */
@media(min-width:768px){
  body.pc-login-mode #desktopLoginPage{display:block!important;min-height:100vh!important}
  body.pc-login-mode #desktopApp{display:none!important}
  body.pc-app-mode #desktopLoginPage{display:none!important}
  body.pc-app-mode #desktopApp{display:grid!important;min-height:100vh!important}
  body.pc-login-mode{overflow:hidden!important}
  body.pc-login-mode .desktop-login{position:fixed!important;inset:0!important;z-index:99999!important;overflow:auto!important}
}


/* Absolute desktop logout state */
body.pc-login-mode #desktopLoginPage{display:block!important;visibility:visible!important;opacity:1!important}
body.pc-login-mode #desktopApp{display:none!important!important}
body.pc-app-mode #desktopLoginPage{display:none!important}
body.pc-app-mode #desktopApp{display:grid!important}
#desktopLogoutBtn{pointer-events:auto!important;cursor:pointer!important;position:relative!important;z-index:100000!important}


@media(min-width:768px){
  body.pc-login-mode{overflow:hidden!important}
  body.pc-login-mode #desktopLoginPage{display:block!important;position:fixed!important;inset:0!important;z-index:999999!important;overflow:auto!important}
  body.pc-login-mode #desktopApp{display:none!important}
  body.pc-app-mode #desktopLoginPage{display:none!important}
  body.pc-app-mode #desktopApp{display:grid!important}
}


/* Jam Izin: expired timer label */
.izin-input-countdown.overdue{
  color:#b64b45!important;
  font-size:24px!important;
  letter-spacing:.4px!important;
  text-transform:uppercase;
}


/* Manual Check-in admin */
.manual-checkin{
  padding:6px 9px;border-radius:8px;background:#2f6d58;color:#effff4;
  border:1px solid rgba(122,190,151,.34);font-size:10px;font-weight:900;
}
.manual-checkin:hover{background:#3c876c}
.manual-info{
  margin-top:12px;padding:11px 12px;border-radius:12px;
  background:rgba(181,138,86,.10);border:1px solid rgba(181,138,86,.22);
  font-size:11px;line-height:1.6;color:#d7c6b2;
}


#manualCheckinSave:disabled{opacity:.5;cursor:not-allowed}


/* Jam Izin hanya setelah Check-in */
.izin-need-checkin{
  text-align:center;padding:34px 22px;border-radius:18px;
  background:linear-gradient(180deg,#fffaf4,#f5ece0);
  border:1px solid #decbb5;box-shadow:0 10px 22px rgba(88,66,43,.08);
}
.izin-need-checkin-icon{
  width:52px;height:52px;margin:0 auto 13px;border-radius:50%;
  display:grid;place-items:center;background:#b48956;color:#fff;font-size:25px;font-weight:950;
}
.izin-need-checkin h3{margin:0;color:#49331f;font-size:16px;letter-spacing:.2px}
.izin-need-checkin p{max-width:430px;margin:10px auto;color:#755f49;font-size:12px;line-height:1.65}
.izin-need-checkin-note{
  display:inline-block;margin-top:5px;padding:8px 11px;border-radius:999px;
  background:#f0dfca;color:#8a6138;font-size:10px;font-weight:900;
}


/* Jam Izin workspace */
.izin-input-head{min-height:42px}
.izin-workspace{
  display:grid;
  grid-template-columns:minmax(450px,560px) minmax(340px,440px);
  justify-content:center;
  align-items:start;
  gap:20px;
  padding:0 0 28px;
}
.izin-workspace .izin-input-card{
  width:auto!important;
  max-width:none!important;
  margin:0!important;
}
.izin-active-card{
  background:linear-gradient(180deg,#f8f2e8,#efe5d7);
  border:1px solid #decbb5;
  border-radius:20px;
  padding:20px;
  box-shadow:0 14px 30px rgba(67,53,38,.10);
}
.izin-active-card-head{
  display:flex;justify-content:space-between;gap:14px;align-items:flex-start;
  padding-bottom:14px;border-bottom:1px solid #e1d0ba;
}
.izin-active-eyebrow{
  display:inline-flex;align-items:center;gap:5px;
  padding:5px 8px;border-radius:999px;
  background:#e0f3eb;color:#2e7c58;font-size:9px;font-weight:950;letter-spacing:.05em;
}
.izin-active-card h2{margin:8px 0 5px;color:#33271e;font-size:18px}
.izin-active-card p{margin:0;color:#806e59;font-size:11px;line-height:1.5}
.izin-active-total{
  flex:none;padding:7px 10px;border-radius:999px;
  background:#b58a56;color:#fffdf7;font-size:10px;font-weight:950;
}
.izin-active-list{display:grid;gap:10px;margin-top:14px}
.izin-active-item{
  display:flex;align-items:center;gap:11px;
  padding:11px;border:1px solid #e0d1bd;border-radius:13px;background:#fffaf4;
}
.izin-active-avatar{
  width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:#b58a56;color:#fff;font-size:11px;font-weight:950;flex:none;
}
.izin-active-main{min-width:0;flex:1}
.izin-active-name{font-size:12px;font-weight:950;color:#3c2e23;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.izin-active-meta{margin-top:3px;color:#806d58;font-size:10px}
.izin-active-timer{
  flex:none;text-align:right;color:#a2723e;font-size:14px;font-weight:950;
  font-variant-numeric:tabular-nums;
}
.izin-active-timer.overdue{color:#b75047;font-size:10px;max-width:78px;line-height:1.2}
.izin-active-empty{
  padding:22px 12px;border-radius:12px;border:1px dashed #dac8b1;
  text-align:center;color:#876f55;font-size:11px;background:#fffaf4;
}
@media(max-width:1100px){
  .izin-workspace{grid-template-columns:minmax(360px,560px);padding:0 16px 28px}
  .izin-active-card{max-width:560px;width:100%;box-sizing:border-box;justify-self:center}
}


/* Jam Izin card live meta */
.izin-input-livebar{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin:12px 0 14px;
}
.izin-input-liveitem{
  background:#fffaf4;
  border:1px solid #e0d1bd;
  border-radius:14px;
  padding:10px 12px;
  box-shadow:0 4px 10px rgba(67,53,38,.05);
}
.izin-input-liveitem span{
  display:block;
  font-size:9px;
  color:#8a755f;
  font-weight:900;
  letter-spacing:.08em;
  margin-bottom:4px;
}
.izin-input-liveitem strong{
  display:block;
  color:#3b2d22;
  font-size:14px;
  font-weight:950;
  line-height:1.2;
}
@media(max-width:640px){
  .izin-input-livebar{grid-template-columns:1fr}
}


/* Header profile dropdown */
.profile-menu{position:relative}
.profile-trigger{
  cursor:pointer!important;
  text-align:left;
  color:inherit;
}
.profile-trigger:hover{background:rgba(181,138,86,.11)}
.profile-caret{color:#d7b17b;font-size:12px;margin-left:2px;transition:.2s}
.profile-menu.open .profile-caret{transform:rotate(180deg)}
.profile-dropdown{
  position:absolute;right:0;top:calc(100% + 10px);z-index:10010;
  min-width:215px;padding:8px;border-radius:14px;
  background:#1a1a1f;border:1px solid rgba(181,138,86,.28);
  box-shadow:0 18px 38px rgba(0,0,0,.38);
  display:none;
}
.profile-menu.open .profile-dropdown{display:block}
.profile-dropdown button{
  display:flex;width:100%;align-items:center;gap:9px;
  padding:11px 12px;border-radius:10px;background:transparent;
  color:#f7ead9;font-size:12px;font-weight:850;text-align:left;
}
.profile-dropdown button:hover{background:rgba(181,138,86,.16)}
.profile-dropdown .profile-logout{color:#ffb1a9}
.profile-dropdown .profile-logout:hover{background:rgba(205,82,70,.14)}
.profile-divider{height:1px;background:rgba(255,255,255,.09);margin:6px 4px}
.topbar-avatar.has-photo{overflow:hidden;background:#29241f}
.topbar-avatar.has-photo img{width:100%;height:100%;object-fit:cover;display:block}
.profile-modal-card{width:min(440px,calc(100vw - 38px))}
.profile-modal-title{font-size:18px;font-weight:950;color:#3d2d20;margin-bottom:7px}
.profile-modal-card p{font-size:12px;color:#7d6751;line-height:1.55;margin:0 0 14px}
.profile-modal-card label{display:block;font-size:10px;font-weight:950;color:#654a31;margin:8px 0 6px}
.profile-modal-card input[type="text"],.profile-modal-card input:not([type]){
  width:100%;box-sizing:border-box;padding:12px;border:1px solid #dbc9b4;border-radius:11px;background:#fffaf4;color:#382b20;font-size:13px;
}
.profile-modal-card input[type="file"]{width:100%;font-size:11px;color:#634b32}
.profile-photo-help{margin-top:8px;font-size:10px;line-height:1.5;color:#856b51}
.profile-photo-preview-wrap{margin-top:12px}
.profile-photo-preview{width:86px;height:86px;border-radius:50%;object-fit:cover;border:3px solid #c49a66;box-shadow:0 7px 16px rgba(107,75,43,.18)}


/* Header profile: name + role on one line */
.profile-trigger{
  min-width:300px!important;
  padding:8px 12px!important;
  gap:10px!important;
}
.profile-trigger .topbar-user-meta{
  display:flex!important;
  align-items:center!important;
  gap:9px!important;
  min-width:0!important;
  flex:1!important;
}
.profile-trigger .topbar-user-name{
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  line-height:1!important;
}
.profile-trigger .topbar-user-role{
  margin:0!important;
  flex:none!important;
  display:inline-flex!important;
  align-items:center!important;
  white-space:nowrap!important;
  line-height:1!important;
  padding:5px 8px!important;
  border-radius:999px!important;
}
.profile-trigger .profile-caret{
  flex:none!important;
  margin-left:2px!important;
}
@media(max-width:900px){
  .profile-trigger{min-width:250px!important}
}


/* Sliding profile settings page */
.profile-settings-page{
  position:fixed;inset:0;z-index:100000;
  display:flex;justify-content:flex-end;
  background:rgba(12,14,19,.36);
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .28s ease,visibility .28s ease;
}
.profile-settings-page.open{opacity:1;visibility:visible;pointer-events:auto}
.profile-settings-shell{
  width:min(560px,100%);
  min-height:100%;
  padding:26px;
  box-sizing:border-box;
  background:linear-gradient(180deg,#fbfaf7,#f4f0e9);
  box-shadow:-24px 0 60px rgba(0,0,0,.28);
  transform:translateX(100%);
  transition:transform .34s cubic-bezier(.2,.8,.2,1);
  overflow:auto;
}
.profile-settings-page.open .profile-settings-shell{transform:translateX(0)}
.profile-settings-back{
  padding:8px 0;background:transparent;color:#6b5a49;
  font-size:12px;font-weight:900;text-decoration:underline;
}
.profile-settings-card{
  width:min(440px,100%);margin:24px auto 0;
  padding:28px;border-radius:26px;background:#fff;
  border:1px solid #dedbd5;box-shadow:0 15px 38px rgba(27,27,27,.12);
}
.profile-settings-heading{display:flex;flex-direction:column;align-items:flex-start}
.profile-settings-avatar-wrap{
  width:124px;height:124px;border-radius:50%;padding:6px;
  background:#fff;box-shadow:0 8px 22px rgba(0,0,0,.14);margin-bottom:18px;
}
.profile-settings-avatar{
  width:100%;height:100%;border-radius:50%;display:grid;place-items:center;
  background:#b58a56;color:#fff;font-size:30px;font-weight:950;overflow:hidden;
}
.profile-settings-avatar img{width:100%;height:100%;object-fit:cover}
.profile-settings-name-wrap h2{margin:0;color:#222;font-size:23px;line-height:1.2;letter-spacing:.1px}
.profile-settings-name-wrap span{
  display:inline-flex;margin-top:8px;padding:5px 12px;border-radius:999px;
  border:1px solid #c7c7c7;background:#f5f5f5;color:#5c5c5c;font-size:11px;font-weight:900;
}
.profile-settings-tabs{
  display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:26px 0 16px;
}
.profile-settings-tab{
  padding:11px;border-radius:12px;background:#f4f0e9;border:1px solid #e0d8ca;color:#735b42;font-weight:900;font-size:12px;
}
.profile-settings-tab.active{background:#b58a56;color:#fff;border-color:#b58a56}
.profile-settings-panel{margin-top:4px}
.profile-upload-zone{
  min-height:140px;border:1.5px dashed #c9c5bd;border-radius:20px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;
  background:#fcfcfc;color:#666;cursor:pointer;transition:.2s;
}
.profile-upload-zone:hover,.profile-upload-zone.dragover{border-color:#b58a56;background:#fbf5ec}
.profile-upload-icon{
  width:62px;height:62px;border-radius:18px;background:#dedede;color:#656565;
  display:grid;place-items:center;font-size:28px;box-shadow:0 6px 15px rgba(0,0,0,.12);
}
.profile-upload-zone strong{font-size:13px;color:#5a5a5a}
.profile-upload-zone span{font-size:10px;color:#969696}
.profile-settings-preview{
  width:116px;height:116px;margin:16px auto 0;display:block;
  border-radius:50%;object-fit:cover;border:4px solid #fff;box-shadow:0 8px 18px rgba(0,0,0,.16);
}
.profile-settings-panel label{display:block;color:#654a31;font-size:10px;font-weight:950;margin:4px 0 8px}
.profile-settings-panel input[type="text"],.profile-settings-panel input:not([type]){
  width:100%;box-sizing:border-box;padding:14px;border:1px solid #d9d1c7;border-radius:13px;background:#fff;color:#352b22;font-size:14px;
}
.profile-settings-panel p{margin:10px 0 0;color:#8a8178;font-size:11px;line-height:1.55}
.profile-settings-save{
  width:100%;margin-top:24px;padding:14px;border-radius:14px;
  background:linear-gradient(135deg,#b58a56,#8f6844);color:#fff;font-weight:950;font-size:13px;
}
.profile-settings-save:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:620px){
  .profile-settings-shell{padding:14px}
  .profile-settings-card{padding:22px;margin-top:18px}
}


/* Profile photo sync to Jam Izin card */
.izin-user-avatar.has-photo{
  overflow:hidden!important;
  background:#29241f!important;
}
.izin-user-avatar.has-photo img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  display:block!important;
}


/* Profile photo sync: Jam Izin staff card */
.izin-active-avatar.has-photo{overflow:hidden;background:#29241f}
.izin-active-avatar.has-photo img{width:100%;height:100%;object-fit:cover;display:block}


/* Profile password editor */
.profile-settings-tabs-3{grid-template-columns:repeat(3,1fr)!important}
.profile-settings-panel input[type="password"]{
  width:100%;box-sizing:border-box;padding:14px;border:1px solid #d9d1c7;border-radius:13px;background:#fff;color:#352b22;font-size:14px;margin-bottom:9px;
}


/* Jam Izin layout lebih lebar dan padat */
@media(min-width:1101px){
  .izin-input-page{
    padding:28px 56px 46px!important;
  }
  .izin-workspace{
    width:min(1280px,100%)!important;
    margin:0 auto!important;
    grid-template-columns:minmax(620px,1.3fr) minmax(430px,.9fr)!important;
    gap:26px!important;
    align-items:start!important;
  }
  .izin-workspace .izin-input-card{
    padding:26px!important;
    border-radius:22px!important;
  }
  .izin-workspace .izin-active-card{
    padding:24px!important;
    border-radius:22px!important;
  }
  .izin-input-card h2,
  .izin-active-card h2{
    font-size:20px!important;
  }
  .izin-input-card p{
    max-width:620px!important;
    font-size:12px!important;
  }
  .izin-input-choice{
    min-height:96px!important;
    padding:16px!important;
    font-size:15px!important;
  }
  .izin-input-choice span{
    font-size:11px!important;
  }
  .izin-input-status{
    padding:16px!important;
  }
  .izin-input-time{
    padding:12px!important;
  }
  .izin-input-actions{
    margin-top:14px!important;
  }
  .izin-active-list{
    gap:11px!important;
  }
  .izin-active-empty{
    padding:34px 16px!important;
  }
}


/* Menu fitur baru */
.extra-page{min-height:calc(100vh - 82px);display:none;place-items:center;padding:34px}
.extra-page.show{display:grid}
.extra-page-card{
  width:min(620px,100%);padding:42px 34px;text-align:center;border-radius:24px;
  background:linear-gradient(180deg,#fbf7f0,#f2e8da);
  border:1px solid #decab1;box-shadow:0 18px 46px rgba(67,53,38,.12);
}
.extra-page-icon{
  width:58px;height:58px;margin:0 auto 16px;border-radius:18px;
  display:grid;place-items:center;background:#b58a56;color:#fff;font-size:28px;font-weight:950;
}
.extra-page-card h1{margin:0;color:#3d2c20;font-size:26px}
.extra-page-card p{margin:10px 0 0;color:#7b674f;font-size:13px}




/* ===== Pengajuan Cuti ===== */
.pengajuan-cuti-wrap{display:flex;flex-direction:column;gap:18px}
.pengajuan-cuti-title{
  display:flex;align-items:center;justify-content:center;gap:10px;
  font-size:24px;font-weight:900;color:#39322a;margin:0 0 2px;
}
.pengajuan-cuti-title .shield{font-size:30px;color:#595147}
.pengajuan-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.pengajuan-summary-card{
  background:#fff;border-radius:16px;border:1px solid #e7ddd0;box-shadow:0 10px 26px rgba(51,33,10,.08);
  padding:16px 18px;position:relative;overflow:hidden;min-height:165px
}
.pengajuan-summary-card:before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:#2c2620;border-radius:16px 0 0 16px}
.pengajuan-summary-card h3{margin:0 0 8px;font-size:22px;line-height:1.1;color:#1f1d1a}
.pengajuan-summary-card .sum-top{font-size:13px;font-weight:800;color:#191919;display:flex;align-items:center;gap:6px;margin-bottom:8px}
.pengajuan-summary-card .sum-top i{font-style:normal;color:#2f2f2f}
.pengajuan-summary-card .sum-main{font-size:16px;font-weight:900;color:#151515;margin-bottom:8px}
.pengajuan-summary-card .sum-meta{font-size:12px;color:#444;display:flex;align-items:center;gap:6px;margin:4px 0}
.pengajuan-summary-card ul{margin:6px 0 10px 22px;padding:0;color:#444;font-size:12px;line-height:1.45}
.pengajuan-summary-card li{margin:4px 0}
.pengajuan-summary-card .ready{color:#128223;font-weight:800}
.pengajuan-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.pengajuan-add-btn{background:#0d1b88;color:#fff;border:none;border-radius:8px;padding:11px 16px;font-weight:900;box-shadow:0 8px 18px rgba(13,27,136,.16)}
.pengajuan-add-btn:hover{filter:brightness(1.06)}
.pengajuan-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.pengajuan-tabs{display:flex;gap:10px;flex-wrap:wrap}
.pengajuan-tab{border:none;border-radius:8px;padding:9px 16px;font-weight:800;background:#d9d9d9;color:#1b1b1b}
.pengajuan-tab.active{background:#1520a6;color:#fff}
.pengajuan-filter select{min-width:130px;padding:10px 12px;border-radius:8px;border:1px solid #cbc2b6;background:#fff;font-weight:700}
.pengajuan-table-wrap{overflow:auto;border-radius:14px}
.pengajuan-table{width:100%;min-width:1300px;border-collapse:separate;border-spacing:0;background:#fff;border-radius:14px;overflow:hidden;box-shadow:0 10px 24px rgba(51,33,10,.06)}
.pengajuan-table th{background:#2d2d2d;color:#fff;font-size:13px;padding:12px 10px;text-align:center;white-space:nowrap;border-right:1px solid rgba(255,255,255,.12)}
.pengajuan-table td{padding:11px 10px;border-right:1px solid #d7d7d7;border-bottom:1px solid #d7d7d7;font-size:12px;color:#404040;text-align:center;vertical-align:middle}
.pengajuan-table tbody tr:hover{background:#faf7f2}
.pengajuan-table th:last-child,.pengajuan-table td:last-child{border-right:none}
.pengajuan-table .nama-cell{font-weight:800;color:#383838}
.pengajuan-status{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:900}
.pengajuan-status.pending{color:#da8d18;background:#fff3da}
.pengajuan-status.approved{color:#0c8d45;background:#e8fff1}
.pengajuan-status.rejected{color:#cf483f;background:#ffeaea}
.pengajuan-eye{width:34px;height:34px;border-radius:50%;border:none;background:#f0f0f0;font-size:15px}
.pengajuan-empty-row{padding:26px 14px!important;color:#7b7062!important;font-weight:700}
.pengajuan-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.34);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:30000;padding:20px}
.pengajuan-modal-backdrop.hidden{display:none!important}
.pengajuan-modal{width:min(100%,470px);background:#fff;border-radius:14px;box-shadow:0 24px 70px rgba(0,0,0,.28);padding:20px 22px;position:relative}
.pengajuan-modal.large{width:min(100%,620px)}
.pengajuan-modal h3{margin:0 0 14px;color:#15108c;font-size:17px;font-weight:900;display:flex;align-items:center;gap:8px}
.pengajuan-modal-close{position:absolute;right:16px;top:14px;background:none;border:none;font-size:22px;color:#a71a16;cursor:pointer}
.pengajuan-form-grid{display:grid;grid-template-columns:1fr;gap:12px}
.pengajuan-form-row.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pengajuan-form label{display:block;font-size:13px;font-weight:700;color:#4c4c4c;margin-bottom:6px}
.pengajuan-form input,.pengajuan-form select,.pengajuan-form textarea{width:100%;border:1px solid #d5d0c8;border-radius:8px;padding:10px 12px;font:inherit;background:#fff}
.pengajuan-form textarea{min-height:90px;resize:vertical}
.pengajuan-submit-btn,.pengajuan-action-btn{width:100%;margin-top:16px;background:#111f99;color:#fff;border:none;border-radius:10px;padding:12px 16px;font-weight:900}
.pengajuan-date-box{background:#faf7f2;border:1px solid #e6d7c2;border-radius:10px;padding:12px}
.pengajuan-date-box h4{margin:0 0 10px;color:#5b4325;font-size:13px;font-weight:900}
.pengajuan-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;font-size:13px;color:#464646}
.pengajuan-detail-grid .full{grid-column:1/-1}
.pengajuan-detail-item{background:#faf7f2;border:1px solid #e8d9c5;border-radius:10px;padding:10px 12px}
.pengajuan-detail-item b{display:block;font-size:11px;color:#6f6456;margin-bottom:5px}
.pengajuan-detail-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}
.pengajuan-detail-actions button{border:none;border-radius:10px;padding:11px 10px;font-weight:900}
.pengajuan-approve{background:#e8fff1;color:#0c8d45}
.pengajuan-pending{background:#fff3da;color:#da8d18}
.pengajuan-reject{background:#ffeaea;color:#cf483f}
@media (max-width:1200px){
  .pengajuan-summary-grid{grid-template-columns:1fr}
}
@media (max-width:720px){
  .pengajuan-form-row.two,.pengajuan-detail-grid,.pengajuan-detail-actions{grid-template-columns:1fr}
}



/* rapikan posisi halaman pengajuan cuti agar lebih ke atas */
#dashPengajuanCuti{
  padding: 12px 22px 28px !important;
  align-content: start !important;
  justify-items: stretch !important;
}
#dashPengajuanCuti.show{
  display:block !important;
}
#dashPengajuanCuti .pengajuan-cuti-wrap{
  width:100%;
  max-width:none;
  margin-top:0;
}
#dashPengajuanCuti .pengajuan-cuti-title{
  margin:0 0 4px;
}


/* Sidebar dan header tetap terlihat saat halaman di-scroll */
@media (min-width:768px){
  .dash-shell{
    display:block!important;
    min-height:100vh!important;
  }
  .dash-side{
    position:fixed!important;
    top:0!important;
    left:0!important;
    bottom:0!important;
    width:255px!important;
    height:100vh!important;
    overflow-y:auto!important;
    z-index:2000!important;
  }
  .dash-main{
    margin-left:255px!important;
    min-height:100vh!important;
    height:100vh!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
  }
  .dash-topbar{
    position:sticky!important;
    top:0!important;
    z-index:1500!important;
  }
}
@media (min-width:768px) and (max-width:1050px){
  .dash-side{width:80px!important}
  .dash-main{margin-left:80px!important}
}


/* Tampilan Approved / Rejected Pengajuan Cuti */
.pengajuan-table th:nth-child(10),
.pengajuan-table th:nth-child(11),
.pengajuan-table th:nth-child(12),
.pengajuan-table th:nth-child(13),
.pengajuan-table th:nth-child(14){
  white-space:normal;
}
.pengajuan-table td:nth-child(10),
.pengajuan-table td:nth-child(11),
.pengajuan-table td:nth-child(12),
.pengajuan-table td:nth-child(13),
.pengajuan-table td:nth-child(14){
  white-space:normal;
}
.cuti-remaining,
.cuti-note-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-width:76px;
  padding:7px 9px;
  border-radius:7px;
  font-size:11px;
  font-weight:900;
  line-height:1.15;
}
.cuti-remaining.cuti-finished,
.cuti-note-status.cuti-finished{
  background:#e4e6e8;
  color:#68727b;
}
.cuti-remaining.cuti-active,
.cuti-note-status.cuti-active{
  background:#e4fff0;
  color:#079143;
}
.cuti-remaining.cuti-upcoming{
  background:#fff4dd;
  color:#d38415;
}
.cuti-remaining.cuti-none{
  background:#f1f1f1;
  color:#808080;
}
.cuti-note-status.cuti-upcoming{background:#f3f3f3;color:#909090}
.pengajuan-copy-btn{
  border:none;
  border-radius:7px;
  padding:9px 12px;
  background:#0d168b;
  color:#fff;
  font-weight:900;
  font-size:12px;
  white-space:nowrap;
  cursor:pointer;
}
.pengajuan-copy-btn:hover{filter:brightness(1.08)}


/* Hak akses LEADER untuk pengajuan cuti */
.leader-row-actions{display:flex;justify-content:center;gap:6px;white-space:nowrap}
.leader-row-actions button{
  border:none;border-radius:7px;padding:7px 9px;font-size:11px;font-weight:900;cursor:pointer;
}
.leader-approve-btn{background:#e8fff1;color:#0a8d42}
.leader-reject-btn{background:#ffe8e8;color:#c93f38}
.leader-approve-btn:hover,.leader-reject-btn:hover{filter:brightness(.96)}
.cuti-note-modal{width:min(100%,410px)!important;text-align:center;padding:32px 28px!important}
.cuti-note-modal h3{justify-content:center!important;color:#0d6f1f!important;font-size:24px!important;margin:8px 0 14px!important}
.cuti-note-icon{
  width:66px;height:66px;border:3px solid #4cc3f0;border-radius:50%;margin:4px auto 16px;
  display:grid;place-items:center;color:#4cc3f0;font-size:42px;line-height:1;
}
.cuti-note-content{min-height:50px;display:flex;align-items:center;justify-content:center;color:#5b5b5b;font-size:14px;line-height:1.5;white-space:pre-wrap}
.cuti-note-close-btn{
  margin-top:20px;border:none;border-radius:4px;padding:9px 22px;background:#6d5bdd;color:#fff;font-weight:800;cursor:pointer;
}
.cuti-note-close-btn:hover{filter:brightness(1.06)}


/* Tabel Pengajuan Cuti terkunci penuh di layar: tanpa scroll kanan-kiri */
@media (min-width:768px){
  #dashPengajuanCuti{
    overflow-x:hidden!important;
    padding-left:22px!important;
    padding-right:22px!important;
  }
  #dashPengajuanCuti .pengajuan-table-wrap{
    width:100%!important;
    overflow-x:hidden!important;
    overflow-y:visible!important;
  }
  #dashPengajuanCuti .pengajuan-table{
    width:100%!important;
    min-width:0!important;
    table-layout:fixed!important;
  }
  #dashPengajuanCuti .pengajuan-table th,
  #dashPengajuanCuti .pengajuan-table td{
    padding:7px 4px!important;
    font-size:9px!important;
    line-height:1.22!important;
    word-break:break-word!important;
    overflow-wrap:anywhere!important;
    white-space:normal!important;
  }
  #dashPengajuanCuti .pengajuan-table th{
    font-size:9px!important;
    font-weight:900!important;
  }
  #dashPengajuanCuti .pengajuan-table th:nth-child(1),
  #dashPengajuanCuti .pengajuan-table td:nth-child(1){width:3.2%!important}
  #dashPengajuanCuti .pengajuan-table th:nth-child(2),
  #dashPengajuanCuti .pengajuan-table td:nth-child(2){width:6.2%!important}
  #dashPengajuanCuti .pengajuan-table th:nth-child(3),
  #dashPengajuanCuti .pengajuan-table td:nth-child(3){width:5.7%!important}
  #dashPengajuanCuti .pengajuan-table th:nth-child(4),
  #dashPengajuanCuti .pengajuan-table td:nth-child(4){width:8.2%!important}
  #dashPengajuanCuti .pengajuan-table th:nth-child(5),
  #dashPengajuanCuti .pengajuan-table td:nth-child(5){width:7.2%!important}
  #dashPengajuanCuti .pengajuan-table th:nth-child(6),
  #dashPengajuanCuti .pengajuan-table td:nth-child(6){width:8.1%!important}
  #dashPengajuanCuti .pengajuan-table th:nth-child(7),
  #dashPengajuanCuti .pengajuan-table td:nth-child(7){width:7.5%!important}
  #dashPengajuanCuti .pengajuan-table th:nth-child(8),
  #dashPengajuanCuti .pengajuan-table td:nth-child(8){width:6.6%!important}
  #dashPengajuanCuti .pengajuan-table th:nth-child(9),
  #dashPengajuanCuti .pengajuan-table td:nth-child(9){width:7%!important}
  #dashPengajuanCuti .pengajuan-table th:nth-child(10),
  #dashPengajuanCuti .pengajuan-table td:nth-child(10){width:5.3%!important}
  #dashPengajuanCuti .pengajuan-table th:nth-child(11),
  #dashPengajuanCuti .pengajuan-table td:nth-child(11){width:5.1%!important}
  #dashPengajuanCuti .pengajuan-table th:nth-child(12),
  #dashPengajuanCuti .pengajuan-table td:nth-child(12){width:5.6%!important}
  #dashPengajuanCuti .pengajuan-table th:nth-child(13),
  #dashPengajuanCuti .pengajuan-table td:nth-child(13){width:4.2%!important}
  #dashPengajuanCuti .pengajuan-table th:nth-child(14),
  #dashPengajuanCuti .pengajuan-table td:nth-child(14){width:4.6%!important}
  #dashPengajuanCuti .pengajuan-table th:nth-child(15),
  #dashPengajuanCuti .pengajuan-table td:nth-child(15){width:5.3%!important}
  #dashPengajuanCuti .pengajuan-copy-btn{
    padding:6px 5px!important;
    font-size:9px!important;
    width:100%!important;
  }
  #dashPengajuanCuti .pengajuan-eye{
    width:28px!important;
    height:28px!important;
    font-size:12px!important;
  }
  #dashPengajuanCuti .leader-row-actions{
    flex-direction:column!important;
    gap:4px!important;
  }
  #dashPengajuanCuti .leader-row-actions button{
    padding:5px 3px!important;
    font-size:8px!important;
    width:100%!important;
  }
  #dashPengajuanCuti .cuti-remaining,
  #dashPengajuanCuti .cuti-note-status{
    min-width:0!important;
    width:100%!important;
    padding:5px 3px!important;
    font-size:8px!important;
  }
}


/* Pengajuan cuti: kolom Berapa Hari Lagi dan Keterangan Cuti dihapus.
   Tombol Approve/Reject khusus LEADER tetap berada di kolom Tindakan paling kanan. */
@media (min-width:768px){
  #dashPengajuanCuti .pengajuan-table th:nth-child(11),
  #dashPengajuanCuti .pengajuan-table td:nth-child(11){width:5.4%!important}
  #dashPengajuanCuti .pengajuan-table th:nth-child(12),
  #dashPengajuanCuti .pengajuan-table td:nth-child(12){width:4.8%!important}
  #dashPengajuanCuti .pengajuan-table th:nth-child(13),
  #dashPengajuanCuti .pengajuan-table td:nth-child(13){width:6%!important}
  #dashPengajuanCuti .cuti-remaining,
  #dashPengajuanCuti .cuti-note-status{display:none!important}
}


/* Tombol leader dipindah ke dua kolom sebelum Status. Kolom paling ujung adalah Copy Teks. */
.leader-approve-cell,.leader-reject-cell{text-align:center}
.leader-approve-cell .leader-approve-btn,
.leader-reject-cell .leader-reject-btn{
  width:100%;
  border:none;
  border-radius:7px;
  padding:7px 6px;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
}
.leader-approve-cell .leader-approve-btn{background:#e8fff1;color:#0a8d42}
.leader-reject-cell .leader-reject-btn{background:#ffe8e8;color:#c93f38}
@media (min-width:768px){
  #dashPengajuanCuti .pengajuan-table th:nth-child(8),
  #dashPengajuanCuti .pengajuan-table td:nth-child(8){width:6.5%!important}
  #dashPengajuanCuti .pengajuan-table th:nth-child(9),
  #dashPengajuanCuti .pengajuan-table td:nth-child(9){width:6.5%!important}
  #dashPengajuanCuti .pengajuan-table th:nth-child(10),
  #dashPengajuanCuti .pengajuan-table td:nth-child(10){width:5.6%!important}
  #dashPengajuanCuti .pengajuan-table th:nth-child(11),
  #dashPengajuanCuti .pengajuan-table td:nth-child(11){width:4.7%!important}
  #dashPengajuanCuti .pengajuan-table th:nth-child(12),
  #dashPengajuanCuti .pengajuan-table td:nth-child(12){width:5.7%!important}
}


/* Tab Pending: kolom Copy Teks disembunyikan */
#dashPengajuanCuti.pending-no-copy .copy-text-head,
#dashPengajuanCuti.pending-no-copy .copy-text-cell{display:none!important}


/* Editor 3 card ringkasan cuti */
.pengajuan-summary-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  font-size:13px;font-weight:900;color:#6b5a45;margin:0 0 -7px;
}
.summary-edit-btn{
  border:none;border-radius:8px;padding:8px 12px;background:#151c95;color:#fff;
  font-weight:900;font-size:12px;cursor:pointer;box-shadow:0 6px 15px rgba(21,28,149,.16);
}
.summary-edit-btn.hidden{display:none!important}
.summary-cards-modal{width:min(100%,560px)!important}
.summary-cards-help{margin:-3px 0 14px;color:#756654;font-size:12px;line-height:1.45}
.summary-editor-tabs{display:flex;gap:8px;margin:0 0 14px}
.summary-editor-tab{
  flex:1;border:1px solid #dccbb9;border-radius:9px;background:#fbf7f0;color:#5b4631;
  padding:10px 8px;font-weight:900;cursor:pointer;
}
.summary-editor-tab.active{background:#151c95;color:#fff;border-color:#151c95}
#summaryDates{min-height:96px}
.summary-modal-actions{display:grid;grid-template-columns:1fr 1.5fr;gap:10px;margin-top:14px}
.summary-reset-btn{border:none;border-radius:10px;background:#ece6de;color:#66533d;font-weight:900;cursor:pointer}
@media(max-width:640px){
  .pengajuan-summary-head{align-items:flex-start;flex-direction:column}
  .summary-modal-actions{grid-template-columns:1fr}
}


/* Filter tanggal Dashboard Izin */
.izin-monitor-top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:6px}
.izin-monitor-top h2{margin:0 0 8px}
.izin-date-filter{display:flex;align-items:center;gap:8px;padding:10px;border:1px solid #e0cdb5;border-radius:12px;background:#fbf7f0;box-shadow:0 6px 16px rgba(61,42,20,.05)}
.izin-date-filter label{font-size:11px;font-weight:900;color:#664d31;white-space:nowrap}
.izin-date-filter input{border:1px solid #d7c4ae;border-radius:8px;padding:8px 10px;color:#3b2e22;background:#fff;font:inherit;font-size:12px}
.izin-date-filter button{border:none;border-radius:8px;padding:8px 11px;background:#a97b43;color:#fff;font-weight:900;font-size:11px;cursor:pointer}
.izin-date-filter button:hover{filter:brightness(1.06)}
@media(max-width:720px){.izin-monitor-top{flex-direction:column}.izin-date-filter{width:100%;flex-wrap:wrap}.izin-date-filter input{flex:1;min-width:160px}}


/* Logo Absensi Joni untuk tampilan HP */
.logo.logo-image{
  width:126px!important;
  height:70px!important;
  margin:0 auto 12px!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
}
.logo.logo-image img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.mini-logo.mini-logo-image{
  width:46px!important;
  height:34px!important;
  border-radius:0!important;
  background:transparent!important;
  color:transparent!important;
  overflow:visible!important;
}
.mini-logo.mini-logo-image img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}


/* Wallpaper khusus halaman Login HP */
@media(max-width:767px){
  #loginPage{
    min-height:100vh;
    background:
      linear-gradient(rgba(10,12,20,.38),rgba(10,12,20,.48)),
      url('https://i.imgur.com/8diNIbD.jpeg') center/cover no-repeat fixed !important;
  }
  #loginPage .wrap.login{
    min-height:100vh;
    background:transparent!important;
  }
  #loginPage .brand,
  #loginPage .card{
    position:relative;
    z-index:1;
  }
}


/* Login HP: teks lebih jelas, card elegan, dan efek kilau bergerak */
@media(max-width:767px){
  #loginPage{
    position:relative;
    overflow:hidden;
  }
  #loginPage:before{
    content:'';
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
      linear-gradient(115deg,
        transparent 0%,
        transparent 36%,
        rgba(255,232,172,.05) 43%,
        rgba(255,244,212,.38) 50%,
        rgba(255,232,172,.06) 57%,
        transparent 64%,
        transparent 100%);
    background-size:240% 100%;
    animation:loginLightSlide 5.8s ease-in-out infinite;
    z-index:0;
  }
  #loginPage .brand h1{
    color:#fff7dd!important;
    text-shadow:
      0 2px 0 rgba(34,17,4,.75),
      0 0 10px rgba(255,214,121,.72),
      0 0 22px rgba(255,185,62,.34)!important;
    letter-spacing:.7px;
    font-weight:950!important;
  }
  #loginPage .brand p{
    color:#fff3d3!important;
    text-shadow:0 1px 3px rgba(0,0,0,.7)!important;
    font-weight:700!important;
  }
  #loginPage .card{
    overflow:hidden;
    border:1px solid rgba(244,208,142,.58)!important;
    background:
      linear-gradient(145deg,rgba(31,25,27,.88),rgba(66,43,27,.78))!important;
    box-shadow:
      0 20px 42px rgba(0,0,0,.42),
      inset 0 1px 0 rgba(255,245,210,.19),
      0 0 18px rgba(224,163,62,.17)!important;
    backdrop-filter:blur(10px);
  }
  #loginPage .card:before{
    content:'';
    position:absolute;
    inset:-30% -75%;
    pointer-events:none;
    background:linear-gradient(105deg,
      transparent 42%,
      rgba(255,246,209,.04) 47%,
      rgba(255,229,158,.46) 50%,
      rgba(255,246,209,.05) 53%,
      transparent 58%);
    transform:translateX(-35%) rotate(8deg);
    animation:cardGoldShine 5s ease-in-out infinite;
  }
  #loginPage .card > *{
    position:relative;
    z-index:1;
  }
  #loginPage .card label{
    color:#ffedbf!important;
    text-shadow:0 1px 2px rgba(0,0,0,.65)!important;
    font-weight:900!important;
  }
  #loginPage .card input{
    color:#2f2017!important;
    background:rgba(255,251,242,.94)!important;
    border:1px solid rgba(245,207,139,.66)!important;
    box-shadow:inset 0 1px 2px rgba(41,24,10,.13)!important;
  }
  #loginPage .card input::placeholder{
    color:#8f7d70!important;
  }
  #loginPage .card button,
  #loginPage .card .login-btn{
    color:#fff8e9!important;
    background:linear-gradient(90deg,#8b5b2a,#d8a354,#875326)!important;
    box-shadow:0 8px 18px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,242,208,.35)!important;
    text-shadow:0 1px 2px rgba(49,27,5,.65)!important;
  }
  #loginPage .card h2{
    color:#fff1c7!important;
    text-shadow:0 2px 3px rgba(0,0,0,.62)!important;
  }
  #loginPage .card p{
    color:#f7dfb8!important;
  }
}
@keyframes loginLightSlide{
  0%,15%{background-position:150% 0}
  55%,70%{background-position:-55% 0}
  100%{background-position:-55% 0}
}
@keyframes cardGoldShine{
  0%,22%{transform:translateX(-70%) rotate(8deg)}
  60%,100%{transform:translateX(70%) rotate(8deg)}
}



/* ===== Premium elegant style for mobile interior pages ===== */
@media(max-width:767px){
  #appPage{
    position:relative;
    overflow:hidden;
    background:
      radial-gradient(circle at top right, rgba(255,225,170,.16), transparent 28%),
      radial-gradient(circle at top left, rgba(255,240,210,.20), transparent 26%),
      linear-gradient(180deg,#f7f2ea 0%,#f1e9dd 42%,#efe6da 100%)!important;
  }
  #appPage:before{
    content:'';
    position:fixed;
    inset:0;
    pointer-events:none;
    background:
      linear-gradient(115deg,
      transparent 0%, transparent 38%, rgba(255,245,218,.00) 44%, rgba(255,236,191,.20) 50%, rgba(255,245,218,.00) 56%, transparent 62%, transparent 100%);
    background-size:240% 100%;
    animation:insideLuxSweep 7.5s ease-in-out infinite;
    z-index:0;
  }
  #appPage .wrap{
    position:relative;
    z-index:1;
    padding-top:calc(env(safe-area-inset-top) + 10px);
  }
  #appPage .top{
    margin-bottom:14px;
    padding:14px 14px;
    border-radius:22px;
    background:linear-gradient(135deg, rgba(39,31,24,.97), rgba(22,20,19,.95));
    border:1px solid rgba(214,176,116,.34);
    box-shadow:0 18px 36px rgba(0,0,0,.14), inset 0 1px 0 rgba(255,244,214,.12);
  }
  #appPage .mini-logo{
    width:48px;
    height:48px;
    border-radius:16px;
    box-shadow:0 10px 24px rgba(190,148,97,.24);
  }
  #appPage .top h2{
    color:#fff0cf!important;
    font-size:18px;
    font-weight:950;
    letter-spacing:.3px;
    text-shadow:0 1px 2px rgba(0,0,0,.35);
  }
  #appPage .top p{
    color:#ebd4ae!important;
    font-weight:700;
  }
  #appPage .logout{
    background:linear-gradient(135deg,#c29762,#9a7048)!important;
    color:#fff7ea!important;
    border:1px solid rgba(255,239,206,.18);
    box-shadow:0 8px 18px rgba(0,0,0,.12);
    border-radius:12px;
    padding:9px 12px;
  }
  #appPage .hero{
    border-radius:28px;
    padding:24px 22px 54px;
    background:linear-gradient(135deg,#2b2119 0%,#5f452f 48%,#b88956 100%)!important;
    color:#fff7ec!important;
    border:1px solid rgba(255,231,194,.25);
    box-shadow:0 20px 40px rgba(64,41,20,.22), inset 0 1px 0 rgba(255,247,232,.18);
  }
  #appPage .hero:before{
    content:'';
    position:absolute;
    inset:auto -16% -46% auto;
    width:180px;
    height:180px;
    border-radius:50%;
    background:radial-gradient(circle, rgba(255,248,227,.28), rgba(255,248,227,0) 72%);
    pointer-events:none;
  }
  #appPage .hero:after{
    width:240px;
    height:240px;
    right:-110px;
    top:-122px;
    background:rgba(255,255,255,.10);
    border:1px solid rgba(255,255,255,.06);
  }
  #appPage .small{color:#f7e8c5; font-weight:700; letter-spacing:.2px}
  #appPage .clock{
    color:#fff9f0;
    text-shadow:0 5px 14px rgba(0,0,0,.18);
    font-size:42px;
  }
  #appPage .date{color:#f6e6c7; font-weight:700}
  #appPage .status{
    background:rgba(255,249,238,.16);
    border:1px solid rgba(255,249,238,.35);
    color:#fff9f0;
    backdrop-filter:blur(8px);
    box-shadow:0 6px 14px rgba(0,0,0,.10);
  }
  #appPage .grid{
    gap:13px;
    margin:16px 0;
  }
  #appPage .info,
  #appPage .card.section{
    position:relative;
    overflow:hidden;
    background:linear-gradient(180deg,#fffdfa 0%, #f9f4ec 100%)!important;
    border:1px solid rgba(201,175,139,.48)!important;
    box-shadow:0 14px 28px rgba(74,50,24,.08), inset 0 1px 0 rgba(255,255,255,.74)!important;
  }
  #appPage .info:before,
  #appPage .card.section:before{
    content:'';
    position:absolute;
    left:0; right:0; top:0;
    height:3px;
    background:linear-gradient(90deg,#b98953,#e8c387,#b98953);
    opacity:.8;
  }
  #appPage .info .i-label,
  #appPage .sub,
  #appPage .loc-detail,
  #appPage .row-main small,
  #appPage .hint,
  #appPage .empty{
    color:#857565!important;
  }
  #appPage .info strong,
  #appPage .section-title,
  #appPage .loc-title,
  #appPage .row-main b{
    color:#2c241d!important;
  }
  #appPage .info span{
    color:#a47745!important;
  }
  #appPage .loc-icon,
  #appPage .day{
    background:linear-gradient(135deg,#f3e1c8,#e5c59a)!important;
    color:#8f6437!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.55);
  }
  #appPage .location{
    background:#fffaf4!important;
    border:1px solid rgba(205,180,144,.46)!important;
  }
  #appPage .refresh{
    color:#9c7045!important;
    font-weight:900;
  }
  #appPage .actions,
  #appPage .mobile-izin-actions,
  #appPage .izin-input-actions{
    gap:12px;
  }
  #appPage .action{
    border-radius:20px;
    min-height:92px;
    padding:16px 13px;
    box-shadow:0 14px 24px rgba(62,42,18,.09);
  }
  #appPage .action.in{
    background:linear-gradient(135deg,#ad7a43,#d2a36e)!important;
    color:#fffaf1!important;
  }
  #appPage .action.out{
    background:linear-gradient(180deg,#fffdfa,#f0e7d9)!important;
    color:#6d4d31!important;
    border:1px solid rgba(200,174,136,.45)!important;
  }
  #appPage .action small{opacity:.9}
  #appPage .tag{
    background:#f0e1cf!important;
    color:#8d6340!important;
    border:1px solid rgba(196,164,123,.34);
  }
  #appPage .tag.out{
    background:#f6efe6!important;
    color:#81705e!important;
  }
  #appPage .row{
    border-bottom:1px solid rgba(207,191,171,.38)!important;
  }
  #appPage .toast{
    background:linear-gradient(135deg,#2d241d,#544030)!important;
    color:#fff7eb!important;
    border:1px solid rgba(214,176,116,.35);
  }
}
@keyframes insideLuxSweep{
  0%,18%{background-position:150% 0}
  58%,100%{background-position:-60% 0}
}


/* Wallpaper khusus halaman Login Desktop */
@media(min-width:768px){
  #desktopLoginPage{
    min-height:100vh;
    background:
      linear-gradient(rgba(255,255,255,.10),rgba(14,16,22,.28)),
      url('https://i.imgur.com/HDzEKDI.jpeg') center/cover no-repeat fixed!important;
  }
  #desktopLoginPage .desktop-login-wrap,
  #desktopLoginPage .desktop-login-shell{
    min-height:100vh;
    background:transparent!important;
  }
  #desktopLoginPage .desktop-login-card{
    position:relative;
    overflow:hidden;
    background:linear-gradient(145deg,rgba(46,34,26,.82),rgba(108,75,46,.68))!important;
    border:1px solid rgba(244,208,142,.62)!important;
    box-shadow:0 24px 54px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,243,214,.18)!important;
    backdrop-filter:blur(10px);
  }
  #desktopLoginPage .desktop-login-card:before{
    content:'';
    position:absolute;
    inset:-30% -65%;
    pointer-events:none;
    background:linear-gradient(105deg,transparent 43%,rgba(255,231,169,.40) 50%,transparent 57%);
    transform:translateX(-60%) rotate(8deg);
    animation:desktopLoginShine 5.5s ease-in-out infinite;
  }
  #desktopLoginPage .desktop-login-card > *{position:relative;z-index:1}
  #desktopLoginPage .desktop-login-title,
  #desktopLoginPage .desktop-login-card h2{
    color:#fff2c8!important;
    text-shadow:0 2px 4px rgba(0,0,0,.55)!important;
  }
  #desktopLoginPage .desktop-login-card p,
  #desktopLoginPage .desktop-login-card label{
    color:#f2ddbc!important;
  }
  #desktopLoginPage .desktop-login-card input{
    background:rgba(255,251,243,.95)!important;
    color:#332419!important;
    border-color:rgba(244,208,142,.68)!important;
  }
  #desktopLoginPage .desktop-login-btn{
    background:linear-gradient(90deg,#855326,#d7a153,#875327)!important;
    color:#fff8eb!important;
    box-shadow:0 10px 20px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,241,209,.35)!important;
  }
}
@keyframes desktopLoginShine{
  0%,20%{transform:translateX(-65%) rotate(8deg)}
  62%,100%{transform:translateX(70%) rotate(8deg)}
}


/* Saat tabel Pengajuan Cuti kosong, semua kolom yang terlihat dibagi rata hingga penuh. */
@media(min-width:768px){
  #dashPengajuanCuti .pengajuan-table-wrap{
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
  }
  #dashPengajuanCuti .pengajuan-table.is-empty-table{
    width:100%!important;
    min-width:0!important;
    table-layout:fixed!important;
  }
  #dashPengajuanCuti .pengajuan-table.is-empty-table .pengajuan-empty-row{
    height:46px!important;
    text-align:center!important;
  }
}


/* Pengajuan Cuti: tanpa kolom Approve/Reject, struktur mengikuti Pending/Approved/Rejected */
@media(min-width:768px){
  #dashPengajuanCuti .pengajuan-table-wrap{
    width:100%!important;
    overflow:hidden!important;
  }
  #dashPengajuanCuti .pengajuan-table{
    width:100%!important;
    min-width:0!important;
    table-layout:fixed!important;
  }
  #dashPengajuanCuti .pengajuan-table th,
  #dashPengajuanCuti .pengajuan-table td{
    padding:10px 6px!important;
    font-size:11px!important;
    line-height:1.28!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    word-break:break-word!important;
  }
  #dashPengajuanCuti .pengajuan-table th{
    font-size:11px!important;
    font-weight:900!important;
  }
  #dashPengajuanCuti .pengajuan-table .nama-cell{
    font-size:11px!important;
    font-weight:900!important;
  }
  #dashPengajuanCuti .pengajuan-empty-row{
    height:46px!important;
    text-align:center!important;
  }
  #dashPengajuanCuti .cuti-note-pill{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:6px 8px;
    border-radius:7px;
    background:#e8ebee;
    color:#56606a;
    font-size:10px;
    font-weight:900;
  }
  #dashPengajuanCuti .cuti-upcoming{color:#c4841a;font-weight:900}
  #dashPengajuanCuti .cuti-active{color:#168547;font-weight:900}
  #dashPengajuanCuti .cuti-finished{color:#68717b;font-weight:900}
  #dashPengajuanCuti .cuti-none{color:#68717b;font-weight:800}
}


/* Pending / Approved / Rejected: tabel selalu memenuhi seluruh area, termasuk saat kosong */
@media(min-width:768px){
  #dashPengajuanCuti .pengajuan-table-wrap{
    display:block!important;
    width:100%!important;
    min-width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
  }
  #dashPengajuanCuti .pengajuan-table{
    display:table!important;
    width:100%!important;
    min-width:100%!important;
    max-width:100%!important;
    table-layout:fixed!important;
  }
  #dashPengajuanCuti .pengajuan-table thead,
  #dashPengajuanCuti .pengajuan-table tbody,
  #dashPengajuanCuti .pengajuan-table tr{
    width:100%!important;
  }
}


/* Aksi Approve / Reject tersembunyi di kolom Role, khusus LEADER */
@media(min-width:768px){
  #dashPengajuanCuti .role-action-cell{
    position:relative!important;
    overflow:visible!important;
    cursor:default;
    white-space:nowrap!important;
  }
  #dashPengajuanCuti .role-label{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:26px;
    transition:opacity .16s ease, transform .16s ease;
  }
  #dashPengajuanCuti .role-hover-actions{
    position:absolute;
    inset:50% auto auto 50%;
    transform:translate(-50%,-50%) scale(.88);
    display:flex;
    align-items:center;
    justify-content:center;
    gap:4px;
    opacity:0;
    pointer-events:none;
    transition:opacity .16s ease,transform .16s ease;
    z-index:20;
  }
  #dashPengajuanCuti .role-action-cell:hover .role-hover-actions,
  #dashPengajuanCuti .role-action-cell:focus-within .role-hover-actions{
    opacity:1;
    pointer-events:auto;
    transform:translate(-50%,-50%) scale(1);
  }
  #dashPengajuanCuti .role-action-cell:hover .role-label,
  #dashPengajuanCuti .role-action-cell:focus-within .role-label{
    opacity:0;
    transform:scale(.88);
  }
  #dashPengajuanCuti .role-approve-hover,
  #dashPengajuanCuti .role-reject-hover{
    width:26px;
    height:26px;
    border-radius:7px;
    display:grid;
    place-items:center;
    border:1px solid transparent;
    font-size:14px;
    font-weight:950;
    line-height:1;
    box-shadow:0 5px 12px rgba(0,0,0,.12);
  }
  #dashPengajuanCuti .role-approve-hover{
    background:#e5faec!important;
    color:#118544!important;
    border-color:#c4ecd2!important;
  }
  #dashPengajuanCuti .role-reject-hover{
    background:#ffe9e9!important;
    color:#cf4039!important;
    border-color:#f2c8c7!important;
  }
  #dashPengajuanCuti .role-approve-hover:hover{background:#c9f2d7!important}
  #dashPengajuanCuti .role-reject-hover:hover{background:#ffd6d6!important}
}


/* Modal konfirmasi Approve / Reject */
.cuti-confirm-backdrop{
  position:fixed;
  inset:0;
  z-index:65000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(17,20,28,.50);
  backdrop-filter:blur(5px);
}
.cuti-confirm-backdrop.hidden{display:none!important}
.cuti-confirm-card{
  width:min(390px,100%);
  border-radius:22px;
  padding:25px 24px 20px;
  background:linear-gradient(155deg,#fffdf9,#f4ede4);
  border:1px solid rgba(190,148,97,.40);
  box-shadow:0 28px 80px rgba(0,0,0,.30), inset 0 1px 0 rgba(255,255,255,.9);
  text-align:center;
}
.cuti-confirm-icon{
  width:58px;
  height:58px;
  margin:0 auto 13px;
  border-radius:19px;
  display:grid;
  place-items:center;
  font-size:27px;
  font-weight:950;
  background:#e6faed;
  color:#168645;
  border:1px solid #c5ebd2;
  box-shadow:0 10px 20px rgba(22,134,69,.14);
}
.cuti-confirm-card.reject .cuti-confirm-icon{
  background:#ffe9e9;
  color:#cf3f3a;
  border-color:#f2c8c7;
  box-shadow:0 10px 20px rgba(207,63,58,.14);
}
.cuti-confirm-card h3{
  margin:0;
  color:#2d261f;
  font-size:20px;
  font-weight:950;
}
.cuti-confirm-card p{
  margin:9px auto 20px;
  max-width:310px;
  color:#74695d;
  font-size:13px;
  line-height:1.55;
}
.cuti-confirm-actions{
  display:grid;
  grid-template-columns:1fr 1.25fr;
  gap:10px;
}
.cuti-confirm-actions button{
  min-height:43px;
  border-radius:12px;
  font-size:13px;
  font-weight:900;
}
.cuti-confirm-cancel{
  background:#fff!important;
  color:#6d655d!important;
  border:1px solid #d9d0c4!important;
}
.cuti-confirm-submit{
  color:#fff!important;
  border:0!important;
  box-shadow:0 10px 18px rgba(0,0,0,.13);
}
.cuti-confirm-submit.approve{background:linear-gradient(135deg,#2aa963,#178545)!important}
.cuti-confirm-submit.reject{background:linear-gradient(135deg,#df5e58,#bd3935)!important}


/* Popup minimum hari cuti */
.cuti-minimum-backdrop{
  position:fixed;
  inset:0;
  z-index:66000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(17,20,28,.48);
  backdrop-filter:blur(5px);
}
.cuti-minimum-backdrop.hidden{display:none!important}
.cuti-minimum-card{
  width:min(400px,100%);
  padding:26px 24px 22px;
  border-radius:22px;
  text-align:center;
  background:linear-gradient(155deg,#fffdf9,#f6efe5);
  border:1px solid rgba(211,158,82,.42);
  box-shadow:0 28px 80px rgba(0,0,0,.30),inset 0 1px 0 rgba(255,255,255,.90);
}
.cuti-minimum-icon{
  width:58px;
  height:58px;
  margin:0 auto 13px;
  border-radius:19px;
  display:grid;
  place-items:center;
  background:#fff1d5;
  color:#b97816;
  border:1px solid #f0cf94;
  box-shadow:0 10px 20px rgba(185,120,22,.14);
  font-size:30px;
  font-weight:950;
}
.cuti-minimum-card h3{
  margin:0;
  color:#30271f;
  font-size:20px;
  font-weight:950;
}
.cuti-minimum-card p{
  margin:9px auto 20px;
  max-width:325px;
  color:#74695d;
  font-size:13px;
  line-height:1.6;
}
.cuti-minimum-close{
  width:100%;
  min-height:44px;
  border-radius:12px;
  border:0;
  background:linear-gradient(135deg,#b98a4d,#8c6438)!important;
  color:#fffaf2!important;
  font-size:13px;
  font-weight:900;
  box-shadow:0 10px 18px rgba(0,0,0,.13);
}


/* Popup informasi umum pengganti alert bawaan browser */
.app-alert-backdrop{
  position:fixed;
  inset:0;
  z-index:67000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(17,20,28,.48);
  backdrop-filter:blur(5px);
}
.app-alert-backdrop.hidden{display:none!important}
.app-alert-card{
  width:min(395px,100%);
  padding:26px 24px 22px;
  border-radius:22px;
  text-align:center;
  background:linear-gradient(155deg,#fffdf9,#f6efe5);
  border:1px solid rgba(190,148,97,.40);
  box-shadow:0 28px 80px rgba(0,0,0,.30),inset 0 1px 0 rgba(255,255,255,.90);
}
.app-alert-icon{
  width:58px;
  height:58px;
  margin:0 auto 13px;
  border-radius:19px;
  display:grid;
  place-items:center;
  background:#edf4ff;
  color:#3273ba;
  border:1px solid #c8def5;
  box-shadow:0 10px 20px rgba(50,115,186,.14);
  font-size:28px;
  font-weight:950;
  font-family:Georgia,serif;
}
.app-alert-card.warning .app-alert-icon{
  background:#fff1d5;
  color:#b97816;
  border-color:#f0cf94;
}
.app-alert-card.success .app-alert-icon{
  background:#e6faed;
  color:#168645;
  border-color:#c5ebd2;
  font-family:inherit;
}
.app-alert-card h3{
  margin:0;
  color:#30271f;
  font-size:20px;
  font-weight:950;
}
.app-alert-card p{
  margin:9px auto 20px;
  max-width:325px;
  color:#74695d;
  font-size:13px;
  line-height:1.6;
}
.app-alert-close{
  width:100%;
  min-height:44px;
  border-radius:12px;
  border:0;
  background:linear-gradient(135deg,#b98a4d,#8c6438)!important;
  color:#fffaf2!important;
  font-size:13px;
  font-weight:900;
  box-shadow:0 10px 18px rgba(0,0,0,.13);
}


/* Header desktop tetap terkunci di tempatnya saat browser Zoom In / Zoom Out */
@media(min-width:768px){
  .dash-main{
    position:relative!important;
    margin-left:255px!important;
    padding-top:72px!important;
    height:auto!important;
    min-height:100vh!important;
    overflow:visible!important;
  }
  .dash-topbar{
    position:fixed!important;
    top:0!important;
    left:255px!important;
    right:0!important;
    width:auto!important;
    min-height:72px!important;
    z-index:5000!important;
  }
  .dash-topbar-left,
  .dash-topbar-right{
    min-width:0!important;
  }
}
@media(min-width:768px) and (max-width:1050px){
  .dash-main{
    margin-left:80px!important;
  }
  .dash-topbar{
    left:80px!important;
  }
}


/* Semua tabel desktop terkunci mengikuti lebar area konten saat Zoom In / Zoom Out */
@media(min-width:768px){
  .dash-table-wrap,
  .pengajuan-table-wrap{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow:hidden!important;
  }

  .dash-table-wrap .shift-table,
  .izin-table,
  .pengajuan-table{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    table-layout:fixed!important;
  }

  .dash-table-wrap .shift-table th,
  .dash-table-wrap .shift-table td,
  .izin-table th,
  .izin-table td,
  .pengajuan-table th,
  .pengajuan-table td{
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    word-break:break-word!important;
  }

  .dash-table-wrap .shift-table th,
  .dash-table-wrap .shift-table td{
    padding-left:6px!important;
    padding-right:6px!important;
  }
}


/* Shift Kerja dikembalikan ke ukuran tabel normal agar kolom staff dan tombol tidak tertekan saat zoom */
@media(min-width:768px){
  .dash-table-wrap{
    overflow-x:auto!important;
    overflow-y:visible!important;
  }
  .dash-table-wrap .shift-table{
    width:100%!important;
    min-width:1120px!important;
    max-width:none!important;
    table-layout:auto!important;
  }
  .dash-table-wrap .shift-table th,
  .dash-table-wrap .shift-table td{
    white-space:nowrap!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
    padding-left:10px!important;
    padding-right:10px!important;
  }
  .dash-table-wrap .shift-table td:nth-child(2){
    min-width:180px!important;
    white-space:normal!important;
  }
  .dash-table-wrap .shift-table td:nth-child(12){
    min-width:165px!important;
  }
}


/* ===== Pengajuan Resign ===== */
#dashPengajuanResign{
  padding:12px 22px 28px!important;
  min-height:calc(100vh - 72px)!important;
}
.pengajuan-resign-wrap{
  width:100%;
  max-width:none;
}
.pengajuan-resign-title{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin:0 0 22px;
  color:#39322a;
  font-size:24px;
  font-weight:950;
}
.pengajuan-resign-title span{
  color:#9c7045;
  font-size:28px;
}
.pengajuan-resign-table-wrap{
  width:100%;
  overflow:hidden;
  border-radius:14px;
  background:#fff;
  box-shadow:0 10px 24px rgba(51,33,10,.06);
}
.pengajuan-resign-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  table-layout:fixed;
  background:#fff;
}
.pengajuan-resign-table th{
  padding:14px 12px;
  background:#2d2d2d;
  color:#fff;
  border-right:1px solid rgba(255,255,255,.13);
  font-size:12px;
  line-height:1.28;
  text-align:center;
  font-weight:900;
}
.pengajuan-resign-table td{
  padding:13px 12px;
  color:#262626;
  border-right:1px solid #d7d7d7;
  border-bottom:1px solid #d7d7d7;
  font-size:12px;
  line-height:1.35;
  text-align:center;
  vertical-align:middle;
}
.pengajuan-resign-table th:last-child,
.pengajuan-resign-table td:last-child{border-right:none}
.pengajuan-resign-table th:nth-child(1),
.pengajuan-resign-table td:nth-child(1){width:18%}
.pengajuan-resign-table th:nth-child(2),
.pengajuan-resign-table td:nth-child(2){width:16%}
.pengajuan-resign-table th:nth-child(3),
.pengajuan-resign-table td:nth-child(3){width:22%}
.pengajuan-resign-table th:nth-child(4),
.pengajuan-resign-table td:nth-child(4){width:22%}
.pengajuan-resign-table th:nth-child(5),
.pengajuan-resign-table td:nth-child(5){width:22%}
.pengajuan-resign-empty{
  height:54px;
  color:#7b7062!important;
  font-weight:800;
}
@media(max-width:767px){
  #dashPengajuanResign{padding:16px!important}
  .pengajuan-resign-table-wrap{overflow-x:auto}
  .pengajuan-resign-table{min-width:760px}
}


/* Pengajuan Resign: posisi tabel lebih turun dan ada tombol input */
#dashPengajuanResign{
  padding:34px 22px 44px!important;
  min-height:calc(100vh - 72px)!important;
}
.pengajuan-resign-wrap{width:100%;max-width:none}
.pengajuan-resign-title{
  display:flex;align-items:center;justify-content:center;gap:10px;
  margin:8px 0 28px;color:#39322a;font-size:24px;font-weight:950;
}
.pengajuan-resign-title span{color:#9c7045;font-size:28px}
.pengajuan-resign-actions{
  display:flex;align-items:center;justify-content:flex-start;
  margin:8px 0 18px;
}
.pengajuan-resign-add-btn{
  min-height:42px;padding:0 16px;border-radius:9px;
  background:#1021a9!important;color:#fff!important;
  font-size:13px;font-weight:950;
  box-shadow:0 8px 18px rgba(16,33,169,.18);
}
.pengajuan-resign-add-btn:hover{filter:brightness(1.07)}
.pengajuan-resign-table-wrap{
  width:100%;overflow:hidden;border-radius:14px;background:#fff;
  box-shadow:0 10px 24px rgba(51,33,10,.06);
}
.pengajuan-resign-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;background:#fff}
.pengajuan-resign-table th{
  padding:14px 12px;background:#2d2d2d;color:#fff;
  border-right:1px solid rgba(255,255,255,.13);font-size:12px;
  line-height:1.28;text-align:center;font-weight:900;
}
.pengajuan-resign-table td{
  padding:13px 12px;color:#262626;border-right:1px solid #d7d7d7;
  border-bottom:1px solid #d7d7d7;font-size:12px;line-height:1.35;
  text-align:center;vertical-align:middle;overflow-wrap:anywhere;
}
.pengajuan-resign-table th:last-child,.pengajuan-resign-table td:last-child{border-right:none}
.pengajuan-resign-table th:nth-child(1),.pengajuan-resign-table td:nth-child(1){width:18%}
.pengajuan-resign-table th:nth-child(2),.pengajuan-resign-table td:nth-child(2){width:16%}
.pengajuan-resign-table th:nth-child(3),.pengajuan-resign-table td:nth-child(3){width:22%}
.pengajuan-resign-table th:nth-child(4),.pengajuan-resign-table td:nth-child(4){width:22%}
.pengajuan-resign-table th:nth-child(5),.pengajuan-resign-table td:nth-child(5){width:22%}
.pengajuan-resign-empty{height:54px;color:#7b7062!important;font-weight:800}

/* Modal input resign */
.resign-modal-backdrop{
  position:fixed;inset:0;z-index:68000;display:flex;align-items:center;justify-content:center;
  padding:20px;background:rgba(17,20,28,.50);backdrop-filter:blur(5px);
}
.resign-modal-backdrop.hidden{display:none!important}
.resign-modal-card{
  width:min(500px,100%);padding:22px;border-radius:20px;
  background:linear-gradient(155deg,#fffdf9,#f6efe5);border:1px solid rgba(190,148,97,.40);
  box-shadow:0 28px 80px rgba(0,0,0,.30);
}
.resign-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}
.resign-modal-head h3{margin:0;color:#30271f;font-size:19px;font-weight:950}
.resign-modal-head p{margin:5px 0 0;color:#74695d;font-size:12px}
.resign-modal-x{width:34px;height:34px;border-radius:10px;background:#f1e8dd!important;color:#80603e!important;font-size:24px;line-height:1}
.resign-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.resign-modal-card label{display:block;margin:11px 0 0;color:#594a3c;font-size:11px;font-weight:900}
.resign-modal-card input,.resign-modal-card textarea{
  width:100%;margin-top:6px;padding:11px 12px;border-radius:10px;
  border:1px solid #dacfc1;background:#fffdf9;color:#30271f;font:inherit;font-size:13px;outline:0;
}
.resign-modal-card input[readonly]{background:#f1eee8;color:#6d655d}
.resign-modal-card textarea{min-height:95px;resize:vertical}
.resign-form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}
.resign-btn-cancel,.resign-btn-submit{min-height:41px;padding:0 15px;border-radius:10px;font-size:12px;font-weight:900}
.resign-btn-cancel{background:#fff!important;color:#6d655d!important;border:1px solid #d9d0c4!important}
.resign-btn-submit{background:linear-gradient(135deg,#b98a4d,#8c6438)!important;color:#fff!important}
@media(max-width:767px){
  #dashPengajuanResign{padding:18px!important}
  .pengajuan-resign-table-wrap{overflow-x:auto}
  .pengajuan-resign-table{min-width:760px}
  .resign-form-grid{grid-template-columns:1fr}
}


/* Pengajuan Resign: Pending / Approved / Rejected + akses action khusus Leader */
.pengajuan-resign-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin:0 0 16px;
}
.pengajuan-resign-tabs{display:flex;gap:10px;flex-wrap:wrap}
.pengajuan-resign-tab{
  min-height:38px;
  padding:0 15px;
  border-radius:8px;
  background:#d9d9d9!important;
  color:#1b1b1b!important;
  font-size:13px;
  font-weight:900;
}
.pengajuan-resign-tab.active{
  background:#1424b1!important;
  color:#fff!important;
}
.pengajuan-resign-table th:nth-child(1),
.pengajuan-resign-table td:nth-child(1){width:9%!important}
.pengajuan-resign-table th:nth-child(2),
.pengajuan-resign-table td:nth-child(2){width:16%!important}
.pengajuan-resign-table th:nth-child(3),
.pengajuan-resign-table td:nth-child(3){width:14%!important}
.pengajuan-resign-table th:nth-child(4),
.pengajuan-resign-table td:nth-child(4){width:18%!important}
.pengajuan-resign-table th:nth-child(5),
.pengajuan-resign-table td:nth-child(5){width:18%!important}
.pengajuan-resign-table th:nth-child(6),
.pengajuan-resign-table td:nth-child(6){width:17%!important}
.pengajuan-resign-table th:nth-child(7),
.pengajuan-resign-table td:nth-child(7){width:8%!important}
.resign-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 10px;
  border-radius:999px;
  font-size:11px;
  font-weight:900;
}
.resign-status.pending{color:#cf8212;background:#fff1d5}
.resign-status.approved{color:#168545;background:#e7faed}
.resign-status.rejected{color:#ce403b;background:#ffe7e7}
.resign-role-action-cell{
  position:relative!important;
  overflow:visible!important;
  white-space:nowrap!important;
}
.resign-role-label{
  display:inline-flex;
  min-width:28px;
  justify-content:center;
  transition:opacity .16s ease,transform .16s ease;
}
.resign-role-hover-actions{
  position:absolute;
  top:50%;
  left:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  opacity:0;
  pointer-events:none;
  transform:translate(-50%,-50%) scale(.86);
  transition:opacity .16s ease,transform .16s ease;
  z-index:30;
}
.resign-role-action-cell:hover .resign-role-hover-actions,
.resign-role-action-cell:focus-within .resign-role-hover-actions{
  opacity:1;
  pointer-events:auto;
  transform:translate(-50%,-50%) scale(1);
}
.resign-role-action-cell:hover .resign-role-label,
.resign-role-action-cell:focus-within .resign-role-label{
  opacity:0;
  transform:scale(.86);
}
.resign-hover-approve,.resign-hover-reject{
  width:26px;height:26px;border-radius:7px;
  display:grid;place-items:center;
  border:1px solid transparent;
  font-size:14px;font-weight:950;line-height:1;
  box-shadow:0 5px 12px rgba(0,0,0,.12);
}
.resign-hover-approve{background:#e5faec!important;color:#118544!important;border-color:#c4ecd2!important}
.resign-hover-reject{background:#ffe9e9!important;color:#cf4039!important;border-color:#f2c8c7!important}
.resign-confirm-backdrop{
  position:fixed;inset:0;z-index:69000;display:flex;align-items:center;justify-content:center;
  padding:20px;background:rgba(17,20,28,.50);backdrop-filter:blur(5px);
}
.resign-confirm-backdrop.hidden{display:none!important}
.resign-confirm-card{
  width:min(390px,100%);border-radius:22px;padding:25px 24px 20px;text-align:center;
  background:linear-gradient(155deg,#fffdf9,#f4ede4);border:1px solid rgba(190,148,97,.40);
  box-shadow:0 28px 80px rgba(0,0,0,.30),inset 0 1px 0 rgba(255,255,255,.90);
}
.resign-confirm-icon{
  width:58px;height:58px;margin:0 auto 13px;border-radius:19px;display:grid;place-items:center;
  font-size:27px;font-weight:950;background:#e6faed;color:#168645;border:1px solid #c5ebd2;
}
.resign-confirm-card.reject .resign-confirm-icon{background:#ffe9e9;color:#cf3f3a;border-color:#f2c8c7}
.resign-confirm-card h3{margin:0;color:#2d261f;font-size:20px;font-weight:950}
.resign-confirm-card p{margin:9px auto 20px;max-width:310px;color:#74695d;font-size:13px;line-height:1.55}
.resign-confirm-actions{display:grid;grid-template-columns:1fr 1.25fr;gap:10px}
.resign-confirm-actions button{min-height:43px;border-radius:12px;font-size:13px;font-weight:900}
.resign-confirm-cancel{background:#fff!important;color:#6d655d!important;border:1px solid #d9d0c4!important}
.resign-confirm-submit{color:#fff!important;border:0!important}
.resign-confirm-submit.approve{background:linear-gradient(135deg,#2aa963,#178545)!important}
.resign-confirm-submit.reject{background:linear-gradient(135deg,#df5e58,#bd3935)!important}


/* ===== User Staff Directory: tabel memanjang ke bawah ===== */
#dashUserStaff{
  padding:30px 34px 40px!important;
  min-height:calc(100vh - 72px)!important;
}
.user-staff-wrap{width:100%;max-width:none}
.user-staff-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:18px;
  margin-bottom:22px;
}
.user-staff-head h1{margin:0;color:#312b24;font-size:24px;font-weight:950}
.user-staff-head p{margin:7px 0 0;color:#7a746d;font-size:12px;line-height:1.55}
#userStaffSearch{
  width:min(290px,100%);height:40px;padding:0 13px;border-radius:10px;
  background:#fff!important;border:1px solid #d8d0c6!important;color:#332f2a!important;font-size:12px;
}
.user-staff-table-sections{display:grid;gap:18px}
.user-role-table-section{
  overflow:hidden;border-radius:18px;background:#fff;border:1px solid #ded5c8;
  box-shadow:0 10px 24px rgba(65,48,30,.07);
}
.user-role-table-head{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:15px 17px;background:linear-gradient(90deg,#faf5ed 0%,#fff 100%);
  border-bottom:1px solid #e5ddd2;
}
.user-role-table-title{display:flex;align-items:center;gap:9px;color:#342a20;font-size:15px;font-weight:950}
.user-role-table-title .role-dot{width:10px;height:10px;border-radius:50%;background:#b58a56}
.user-role-table-count{
  padding:6px 10px;border-radius:999px;background:#f3e6d6;color:#805a34;font-size:10px;font-weight:950;
}
.user-role-table-wrap{width:100%;overflow:hidden}
.user-role-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}
.user-role-table th{
  padding:11px 12px;background:#2d2d2d;color:#fff;border-right:1px solid rgba(255,255,255,.12);
  font-size:11px;font-weight:900;text-align:left;
}
.user-role-table td{
  padding:13px 12px;color:#302a24;border-right:1px solid #e2ddd6;border-bottom:1px solid #ece7e0;
  background:#fff;font-size:12px;vertical-align:middle;
}
.user-role-table tr:nth-child(even) td{background:#fcfbf9}
.user-role-table th:last-child,.user-role-table td:last-child{border-right:none}
.user-role-table tr:last-child td{border-bottom:none}
.user-role-table th:nth-child(1),.user-role-table td:nth-child(1){width:68px;text-align:center}
.user-role-table th:nth-child(2),.user-role-table td:nth-child(2){width:34%}
.user-role-table th:nth-child(3),.user-role-table td:nth-child(3){width:32%}
.user-role-table th:nth-child(4),.user-role-table td:nth-child(4){width:34%}
.user-staff-num{
  display:inline-grid;place-items:center;width:27px;height:27px;border-radius:8px;
  background:#f2e7d8;color:#8c673f;font-size:11px;font-weight:950;
}
.user-staff-name-cell b{display:block;font-size:12px;color:#27211b}
.user-staff-name-cell small{display:block;margin-top:3px;color:#86786a;font-size:10px;font-weight:800}
.user-staff-role-badge{
  display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;
  background:#f4e7d7;border:1px solid rgba(181,138,86,.18);color:#765535;font-size:10px;font-weight:950;
}
.user-staff-empty-row{
  padding:24px 12px!important;text-align:center!important;color:#85796d!important;font-weight:800!important;
}
.user-role-table-section.role-leader .role-dot{background:#6e4aa0}
.user-role-table-section.role-leader .user-role-table-count,.user-role-table-section.role-leader .user-staff-role-badge{background:#efe8ff;color:#694994;border-color:#d9c8f2}
.user-role-table-section.role-cs .role-dot{background:#36896a}
.user-role-table-section.role-cs .user-role-table-count,.user-role-table-section.role-cs .user-staff-role-badge{background:#e8f6ed;color:#2f7b56;border-color:#c7e6d1}
.user-role-table-section.role-kapten .role-dot{background:#b2742b}
.user-role-table-section.role-kapten .user-role-table-count,.user-role-table-section.role-kapten .user-staff-role-badge{background:#fff3df;color:#a16923;border-color:#efd7ae}
.user-role-table-section.role-kasir .role-dot{background:#4f759f}
.user-role-table-section.role-kasir .user-role-table-count,.user-role-table-section.role-kasir .user-staff-role-badge{background:#e9f2fb;color:#476f98;border-color:#cfe0f2}
@media(max-width:767px){
  #dashUserStaff{padding:18px!important}
  .user-staff-head{align-items:stretch;flex-direction:column}
  #userStaffSearch{width:100%}
  .user-role-table-wrap{overflow-x:auto}
  .user-role-table{min-width:640px}
}


/* User Staff: kolom Username dan Role berada di tengah */
@media(min-width:768px){
  .user-role-table th:nth-child(3),
  .user-role-table td:nth-child(3),
  .user-role-table th:nth-child(4),
  .user-role-table td:nth-child(4){
    text-align:center!important;
  }
  .user-role-table td:nth-child(3){
    font-weight:800;
  }
  .user-role-table .user-staff-role-cell{
    justify-content:center!important;
    text-align:center!important;
  }
}

/* Edit role staff */
.user-staff-role-cell{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  flex-wrap:wrap;
}
.user-staff-edit-role{
  min-height:28px;
  padding:0 9px;
  border-radius:8px;
  background:#f1e5d6!important;
  color:#805c37!important;
  border:1px solid rgba(181,138,86,.30)!important;
  font-size:10px;
  font-weight:950;
}
.user-staff-edit-role:hover{background:#e8d6c1!important}
.staff-role-modal-backdrop{
  position:fixed;
  inset:0;
  z-index:71000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(17,20,28,.50);
  backdrop-filter:blur(5px);
}
.staff-role-modal-backdrop.hidden{display:none!important}
.staff-role-modal-card{
  width:min(420px,100%);
  padding:22px;
  border-radius:20px;
  background:linear-gradient(155deg,#fffdf9,#f6efe5);
  border:1px solid rgba(190,148,97,.40);
  box-shadow:0 28px 80px rgba(0,0,0,.30),inset 0 1px 0 rgba(255,255,255,.90);
}
.staff-role-modal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  margin-bottom:16px;
}
.staff-role-modal-head h3{
  margin:0;
  color:#30271f;
  font-size:19px;
  font-weight:950;
}
.staff-role-modal-head p{
  margin:5px 0 0;
  color:#766b60;
  font-size:12px;
  line-height:1.45;
}
.staff-role-modal-close{
  width:34px;
  height:34px;
  border-radius:10px;
  background:#f1e8dd!important;
  color:#80603e!important;
  font-size:24px;
  line-height:1;
}
.staff-role-modal-card label{
  display:block;
  margin:0 0 7px;
  color:#594a3c;
  font-size:11px;
  font-weight:900;
}
#staffRoleSelect{
  width:100%;
  height:43px;
  padding:0 12px;
  border-radius:11px;
  background:#fff!important;
  border:1px solid #d8cfbf!important;
  color:#332f2a!important;
  font-size:13px;
  font-weight:850;
}
.staff-role-modal-note{
  margin-top:12px;
  padding:11px 12px;
  border-radius:12px;
  background:#faf2e7;
  border:1px solid #ead7bd;
  color:#7a6041;
  font-size:11px;
  line-height:1.55;
}
.staff-role-modal-actions{
  display:flex;
  justify-content:flex-end;
  gap:9px;
  margin-top:18px;
}
.staff-role-cancel,.staff-role-save{
  min-height:41px;
  padding:0 15px;
  border-radius:10px;
  font-size:12px;
  font-weight:900;
}
.staff-role-cancel{
  background:#fff!important;
  color:#6d655d!important;
  border:1px solid #d9d0c4!important;
}
.staff-role-save{
  background:linear-gradient(135deg,#b98a4d,#8c6438)!important;
  color:#fff!important;
}
.staff-role-save:disabled{opacity:.58;cursor:not-allowed}


/* Kolom tindakan User Staff */
.user-role-table th:nth-child(4),
.user-role-table td:nth-child(4){width:21%!important}
.user-role-table th:nth-child(5),
.user-role-table td:nth-child(5){width:16%!important;text-align:center}
.user-staff-action-cell{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  flex-wrap:wrap;
}
.user-staff-edit-role,
.user-staff-delete-role{
  min-height:29px;
  padding:0 9px;
  border-radius:8px;
  font-size:10px;
  font-weight:950;
}
.user-staff-edit-role{
  background:#f1e5d6!important;
  color:#805c37!important;
  border:1px solid rgba(181,138,86,.30)!important;
}
.user-staff-edit-role:hover{background:#e8d6c1!important}
.user-staff-delete-role{
  background:#fff0ef!important;
  color:#bf4540!important;
  border:1px solid #efc4c1!important;
}
.user-staff-delete-role:hover{background:#ffe0dd!important}

/* Popup hapus staff */
.staff-delete-modal-backdrop{
  position:fixed;inset:0;z-index:72000;
  display:flex;align-items:center;justify-content:center;
  padding:20px;background:rgba(17,20,28,.50);backdrop-filter:blur(5px);
}
.staff-delete-modal-backdrop.hidden{display:none!important}
.staff-delete-modal-card{
  width:min(410px,100%);padding:25px 24px 21px;border-radius:22px;text-align:center;
  background:linear-gradient(155deg,#fffdf9,#f7eee6);
  border:1px solid rgba(202,93,85,.30);
  box-shadow:0 28px 80px rgba(0,0,0,.30),inset 0 1px 0 rgba(255,255,255,.90);
}
.staff-delete-icon{
  width:58px;height:58px;margin:0 auto 13px;border-radius:19px;display:grid;place-items:center;
  background:#ffe9e8;color:#c6443e;border:1px solid #f0c7c4;font-size:25px;
}
.staff-delete-modal-card h3{margin:0;color:#352823;font-size:20px;font-weight:950}
.staff-delete-modal-card p{margin:9px auto 11px;color:#74695d;font-size:13px;line-height:1.55}
.staff-delete-note{
  padding:10px 11px;border-radius:11px;background:#fff3e8;border:1px solid #f0d3b4;
  color:#87623e;font-size:11px;line-height:1.5;text-align:left;
}
.staff-delete-actions{display:grid;grid-template-columns:1fr 1.25fr;gap:10px;margin-top:18px}
.staff-delete-actions button{min-height:43px;border-radius:12px;font-size:13px;font-weight:900}
.staff-delete-cancel{background:#fff!important;color:#6d655d!important;border:1px solid #d9d0c4!important}
.staff-delete-confirm{background:linear-gradient(135deg,#de625c,#b83d38)!important;color:#fff!important}


/* Role CS LINE */
.user-role-table-section.role-cs-line .role-dot{background:#9b5b9d}
.user-role-table-section.role-cs-line .user-role-table-count,
.user-role-table-section.role-cs-line .user-staff-role-badge{
  background:#f7e9f8;color:#8a458d;border-color:#e8cbed;
}


/* Header profil: lebar mengikuti nama staff dan role */
.dash-topbar-right{
  min-width:0!important;
  margin-left:auto!important;
}
.topbar-user{
  width:fit-content!important;
  max-width:min(520px,calc(100vw - 310px))!important;
  min-width:0!important;
  flex:0 1 auto!important;
}
.topbar-user-meta{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  min-width:0!important;
  flex:0 1 auto!important;
}
.topbar-user-name{
  display:block!important;
  width:auto!important;
  max-width:360px!important;
  min-width:0!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
}
.topbar-user-role{
  flex:0 0 auto!important;
  width:auto!important;
  white-space:nowrap!important;
}
@media(max-width:1050px){
  .topbar-user{
    max-width:calc(100vw - 124px)!important;
  }
  .topbar-user-name{
    max-width:min(250px,calc(100vw - 220px))!important;
  }
}
@media(max-width:560px){
  .dash-topbar-right{width:100%!important;justify-content:flex-end!important}
  .topbar-user{max-width:100%!important}
  .topbar-user-name{max-width:min(215px,calc(100vw - 190px))!important}
}


/* Nama profile dikunci: hanya dapat diubah dari User Staff oleh admin berwenang */
.profile-settings-locked-name{
  margin:0 0 14px;
  padding:10px 12px;
  border-radius:11px;
  background:#f8f1e7;
  border:1px solid #e6d2b9;
  color:#7b6142;
  font-size:11px;
  line-height:1.5;
}


/* Informasi kuota Izin Keluar per role */
.izin-role-quota-note{
  margin-top:11px;
  padding:10px 12px;
  border-radius:11px;
  background:#f8f1e8;
  border:1px solid #e7d5bf;
  color:#785a3c;
  font-size:10px;
  line-height:1.55;
}


/* Popup layar penuh saat kuota Jam Izin penuh */
.izin-quota-popup{position:fixed;inset:0;z-index:999999;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(20,23,28,.58);backdrop-filter:blur(8px)}
.izin-quota-popup.hidden{display:none!important}
.izin-quota-popup-card{width:min(460px,100%);padding:30px 28px 26px;border-radius:26px;text-align:center;background:linear-gradient(155deg,#fffdf9 0%,#f5eadc 100%);border:1px solid rgba(190,148,97,.45);box-shadow:0 30px 88px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.92);animation:izinQuotaPopupIn .2s ease-out}
@keyframes izinQuotaPopupIn{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
.izin-quota-popup-icon{width:70px;height:70px;margin:0 auto 14px;display:grid;place-items:center;border-radius:22px;background:#fff0de;border:1px solid #efd0a8;font-size:31px}
.izin-quota-popup-kicker{color:#9a7040;font-size:10px;font-weight:950;letter-spacing:.12em}
.izin-quota-popup-card h3{margin:8px 0 8px;color:#352a20;font-size:22px;line-height:1.18;font-weight:950}
.izin-quota-popup-card p{margin:0 auto;max-width:360px;color:#6e5c4a;font-size:13px;line-height:1.55}
.izin-quota-popup-rule{margin:17px 0 20px;padding:12px 13px;border-radius:13px;background:#fbf2e7;border:1px solid #ead3b8;color:#785b3b;font-size:11px;line-height:1.5;text-align:left}
.izin-quota-popup-btn{width:100%;min-height:46px;border-radius:13px;background:linear-gradient(135deg,#bd8d51,#92683d)!important;color:#fffdf8!important;font-size:13px;font-weight:950;box-shadow:0 10px 20px rgba(146,104,61,.20)}
.izin-quota-popup-btn:active{transform:translateY(1px)}


.izin-quota-popup{pointer-events:auto!important}
.izin-quota-popup.hidden{pointer-events:none!important}
.izin-quota-popup-card,.izin-quota-popup-btn{pointer-events:auto!important}


/* Ganti Rekening */
.rekening-page-wrap{
  width:100%;
  background:linear-gradient(180deg,#fffdf9,#f7f0e7);
  border:1px solid #e3d4c0;
  border-radius:18px;
  padding:22px;
  box-shadow:0 12px 28px rgba(88,66,43,.07);
}
.rekening-page-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:18px;
}
.rekening-page-head h1{
  margin:0;
  color:#352a20;
  font-size:21px;
  font-weight:950;
  letter-spacing:.02em;
}
.rekening-page-head p{
  margin:6px 0 0;
  color:#7b6957;
  font-size:12px;
}
.rekening-table-wrap{
  border-radius:14px;
  border:1px solid #e0d0bc;
  background:#fffdf9;
}
.rekening-table{
  width:100%;
  min-width:1850px;
  border-collapse:collapse;
  color:#4d4033;
}
.rekening-table th{
  padding:13px 14px;
  background:#4d4033;
  color:#fffaf4;
  font-size:10px;
  font-weight:950;
  letter-spacing:.035em;
  text-align:left;
  white-space:nowrap;
}
.rekening-table td{
  padding:14px;
  border-top:1px solid #eadfce;
  font-size:12px;
  vertical-align:middle;
}
.rekening-empty{
  height:135px;
  text-align:center;
  color:#90795f;
  font-style:italic;
  background:#fffdf9;
}
@media(max-width:900px){
  .rekening-page-wrap{padding:16px}
  .rekening-page-head h1{font-size:18px}
}


/* Posisi dan tombol Ganti Rekening */
#dashGantiRekening{
  padding-top:6px!important;
}
.rekening-page-wrap{
  margin-top:0!important;
}
.rekening-page-head{
  margin-bottom:12px!important;
}
.rekening-add-btn{
  min-height:40px;
  padding:0 15px;
  border-radius:11px;
  border:1px solid rgba(115,80,43,.18);
  background:linear-gradient(135deg,#b9864f,#8f6338);
  color:#fffdf9;
  font-size:11px;
  font-weight:950;
  white-space:nowrap;
  box-shadow:0 8px 18px rgba(131,93,52,.17);
}
.rekening-add-btn:active{transform:translateY(1px)}
.rekening-modal-backdrop{
  position:fixed;
  inset:0;
  z-index:999999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:22px;
  background:rgba(24,21,18,.55);
  backdrop-filter:blur(6px);
}
.rekening-modal-backdrop.hidden{display:none!important}
.rekening-modal-card{
  width:min(670px,100%);
  max-height:calc(100vh - 44px);
  overflow:auto;
  border-radius:22px;
  padding:22px;
  background:linear-gradient(180deg,#fffdf9,#f3e9dc);
  border:1px solid #dfc9ad;
  box-shadow:0 25px 75px rgba(0,0,0,.30);
}
.rekening-modal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:15px;
  margin-bottom:18px;
}
.rekening-modal-kicker{
  color:#9b7141;
  font-size:9px;
  letter-spacing:.12em;
  font-weight:950;
}
.rekening-modal-head h3{
  margin:6px 0 0;
  color:#36291f;
  font-size:20px;
}
.rekening-modal-close{
  width:34px;
  height:34px;
  padding:0;
  border-radius:10px;
  background:#f6ebdc;
  color:#765534;
  font-size:23px;
  line-height:1;
}
.rekening-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:13px;
}
.rekening-form-grid label{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.rekening-form-grid label span{
  color:#6f5438;
  font-size:10px;
  font-weight:950;
  letter-spacing:.03em;
}
.rekening-form-grid input,
.rekening-form-grid textarea{
  width:100%;
  border:1px solid #ddc6aa;
  background:#fffdfa;
  border-radius:11px;
  padding:11px 12px;
  color:#433426;
  outline:none;
  font-size:12px;
}
.rekening-form-grid textarea{
  min-height:84px;
  resize:vertical;
}
.rekening-form-grid input:focus,
.rekening-form-grid textarea:focus{
  border-color:#b6844c;
  box-shadow:0 0 0 3px rgba(182,132,76,.12);
}
.rekening-full{grid-column:1/-1}
.rekening-modal-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:19px;
}
.rekening-cancel-btn,
.rekening-save-btn{
  min-height:40px;
  padding:0 16px;
  border-radius:11px;
  font-size:11px;
  font-weight:950;
}
.rekening-cancel-btn{background:#ede2d5;color:#705842}
.rekening-save-btn{background:linear-gradient(135deg,#b9864f,#8f6338);color:#fffdf9}
@media(max-width:640px){
  .rekening-page-head{align-items:flex-start;flex-direction:column}
  .rekening-add-btn{width:100%}
  .rekening-form-grid{grid-template-columns:1fr}
}


.rekening-form-section{
  margin-top:3px;
  padding:9px 11px;
  border-radius:10px;
  background:#efe0ce;
  border:1px solid #dfc3a5;
  color:#785634;
  font-size:10px;
  font-weight:950;
  letter-spacing:.08em;
}


/* Tahap status & tabel grouped Ganti Rekening */
.rekening-status-tabs{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 0 13px;
  padding:5px;
  width:max-content;
  max-width:100%;
  border:1px solid #e1cfb8;
  background:#fbf5ed;
  border-radius:13px;
}
.rekening-status-tab{
  min-height:34px;
  padding:0 15px;
  border-radius:9px;
  background:transparent;
  color:#806a52;
  font-size:10px;
  font-weight:950;
  letter-spacing:.03em;
}
.rekening-status-tab.active{
  color:#fffdf9;
  background:linear-gradient(135deg,#b9864f,#8f6338);
  box-shadow:0 5px 13px rgba(135,95,52,.16);
}
.rekening-table{min-width:2200px!important}
.rekening-table thead tr:first-child th{
  background:#2d2b29!important;
  color:#fffdf8!important;
  border-bottom:1px solid rgba(255,255,255,.25);
  text-align:center;
  font-size:10px;
}
.rekening-table thead tr:nth-child(2) th{
  background:#4d4a47!important;
  color:#fffdf8!important;
  text-align:center;
  font-size:10px;
}
.rekening-table th[rowspan="2"]{
  vertical-align:middle;
  text-align:center!important;
}
.rekening-table .rekening-action-head{min-width:100px}
.rekening-table td{white-space:nowrap}
.rekening-table td:nth-child(1),
.rekening-table td:nth-child(10),
.rekening-table td:nth-child(11){white-space:normal}
.rekening-status-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 9px;
  border-radius:999px;
  font-size:10px;
  font-weight:950;
  white-space:nowrap;
}
.rekening-status-pill.pending{background:#fff0cf;color:#9a6e22}
.rekening-status-pill.approved{background:#dff4e7;color:#27744e}
.rekening-status-pill.rejected{background:#fbe3e1;color:#a04440}
.rekening-actions{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:7px;
}
.rekening-action-btn{
  width:30px;height:30px;padding:0;border-radius:9px;
  display:grid;place-items:center;font-size:14px;
}
.rekening-action-btn.approve{background:#e1f4e7;color:#24774e;border:1px solid #b7e4c7}
.rekening-action-btn.reject{background:#f9e3e0;color:#a4443e;border:1px solid #efc4be}
.rekening-action-btn:hover{filter:brightness(.98);transform:translateY(-1px)}
.rekening-action-empty{color:#a89580;text-align:center}
@media(max-width:640px){
  .rekening-status-tabs{width:100%}
  .rekening-status-tab{flex:1;padding:0 8px}
}


/* Tabel Ganti Rekening tetap penuh di Dashboard tanpa scroll samping */
#dashGantiRekening .rekening-table-wrap{
  overflow:visible!important;
  width:100%!important;
}
#dashGantiRekening .rekening-table{
  width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
}
#dashGantiRekening .rekening-col-name{width:9%}
#dashGantiRekening .rekening-col-role{width:5%}
#dashGantiRekening .rekening-col-passport{width:8%}
#dashGantiRekening .rekening-col-old-name{width:10%}
#dashGantiRekening .rekening-col-old-number{width:9%}
#dashGantiRekening .rekening-col-bank{width:5%}
#dashGantiRekening .rekening-col-new-name{width:10%}
#dashGantiRekening .rekening-col-new-number{width:9%}
#dashGantiRekening .rekening-col-note{width:13%}
#dashGantiRekening .rekening-col-date{width:8%}
#dashGantiRekening .rekening-table th{
  padding:10px 5px!important;
  font-size:10px!important;
  line-height:1.25!important;
  white-space:normal!important;
  overflow-wrap:anywhere;
}
#dashGantiRekening .rekening-table td{
  padding:11px 5px!important;
  font-size:10px!important;
  line-height:1.35!important;
  white-space:normal!important;
  overflow-wrap:anywhere;
  word-break:break-word;
  text-align:center;
}
#dashGantiRekening .rekening-table td:first-child,
#dashGantiRekening .rekening-table td:nth-child(10){
  text-align:left;
}
#dashGantiRekening .izin-pill{
  padding:4px 6px!important;
  font-size:8px!important;
  white-space:normal!important;
}
.rekening-note-cell{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:7px;
}
.rekening-inline-actions{
  display:flex;
  align-items:center;
  gap:6px;
}
.rekening-inline-actions .rekening-action-btn{
  width:28px!important;
  height:28px!important;
  flex:0 0 auto;
}
@media(max-width:1150px){
  #dashGantiRekening .rekening-page-wrap{padding:13px!important}
  #dashGantiRekening .rekening-table th{font-size:7px!important}
  #dashGantiRekening .rekening-table td{font-size:9px!important}
}


/* Keterangan Ganti Rekening: tampil lewat ikon mata */
.rekening-detail-btn{
  width:30px;
  height:30px;
  padding:0;
  border-radius:50%;
  display:inline-grid;
  place-items:center;
  border:1px solid #e6ded3;
  background:#f4f2ee;
  color:#4e5660;
  font-size:13px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}
.rekening-detail-btn:hover{background:#ebe7e1;transform:translateY(-1px)}
.rekening-form-grid input,
.rekening-form-grid textarea{
  text-transform:uppercase!important;
}
.rekening-detail-modal-backdrop{
  position:fixed;
  inset:0;
  z-index:999999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:22px;
  background:rgba(24,21,18,.55);
  backdrop-filter:blur(6px);
}
.rekening-detail-modal-backdrop.hidden{display:none!important}
.rekening-detail-modal-card{
  width:min(540px,100%);
  max-height:calc(100vh - 44px);
  overflow:auto;
  border-radius:22px;
  padding:22px;
  background:linear-gradient(180deg,#fffdf9,#f3e9dc);
  border:1px solid #dfc9ad;
  box-shadow:0 25px 75px rgba(0,0,0,.30);
}
.rekening-detail-modal-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:15px;
  margin-bottom:18px;
}
.rekening-detail-kicker{
  color:#9b7141;
  font-size:9px;
  letter-spacing:.12em;
  font-weight:950;
}
.rekening-detail-modal-head h3{
  margin:6px 0 0;
  color:#36291f;
  font-size:20px;
}
.rekening-detail-close{
  width:34px;height:34px;padding:0;
  border-radius:10px;
  background:#f6ebdc;
  color:#765534;
  font-size:23px;
  line-height:1;
}
.rekening-detail-summary{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin-bottom:13px;
}
.rekening-detail-summary>div{
  padding:11px;
  border:1px solid #e3ceb5;
  border-radius:11px;
  background:#fffdfa;
}
.rekening-detail-summary span,
.rekening-detail-note-box span{
  display:block;
  color:#8a6947;
  font-size:9px;
  font-weight:950;
  letter-spacing:.06em;
}
.rekening-detail-summary b{
  display:block;
  margin-top:5px;
  color:#3f3023;
  font-size:11px;
  line-height:1.4;
  word-break:break-word;
}
.rekening-detail-note-box{
  padding:13px;
  border:1px solid #e3ceb5;
  border-radius:12px;
  background:#fffdfa;
}
.rekening-detail-note-box p{
  margin:7px 0 0;
  color:#513e2d;
  font-size:12px;
  line-height:1.65;
  white-space:pre-wrap;
  word-break:break-word;
}
.rekening-detail-actions{
  display:flex;
  gap:10px;
  margin-top:16px;
}
.rekening-detail-actions.hidden{display:none!important}
.rekening-detail-approve,
.rekening-detail-reject,
.rekening-detail-ok{
  min-height:41px;
  border-radius:11px;
  padding:0 15px;
  font-size:11px;
  font-weight:950;
}
.rekening-detail-approve{flex:1;background:#e0f3e6;color:#28764f;border:1px solid #b7e3c7}
.rekening-detail-reject{flex:1;background:#f9e2df;color:#a3443f;border:1px solid #efc4be}
.rekening-detail-ok{
  width:100%;
  margin-top:16px;
  background:linear-gradient(135deg,#b9864f,#8f6338);
  color:#fffdf9;
}
@media(max-width:560px){
  .rekening-detail-summary{grid-template-columns:1fr}
}


/* Perapihan kolom Ganti Rekening: semua header dan isi lurus satu garis */
#dashGantiRekening .rekening-table{
  width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
  border-collapse:separate!important;
  border-spacing:0!important;
}
#dashGantiRekening .rekening-table col.rekening-col-name{width:10%!important}
#dashGantiRekening .rekening-table col.rekening-col-role{width:6%!important}
#dashGantiRekening .rekening-table col.rekening-col-passport{width:8%!important}
#dashGantiRekening .rekening-table col.rekening-col-old-name{width:11%!important}
#dashGantiRekening .rekening-table col.rekening-col-old-number{width:10%!important}
#dashGantiRekening .rekening-table col.rekening-col-old-bank{width:6%!important}
#dashGantiRekening .rekening-table col.rekening-col-new-name{width:11%!important}
#dashGantiRekening .rekening-table col.rekening-col-new-number{width:10%!important}
#dashGantiRekening .rekening-table col.rekening-col-new-bank{width:6%!important}
#dashGantiRekening .rekening-table col.rekening-col-note{width:12%!important}
#dashGantiRekening .rekening-table col.rekening-col-date{width:10%!important}

#dashGantiRekening .rekening-table th,
#dashGantiRekening .rekening-table td{
  box-sizing:border-box!important;
  vertical-align:middle!important;
  text-align:center!important;
}
#dashGantiRekening .rekening-table td{
  height:46px!important;
  padding:10px 5px!important;
}
#dashGantiRekening .rekening-table th{
  padding:9px 4px!important;
}
#dashGantiRekening .rekening-table td:first-child,
#dashGantiRekening .rekening-table td:nth-child(10),
#dashGantiRekening .rekening-table td:nth-child(11){
  text-align:center!important;
}
#dashGantiRekening .rekening-table td:nth-child(1) b{
  display:block;
  text-align:center!important;
}
#dashGantiRekening .rekening-detail-btn{
  margin:0 auto!important;
}


/* Ganti Rekening update: ROLE di depan, nama sesudahnya, approve/reject muncul saat hover di ROLE */
#dashGantiRekening .rekening-table col.rekening-col-name{width:6%!important}
#dashGantiRekening .rekening-table col.rekening-col-role{width:10%!important}
#dashGantiRekening .rekening-table td:nth-child(1){text-align:center!important}
#dashGantiRekening .rekening-table td:nth-child(2){text-align:left!important}
#dashGantiRekening .rekening-table td:nth-child(2) b{display:block;text-align:left!important}
.rekening-role-cell{display:flex;align-items:center;justify-content:center;gap:8px;min-height:28px;position:relative}
.rekening-role-cell.has-hover-actions .izin-pill{transition:opacity .18s ease,transform .18s ease}
.rekening-role-hover-actions{display:flex;align-items:center;gap:5px;opacity:0;visibility:hidden;transform:translateY(4px);pointer-events:none;transition:opacity .18s ease,transform .18s ease,visibility .18s ease}
.rekening-role-cell.has-hover-actions:hover .rekening-role-hover-actions,
.rekening-role-cell.has-hover-actions:focus-within .rekening-role-hover-actions{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}
.rekening-role-cell.has-hover-actions:hover .izin-pill,
.rekening-role-cell.has-hover-actions:focus-within .izin-pill{opacity:.35;transform:scale(.98)}
.rekening-role-hover-actions .rekening-action-btn{width:28px!important;height:28px!important;flex:0 0 auto}

/* Popup keterangan hanya isi keterangan */
.rekening-detail-simple-card{width:min(440px,100%);position:relative;border-radius:22px;padding:26px 20px 20px;background:#fffefa;border:1px solid #dfc9ad;box-shadow:0 25px 75px rgba(0,0,0,.30);text-align:center}
.rekening-detail-simple-close{position:absolute;top:18px;right:18px;width:32px;height:32px;border-radius:10px;background:#f6ebdc;color:#765534;font-size:22px;line-height:1;padding:0}
.rekening-detail-simple-icon{width:74px;height:74px;border-radius:50%;margin:4px auto 18px;display:grid;place-items:center;border:4px solid #4ab3e6;color:#4ab3e6;font-size:44px;font-weight:900;background:#fff}
.rekening-detail-simple-card h3{margin:0;color:#555;font-size:23px;font-weight:800}
.rekening-detail-simple-card p{margin:18px 0 0;color:#5f5f5f;font-size:17px;line-height:1.6;white-space:pre-wrap;word-break:break-word}
.rekening-detail-simple-card .rekening-detail-ok{width:auto;min-width:110px;margin:24px auto 0;background:#6e63d9;color:#fff;border-radius:4px;padding:0 22px}


/* Perbaikan kolom ROLE agar tulisan normal, tidak terpecah */
#dashGantiRekening .rekening-table col.rekening-col-role{width:8%!important}
#dashGantiRekening .rekening-table col.rekening-col-name{width:8%!important}
#dashGantiRekening .rekening-role-cell{
  min-width:0!important;
  white-space:nowrap!important;
}
#dashGantiRekening .rekening-role-cell .izin-pill{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-width:54px!important;
  white-space:nowrap!important;
  word-break:normal!important;
  overflow-wrap:normal!important;
}
#dashGantiRekening .rekening-role-cell.has-hover-actions:hover .izin-pill,
#dashGantiRekening .rekening-role-cell.has-hover-actions:focus-within .izin-pill{
  opacity:.4;
}


/* ROLE sejajar; tombol approve/tolak menimpa badge ROLE saat hover */
#dashGantiRekening .rekening-table th:first-child,
#dashGantiRekening .rekening-table td:first-child{
  text-align:center!important;
  vertical-align:middle!important;
}
#dashGantiRekening .rekening-role-cell{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  height:30px!important;
  min-height:30px!important;
  gap:0!important;
  white-space:nowrap!important;
}
#dashGantiRekening .rekening-role-cell .izin-pill{
  position:absolute!important;
  inset:0!important;
  margin:auto!important;
  width:max-content!important;
  max-width:calc(100% - 8px)!important;
  min-width:54px!important;
  height:22px!important;
  padding:0 7px!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  transition:opacity .16s ease, transform .16s ease!important;
}
#dashGantiRekening .rekening-role-hover-actions{
  position:absolute!important;
  inset:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  opacity:0!important;
  visibility:hidden!important;
  transform:none!important;
  pointer-events:none!important;
  transition:opacity .16s ease, visibility .16s ease!important;
}
#dashGantiRekening .rekening-role-cell.has-hover-actions:hover .rekening-role-hover-actions,
#dashGantiRekening .rekening-role-cell.has-hover-actions:focus-within .rekening-role-hover-actions{
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
#dashGantiRekening .rekening-role-cell.has-hover-actions:hover .izin-pill,
#dashGantiRekening .rekening-role-cell.has-hover-actions:focus-within .izin-pill{
  opacity:0!important;
  transform:scale(.94)!important;
}
#dashGantiRekening .rekening-role-hover-actions .rekening-action-btn{
  position:relative!important;
  z-index:2!important;
  width:27px!important;
  height:27px!important;
  margin:0!important;
}


/* Card judul panjang Ganti Rekening */
.rekening-quote-card{
  position:relative;
  overflow:hidden;
  margin:0 0 18px;
  min-height:128px;
  padding:26px 30px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  border-radius:18px;
  background:linear-gradient(135deg,#342d27 0%,#191b26 56%,#5b3d25 100%);
  border:1px solid rgba(207,160,102,.48);
  box-shadow:0 15px 32px rgba(40,30,20,.16);
}
.rekening-quote-card::before{
  content:"";
  position:absolute;
  width:230px;
  height:230px;
  border-radius:50%;
  right:-62px;
  top:-120px;
  background:rgba(228,181,113,.18);
}
.rekening-quote-card::after{
  content:"✦";
  position:absolute;
  right:42px;
  bottom:17px;
  color:rgba(255,241,207,.55);
  font-size:42px;
}
.rekening-quote-kicker{
  position:relative;
  z-index:1;
  margin-bottom:9px;
  color:#f4d59f;
  font-size:10px;
  font-weight:950;
  letter-spacing:.14em;
}
.rekening-quote-text{
  position:relative;
  z-index:1;
  max-width:940px;
  color:#fffaf1;
  font-size:25px;
  line-height:1.27;
  font-weight:950;
  letter-spacing:.01em;
  text-transform:uppercase;
}
@media(max-width:900px){
  .rekening-quote-card{min-height:110px;padding:21px}
  .rekening-quote-text{font-size:19px}
}


/* Posisi halaman Ganti Rekening: naik ke atas secukupnya, tetap rapi */
#dashGantiRekening{
  padding:18px 22px 28px!important;
  margin-top:-10px!important;
  align-content:start!important;
  justify-items:stretch!important;
}
#dashGantiRekening.show{
  display:block!important;
}
#dashGantiRekening .rekening-page-wrap{
  width:100%;
  margin-top:0!important;
}
#dashGantiRekening .rekening-quote-card{
  margin-top:0!important;
}



/* === Perapihan kolom tabel Shift Kerja agar semua section sejajar === */
@media (min-width: 768px){
  .dash-table-wrap{
    overflow-x:auto !important;
    overflow-y:visible !important;
  }
  .dash-table-wrap .shift-table{
    width:100% !important;
    min-width:1360px !important;
    max-width:none !important;
    table-layout:fixed !important;
    border-collapse:collapse !important;
  }
  .dash-table-wrap .shift-table th,
  .dash-table-wrap .shift-table td{
    vertical-align:middle !important;
    white-space:nowrap !important;
  }
  .dash-table-wrap .shift-table th:nth-child(1),
  .dash-table-wrap .shift-table td:nth-child(1){width:48px !important;text-align:center !important;}

  .dash-table-wrap .shift-table th:nth-child(2),
  .dash-table-wrap .shift-table td:nth-child(2){width:230px !important;white-space:normal !important;}

  .dash-table-wrap .shift-table th:nth-child(3),
  .dash-table-wrap .shift-table td:nth-child(3){width:92px !important;text-align:center !important;}

  .dash-table-wrap .shift-table th:nth-child(4),
  .dash-table-wrap .shift-table td:nth-child(4){width:112px !important;text-align:center !important;}

  .dash-table-wrap .shift-table th:nth-child(5),
  .dash-table-wrap .shift-table td:nth-child(5),
  .dash-table-wrap .shift-table th:nth-child(6),
  .dash-table-wrap .shift-table td:nth-child(6){width:96px !important;text-align:center !important;}

  .dash-table-wrap .shift-table th:nth-child(7),
  .dash-table-wrap .shift-table td:nth-child(7){width:112px !important;text-align:center !important;}

  .dash-table-wrap .shift-table th:nth-child(8),
  .dash-table-wrap .shift-table td:nth-child(8),
  .dash-table-wrap .shift-table th:nth-child(9),
  .dash-table-wrap .shift-table td:nth-child(9){width:145px !important;text-align:center !important;}

  .dash-table-wrap .shift-table th:nth-child(10),
  .dash-table-wrap .shift-table td:nth-child(10){width:120px !important;text-align:center !important;}

  .dash-table-wrap .shift-table th:nth-child(11),
  .dash-table-wrap .shift-table td:nth-child(11){width:155px !important;text-align:center !important;}

  .dash-table-wrap .shift-table th:nth-child(12),
  .dash-table-wrap .shift-table td:nth-child(12){width:135px !important;text-align:center !important;}

  .dash-table-wrap .shift-table th:nth-child(n+3){text-align:center !important;}

  .shift-badge,
  .check-state,
  .crosscheck-time{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-width:66px !important;
    text-align:center !important;
  }

  .status-action{
    justify-content:center !important;
  }

  .crosscheck-empty,
  .attendance-ok,
  .attendance-late,
  .attendance-wait,
  .attendance-leave{
    display:inline-block !important;
    width:100% !important;
    text-align:center !important;
  }
}


/* Wallpaper Syair mengikuti tema yang dipilih */
#dashPostinganSyair.syair-generator-page{
  background:
    linear-gradient(var(--syair-overlay-start),var(--syair-overlay-end)),
    var(--syair-page-bg) center center / cover fixed no-repeat!important;
  background-size:cover!important;
  background-position:center center!important;
  background-attachment:fixed!important;
}

/* Halaman postingan tampil tanpa header atas */
body.posting-no-header .dash-topbar{
  display:none!important;
}
body.posting-no-header .dash-home,
body.posting-no-header .dash-content,
body.posting-no-header .izin-page,
body.posting-no-header .izin-input-page{
  min-height:100vh!important;
}

/* Tarik halaman postingan naik agar wallpaper/full background menutup area bekas header */
body.posting-no-header #dashPostinganSyair.show,
body.posting-no-header #dashPostinganBukti.show,
body.posting-no-header #dashPostinganPrediksi.show{
  margin-top:-72px!important;
  padding-top:24px!important;
  min-height:100vh!important;
}

/* ===== FILE CSS DIPINDAHKAN DARI index lama.html ===== */

/* Loader ini khusus desktop. Di HP jangan pernah tampil. */
@media(max-width:767px){
  #pcBootLoader{display:none!important;}
}
@media(min-width:768px){
  /* Saat aplikasi masih memulihkan sesi atau halaman sedang lama dimuat,
     jangan pernah tampilkan layar login bercampur dengan dashboard. */
  html.pc-boot-pending #desktopLoginPage,
  html.pc-boot-pending #desktopApp{
    visibility:hidden!important;
  }
  html.pc-boot-pending #pcBootLoader{
    display:flex!important;
  }

  html.pc-session-pending #desktopLoginPage{display:none!important}
  html.pc-session-pending #desktopApp{display:grid!important;visibility:hidden!important}
  html.pc-session-pending body{background:#0d1320!important}

  /* Saat refresh dari menu selain Dashboard, tahan render sesaat agar Welcome card tidak sempat terlihat. */
  html.pc-restore-menu-pending #desktopLoginPage{display:none!important}
  html.pc-restore-menu-pending #desktopApp{
    display:grid!important;
    visibility:hidden!important;
  }

  #pcBootLoader{
    display:none;
    position:fixed;
    inset:0;
    z-index:2147483000;
    align-items:center;
    justify-content:center;
    background:
      radial-gradient(circle at 25% 18%,rgba(49,112,210,.26),transparent 34%),
      linear-gradient(145deg,#090f1d 0%,#111a2c 50%,#070c16 100%);
  }
  .pc-boot-loader-card{
    width:min(360px,calc(100vw - 44px));
    padding:30px 28px;
    border-radius:24px;
    text-align:center;
    color:#f6f3e9;
    background:linear-gradient(145deg,rgba(28,40,67,.95),rgba(11,18,34,.97));
    border:1px solid rgba(131,183,255,.34);
    box-shadow:0 24px 70px rgba(0,0,0,.46);
  }
  .pc-boot-loader-card img{
    width:152px;
    height:auto;
    display:block;
    margin:0 auto 20px;
    object-fit:contain;
  }
  .pc-boot-spinner{
    width:31px;
    height:31px;
    margin:0 auto 16px;
    border:3px solid rgba(155,206,255,.24);
    border-top-color:#8fd6ff;
    border-radius:50%;
    animation:pcBootSpin .8s linear infinite;
  }
  .pc-boot-loader-card strong{
    display:block;
    font-size:13px;
    letter-spacing:.12em;
    font-weight:1000;
  }
  .pc-boot-loader-card span{
    display:block;
    margin-top:9px;
    color:#b9c8e0;
    font-size:12px;
  }
  @keyframes pcBootSpin{to{transform:rotate(360deg)}}
}

/* Browser desktop tetap memakai tampilan PC walau zoom sangat besar.
   Zoom dapat mengecilkan lebar viewport CSS sehingga media query mobile aktif,
   maka kelas ini mengunci mode PC berdasarkan perangkat/pointer desktop. */
html.pc-force-desktop .mobile{
  display:none!important;
}
html.pc-force-desktop .desktop{
  display:block!important;
}
html.pc-force-desktop body.pc-app-mode #desktopApp{
  display:grid!important;
  min-height:100vh!important;
}
html.pc-force-desktop body.pc-login-mode #desktopLoginPage{
  display:block!important;
  min-height:100vh!important;
}
html.pc-force-desktop body.pc-login-mode #desktopApp,
html.pc-force-desktop body.pc-app-mode #desktopLoginPage{
  display:none!important;
}
html.pc-force-desktop.pc-boot-pending #desktopLoginPage,
html.pc-force-desktop.pc-boot-pending #desktopApp{
  visibility:hidden!important;
}
html.pc-force-desktop.pc-boot-pending #pcBootLoader{
  display:flex!important;
}
html.pc-force-desktop.pc-session-pending #desktopLoginPage{
  display:none!important;
}
html.pc-force-desktop.pc-session-pending #desktopApp{
  display:grid!important;
  visibility:hidden!important;
}
html.pc-force-desktop.pc-restore-menu-pending #desktopLoginPage{
  display:none!important;
}
html.pc-force-desktop.pc-restore-menu-pending #desktopApp{
  display:grid!important;
  visibility:hidden!important;
}

/* Pada zoom desktop besar, atau setelah dashboard sudah tampil,
   loader tidak boleh menutupi / bercampur dengan halaman. */
html.pc-force-desktop body.pc-app-mode #pcBootLoader{
  display:none!important;
}
html.pc-zoomed #pcBootLoader{
  display:none!important;
}

/* Final Ganti Rekening: banner turun dan judul tetap sebaris */
@media (min-width:901px){
  #dashGantiRekening{
    padding-top:34px!important;
    margin-top:0!important;
  }
  #dashGantiRekening .rekening-quote-card{
    margin-top:8px!important;
    min-height:128px!important;
  }
  #dashGantiRekening .rekening-quote-text{
    max-width:none!important;
    width:100%!important;
    white-space:nowrap!important;
    font-size:22px!important;
    line-height:1.18!important;
    letter-spacing:0!important;
  }
}


/* Ganti Rekening: perbesar tulisan tabel agar tidak kecil/buram */
#dashGantiRekening table th{
  font-size:10.5px!important;
  letter-spacing:.045em!important;
  font-weight:1000!important;
  -webkit-font-smoothing:antialiased;
  text-rendering:geometricPrecision;
}
#dashGantiRekening table td{
  font-size:12px!important;
  font-weight:750!important;
  -webkit-font-smoothing:antialiased;
  text-rendering:geometricPrecision;
}
#dashGantiRekening .muted,
#dashGantiRekening .empty-row,
#dashGantiRekening table em{
  font-size:12px!important;
  font-weight:700!important;
}


/* Ganti Rekening: tetap jelas saat browser zoom 75% */
#dashGantiRekening table th{
  font-size:13px!important;
  line-height:1.2!important;
  letter-spacing:.03em!important;
  font-weight:1000!important;
  white-space:nowrap!important;
  -webkit-font-smoothing:antialiased;
  text-rendering:geometricPrecision;
}
#dashGantiRekening table td{
  font-size:12.5px!important;
  line-height:1.35!important;
  font-weight:800!important;
  -webkit-font-smoothing:antialiased;
  text-rendering:geometricPrecision;
}
#dashGantiRekening table thead tr:first-child th{
  padding-top:12px!important;
  padding-bottom:10px!important;
}
#dashGantiRekening table thead tr:last-child th{
  padding-top:10px!important;
  padding-bottom:10px!important;
}


/* Form Ganti Rekening: data staff otomatis dan pilihan bank */
.rekening-form-grid select{
  width:100%;
  border:1px solid #ddc6aa;
  background:#fffdfa;
  border-radius:11px;
  padding:11px 38px 11px 12px;
  color:#433426;
  outline:none;
  font-size:12px;
  font-weight:800;
  appearance:auto;
}
.rekening-form-grid select:focus{
  border-color:#b6844c;
  box-shadow:0 0 0 3px rgba(182,132,76,.12);
}
.rekening-form-grid input[readonly]{
  background:#f3ece2;
  color:#5f4631;
  font-weight:900;
  cursor:not-allowed;
}


/* Pengajuan Cuti & Resign: tema warm bronze sama seperti Ganti Rekening */
#dashPengajuanCuti,
#dashPengajuanResign{
  background:linear-gradient(180deg,#fffaf3 0%,#f7f0e7 100%)!important;
  border:1px solid #e5d4bd!important;
  border-radius:20px!important;
  box-shadow:0 16px 34px rgba(75,59,40,.10)!important;
}

#dashPengajuanCuti .pengajuan-cuti-wrap,
#dashPengajuanResign .pengajuan-resign-wrap{
  background:transparent!important;
}

#dashPengajuanCuti .pengajuan-cuti-title,
#dashPengajuanResign .pengajuan-resign-title{
  color:#2b241d!important;
}
#dashPengajuanCuti .pengajuan-cuti-title .shield,
#dashPengajuanResign .pengajuan-resign-title span{
  color:#ad7a40!important;
}

#dashPengajuanCuti .pengajuan-summary-head,
#dashPengajuanCuti .pengajuan-summary-head span{
  color:#6c4a27!important;
  font-weight:900!important;
}

#dashPengajuanCuti .pengajuan-summary-card{
  background:#fffaf3!important;
  border:1px solid #e2cfb5!important;
  box-shadow:0 12px 26px rgba(75,59,40,.09)!important;
}
#dashPengajuanCuti .pengajuan-summary-card:before{
  background:linear-gradient(180deg,#2b2925,#a97843)!important;
}
#dashPengajuanCuti .pengajuan-summary-card h3,
#dashPengajuanCuti .pengajuan-summary-card .sum-top,
#dashPengajuanCuti .pengajuan-summary-card .sum-main{
  color:#2b241d!important;
}
#dashPengajuanCuti .pengajuan-summary-card .sum-meta,
#dashPengajuanCuti .pengajuan-summary-card ul,
#dashPengajuanCuti .pengajuan-summary-card li{
  color:#7a7066!important;
}

#dashPengajuanCuti .pengajuan-add-btn,
#dashPengajuanResign .pengajuan-resign-add-btn{
  background:linear-gradient(135deg,#bf8950,#9b6937)!important;
  color:#fffaf3!important;
  border:1px solid #a97843!important;
  box-shadow:0 10px 22px rgba(116,78,40,.20)!important;
}
#dashPengajuanCuti .pengajuan-add-btn:hover,
#dashPengajuanResign .pengajuan-resign-add-btn:hover{
  filter:brightness(1.06)!important;
}

#dashPengajuanCuti .pengajuan-tab,
#dashPengajuanResign .pengajuan-resign-tab{
  background:#f2e7d9!important;
  color:#604326!important;
  border:1px solid #dfc7aa!important;
}
#dashPengajuanCuti .pengajuan-tab.active,
#dashPengajuanResign .pengajuan-resign-tab.active{
  background:linear-gradient(135deg,#bf8950,#9b6937)!important;
  color:#fffaf3!important;
  border-color:#a97843!important;
  box-shadow:0 8px 18px rgba(116,78,40,.16)!important;
}

#dashPengajuanCuti .pengajuan-filter select{
  background:#fffaf3!important;
  color:#35271b!important;
  border-color:#d8c5aa!important;
}

#dashPengajuanCuti .pengajuan-table-wrap,
#dashPengajuanResign .pengajuan-resign-table-wrap{
  background:#fffaf3!important;
  border:1px solid #e1ccb0!important;
  box-shadow:0 10px 22px rgba(75,59,40,.08)!important;
}

#dashPengajuanCuti .pengajuan-table,
#dashPengajuanResign .pengajuan-resign-table{
  background:#fffaf3!important;
  box-shadow:none!important;
}

#dashPengajuanCuti .pengajuan-table th,
#dashPengajuanResign .pengajuan-resign-table th{
  background:#2b2925!important;
  color:#fffdf7!important;
  border-right:1px solid rgba(255,255,255,.11)!important;
}

#dashPengajuanCuti .pengajuan-table td,
#dashPengajuanResign .pengajuan-resign-table td{
  background:#fffaf3!important;
  color:#2a2119!important;
  border-right:1px solid #eadbc8!important;
  border-bottom:1px solid #eadbc8!important;
}
#dashPengajuanCuti .pengajuan-table tbody tr:nth-child(even) td,
#dashPengajuanResign .pengajuan-resign-table tbody tr:nth-child(even) td{
  background:#f7f0e7!important;
}
#dashPengajuanCuti .pengajuan-table tbody tr:hover td,
#dashPengajuanResign .pengajuan-resign-table tbody tr:hover td{
  background:#f1e5d4!important;
}

#dashPengajuanCuti .pengajuan-empty-row,
#dashPengajuanResign .pengajuan-resign-empty{
  background:#fffaf3!important;
  color:#8b6a47!important;
  font-weight:800!important;
}

#dashPengajuanCuti .pengajuan-status.pending,
#dashPengajuanResign .pengajuan-status.pending{
  background:#fff0cf!important;
  color:#9a6e22!important;
}
#dashPengajuanCuti .pengajuan-status.approved,
#dashPengajuanResign .pengajuan-status.approved{
  background:#dff4e7!important;
  color:#27744e!important;
}
#dashPengajuanCuti .pengajuan-status.rejected,
#dashPengajuanResign .pengajuan-status.rejected{
  background:#fbe3e1!important;
  color:#a04440!important;
}


/* Tema Pengajuan benar-benar disamakan dengan Ganti Rekening */
#dashPengajuanCuti .pengajuan-cuti-wrap,
#dashPengajuanResign .pengajuan-resign-wrap{
  background:linear-gradient(180deg,#fffaf3 0%,#f8f0e5 100%)!important;
  border:1px solid #e4cfb2!important;
  border-radius:20px!important;
  padding:20px!important;
  box-shadow:0 16px 34px rgba(75,59,40,.10)!important;
}

#dashPengajuanCuti .pengajuan-summary-card{
  background:linear-gradient(145deg,#fffdf8 0%,#f1e4d2 100%)!important;
  border:1px solid #dfc8aa!important;
  box-shadow:0 12px 26px rgba(96,66,33,.14)!important;
}
#dashPengajuanCuti .pengajuan-summary-card:before{
  background:linear-gradient(180deg,#2a2724,#a97843)!important;
}
#dashPengajuanCuti .pengajuan-summary-card .sum-top,
#dashPengajuanCuti .pengajuan-summary-card h3,
#dashPengajuanCuti .pengajuan-summary-card .sum-main{
  color:#2b2118!important;
}
#dashPengajuanCuti .pengajuan-summary-card .sum-meta,
#dashPengajuanCuti .pengajuan-summary-card ul,
#dashPengajuanCuti .pengajuan-summary-card li{
  color:#765d43!important;
}

#dashPengajuanCuti .pengajuan-add-btn,
#dashPengajuanResign .pengajuan-resign-add-btn{
  background:linear-gradient(135deg,#c18b50,#996536)!important;
  color:#fffaf3!important;
  border:1px solid #9d6b3a!important;
  box-shadow:0 10px 22px rgba(116,78,40,.24)!important;
}

#dashPengajuanCuti .pengajuan-tab,
#dashPengajuanResign .pengajuan-resign-tab{
  background:#f4e9db!important;
  color:#624524!important;
  border:1px solid #dec6a8!important;
}
#dashPengajuanCuti .pengajuan-tab.active,
#dashPengajuanResign .pengajuan-resign-tab.active{
  background:linear-gradient(135deg,#c18b50,#996536)!important;
  color:#fffaf3!important;
  border-color:#9d6b3a!important;
  box-shadow:0 8px 18px rgba(116,78,40,.20)!important;
}

#dashPengajuanCuti .pengajuan-filter select{
  background:#fffaf3!important;
  border:1px solid #dec6a8!important;
  color:#3c2b1d!important;
}

#dashPengajuanCuti .pengajuan-table-wrap,
#dashPengajuanResign .pengajuan-resign-table-wrap{
  background:#fffaf3!important;
  border:1px solid #dec6a8!important;
  border-radius:14px!important;
  box-shadow:0 10px 24px rgba(75,59,40,.10)!important;
}

#dashPengajuanCuti .pengajuan-table,
#dashPengajuanResign .pengajuan-resign-table{
  background:#fffaf3!important;
}
#dashPengajuanCuti .pengajuan-table th,
#dashPengajuanResign .pengajuan-resign-table th{
  background:#2b2925!important;
  color:#fffaf3!important;
}
#dashPengajuanCuti .pengajuan-table td,
#dashPengajuanResign .pengajuan-resign-table td{
  background:#fffaf3!important;
  color:#34271d!important;
  border-color:#ead7c0!important;
}
#dashPengajuanCuti .pengajuan-table tbody tr:nth-child(even) td,
#dashPengajuanResign .pengajuan-resign-table tbody tr:nth-child(even) td{
  background:#f7eee1!important;
}
#dashPengajuanCuti .pengajuan-empty-row,
#dashPengajuanResign .pengajuan-resign-empty{
  background:#fffaf3!important;
  color:#8a6845!important;
}


/* Hanya card Max Cuti yang bronze — tidak mengubah layout/container lain */
#dashPengajuanCuti .pengajuan-summary-grid{
  background:transparent!important;
  padding:0!important;
  border:none!important;
  box-shadow:none!important;
}

#dashPengajuanCuti .pengajuan-summary-card{
  background:linear-gradient(135deg,#2b2724 0%,#171820 60%,#70522e 100%)!important;
  border:1px solid rgba(223,185,126,.42)!important;
  border-radius:16px!important;
  box-shadow:0 14px 28px rgba(34,25,18,.18)!important;
  color:#fffaf0!important;
}

#dashPengajuanCuti .pengajuan-summary-card::before{
  background:linear-gradient(180deg,#ffe4ad,#b9864d)!important;
}

#dashPengajuanCuti .pengajuan-summary-card .sum-top,
#dashPengajuanCuti .pengajuan-summary-card h3{
  color:#fff7df!important;
}

#dashPengajuanCuti .pengajuan-summary-card .sum-main{
  color:#ffe4ad!important;
  text-shadow:0 0 12px rgba(255,218,150,.18)!important;
}

#dashPengajuanCuti .pengajuan-summary-card .sum-meta,
#dashPengajuanCuti .pengajuan-summary-card ul,
#dashPengajuanCuti .pengajuan-summary-card li{
  color:rgba(255,248,232,.78)!important;
}

#dashPengajuanCuti .pengajuan-summary-card .ready{
  color:#d9ffe6!important;
}


/* === Perbaikan lebar dashboard: tidak ada scroll halaman ke samping dan tidak ada card terpotong === */
html,
body{
  max-width:100%!important;
  overflow-x:hidden!important;
  scroll-behavior:smooth;
  scrollbar-width:thin;
  scrollbar-color:#b17b43 #171717;
}

@media (min-width:768px){
  .dash-main{
    width:calc(100vw - 255px)!important;
    max-width:calc(100vw - 255px)!important;
    min-width:0!important;
    box-sizing:border-box!important;
    overflow-x:hidden!important;
  }
  .dash-content{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
    overflow-x:hidden!important;
  }
}
@media (min-width:768px) and (max-width:1050px){
  .dash-main{
    width:calc(100vw - 80px)!important;
    max-width:calc(100vw - 80px)!important;
  }
}

/* Card pengajuan tetap 3 kolom pas di layar, tidak melebar/terpotong */
@media (min-width:900px){
  #dashPengajuanCuti .pengajuan-summary-grid{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  #dashPengajuanCuti .pengajuan-summary-card{
    min-width:0!important;
    width:auto!important;
  }
}

/* Tabel Pengajuan dipadatkan agar tidak membuat scroll horizontal halaman */
@media (min-width:768px){
  #dashPengajuanCuti .pengajuan-table-wrap,
  #dashPengajuanResign .pengajuan-resign-table-wrap{
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
  }
  #dashPengajuanCuti .pengajuan-table,
  #dashPengajuanResign .pengajuan-resign-table{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    table-layout:fixed!important;
  }
  #dashPengajuanCuti .pengajuan-table th,
  #dashPengajuanCuti .pengajuan-table td,
  #dashPengajuanResign .pengajuan-resign-table th,
  #dashPengajuanResign .pengajuan-resign-table td{
    min-width:0!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    word-break:break-word!important;
    padding-left:6px!important;
    padding-right:6px!important;
  }
  #dashPengajuanCuti .pengajuan-table th,
  #dashPengajuanResign .pengajuan-resign-table th{
    font-size:10px!important;
  }
  #dashPengajuanCuti .pengajuan-table td,
  #dashPengajuanResign .pengajuan-resign-table td{
    font-size:11px!important;
  }
}

/* Scroll atas-bawah modern warna bronze */
html::-webkit-scrollbar,
body::-webkit-scrollbar,
.dash-main::-webkit-scrollbar,
.dash-side::-webkit-scrollbar{
  width:10px;
}
html::-webkit-scrollbar-track,
body::-webkit-scrollbar-track,
.dash-main::-webkit-scrollbar-track,
.dash-side::-webkit-scrollbar-track{
  background:#171717;
}
html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb,
.dash-main::-webkit-scrollbar-thumb,
.dash-side::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,#d7a365 0%,#9c6737 100%);
  border:2px solid #171717;
  border-radius:999px;
  box-shadow:inset 0 0 0 1px rgba(255,244,222,.24);
}
html::-webkit-scrollbar-thumb:hover,
body::-webkit-scrollbar-thumb:hover,
.dash-main::-webkit-scrollbar-thumb:hover,
.dash-side::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg,#e4b676 0%,#ad7540 100%);
}
.dash-side{
  scrollbar-width:thin;
  scrollbar-color:#b17b43 #171717;
}


/* Postingan menu */
.postingan-page{
  min-height:calc(100vh - 82px);
  display:none;
  place-items:center;
  padding:34px;
}
.postingan-page.show{display:grid}
.postingan-card{
  width:min(760px,100%);
  background:linear-gradient(135deg,#fffaf3 0%,#f7ede0 100%);
  border:1px solid #e1ccb0;
  border-radius:22px;
  padding:42px 34px;
  text-align:center;
  box-shadow:0 18px 42px rgba(76,56,34,.14);
}
.postingan-card .posting-icon{
  width:68px;height:68px;margin:0 auto 16px;
  display:grid;place-items:center;
  border-radius:20px;
  background:linear-gradient(135deg,#2b2724,#70522e);
  color:#ffe4ad;font-size:30px;
  box-shadow:0 12px 24px rgba(38,27,18,.20);
}
.postingan-card h1{
  margin:0;
  color:#2b241d;
  font-size:27px;
  font-weight:1000;
}
.postingan-card p{
  margin:10px 0 0;
  color:#78664f;
  font-size:13px;
  line-height:1.55;
}


/* === SYAIR TOGEL GENERATOR === */
.syair-generator-page{
  --syair-page-bg:url("https://i.imgur.com/OnvV1ib.jpeg");
  --syair-overlay-start:rgba(10,7,4,.12);
  --syair-overlay-end:rgba(10,7,4,.12);
  --syair-preview-bg:linear-gradient(145deg,rgba(25,20,16,.98),rgba(45,31,19,.98));
  --syair-preview-border:rgba(225,177,85,.32);
  --syair-canvas-wrap-bg:#090705;
  --syair-canvas-wrap-border:rgba(225,177,85,.20);
  --syair-panel-bg:linear-gradient(180deg,#2b1a10 0%,#120b07 100%);
  --syair-panel-border:rgba(225,177,85,.42);
  --syair-kicker:#e9bb62;
  --syair-head:#fff4d9;
  --syair-live-bg:rgba(69,218,134,.10);
  --syair-live-border:rgba(69,218,134,.34);
  --syair-live-color:#a4f5c3;
  --syair-title:#ffe2a5;
  --syair-label:#f6dca6;
  --syair-title-divider:rgba(225,177,85,.22);
  --syair-input-border:rgba(225,177,85,.40);
  --syair-input-bg:#fff9ef;
  --syair-input-color:#24160a;
  --syair-primary-start:#f4cd70;
  --syair-primary-end:#ba792d;
  --syair-primary-text:#281508;
  --syair-secondary-bg:#2d2925;
  --syair-secondary-border:rgba(225,177,85,.34);
  --syair-secondary-text:#fff6e4;
  --syair-tip:#d6b988;
  display:none!important;
  padding:24px!important;
  place-items:unset!important;
  min-height:calc(100vh - 70px);
  background:
    linear-gradient(var(--syair-overlay-start),var(--syair-overlay-end)),
    var(--syair-page-bg) center center / cover fixed no-repeat!important;
  background-size:cover!important;
  background-position:center center!important;
  background-attachment:fixed!important;
}
.syair-generator-page.show{display:block!important}
.syair-generator-shell{
  width:min(1420px,100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(0,1fr) 330px;
  gap:22px;
  align-items:start;
}
.syair-preview-column{
  min-width:0;
  border:1px solid var(--syair-preview-border);
  border-radius:22px;
  padding:18px;
  background:var(--syair-preview-bg);
  box-shadow:0 18px 40px rgba(0,0,0,.36);
}
.syair-preview-head{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin:0 0 16px;
}
.syair-kicker{
  display:block;font-size:10px;font-weight:1000;letter-spacing:1.4px;color:var(--syair-kicker);
}
.syair-preview-head h1{
  margin:4px 0 0;color:var(--syair-head);font-size:24px;letter-spacing:.5px;
}
.syair-live-badge{
  display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;
  background:var(--syair-live-bg);border:1px solid var(--syair-live-border);
  color:var(--syair-live-color);font-size:10px;font-weight:1000;white-space:nowrap;
}
.syair-canvas-wrap{
  display:flex;justify-content:center;align-items:flex-start;
  background:var(--syair-canvas-wrap-bg);border:1px solid var(--syair-canvas-wrap-border);
  border-radius:18px;padding:10px;overflow:hidden;
}
#absensiSyairCanvas{
  width:min(100%,720px);height:auto;display:block;border-radius:12px;
  background:#050403;box-shadow:0 12px 34px rgba(0,0,0,.42);
}
.syair-control-panel{
  position:sticky;top:18px;padding:18px;border-radius:22px;
  background:var(--syair-panel-bg);
  border:1px solid var(--syair-panel-border);
  box-shadow:0 18px 40px rgba(0,0,0,.36);
}
.syair-theme-switcher{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:14px;
}
.syair-theme-btn{
  min-height:42px;border:none;border-radius:12px;padding:10px 8px;
  font-size:11px;font-weight:1000;cursor:pointer;transition:.18s ease;
  color:#fffef8;box-shadow:0 10px 22px rgba(0,0,0,.22);opacity:.88;
}
.syair-theme-btn:hover{transform:translateY(-1px);opacity:1}
.syair-theme-btn.active{outline:2px solid rgba(255,255,255,.22);box-shadow:0 0 0 2px rgba(255,255,255,.08),0 14px 28px rgba(0,0,0,.30);opacity:1}
.syair-theme-btn.theme-gold{background:linear-gradient(180deg,#f4cd70,#ba792d);color:#281508}
.syair-theme-btn.theme-blue{background:linear-gradient(180deg,#6dc6ff,#295fdf)}
.syair-theme-btn.theme-purple{background:linear-gradient(180deg,#ff7da8,#7626a6)}
.syair-control-title{
  text-align:center;color:var(--syair-title);font-size:15px;font-weight:1000;letter-spacing:.7px;
  padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--syair-title-divider);
}
.syair-control-panel label{
  display:flex;flex-direction:column;gap:7px;margin:0 0 12px;
  color:var(--syair-label);font-size:11px;text-transform:uppercase;font-weight:1000;letter-spacing:.45px;
}
.syair-control-panel input,.syair-control-panel select,.syair-control-panel textarea{
  border:1px solid var(--syair-input-border)!important;
  background:var(--syair-input-bg)!important;color:var(--syair-input-color)!important;
  box-shadow:none!important;border-radius:12px!important;
  font-weight:800!important;font-size:13px!important;
  padding:11px 12px!important;
}
.syair-control-panel textarea{resize:vertical;min-height:146px;line-height:1.5}
.syair-two-col{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.syair-control-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:4px}
.syair-btn{
  min-height:42px;border:none;border-radius:12px;padding:10px 12px;
  font-size:12px;font-weight:1000;cursor:pointer;transition:.18s ease;
}
.syair-btn:hover{transform:translateY(-1px);filter:brightness(1.07)}
.syair-btn.gold{background:linear-gradient(180deg,var(--syair-primary-start),var(--syair-primary-end));color:var(--syair-primary-text);box-shadow:0 8px 18px rgba(214,153,56,.18)}
.syair-btn.dark{background:var(--syair-secondary-bg);color:var(--syair-secondary-text);border:1px solid var(--syair-secondary-border)}
.syair-btn.full{grid-column:1/-1}
.syair-tip{margin:13px 3px 0;color:var(--syair-tip);font-size:11px;line-height:1.55;text-align:center}
@media(max-width:1080px){
  .syair-generator-shell{grid-template-columns:1fr}
  .syair-control-panel{position:static}
}
@media(max-width:640px){
  .syair-generator-page{padding:12px!important}
  .syair-preview-column,.syair-control-panel{padding:13px;border-radius:17px}
  .syair-preview-head{align-items:flex-start;flex-direction:column}
  .syair-two-col{grid-template-columns:1fr}
  .syair-control-actions{grid-template-columns:1fr}
  .syair-theme-switcher{grid-template-columns:1fr}
  .syair-btn.full{grid-column:auto}
}

/* SYAIR: hilangkan kotak Generator, tampilkan langsung kartu Syair */
#dashPostinganSyair .syair-preview-column{
  border:0 !important;
  border-radius:0 !important;
  padding:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

#dashPostinganSyair .syair-preview-head{
  display:none !important;
}

#dashPostinganSyair .syair-canvas-wrap{
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}


/* Tombol gambar tema Syair */
#syairThemeButtons{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:6px !important;
}

#syairThemeButtons .syair-theme-btn{
  width:72px !important;
  height:40px !important;
  min-width:72px !important;
  min-height:40px !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  border-radius:9px !important;
  background-color:transparent !important;
  background-repeat:no-repeat !important;
  background-position:center !important;
  background-size:100% 100% !important;
  color:transparent !important;
  font-size:0 !important;
  line-height:0 !important;
  text-shadow:none !important;
  box-shadow:none !important;
  overflow:hidden !important;
}

/* EMAS */
#syairThemeButtons .syair-theme-btn.theme-gold{
  background-image:url("https://i.imgur.com/05hDhF6.png") !important;
}

/* BIRU */
#syairThemeButtons .syair-theme-btn.theme-blue{
  background-image:url("https://i.imgur.com/3uLKfqc.png") !important;
}

/* MERAH UNGU */
#syairThemeButtons .syair-theme-btn.theme-purple{
  background-image:url("https://i.imgur.com/aBcppHX.png") !important;
}

#syairThemeButtons .syair-theme-btn.active{
  transform:translateY(-1px) !important;
  filter:brightness(1.08) !important;
}

/* ===== MODUL SERAH TERIMA KASIR ===== */
/* ===== SERAH TERIMA KASIR ===== */
#dashSerahKasir.show{display:block!important;padding:28px 34px 44px!important;min-height:calc(100vh - 82px)!important}
.serah-kasir-wrap{width:min(1320px,100%);margin:0 auto;display:flex;flex-direction:column;gap:18px}.serah-kasir-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding:4px 2px}.serah-kasir-kicker{display:block;font-size:11px;letter-spacing:1.2px;font-weight:900;color:#98764f;margin-bottom:6px}.serah-kasir-head h1{margin:0;color:#34271d;font-size:28px;letter-spacing:.2px}.serah-kasir-head p{margin:7px 0 0;color:#776550;font-size:13px}.serah-add-btn{border:0;border-radius:12px;padding:13px 17px;background:linear-gradient(135deg,#8b6239,#bd9463);color:#fff;font-weight:900;font-size:13px;box-shadow:0 10px 20px rgba(91,57,22,.2);cursor:pointer;white-space:nowrap}.serah-add-btn:hover{filter:brightness(1.05);transform:translateY(-1px)}
.serah-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.serah-summary-card{border-radius:18px;padding:19px 20px;display:flex;align-items:center;gap:14px;border:1px solid;background:#fff;box-shadow:0 10px 25px rgba(67,44,20,.08)}.serah-summary-card.pending{border-color:#ead9bb;background:linear-gradient(135deg,#fffdf8,#f9eddc)}.serah-summary-card.approved{border-color:#cfe2d2;background:linear-gradient(135deg,#fbfffb,#eaf6eb)}.serah-summary-icon{width:49px;height:49px;border-radius:15px;display:grid;place-items:center;font-size:24px;font-weight:900}.pending .serah-summary-icon{background:#f4d8a1;color:#825118}.approved .serah-summary-icon{background:#cce9d0;color:#28713d}.serah-summary-copy{display:flex;flex-direction:column;gap:2px}.serah-summary-copy span{font-size:12px;font-weight:900;color:#6f5b43;text-transform:uppercase;letter-spacing:.45px}.serah-summary-copy strong{font-size:30px;line-height:1;color:#2f261e}.serah-summary-copy small{font-size:12px;color:#7e6b57}
.serah-table-card{background:#fff;border:1px solid #e8dfd3;border-radius:18px;box-shadow:0 12px 30px rgba(67,44,20,.08);overflow:hidden}.serah-table-toolbar{padding:18px 20px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;border-bottom:1px solid #eee6dc;background:#fffcf8}.serah-table-toolbar h2{margin:0;color:#372c22;font-size:17px}.serah-table-toolbar p{margin:5px 0 0;color:#806f5e;font-size:12px}.serah-date-filter{font-size:11px;font-weight:900;color:#735f47;display:flex;flex-direction:column;gap:5px}.serah-date-filter input{border:1px solid #dccfbf;border-radius:9px;padding:9px 10px;background:#fff;color:#3d3024;font:inherit;min-width:160px}.serah-table-wrap{margin:0!important;border:0!important;border-radius:0!important}.serah-kasir-table{width:100%;border-collapse:collapse;min-width:1120px;table-layout:auto!important}.serah-kasir-table th{padding:12px 10px;background:#5b4630;color:#fff7e8;font-size:10px;letter-spacing:.35px;text-align:left;white-space:nowrap}.serah-kasir-table td{padding:12px 10px;border-bottom:1px solid #eee7df;color:#40352a;font-size:12px;vertical-align:top;line-height:1.4}.serah-kasir-table tbody tr:hover{background:#fffaf4}.serah-empty{text-align:center!important;padding:30px!important;color:#8c7a68!important}.serah-bank-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#f3e7d6;color:#725331;font-weight:900;font-size:10px}.serah-status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:10px;font-weight:900;white-space:nowrap}.serah-status.pending{background:#fff0cf;color:#8d5b15}.serah-status.approved{background:#dff3e3;color:#28713d}.serah-link{color:#87582e;font-weight:800;text-decoration:none}.serah-link:hover{text-decoration:underline}.serah-approve-btn{border:0;border-radius:8px;background:#327a46;color:#fff;padding:7px 10px;font-weight:900;font-size:11px;cursor:pointer}.serah-approve-btn:hover{filter:brightness(1.08)}.serah-no-action{font-size:11px;color:#958575}.serah-approval-wait{display:flex;flex-direction:column;gap:5px}.serah-approval-wait small{color:#8a7661}
.serah-modal-backdrop{position:fixed;inset:0;z-index:1200;background:rgba(16,20,25,.58);display:grid;place-items:center;padding:18px}.serah-modal-backdrop.hidden{display:none}.serah-modal{width:min(620px,100%);max-height:calc(100vh - 36px);overflow:auto;background:#fff;border-radius:20px;box-shadow:0 24px 70px rgba(0,0,0,.3);padding:24px}.serah-modal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.serah-modal-head h3{margin:0;color:#35291e;font-size:20px}.serah-modal-head p{margin:5px 0 0;color:#7d6c5b;font-size:12px}.serah-modal-close{border:0;background:#f2ebe3;width:31px;height:31px;border-radius:9px;font-size:22px;line-height:1;color:#6b5540;cursor:pointer}.serah-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.serah-form-field{display:flex;flex-direction:column;gap:6px}.serah-form-field.full{grid-column:1/-1}.serah-form-field label{font-size:11px;font-weight:900;color:#5e4c38}.serah-form-field input,.serah-form-field select,.serah-form-field textarea{box-sizing:border-box;width:100%;border:1px solid #ded2c5;border-radius:10px;padding:11px 12px;background:#fff;color:#392d21;font:inherit;font-size:13px}.serah-form-field textarea{min-height:106px;resize:vertical}.serah-modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.serah-cancel-btn,.serah-save-btn{border:0;border-radius:10px;padding:11px 15px;font-weight:900;font-size:13px;cursor:pointer}.serah-cancel-btn{background:#eee6dd;color:#644f3a}.serah-save-btn{background:#8c6239;color:#fff}
@media(max-width:760px){#dashSerahKasir.show{padding:22px 14px 35px!important}.serah-kasir-head{align-items:stretch;flex-direction:column}.serah-add-btn{width:100%}.serah-summary-grid{grid-template-columns:1fr}.serah-table-toolbar{align-items:stretch;flex-direction:column}.serah-date-filter input{width:100%;box-sizing:border-box}.serah-form-grid{grid-template-columns:1fr}.serah-form-field.full{grid-column:auto}.serah-modal{padding:19px}}
