*{box-sizing:border-box}:root{--navy:#0b1f3a;--blue:#1769e0;--blue2:#0f5dce;--bg:#f4f7fb;--panel:#fff;--text:#101828;--muted:#667085;--line:#e4e9f1;--soft:#eef5ff;--green:#067647;--greenbg:#ecfdf3;--red:#b42318;--redbg:#fff3f2;--shadow:0 8px 28px rgba(16,24,40,.06)}
html{font-family:Inter,"Pretendard","Noto Sans KR",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}body{margin:0;background:var(--bg);min-height:100vh;font-size:14px;line-height:1.55}a{text-decoration:none;color:inherit}button,input,select,textarea{font:inherit}[hidden]{display:none!important}
.topbar{height:64px;background:rgba(11,31,58,.98);color:#fff;position:sticky;top:0;z-index:100}.topbar-inner{height:100%;max-width:1240px;margin:auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between}.brand,.top-actions,.user-chip{display:flex;align-items:center}.brand{gap:11px}.brand-mark{width:38px;height:38px;border-radius:11px;background:#fff;color:var(--navy);display:grid;place-items:center;font-weight:900}.brand-text{display:flex;flex-direction:column;line-height:1.15}.brand-text strong{font-size:14px}.brand-text small{font-size:10px;color:#afbed1;margin-top:3px}.top-actions{gap:11px}.user-chip{gap:8px}.user-avatar{width:34px;height:34px;border-radius:50%;background:#1b3e69;display:grid;place-items:center;font-weight:800}.user-meta{display:flex;flex-direction:column;line-height:1.15}.user-meta strong{font-size:12px}.user-meta small{font-size:10px;color:#afbed1;margin-top:3px}.logout-btn{border:1px solid rgba(255,255,255,.17);background:rgba(255,255,255,.07);color:#fff;border-radius:9px;padding:7px 10px;cursor:pointer}
.nav{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:64px;z-index:90}.nav-inner{max-width:1240px;height:48px;margin:auto;padding:0 24px;display:flex;align-items:center;gap:3px;overflow:auto;scrollbar-width:none}.nav-inner a{padding:8px 11px;border-radius:8px;color:#475467;font-weight:700;white-space:nowrap}.nav-inner a:hover{background:var(--soft);color:var(--blue)}
.container{max-width:1240px;margin:auto;padding:34px 24px 78px}.page-head,.dashboard-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px}.page-head h1,.dashboard-head h1{font-size:30px;line-height:1.18;letter-spacing:-1.1px;margin:4px 0 6px}.page-head p,.dashboard-head p{margin:0}.eyebrow{font-size:10px;letter-spacing:1.5px;color:var(--blue);font-weight:900}.muted{color:var(--muted)}.card{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}
.primary,.secondarybtn,.smallbtn,.dangerbtn{display:inline-flex;align-items:center;justify-content:center;border-radius:10px;font-weight:800;cursor:pointer;white-space:nowrap}.primary{border:0;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;padding:11px 16px;box-shadow:0 5px 14px rgba(23,105,224,.2)}.secondarybtn,.smallbtn{border:1px solid #d3dce8;background:#fff;color:#344054;padding:10px 13px}.smallbtn,.dangerbtn{padding:7px 9px;font-size:12px}.dangerbtn{border:1px solid #f0c1bb;background:var(--redbg);color:var(--red)}.full{width:100%}.page-actions{display:flex;gap:8px;flex-wrap:wrap}
input,select,textarea{width:100%;padding:12px 13px;border:1px solid #d1d9e6;border-radius:11px;background:#fff;color:var(--text);outline:none}input:focus,select:focus,textarea:focus{border-color:#7ca8e7;box-shadow:0 0 0 4px rgba(23,105,224,.09)}textarea{resize:vertical}label{display:block;font-size:12px;font-weight:800;color:#344054;margin:0 0 6px}
.balance-card{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.8fr);overflow:hidden;margin-bottom:16px}.balance-main{padding:28px 30px}.balance-main>span{color:#475467;font-weight:800}.balance-main>strong{display:block;font-size:52px;letter-spacing:-2px;line-height:1.15;color:var(--navy);margin:7px 0 14px}.balance-main>strong small{font-size:16px;margin-left:5px;color:var(--muted)}.balance-main p{font-size:12px;color:var(--muted);margin:8px 0 0}.progress{height:9px;background:#edf1f6;border-radius:99px;overflow:hidden}.progress i{display:block;height:100%;background:linear-gradient(90deg,#1769e0,#66a9ff);border-radius:99px}.balance-kpis{display:grid;grid-template-columns:repeat(3,1fr);background:linear-gradient(145deg,#0d2442,#143d69);color:#fff}.balance-kpis div{padding:23px 17px;display:flex;flex-direction:column;justify-content:center;border-left:1px solid rgba(255,255,255,.09)}.balance-kpis span{font-size:11px;color:#b6c7db}.balance-kpis strong{font-size:27px;margin-top:5px}.balance-kpis small{font-size:10px;color:#9fb3cc}
.quick-grid,.admin-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.quick-card,.feature-card{display:grid;align-items:center;transition:.15s ease}.quick-card{grid-template-columns:44px 1fr auto;gap:13px;padding:17px 19px}.quick-card>b,.feature-card>b{display:grid;place-items:center;background:var(--soft);color:var(--blue);border-radius:13px}.quick-card>b{width:44px;height:44px;font-size:19px}.quick-card strong{display:block}.quick-card span{display:block;font-size:11px;color:var(--muted);margin-top:2px}.quick-card i,.feature-card i{font-style:normal;color:var(--blue);font-size:19px}.quick-card:hover,.feature-card:hover{transform:translateY(-2px);box-shadow:0 15px 38px rgba(16,24,40,.1);border-color:#c9daf1}
.feature-card{grid-template-columns:50px 1fr auto;gap:14px;padding:20px;min-height:125px}.feature-card>b{width:50px;height:50px;font-size:20px}.feature-card h2{margin:0 0 4px;font-size:18px}.feature-card p{margin:0;color:var(--muted);font-size:12px}
.table-card{overflow:hidden}.card-title{padding:18px 20px;display:flex;justify-content:space-between;align-items:center;gap:12px}.card-title h2{font-size:17px;margin:0 0 3px}.card-title p{margin:0;font-size:11px}.table-scroll{overflow:auto;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:separate;border-spacing:0;min-width:800px}th,td{padding:12px 13px;border-top:1px solid var(--line);text-align:left;vertical-align:middle}th{background:#f8fafc;color:#667085;font-size:11px;font-weight:800}td{font-size:12px}tbody tr:hover td{background:#fbfdff}.num{text-align:right;font-variant-numeric:tabular-nums}.balance{font-weight:900;color:var(--blue)}.empty-cell{text-align:center;color:var(--muted);padding:28px!important}
.person{display:flex;align-items:center;gap:9px;min-width:140px}.person>b{width:31px;height:31px;border-radius:50%;background:var(--soft);color:var(--blue);display:grid;place-items:center}.person span{display:flex;flex-direction:column}.person small{font-size:10px;color:var(--muted);margin-top:1px}.status-badge,.role-badge,.count-badge,.status{display:inline-flex;border-radius:999px;padding:5px 8px;font-size:10px;font-weight:800;white-space:nowrap}.status-badge.active,.status.approved{background:var(--greenbg);color:var(--green)}.status-badge.inactive,.status.neutral{background:#f2f4f7;color:#667085}.role-badge{background:#eef3f9;color:#46566c}.count-badge{background:var(--soft);color:var(--blue)}.status.pending{background:#fff7e6;color:#b54708}.status.rejected{background:var(--redbg);color:var(--red)}.actions-cell{display:flex;align-items:center;gap:5px;white-space:nowrap}.actions-cell form{margin:0}
.panel,.form-card,.application-card,.summary-card{padding:22px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}.section-title h2{margin:0 0 3px;font-size:17px}.section-title p{margin:0;font-size:11px}.department-form{display:grid;grid-template-columns:minmax(250px,1fr) auto;gap:9px;max-width:760px}.add-btn{min-width:125px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px 17px}.form-stack{display:grid;gap:16px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.sticky-actions{position:sticky;bottom:10px;z-index:20;background:rgba(244,247,251,.92);backdrop-filter:blur(10px);padding:9px;border-radius:13px}
.advance-guide{padding:16px 18px;margin-bottom:13px;background:linear-gradient(145deg,#fbfdff,#f6f9ff)}.advance-guide-head strong{display:block;font-size:13px}.advance-guide-head span{display:block;color:var(--muted);font-size:11px;margin-top:3px}.advance-guide-rules{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.advance-guide-rules span{background:#fff;border:1px solid #dce6f4;border-radius:999px;padding:5px 9px;font-size:10px}.advance-status{margin-top:9px;padding-top:9px;border-top:1px dashed #d5deea;display:flex;gap:8px;font-size:11px}.advance-status-label{color:var(--muted)}
.application-layout,.approval-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px;align-items:start}.application-header{padding-bottom:15px;border-bottom:1px solid var(--line);margin-bottom:17px}.application-header h2{margin:0 0 3px;font-size:18px}.application-header p{margin:0;color:var(--muted);font-size:11px}.summary-card{position:sticky;top:125px}.summary-card h3{margin:0 0 12px;font-size:16px}.summary-line{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #edf0f4}.summary-line span{font-size:11px;color:var(--muted)}.summary-line.total{border:0;padding-top:12px}.summary-line.total strong{font-size:23px;color:var(--blue)}.summary-line.request strong{color:#f79009;font-weight:900}.flow-box{margin-top:14px;background:#f7faff;border:1px solid #e0e9f6;border-radius:11px;padding:12px}.flow-box>span{display:block;font-size:10px;color:var(--muted)}.flow-box strong{display:block;margin-top:4px}.flow-box small,.help-text2,.type-note{display:block;color:var(--muted);font-size:10px;margin-top:4px}.no-deduct{margin-top:8px;background:var(--greenbg);color:var(--green);padding:7px 9px;border-radius:8px;font-size:10px}.label-with-action{display:flex;justify-content:space-between;align-items:center;gap:8px}.rules-btn{border:0;background:transparent;color:var(--blue);font-size:10px;font-weight:800;cursor:pointer}.proof-box{background:#fffaeb;border:1px solid #f2dda1;padding:11px;border-radius:10px;display:flex;flex-direction:column;gap:4px}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.detail-grid>div{display:flex;flex-direction:column;gap:3px}.detail-grid span{font-size:10px;color:var(--muted)}.detail-grid .wide{grid-column:1/-1}.approval-steps{display:grid;gap:8px}.approval-step{display:grid;grid-template-columns:27px 1fr;gap:8px;padding:7px;border-radius:8px}.approval-step>span{width:27px;height:27px;border-radius:50%;background:#edf1f6;display:grid;place-items:center;font-size:10px;font-weight:800}.approval-step.current{background:var(--soft)}.approval-step.current>span{background:var(--blue);color:#fff}.approval-step div{display:flex;flex-direction:column}.approval-step small{color:var(--muted);font-size:10px}.decision-card{padding:19px;margin-top:14px}.decision-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}
.login-wrap{min-height:70vh;display:grid;place-items:center}.login-card{width:min(420px,100%);padding:30px}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}.login-brand div{display:flex;flex-direction:column}.login-card h1{margin:0 0 5px}.login-card form{margin-top:18px}.login-card form label:not(:first-child){margin-top:12px}.alert{background:var(--redbg);color:var(--red);border:1px solid #fecaca;padding:10px;border-radius:9px;margin:12px 0}
.modal-backdrop{position:fixed;inset:0;background:rgba(16,24,40,.48);z-index:300;display:grid;place-items:center;padding:16px}.rules-modal{width:min(620px,100%);max-height:88vh;overflow:auto;background:#fff;border-radius:17px}.rules-modal-head,.rules-modal-foot{padding:16px 19px;display:flex;justify-content:space-between;align-items:center}.rules-modal-head{border-bottom:1px solid var(--line)}.rules-modal-body{padding:17px 19px}.rules-modal-foot{border-top:1px solid var(--line)}.modal-close{border:0;background:#f2f4f7;width:33px;height:33px;border-radius:50%}.bereavement-row{display:flex;justify-content:space-between;gap:12px;background:#f8fafc;padding:8px;border-radius:8px}.mobile-nav{display:none}
@media(max-width:900px){.container{padding:24px 15px 90px}.desktop-nav{display:none}.mobile-nav{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;position:fixed;left:0;right:0;bottom:0;z-index:200;background:rgba(255,255,255,.97);border-top:1px solid var(--line);padding:5px 6px calc(5px + env(safe-area-inset-bottom));box-shadow:0 -7px 24px rgba(16,24,40,.08);backdrop-filter:blur(12px)}.mobile-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:49px;color:#667085;border-radius:9px}.mobile-nav b{font-size:18px;line-height:1}.mobile-nav small{font-size:9px;margin-top:4px;font-weight:800}.topbar{height:59px}.topbar-inner{padding:0 14px}.brand-text small,.user-meta{display:none}.brand-mark{width:35px;height:35px}.logout-btn{font-size:10px}.page-head,.dashboard-head{align-items:flex-start;flex-direction:column}.page-head h1,.dashboard-head h1{font-size:25px}.page-actions,.hero-action{width:100%}.page-actions>*{flex:1}.balance-card{grid-template-columns:1fr}.balance-main{padding:23px}.balance-main>strong{font-size:44px}.balance-kpis{grid-template-columns:repeat(3,1fr)}.balance-kpis div{padding:15px 12px;border-left:0;border-top:1px solid rgba(255,255,255,.08)}.balance-kpis strong{font-size:22px}.quick-grid,.admin-grid{grid-template-columns:1fr}.application-layout,.approval-layout{grid-template-columns:1fr}.summary-card{position:static;order:-1}.form-grid,.two-col,.decision-grid{grid-template-columns:1fr}.department-form{grid-template-columns:1fr}.add-btn{width:100%}.sticky-actions{bottom:66px}.employee-table{min-width:900px}.detail-grid{grid-template-columns:1fr}}
@media(max-width:520px){body{font-size:13px}.container{padding:19px 11px 86px}.card{border-radius:14px}.page-head h1,.dashboard-head h1{font-size:23px}.balance-main{padding:19px}.balance-main>strong{font-size:39px}.balance-kpis span{font-size:9px}.balance-kpis strong{font-size:20px}.balance-kpis small{display:none}.panel,.form-card,.application-card,.summary-card{padding:17px}.quick-card{padding:14px 15px;grid-template-columns:39px 1fr auto;gap:10px}.quick-card>b{width:39px;height:39px}.feature-card{padding:16px;grid-template-columns:44px 1fr auto;gap:10px;min-height:100px}.feature-card>b{width:44px;height:44px}.form-actions{display:grid;grid-template-columns:1fr 1fr}.form-actions>*{width:100%}.login-card{padding:23px 19px}}

/* v0.6.0 calendar + analytics */
.year-form{margin:0}.year-form select{min-width:108px;padding:10px 34px 10px 12px;font-weight:800}
.calendar-top{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}.calendar-top h1{font-size:31px;margin:4px 0 6px;letter-spacing:-1.1px}.calendar-top p{margin:0}
.calendar-balance{background:linear-gradient(145deg,#0d2442,#143d69);color:#fff;border-radius:16px;padding:14px 17px;min-width:210px;display:grid;grid-template-columns:1fr auto auto;align-items:baseline;gap:5px 7px;box-shadow:var(--shadow)}.calendar-balance span{font-size:11px;color:#b9c8db}.calendar-balance strong{font-size:25px}.calendar-balance small{font-size:10px;color:#b9c8db}.calendar-balance a{grid-column:1/-1;font-size:10px;color:#beddff;font-weight:800}
.calendar-toolbar{display:grid;grid-template-columns:42px 1fr 42px auto;align-items:center;padding:9px;margin-bottom:12px}.cal-nav{height:38px;border-radius:9px;background:#f6f8fb;display:grid;place-items:center;font-size:24px;color:#344054}.cal-title{display:flex;align-items:center;justify-content:center;gap:15px}.cal-title strong{font-size:18px}.year-shift{color:#98a2b3;font-weight:900}.today-btn{justify-self:end;border:1px solid #d5dde8;border-radius:8px;padding:7px 10px;font-size:11px;font-weight:800;color:#475467}
.calendar-shell{overflow:hidden}.weekday-row{display:grid;grid-template-columns:repeat(7,1fr);background:#f8fafc;border-bottom:1px solid var(--line)}.weekday-row span{text-align:center;padding:9px 4px;font-size:11px;font-weight:900;color:#667085}.weekday-row .sun{color:#d92d20}.weekday-row .sat{color:#1769e0}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-day{position:relative;appearance:none;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;min-height:132px;padding:8px;text-align:left;color:var(--text);cursor:pointer;overflow:hidden}.calendar-day:nth-child(7n){border-right:0}.calendar-day:hover{background:#fbfdff}.calendar-day.other-month{background:#fafbfc;color:#b6bdc8}.calendar-day.today{box-shadow:inset 0 0 0 2px var(--blue);z-index:1}.calendar-day.saturday .day-num{color:#1769e0}.calendar-day.sunday .day-num,.calendar-day.sunday .day-head small{color:#d92d20}.day-head{display:flex;align-items:center;gap:5px;min-height:23px}.day-num{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:12px}.calendar-day.today .day-num{background:var(--blue);color:#fff}.day-head small{font-size:9px;color:#d92d20;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.day-events{display:grid;gap:3px;margin-top:4px}.auto-event,.manual-event{display:block;border-radius:6px;padding:3px 5px;font-size:9px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.auto-event{background:#eaf2ff;color:#184f9f}.auto-event.half{background:#f0ecff;color:#6941c6}.manual-event{background:#f2f4f7;color:#475467;border-left:2px solid #98a2b3}.day-add{position:absolute;right:5px;bottom:3px;color:#c1c8d2;font-size:14px;font-weight:700;opacity:0}.calendar-day:hover .day-add{opacity:1}
.calendar-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 4px;color:#667085;font-size:10px}.calendar-legend span{display:flex;align-items:center;gap:5px}.calendar-legend a{margin-left:auto;color:var(--blue);font-weight:800}.legend-dot{width:9px;height:9px;border-radius:3px}.legend-dot.auto{background:#b7d1fb}.legend-dot.half{background:#c9bbf9}.legend-dot.manual{background:#c8ced7}
.day-modal{width:min(560px,100%);max-height:88vh;overflow:auto;background:#fff;border-radius:18px;box-shadow:0 24px 80px rgba(0,0,0,.22)}.day-modal-head{display:flex;align-items:center;justify-content:space-between;padding:17px 19px;border-bottom:1px solid var(--line)}.day-modal-head h2{margin:2px 0 0;font-size:20px}.day-modal-body{padding:17px 19px}.modal-section-title{font-size:11px;font-weight:900;color:#667085;margin:0 0 7px}.modal-event-list,.manual-edit-list{display:grid;gap:6px;margin-bottom:17px}.modal-event{display:flex;justify-content:space-between;gap:10px;border-radius:9px;padding:9px 11px}.modal-event.auto{background:#eef5ff;color:#184f9f}.manual-edit-item{position:relative;background:#f8fafc;border:1px solid var(--line);border-radius:10px;padding:8px}.manual-edit-item>form:first-child{display:grid;grid-template-columns:1fr auto;gap:6px;padding-right:32px}.manual-edit-item input{padding:8px 9px}.manual-edit-item>form:nth-child(2){position:absolute;right:7px;top:9px}.icon-delete{width:26px;height:26px;border:0;border-radius:7px;background:#fff3f2;color:#b42318;font-size:17px;cursor:pointer}.manual-edit-item>small{display:block;margin-top:5px;color:#98a2b3;font-size:9px}.quick-add-form{border-top:1px solid var(--line);padding-top:15px}.quick-add-row{display:grid;grid-template-columns:1fr auto;gap:7px}.quick-add-form>small{display:block;color:#98a2b3;font-size:9px;margin-top:5px}
.insight-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:14px}.chart-card,.recent-card{overflow:hidden}.month-chart{padding:2px 20px 20px;display:grid;gap:9px}.month-bar-row{display:grid;grid-template-columns:34px 1fr 36px;align-items:center;gap:9px}.month-bar-row>span{font-size:10px;color:#667085}.month-bar-row>strong{text-align:right;font-size:11px}.bar-track{height:8px;background:#eef1f5;border-radius:99px;overflow:hidden}.bar-track i{display:block;height:100%;background:linear-gradient(90deg,#1769e0,#68a8fb);border-radius:99px}.usage-list{max-height:520px;overflow:auto}.usage-item{display:grid;grid-template-columns:54px 1fr auto;gap:10px;align-items:center;padding:11px 16px;border-top:1px solid var(--line)}.usage-item:hover{background:#fbfdff}.usage-date{display:flex;flex-direction:column}.usage-date strong{font-size:15px}.usage-date small{font-size:9px;color:#98a2b3}.usage-info{display:flex;flex-direction:column}.usage-info strong{font-size:12px}.usage-info span{font-size:10px;color:#667085;margin-top:2px}.usage-item>b{font-size:20px;color:#98a2b3}.empty-panel{padding:28px;text-align:center;color:#98a2b3}
.admin-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-bottom:14px}.admin-kpis.four{grid-template-columns:repeat(4,1fr)}.admin-kpi{background:#fff;border:1px solid var(--line);border-radius:15px;padding:16px 18px;box-shadow:var(--shadow);display:flex;flex-direction:column}.admin-kpi span{font-size:10px;color:#667085;font-weight:800}.admin-kpi strong{font-size:27px;line-height:1.2;margin:5px 0 2px}.admin-kpi small{font-size:9px;color:#98a2b3}.admin-kpi.primary-kpi{background:linear-gradient(145deg,#0d2442,#143d69);color:#fff}.admin-kpi.primary-kpi span,.admin-kpi.primary-kpi small{color:#b8c8dc}.feature-card.featured{border-color:#bfd4f2;background:linear-gradient(145deg,#fff,#f7faff)}
.analytics-tabs{position:sticky;top:112px;z-index:50;display:flex;gap:4px;background:rgba(244,247,251,.94);backdrop-filter:blur(9px);padding:7px 0;margin-bottom:13px}.analytics-tabs a{background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 12px;font-size:10px;font-weight:900;color:#475467}.analytics-section{scroll-margin-top:165px;margin-bottom:30px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:0 2px 10px}.section-heading>div{display:flex;align-items:center;gap:8px}.section-heading span{width:25px;height:25px;border-radius:8px;background:var(--soft);color:var(--blue);display:grid;place-items:center;font-size:9px;font-weight:900}.section-heading h2{margin:0;font-size:19px}.section-heading small{color:#98a2b3}.table-sub{display:block;color:#98a2b3;font-size:9px}.dept-chart{padding:18px 20px;display:grid;gap:12px}.dept-row{display:grid;grid-template-columns:minmax(145px,220px) 1fr 120px;align-items:center;gap:12px}.dept-label,.dept-values{display:flex;flex-direction:column}.dept-label small,.dept-values small{font-size:9px;color:#98a2b3}.dept-values{text-align:right}.bar-track.large{height:10px}.employee-picker{padding:10px;margin-bottom:11px}.personal-summary{display:grid;grid-template-columns:1.5fr repeat(2,1fr);gap:10px;margin-bottom:11px}.personal-summary>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:flex;align-items:baseline;gap:6px}.personal-summary>div:first-child{background:linear-gradient(145deg,#0d2442,#143d69);color:#fff}.personal-summary span{font-size:10px;color:#667085;margin-right:auto}.personal-summary>div:first-child span,.personal-summary>div:first-child small{color:#b8c8dc}.personal-summary strong{font-size:22px}.personal-summary small{font-size:9px;color:#98a2b3}.audit-detail{max-width:720px;white-space:normal}
@media(max-width:900px){.calendar-top{align-items:flex-start;flex-direction:column}.calendar-balance{width:100%}.calendar-shell{overflow-x:auto}.weekday-row,.calendar-grid{min-width:700px}.calendar-day{min-height:116px}.insight-grid{grid-template-columns:1fr}.admin-kpis,.admin-kpis.four{grid-template-columns:repeat(2,1fr)}.dept-row{grid-template-columns:130px 1fr 90px}.analytics-tabs{top:59px}.personal-summary{grid-template-columns:1fr 1fr}.personal-summary>div:first-child{grid-column:1/-1}}
@media(max-width:520px){.calendar-top h1{font-size:24px}.calendar-toolbar{grid-template-columns:36px 1fr 36px}.today-btn{display:none}.cal-title strong{font-size:16px}.weekday-row,.calendar-grid{min-width:665px}.calendar-day{min-height:105px;padding:6px}.auto-event,.manual-event{font-size:8px}.calendar-legend a{width:100%;margin-left:0}.admin-kpis,.admin-kpis.four{grid-template-columns:1fr 1fr}.admin-kpi{padding:13px}.admin-kpi strong{font-size:23px}.dept-row{grid-template-columns:100px 1fr 70px;gap:7px}.dept-label strong{font-size:10px}.personal-summary{grid-template-columns:1fr 1fr}}

/* v0.6.2 split status/management + department drilldown */
.dept-row{color:inherit;text-decoration:none;border-radius:10px;padding:7px 8px;margin:-7px -8px}
.dept-row:hover,.dept-row.selected{background:#f5f9ff}
.dept-member-card{margin-top:12px;overflow:hidden}
.dept-member-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;padding:0 18px 18px}
.member-status-card{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff;display:flex;flex-direction:column;gap:9px;transition:.15s ease}
.member-status-card:hover{border-color:#b9d0ef;box-shadow:0 8px 22px rgba(16,24,40,.07);transform:translateY(-1px)}
.member-status-card>div:first-child{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.member-status-card small{font-size:9px;color:#98a2b3}
.member-numbers{display:grid!important;grid-template-columns:repeat(3,1fr);gap:4px}
.member-numbers span{font-size:9px;color:#667085;display:flex;flex-direction:column}
.member-numbers b{font-size:13px;color:#101828;margin-top:2px}

.management-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:14px;align-items:start}
.employee-select-card{overflow:hidden;position:sticky;top:126px}
.manage-employee-list{max-height:calc(100vh - 220px);overflow:auto}
.manage-employee-list a{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-top:1px solid var(--line)}
.manage-employee-list a:hover,.manage-employee-list a.selected{background:#f5f9ff}
.manage-employee-list a>div{display:flex;flex-direction:column}.manage-employee-list strong{font-size:12px}.manage-employee-list small{font-size:9px;color:#98a2b3;margin-top:2px}.manage-employee-list>a>span{font-size:11px;font-weight:900;color:var(--blue)}
.management-main{display:grid;gap:12px}
.manage-summary{padding:20px}.manage-person{display:flex;align-items:center;justify-content:space-between;gap:15px}.manage-person h2{margin:2px 0 3px;font-size:22px}.manage-person p{margin:0;color:#667085;font-size:11px}
.manage-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:17px}.manage-kpis>div{background:#f8fafc;border-radius:11px;padding:12px}.manage-kpis span{display:block;font-size:9px;color:#667085}.manage-kpis strong{display:block;font-size:22px;margin-top:3px}.manage-kpis>div:last-child strong{color:var(--blue)}
.manage-form-card{overflow:hidden}.simple-admin-form{display:grid;grid-template-columns:minmax(180px,280px) auto;align-items:end;gap:9px;padding:0 18px 18px}.adjust-form{display:grid;grid-template-columns:150px 1fr auto;align-items:end;gap:9px;padding:0 18px 18px}.positive{color:#067647!important;font-weight:800}.negative{color:#b42318!important;font-weight:800}
@media(max-width:1000px){.dept-member-grid{grid-template-columns:repeat(2,1fr)}.management-layout{grid-template-columns:240px minmax(0,1fr)}}
@media(max-width:760px){.dept-member-grid{grid-template-columns:1fr}.management-layout{grid-template-columns:1fr}.employee-select-card{position:static}.manage-employee-list{max-height:320px}.simple-admin-form,.adjust-form{grid-template-columns:1fr}.manage-person{align-items:flex-start;flex-direction:column}.manage-person .secondarybtn{width:100%}}

/* v0.6.4 desktop sidebar + larger calendar typography */
@media(min-width:1101px){
  .nav.desktop-nav{display:none!important}
  .sidebar.desktop-nav{
    display:block;
    position:fixed;
    left:0;
    top:64px;
    bottom:0;
    width:186px;
    background:#fff;
    border-right:1px solid var(--line);
    z-index:80;
    overflow-y:auto;
  }
  .sidebar-nav{
    display:flex;
    flex-direction:column;
    gap:4px;
    padding:18px 12px 22px;
  }
  .sidebar-nav a{
    display:flex;
    align-items:center;
    min-height:42px;
    padding:10px 12px;
    border-radius:10px;
    color:#475467;
    font-size:13px;
    font-weight:800;
    white-space:nowrap;
  }
  .sidebar-nav a:hover{
    background:var(--soft);
    color:var(--blue);
  }
  .container{
    max-width:none;
    margin-left:186px;
    padding:26px 24px 70px;
  }

  /* Calendar gets more visible height after removing the top menu */
  .calendar-top{margin-bottom:12px}
  .calendar-top h1{font-size:30px}
  .calendar-toolbar{margin-bottom:9px}
  .calendar-day{min-height:126px;padding:9px}
  .day-num{font-size:14px;width:27px;height:27px}
  .day-head small{font-size:10px}
  .auto-event,.manual-event{
    font-size:11px;
    line-height:1.42;
    padding:4px 6px;
    border-radius:6px;
  }
  .auto-event b{font-size:11px}
  .weekday-row span{font-size:12px;padding:8px 4px}
  .calendar-legend{font-size:11px}
}

@media(min-width:1450px){
  .sidebar.desktop-nav{width:194px}
  .container{margin-left:194px;padding-left:28px;padding-right:28px}
  .calendar-day{min-height:132px}
  .auto-event,.manual-event{font-size:11.5px}
}

/* Tablet keeps horizontal navigation; mobile keeps bottom navigation */
@media(min-width:901px) and (max-width:1100px){
  .sidebar.desktop-nav{
    display:block;
    background:#fff;
    border-bottom:1px solid var(--line);
    position:sticky;
    top:64px;
    z-index:90;
  }
  .sidebar-nav{
    max-width:1240px;
    margin:0 auto;
    padding:0 18px;
    display:flex;
    height:46px;
    align-items:center;
    gap:3px;
    overflow-x:auto;
    scrollbar-width:none;
  }
  .sidebar-nav::-webkit-scrollbar{display:none}
  .sidebar-nav a{
    padding:8px 10px;
    border-radius:8px;
    color:#475467;
    font-weight:700;
    white-space:nowrap;
  }
  .sidebar-nav a:hover{background:var(--soft);color:var(--blue)}
}

/* Slightly larger calendar text on mobile too, without crowding */
@media(max-width:900px){
  .auto-event,.manual-event{font-size:9px;line-height:1.38}
  .day-num{font-size:12px}
}

/* v0.6.5 fixed calendar geometry + sidebar profile */

/* Desktop header is branding only. User/logout live in the sidebar. */
@media(min-width:1101px){
  .topbar-inner{justify-content:flex-start}
  .sidebar.desktop-nav{
    display:flex;
    flex-direction:column;
  }
  .sidebar-nav{
    flex:1 1 auto;
  }
  .sidebar-user{
    flex:0 0 auto;
    margin:8px 10px 12px;
    padding:12px;
    border-top:1px solid var(--line);
  }
  .sidebar-profile{
    display:flex;
    align-items:center;
    gap:9px;
    margin-bottom:9px;
  }
  .sidebar-profile>div{
    min-width:0;
    display:flex;
    flex-direction:column;
  }
  .sidebar-profile strong{
    font-size:12px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .sidebar-profile small{
    color:#98a2b3;
    font-size:10px;
    margin-top:2px;
  }
  .sidebar-user .user-avatar{
    flex:0 0 34px;
    color:#fff;
    background:#17426f;
  }
  .sidebar-logout{
    width:100%;
    border:1px solid #d8e0ea;
    background:#f8fafc;
    color:#475467;
    border-radius:9px;
    min-height:34px;
    font-size:11px;
    font-weight:800;
    cursor:pointer;
  }
  .sidebar-logout:hover{
    background:#f1f5f9;
    color:#101828;
  }

  /* Six fixed week rows: no monthly jumping. */
  .calendar-grid{
    grid-template-rows:repeat(6, 118px);
  }
  .calendar-day{
    min-height:0!important;
    height:118px;
    padding:7px 8px 6px;
    display:flex;
    flex-direction:column;
  }
  .day-head{
    flex:0 0 26px;
    min-height:26px;
  }
  .day-events{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    gap:3px;
    padding-right:2px;
    scrollbar-width:thin;
    scrollbar-color:#cbd5e1 transparent;
  }
  .day-events::-webkit-scrollbar{width:5px}
  .day-events::-webkit-scrollbar-thumb{
    background:#cbd5e1;
    border-radius:999px;
  }
  .day-events::-webkit-scrollbar-track{background:transparent}

  /* About five items are visible without scrolling. */
  .auto-event,.manual-event{
    flex:0 0 auto;
    min-height:15px;
    padding:2px 5px;
    font-size:11px!important;
    line-height:1.35;
  }
  .auto-event b{
    font-size:inherit!important;
    line-height:inherit;
    font-weight:800;
  }

  /* Fixed total calendar body height including weekday header. */
  .calendar-shell{
    height:744px;
  }
  .weekday-row{
    height:36px;
  }
  .weekday-row span{
    display:grid;
    place-items:center;
    padding:0;
  }
}

@media(min-width:1450px){
  .calendar-grid{grid-template-rows:repeat(6, 120px)}
  .calendar-day{height:120px}
  .calendar-shell{height:756px}
  .auto-event,.manual-event{font-size:11.5px!important}
}

/* On tablet/mobile keep equal cell heights too; the calendar remains horizontally scrollable. */
@media(max-width:1100px){
  .calendar-grid{grid-auto-rows:108px}
  .calendar-day{
    min-height:108px!important;
    height:108px;
    display:flex;
    flex-direction:column;
  }
  .day-head{flex:0 0 24px}
  .day-events{
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    scrollbar-width:thin;
  }
  .auto-event,.manual-event{
    font-size:9px!important;
    line-height:1.3;
  }
  .auto-event b{font-size:inherit!important;line-height:inherit}
}

/* Mobile still needs a logout path because the desktop sidebar is hidden. */
@media(max-width:900px){
  .topbar-inner{justify-content:flex-start}
}

@media(max-width:900px){
  .mobile-nav{
    grid-auto-columns:1fr;
  }
  .mobile-logout-form{margin:0}
  .mobile-logout-form button{
    width:100%;
    min-height:49px;
    border:0;
    background:transparent;
    color:#667085;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    border-radius:9px;
    cursor:pointer;
  }
  .mobile-logout-form b{font-size:17px;line-height:1}
  .mobile-logout-form small{font-size:9px;margin-top:4px;font-weight:800}
}

/* v0.6.6 full-height desktop sidebar: logo + menu + user + logout all left */
@media(min-width:1101px){
  .mobile-only-topbar{display:none!important}

  .sidebar.desktop-nav{
    top:0!important;
    width:204px;
    height:100vh;
    bottom:0;
    background:#0b1f3a;
    border-right:0;
    box-shadow:8px 0 28px rgba(16,24,40,.08);
    color:#fff;
    overflow:hidden;
  }

  .sidebar-brand{
    height:76px;
    display:flex;
    align-items:center;
    gap:11px;
    padding:0 16px;
    border-bottom:1px solid rgba(255,255,255,.09);
    color:#fff;
    flex:0 0 auto;
  }
  .sidebar-brand-mark{
    width:38px;
    height:38px;
    border-radius:10px;
    display:grid;
    place-items:center;
    background:#fff;
    color:#0b1f3a;
    font-weight:900;
    letter-spacing:-1px;
    flex:0 0 38px;
  }
  .sidebar-brand-text{
    min-width:0;
    display:flex;
    flex-direction:column;
    line-height:1.15;
  }
  .sidebar-brand-text strong{
    font-size:12px;
    white-space:nowrap;
  }
  .sidebar-brand-text small{
    margin-top:4px;
    font-size:9px;
    color:#9fb2c9;
  }

  .sidebar-nav{
    padding:14px 10px;
    gap:3px;
    overflow-y:auto;
  }
  .sidebar-nav a{
    color:#c5d1df;
    min-height:40px;
    padding:9px 11px;
    border-radius:9px;
    font-size:12px;
  }
  .sidebar-nav a:hover{
    background:rgba(255,255,255,.08);
    color:#fff;
  }

  .sidebar-user{
    margin:0;
    padding:12px 12px 14px;
    border-top:1px solid rgba(255,255,255,.09);
    background:rgba(0,0,0,.06);
  }
  .sidebar-profile{margin-bottom:9px}
  .sidebar-profile strong{color:#fff}
  .sidebar-profile small{color:#9fb2c9}
  .sidebar-user .user-avatar{
    background:#174a7f;
    color:#fff;
  }
  .sidebar-logout{
    border-color:rgba(255,255,255,.13);
    background:rgba(255,255,255,.06);
    color:#d7e0eb;
  }
  .sidebar-logout:hover{
    background:rgba(255,255,255,.10);
    color:#fff;
  }

  .container{
    margin-left:204px!important;
    padding-top:22px!important;
  }

  .calendar-top{
    margin-top:0;
  }
}

@media(min-width:1450px){
  .sidebar.desktop-nav{width:212px}
  .container{margin-left:212px!important}
}

/* Tablet retains compact horizontal navigation because a permanent left rail
   would consume too much width. Mobile stays bottom-nav first. */
@media(min-width:901px) and (max-width:1100px){
  .mobile-only-topbar{display:block}
}
@media(max-width:900px){
  .mobile-only-topbar{display:block}
}

/* v0.6.7 calendar density / one-month view */

/* Event labels never stretch just because there are only 1-2 items. */
.day-events{
  display:flex!important;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  gap:3px;
  overflow:visible!important;
  min-height:0;
  padding-right:0!important;
}

.auto-event,.manual-event{
  display:block;
  flex:0 0 auto!important;
  height:22px!important;
  min-height:22px!important;
  max-height:22px!important;
  line-height:18px!important;
  padding:2px 6px!important;
  border-radius:6px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  font-weight:600;
}

/* Name and leave type use exactly the same font size. */
.auto-event b{
  font-size:inherit!important;
  line-height:inherit!important;
  font-weight:800;
}

/* Clearer contrast than blue text on blue background. */
.auto-event{
  background:#e8f0fb!important;
  color:#24364b!important;
  border-left:3px solid #4b82c3;
}
.auto-event.half{
  background:#f1ebfb!important;
  color:#49375e!important;
  border-left:3px solid #8b6bb4;
}
.manual-event{
  background:#eef1f4!important;
  color:#344054!important;
  border-left:3px solid #98a2b3;
}

/* No internal wheel/scrollbar. Show every person.
   Each week has a stable minimum height, then expands only if a day has many events. */
.calendar-grid{
  grid-template-rows:none!important;
  grid-auto-rows:minmax(118px, auto)!important;
}
.calendar-day{
  height:auto!important;
  min-height:118px!important;
  overflow:visible!important;
}
.calendar-shell{
  height:auto!important;
  overflow:hidden;
}

/* Remove scrollbar styling inherited from prior versions. */
.day-events::-webkit-scrollbar{display:none!important}
.day-events{scrollbar-width:none!important}

@media(min-width:1450px){
  .calendar-grid{grid-auto-rows:minmax(120px, auto)!important}
  .calendar-day{min-height:120px!important}
  .auto-event,.manual-event{
    height:22px!important;
    min-height:22px!important;
    max-height:22px!important;
  }
}

@media(max-width:1100px){
  .calendar-grid{grid-auto-rows:minmax(108px, auto)!important}
  .calendar-day{height:auto!important;min-height:108px!important}
  .day-events{overflow:visible!important}
  .auto-event,.manual-event{
    height:20px!important;
    min-height:20px!important;
    max-height:20px!important;
    line-height:16px!important;
  }
}

/* v0.6.8 calendar text consistency */

/* Holiday labels use the same readable size as leave/event labels. */
.day-head small{
  font-size:11px!important;
  line-height:1.35!important;
  font-weight:700;
}

/* Remove the left "bracket/bar" appearance from leave chips. */
.auto-event,
.auto-event.half,
.manual-event{
  border-left:0!important;
}

/* Keep the chip shape clean and flat. */
.auto-event,
.manual-event{
  border-radius:6px!important;
  box-shadow:none!important;
}

/* Employee name and leave label remain exactly the same text size. */
.auto-event,
.auto-event b,
.manual-event{
  font-size:11px!important;
}

/* Mobile/tablet scale together. */
@media(max-width:1100px){
  .day-head small{
    font-size:9px!important;
  }
  .auto-event,
  .auto-event b,
  .manual-event{
    font-size:9px!important;
  }
}

/* v0.6.9 calendar action button */
.calendar-balance{
  grid-template-columns:1fr auto auto;
  align-items:center;
}
.calendar-balance .calendar-apply-btn{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:34px;
  margin-top:5px;
  padding:7px 12px;
  border-radius:9px;
  background:#fff;
  color:#163b66;
  font-size:11px;
  font-weight:900;
  box-shadow:0 1px 2px rgba(16,24,40,.08);
  transition:.15s ease;
}
.calendar-balance .calendar-apply-btn:hover{
  background:#edf5ff;
  color:#0f5dce;
  transform:translateY(-1px);
}
@media(max-width:900px){
  .calendar-balance .calendar-apply-btn{
    min-height:38px;
    font-size:12px;
  }
}

/* v0.7.0 deputy/default + split leave usage */
.usage-split-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 14px}
.usage-split-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow)}
.usage-split-card>span{display:block;font-size:10px;color:#667085;font-weight:800}
.usage-split-card>strong{font-size:24px;line-height:1.2;margin-top:4px;display:inline-block}
.usage-split-card>small{font-size:10px;color:#98a2b3;margin-left:4px}
.usage-split-card>em{display:block;font-style:normal;font-size:9px;color:#6941c6;margin-top:4px}
.usage-split-card.remaining-card{background:#ecfdf3;border-color:#b7ebcd}
.usage-split-card.remaining-card>span{color:#067647}
.usage-split-card.remaining-card>strong{color:#067647}

.remaining-highlight{background:#ecfdf3!important;color:#067647!important;font-weight:900}
.remaining-mini b{color:#067647!important}
.remaining-kpi{background:#ecfdf3!important}
.remaining-kpi span,.remaining-kpi strong{color:#067647!important}

.simple-admin-form{grid-template-columns:minmax(180px,260px) minmax(180px,260px) auto!important}

@media(max-width:900px){
  .usage-split-cards{grid-template-columns:1fr 1fr}
  .usage-split-card.remaining-card{grid-column:1/-1}
  .simple-admin-form{grid-template-columns:1fr!important}
}

/* v0.7.2 personal leave summary cleanup */
.balance-kpis.balance-kpis-four{
  grid-template-columns:repeat(4,1fr);
}
.balance-kpis.balance-kpis-four>div{
  min-width:0;
  padding-left:15px;
  padding-right:15px;
}
.balance-kpis.balance-kpis-four span{
  white-space:nowrap;
}
.balance-kpis.balance-kpis-four strong{
  font-size:25px;
}
.balance-kpi-remaining{
  background:rgba(255,255,255,.06);
}
.balance-kpi-remaining strong{
  color:#b9f6cf;
}

/* Old lower summary cards are no longer used on My Leave. */
.usage-split-cards{display:none!important}

@media(max-width:1050px){
  .balance-card{
    grid-template-columns:1fr;
  }
  .balance-kpis.balance-kpis-four{
    grid-template-columns:repeat(4,1fr);
  }
  .balance-kpis.balance-kpis-four>div{
    border-left:1px solid rgba(255,255,255,.09);
    border-top:0;
  }
}

@media(max-width:620px){
  .balance-kpis.balance-kpis-four{
    grid-template-columns:repeat(2,1fr);
  }
  .balance-kpis.balance-kpis-four>div{
    border-top:1px solid rgba(255,255,255,.08);
  }
  .balance-kpis.balance-kpis-four strong{
    font-size:22px;
  }
}

/* v0.7.3 actual approval flow */
.approval-flow-box{
  margin-top:14px;
}
.approval-flow-preview{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  margin-top:8px;
}
.flow-person{
  position:relative;
  display:inline-flex;
  flex-direction:column;
  min-width:92px;
  padding:8px 12px;
  border:1px solid #dbe4ef;
  border-radius:10px;
  background:#fff;
}
.flow-person:not(:last-child)::after{
  content:"→";
  position:absolute;
  right:-16px;
  top:50%;
  transform:translateY(-50%);
  color:#98a2b3;
  font-weight:900;
}
.flow-person strong{
  font-size:12px;
  color:#172b4d;
}
.flow-person small{
  margin-top:2px;
  font-size:9px;
  color:#667085;
}
.flow-person.applicant{
  background:#f8fafc;
}
.flow-person.deputy{
  background:#fff8e7;
  border-color:#f3d79b;
}
.flow-person.approver{
  background:#eef5ff;
  border-color:#cfe0f7;
}
.flow-person[hidden]{
  display:none!important;
}
@media(max-width:700px){
  .approval-flow-preview{
    flex-direction:column;
    align-items:stretch;
  }
  .flow-person{
    width:100%;
  }
  .flow-person:not(:last-child)::after{
    content:"↓";
    right:auto;
    left:50%;
    top:auto;
    bottom:-18px;
    transform:translateX(-50%);
  }
}

/* v0.7.4 actual approval chain in summary pane */
.approval-flow-box{margin-top:14px;padding:12px!important}
.approval-flow-preview{display:flex;flex-direction:column;align-items:stretch;gap:16px;margin-top:10px}
.flow-person{position:relative;display:grid;grid-template-columns:1fr auto;align-items:center;min-width:0;padding:9px 11px;border:1px solid #dbe4ef;border-radius:9px;background:#fff}
.flow-person strong{font-size:12px;color:#172b4d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.flow-person small{margin-left:8px;font-size:10px;color:#667085;white-space:nowrap}
.flow-person:not(:last-child)::after{content:"↓";position:absolute;left:50%;bottom:-17px;transform:translateX(-50%);color:#98a2b3;font-weight:900}
.flow-person.applicant{background:#f8fafc}
.flow-person.deputy{background:#fff8e7;border-color:#f0d79f}
.flow-person.approver{background:#eef5ff;border-color:#cfe0f7}
.flow-person[hidden]{display:none!important}
.flow-help{display:block;margin-top:10px!important;line-height:1.45}

/* v0.7.7 leave date auto calculation */
.date-validation-message{
  margin-top:-4px;
  padding:8px 10px;
  border-radius:8px;
  background:#fff4ed;
  color:#b54708;
  font-size:10px;
  font-weight:700;
}
#days[readonly]{
  background:#f8fafc;
  color:#344054;
  cursor:default;
}

/* v0.8.0 local leave date picker */
.date-picker-field{position:relative}
.date-picker-field .custom-date-input{padding-right:44px;cursor:pointer;background:#fff}
.date-picker-trigger{
  position:absolute;right:7px;top:50%;transform:translateY(-50%);
  width:32px;height:32px;border:0;border-radius:8px;
  background:transparent;color:#475467;font-size:16px;cursor:pointer
}
.date-picker-trigger:hover{background:#f2f4f7}

.leave-date-picker{
  position:absolute;z-index:1200;width:318px;padding:12px;
  background:#fff;border:1px solid #d7e0ea;border-radius:14px;
  box-shadow:0 18px 48px rgba(16,24,40,.18)
}
.leave-date-picker-head{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;margin-bottom:8px}
.leave-date-picker-head strong{text-align:center;font-size:14px}
.leave-date-picker-head button{height:32px;border:0;border-radius:8px;background:#f8fafc;color:#344054;font-size:20px;cursor:pointer}
.leave-date-picker-weekdays,.leave-date-picker-days{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.leave-date-picker-weekdays span{text-align:center;font-size:10px;font-weight:800;color:#667085;padding:4px 0}
.leave-date-picker-weekdays .sun{color:#d92d20}.leave-date-picker-weekdays .sat{color:#1769e0}
.date-picker-blank{height:34px}
.date-picker-day{
  height:34px;border:0;border-radius:8px;background:#fff;color:#344054;
  font-size:11px;font-weight:700;cursor:pointer
}
.date-picker-day:hover{background:#edf4ff}
.date-picker-day.sun{color:#d92d20}.date-picker-day.sat{color:#1769e0}
.date-picker-day.today{box-shadow:inset 0 0 0 1px #7ca8e7}
.date-picker-day.selected{background:#1769e0;color:#fff}
.date-picker-day.weekend-disabled{
  background:#f2f4f7!important;color:#c2c8d0!important;
  cursor:not-allowed;text-decoration:line-through
}
.leave-date-picker-hint{
  margin-top:9px;padding-top:8px;border-top:1px solid #eef1f5;
  color:#b54708;font-size:9px;font-weight:700
}
@media(max-width:520px){
  .leave-date-picker{width:min(318px,calc(100vw - 24px));left:12px!important}
}

/* v0.8.1 range + mixed annual/half-day */
.date-picker-day.in-range:not(.weekend-disabled){
  background:#dbeafe;
  color:#174ea6;
  border-radius:0;
}
.date-picker-day.range-start:not(.weekend-disabled){
  border-radius:8px 0 0 8px;
}
.date-picker-day.range-end:not(.weekend-disabled){
  border-radius:0 8px 8px 0;
}
.date-picker-day.range-start.range-end{
  border-radius:8px!important;
}
.date-picker-day.selected{
  background:#1769e0!important;
  color:#fff!important;
  border-radius:8px!important;
}

.partial-day-box{
  margin-top:10px;
  padding:12px 13px;
  border:1px solid #dbe4ef;
  border-radius:11px;
  background:#f8fafc;
}
.partial-day-toggle{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0!important;
  cursor:pointer;
}
.partial-day-toggle input{
  width:16px;
  height:16px;
  margin:0;
}
.partial-day-fields{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
  margin-top:10px;
}
.partial-day-fields label{
  font-size:10px;
}
.partial-day-fields select{
  padding:10px 11px;
}

.compassionate-common-note{
  margin:0 18px 14px;
  padding:10px 12px;
  border-radius:9px;
  background:#eef5ff;
  color:#244a76;
  font-size:11px;
  font-weight:800;
}
.rule-days,
.bereavement-row strong{
  font-size:12px!important;
  line-height:1.3!important;
  font-weight:800!important;
}
@media(max-width:620px){
  .partial-day-fields{grid-template-columns:1fr}
}

/* v0.8.2 compassionate layout + continuous mixed leave */
.partial-day-fields.one-col{
  grid-template-columns:1fr;
}

.compassionate-card{
  border:1px solid #e1e7ef;
  border-radius:12px;
  overflow:hidden;
  background:#fff;
}
.compassionate-card + .compassionate-card{
  margin-top:12px;
}
.compassionate-card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  background:#f8fafc;
  border-bottom:1px solid #e8edf3;
}
.compassionate-card-head strong{
  font-size:12px;
}
.compassionate-card-head span{
  font-size:12px;
  font-weight:900;
  color:#174ea6;
  white-space:nowrap;
}
.compassionate-card-body{
  display:grid;
}
.compassionate-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:10px 14px;
  border-top:1px solid #f0f2f5;
}
.compassionate-row:first-child{
  border-top:0;
}
.compassionate-row span{
  font-size:11px;
  color:#475467;
}
.compassionate-row strong{
  font-size:11px!important;
  color:#101828;
  text-align:right;
}
.compassionate-common-note{
  margin-top:14px!important;
}

/* v0.8.3 start/end boundary half-day UX */
.partial-day-title{
  font-size:11px;
  font-weight:900;
  color:#344054;
  margin-bottom:9px;
}
.boundary-half-options{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
}
.boundary-half-option{
  display:flex;
  align-items:flex-start;
  gap:9px;
  padding:11px 12px;
  margin:0!important;
  border:1px solid #dbe4ef;
  border-radius:10px;
  background:#fff;
  cursor:pointer;
  transition:.15s ease;
}
.boundary-half-option:hover{
  border-color:#a9c6eb;
  background:#f8fbff;
}
.boundary-half-option:has(input:checked){
  border-color:#7ba9e5;
  background:#edf5ff;
}
.boundary-half-option input{
  width:17px;
  height:17px;
  margin:1px 0 0;
  flex:0 0 17px;
}
.boundary-half-option>span{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.boundary-half-option strong{
  font-size:11px;
  color:#172b4d;
}
.boundary-half-option small{
  margin-top:3px;
  font-size:9px;
  color:#667085;
}
@media(max-width:700px){
  .boundary-half-options{grid-template-columns:1fr}
}

/* v0.8.5 leave guideline + attachment visibility */
.proof-box[hidden]{
  display:none!important;
}
.proof-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:5px;
}
.proof-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:36px;
  height:22px;
  padding:0 8px;
  border-radius:999px;
  font-size:9px;
  font-weight:900;
}
.proof-badge.required{
  background:#fff0f0;
  color:#b42318;
}
.proof-badge.optional{
  background:#eef4ff;
  color:#175cd3;
}

/* v0.8.6 leave request summary emphasis */
.summary-line.request strong{
  color:#d92d20;
  font-size:23px;
  line-height:1;
  font-weight:900;
}

/* v0.8.8 calendar period navigation + larger leave labels */
.calendar-toolbar{
  grid-template-columns:1fr auto 1fr!important;
  gap:10px;
}
.calendar-toolbar-spacer{min-width:1px}
.cal-title{
  gap:7px!important;
  min-width:0;
}
.year-shift,.month-shift{
  width:34px;
  height:34px;
  border:1px solid transparent;
  border-radius:9px;
  display:grid;
  place-items:center;
  line-height:1;
  font-weight:900;
  text-decoration:none;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.year-shift{
  color:#667085!important;
  font-size:17px;
  background:#f8fafc;
}
.month-shift{
  color:#0f5dce;
  font-size:24px;
  background:#eef5ff;
}
.year-shift:hover,.month-shift:hover{
  border-color:#c8d8ee;
  background:#eaf2ff;
  color:#0f5dce!important;
}
.calendar-select-wrap{position:relative;display:block}
.calendar-period-select{
  appearance:none;
  -webkit-appearance:none;
  border:1px solid transparent;
  background:transparent;
  color:#101828;
  border-radius:9px;
  height:36px;
  padding:0 25px 0 8px;
  font:inherit;
  font-size:18px;
  font-weight:900;
  cursor:pointer;
  outline:none;
  text-align:center;
}
.calendar-select-wrap::after{
  content:'▾';
  position:absolute;
  right:8px;
  top:50%;
  transform:translateY(-52%);
  color:#98a2b3;
  font-size:10px;
  pointer-events:none;
}
.calendar-period-select:hover,.calendar-period-select:focus{
  background:#f6f9fd;
  border-color:#d5e0ee;
}
.year-select{width:104px}
.month-select{width:72px}
.today-btn{justify-self:end}

/* Employee name and leave type use the same, larger text size. */
.auto-event,
.auto-event b,
.manual-event{
  font-size:12.5px!important;
}
.auto-event,.manual-event{
  min-height:25px!important;
  line-height:19px!important;
  padding:3px 7px!important;
}

@media(max-width:1100px){
  .auto-event,
  .auto-event b,
  .manual-event{font-size:11px!important}
  .auto-event,.manual-event{
    min-height:23px!important;
    line-height:17px!important;
  }
}
@media(max-width:520px){
  .calendar-toolbar{grid-template-columns:1fr auto 1fr!important;padding:7px 6px}
  .calendar-toolbar-spacer{display:block}
  .cal-title{gap:3px!important}
  .year-shift,.month-shift{width:29px;height:32px}
  .year-shift{font-size:15px}
  .month-shift{font-size:21px}
  .calendar-period-select{height:33px;font-size:15px;padding-left:5px;padding-right:20px}
  .year-select{width:87px}
  .month-select{width:59px}
  .calendar-select-wrap::after{right:6px}
}

/* v0.8.9 readability + compact calendar controls + settings/delegation */
body{font-size:15px}
label{font-size:13px}
.muted,.help-text2,.type-note,.flow-box>span,.flow-box small,.detail-grid span,
.application-header p,.card-title p,.feature-card p,.quick-card span,.balance-main p,
.usage-info span,.usage-date small,.table-sub,.admin-kpi span,.admin-kpi small,
.compassionate-row span,.compassionate-row strong,.compassionate-card-head strong,
.compassionate-card-head span,.boundary-half-option strong,.boundary-half-option small,
.partial-day-title,.proof-badge,.no-deduct{font-size:13px!important}
.status-badge,.role-badge,.count-badge,.status,.smallbtn,.dangerbtn{font-size:12px}

/* Calendar: balanced compact controls. */
.calendar-toolbar{grid-template-columns:1fr auto 1fr!important;padding:9px 12px!important;min-height:50px}
.cal-title{gap:5px!important;padding:0}
.period-arrow{width:38px;height:38px;display:grid;place-items:center;border:1px solid #d8e1ec;border-radius:10px;background:#fff;font-weight:900;line-height:1;box-sizing:border-box;transition:.15s ease}
.period-arrow.year-shift{font-size:20px!important;color:#475467!important;background:#f8fafc!important}
.period-arrow.month-shift{font-size:25px!important;color:#1769e0!important;background:#eef5ff!important;border-color:#d6e5f9!important}
.period-arrow:hover{transform:translateY(-1px);border-color:#9ebce3;background:#f2f7fd!important}
.period-arrow.disabled{opacity:.28;cursor:default;pointer-events:none}
.calendar-period-select{height:38px!important;border:1px solid #d8e1ec!important;background:#fff!important;border-radius:10px!important;font-size:15px!important;font-weight:900!important;padding:0 25px 0 10px!important;box-sizing:border-box}
.year-select{width:92px!important}.month-select{width:70px!important}
.calendar-select-wrap::after{right:9px!important;font-size:9px!important}
.today-btn{justify-self:end;display:inline-flex!important;align-items:center;justify-content:center;width:auto;min-width:50px;height:38px;padding:0 13px!important;box-sizing:border-box;white-space:nowrap;font-size:13px!important;border-radius:10px!important;background:#fff;color:#344054;font-weight:900}

/* Same readable size for day number, holiday and calendar event labels. */
.day-num,.day-head small,.auto-event,.auto-event b,.manual-event{font-size:14px!important}
.day-head small{font-weight:800!important;white-space:nowrap}
.auto-event,.manual-event{min-height:27px!important;line-height:20px!important;padding:3px 7px!important}

/* Calendar balance card labels/buttons match calendar text. */
.calendar-balance span,.calendar-balance small,.calendar-balance .calendar-apply-btn{font-size:14px!important}
.calendar-balance .calendar-apply-btn{min-height:38px;display:flex!important;align-items:center;justify-content:center;border-radius:9px}

/* Request/summary and approval flow readability. */
.summary-line span{font-size:13px!important}
.summary-line.request strong,.summary-line.total strong{font-size:23px!important}
.flow-person strong{font-size:14px!important}.flow-person small{font-size:13px!important}
.flow-person.delegated{border-color:#9fc3ef;background:#edf5ff}
.flow-person:not(:last-child)::after{content:""!important;width:8px;height:8px;border-right:2px solid #8da2bb;border-bottom:2px solid #8da2bb;transform:translateX(-50%) rotate(45deg)!important;bottom:-14px!important;background:transparent}
.flow-help{font-size:13px!important}

/* Clean back-link icon (no text glyph arrow). */
.back-link{gap:8px}
.back-icon{width:9px;height:9px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);display:inline-block;margin-left:2px}
.inline-setting-link{font-size:12px;color:var(--blue);font-weight:900;white-space:nowrap}

/* Personal settings / approval delegation. */
.settings-card,.delegation-form-card{padding:22px;margin-bottom:14px}
.settings-section-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}
.settings-section-head h2{margin:0 0 4px;font-size:18px}.settings-section-head p{margin:0;color:var(--muted);font-size:13px}
.settings-form{display:grid;grid-template-columns:minmax(0,520px) auto;align-items:end;gap:12px}.settings-form .primary{height:45px}
.save-notice{padding:10px 12px;border-radius:9px;background:var(--greenbg);color:var(--green);font-weight:800;margin-bottom:13px}
.delegation-form{display:grid;grid-template-columns:1.15fr 1.15fr .75fr .75fr 1.2fr auto;gap:10px;align-items:end}
.delegation-form .primary{height:45px}.delegation-list-card{margin-top:14px}

@media(max-width:900px){
  body{font-size:14px}
  .delegation-form{grid-template-columns:1fr 1fr}.delegation-note{grid-column:1/-1}
  .settings-form{grid-template-columns:1fr}.settings-form .primary{width:100%}
}
@media(max-width:520px){
  body{font-size:14px}
  .calendar-toolbar{grid-template-columns:1fr auto 1fr!important;padding:7px 8px!important}
  .cal-title{gap:3px!important}
  .period-arrow{width:31px;height:34px}
  .period-arrow.year-shift{font-size:17px!important}.period-arrow.month-shift{font-size:22px!important}
  .calendar-period-select{height:34px!important;font-size:14px!important}
  .year-select{width:83px!important}.month-select{width:62px!important}
  .today-btn{display:none!important}
  .day-num,.day-head small,.auto-event,.auto-event b,.manual-event{font-size:12px!important}
  .delegation-form{grid-template-columns:1fr}
  .delegation-note{grid-column:auto}
}

.container small{font-size:13px}
.eyebrow{font-size:11px}

/* v0.9.0 UI alignment + personal approval delegation */
:root{--ui-text:14px;--ui-help:14px;--control-h:40px}

/* Keep ordinary supporting/body text on one readable scale. */
.page-head p,.dashboard-head p,.settings-section-head p,.card-title p,.section-title p,
.help-text2,.type-note,.flow-help,.flow-box>span,.flow-box small,.application-header p,
.advance-guide-head span,.advance-status,.balance-main p,.usage-info span,.usage-date small,
.table-sub,.quick-card span,.feature-card p,.detail-grid span,.proof-box,.no-deduct,
.compassionate-row span,.compassionate-row strong,.compassionate-card-head strong,
.compassionate-card-head span,.boundary-half-option strong,.boundary-half-option small,
.partial-day-title,.container small{font-size:var(--ui-help)!important}
label{font-size:var(--ui-text)!important}
input,select,textarea,button,.primary,.secondarybtn{font-size:var(--ui-text)!important}

/* My leave chart labels and values use the same size. */
.month-bar-row{grid-template-columns:42px 1fr 44px;gap:10px}
.month-bar-row>span,.month-bar-row>strong{font-size:14px!important;line-height:1.2}
.usage-date strong,.usage-info strong{font-size:14px!important}
.usage-date small,.usage-info span{font-size:14px!important}

/* Calendar navigation: every control is exactly the same height and vertically centered. */
.calendar-toolbar{padding:9px 12px!important;min-height:58px!important}
.cal-title{display:flex!important;align-items:center!important;justify-content:center!important;gap:6px!important}
.calendar-select-wrap{display:block!important;margin:0!important;padding:0!important;height:40px!important;line-height:1!important}
.period-arrow,.calendar-period-select,.today-btn{height:40px!important;box-sizing:border-box!important;border-radius:10px!important}
.period-arrow{width:40px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;padding:0!important}
.calendar-period-select{font-size:14px!important;padding-top:0!important;padding-bottom:0!important;line-height:40px!important}
.year-select{width:88px!important}.month-select{width:66px!important}
.today-btn{min-width:58px!important;padding:0 14px!important;font-size:14px!important;line-height:38px!important}
.nav-icon{display:block;position:relative;width:12px;height:12px}
.nav-icon.month-prev::before,.nav-icon.month-next::before,
.nav-icon.year-prev::before,.nav-icon.year-prev::after,
.nav-icon.year-next::before,.nav-icon.year-next::after{content:"";position:absolute;top:2px;width:7px;height:7px;border-top:2px solid currentColor;border-right:2px solid currentColor}
.nav-icon.month-prev::before{left:4px;transform:rotate(-135deg)}
.nav-icon.month-next::before{right:4px;transform:rotate(45deg)}
.nav-icon.year-prev::before{left:1px;transform:rotate(-135deg)}
.nav-icon.year-prev::after{left:6px;transform:rotate(-135deg)}
.nav-icon.year-next::before{right:6px;transform:rotate(45deg)}
.nav-icon.year-next::after{right:1px;transform:rotate(45deg)}
.period-arrow.year-shift,.period-arrow.month-shift{font-size:0!important;line-height:0!important}

/* Default deputy save button should stay compact instead of filling the row. */
.settings-form{grid-template-columns:minmax(320px,520px) 96px!important;align-items:end!important;justify-content:start!important}
.settings-form .settings-save-btn{width:96px!important;height:40px!important;min-height:40px!important;padding:0 16px!important;justify-self:start!important}

/* Personal temporary approval delegation. */
.my-delegation-form{display:grid;grid-template-columns:minmax(220px,1.2fr) 150px 150px minmax(200px,1fr) 86px;gap:10px;align-items:end}
.my-delegation-form input,.my-delegation-form select{height:40px!important;padding-top:0!important;padding-bottom:0!important}
.my-delegation-add{height:40px!important;padding:0 14px!important}
.my-delegation-list{margin-top:18px;border-top:1px solid var(--line)}
.my-delegation-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 2px;border-bottom:1px solid var(--line)}
.my-delegation-main{display:flex;flex-direction:column;gap:3px;min-width:0}
.my-delegation-main strong,.my-delegation-main span{font-size:14px!important}
.my-delegation-main span{color:var(--muted)}
.my-delegation-status{display:flex;align-items:center;gap:8px;flex-shrink:0}
.my-delegation-status form{margin:0}

@media(max-width:900px){
  .settings-form{grid-template-columns:1fr 96px!important}
  .my-delegation-form{grid-template-columns:1fr 1fr}
  .my-delegation-form>div:first-child,.my-delegation-form .delegation-note{grid-column:1/-1}
  .my-delegation-add{width:96px}
}
@media(max-width:520px){
  .settings-form{grid-template-columns:1fr!important}
  .settings-form .settings-save-btn{width:96px!important}
  .my-delegation-form{grid-template-columns:1fr}
  .my-delegation-form>div:first-child,.my-delegation-form .delegation-note{grid-column:auto}
  .period-arrow{width:34px!important;height:36px!important}
  .calendar-select-wrap,.calendar-period-select{height:36px!important}
  .calendar-period-select{line-height:36px!important}
  .year-select{width:82px!important}.month-select{width:61px!important}
}

/* v0.9.1 compact reason + aligned settings controls */
.reason-textarea{min-height:64px!important;height:64px!important;resize:vertical}
.settings-form{display:block!important;max-width:640px}
.settings-main-field{width:100%}
.settings-control-row{display:grid;grid-template-columns:minmax(320px,520px) 96px;gap:12px;align-items:center;margin-top:6px}
.settings-control-row select,.settings-control-row .settings-save-btn{height:40px!important;min-height:40px!important;box-sizing:border-box!important;margin:0!important}
.settings-control-row .settings-save-btn{width:96px!important;padding:0 16px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
.settings-main-field>.help-text2{margin-top:6px}
@media(max-width:620px){
  .settings-control-row{grid-template-columns:1fr 88px}
  .settings-control-row .settings-save-btn{width:88px!important}
}

/* v0.9.2 select clipping + request approval progress */
.settings-control-row select,
.my-delegation-form select,
.my-delegation-form input,
select,input[type="date"]{
  line-height:1.2!important;
}
.settings-control-row select{
  padding-top:0!important;
  padding-bottom:0!important;
  padding-left:14px!important;
  display:block!important;
  overflow:visible!important;
}
.request-progress{display:flex;align-items:center;gap:7px;flex-wrap:wrap;min-width:320px}
.request-progress-step{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid #d9e2ec;border-radius:9px;background:#f8fafc;white-space:nowrap}
.request-progress-step b,.request-progress-step small{font-size:13px!important;line-height:1.2}
.request-progress-step small{color:#667085}
.request-progress-step.done{background:#ecfdf3;border-color:#abefc6}.request-progress-step.done small{color:#067647}
.request-progress-step.current{background:#fff4e5;border-color:#fedf89;box-shadow:0 0 0 1px rgba(247,144,9,.08)}.request-progress-step.current small{color:#b54708;font-weight:900}
.request-progress-step.rejected{background:#fef3f2;border-color:#fecdca}.request-progress-step.rejected small{color:#b42318}
@media(max-width:760px){.request-progress{min-width:240px}.request-progress-step b,.request-progress-step small{font-size:12px!important}}

/* v0.9.3 approval inbox history */
.approval-tabs{display:flex;gap:8px;margin:0 0 14px}
.approval-tab{display:inline-flex;align-items:center;gap:8px;height:40px;padding:0 16px;border:1px solid var(--line);border-radius:12px;background:#fff;color:#475467;font-size:14px;font-weight:800;text-decoration:none}
.approval-tab.active{background:#0f63d8;border-color:#0f63d8;color:#fff;box-shadow:0 6px 16px rgba(15,99,216,.18)}
.tab-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#eef4ff;color:#0f63d8;font-size:12px;font-weight:900}
.approval-tab.active .tab-count{background:rgba(255,255,255,.18);color:#fff}
.status.rejected{background:#fff1f0;color:#d92d20;border:1px solid #fecdca}
.status.pending{background:#fff7e6;color:#b54708;border:1px solid #fedf89}

/* v0.9.5: applicant cancellation */
.status.cancelled{background:#f2f4f7;color:#475467;border:1px solid #d0d5dd}
.cancelled-box{background:#f2f4f7;color:#344054;border:1px solid #d0d5dd}
.request-actions{width:1%;white-space:nowrap}
.request-actions form{margin:0}
.request-actions .dangerbtn{min-height:36px;padding:7px 12px;font-size:13px}


/* v0.9.8 login layout + account security */
body.login-page{min-height:100vh;overflow:auto}
.login-page .mobile-only-topbar{display:none!important}
.login-page .container{max-width:none!important;width:100vw!important;min-height:100vh!important;margin:0!important;padding:0!important}
.login-page .login-wrap{width:100vw;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}
.login-page .login-card{width:min(404px,calc(100vw - 32px));padding:30px}
.login-card form{margin-top:18px}
.login-card form>label{margin-top:14px}
.login-card form>label:first-of-type{margin-top:0}
.remember-id-row{display:flex!important;align-items:center!important;gap:8px;margin:13px 0 0!important;width:auto!important}
.remember-id-row input{flex:0 0 16px!important;width:16px!important;height:16px!important;margin:0!important;padding:0!important;box-shadow:none!important}
.remember-id-row label{display:inline!important;margin:0!important;font-size:13px!important;font-weight:700!important;line-height:16px!important;cursor:pointer}
.login-submit{margin-top:18px!important;min-height:44px}
.login-save-help{margin:10px 0 0;text-align:center;color:var(--muted);font-size:12px!important}
.password-change-form{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:10px;align-items:end;max-width:1080px}
.password-change-btn{height:44px;min-width:92px}
.login-fail-count{display:block;margin-top:4px;color:var(--muted);font-size:11px}
.reset-password-card{max-width:720px}.reset-account-info{display:flex;align-items:center;gap:10px;margin-bottom:18px}.reset-account-info span{color:var(--muted)}
.reset-password-form{display:grid;gap:14px}.reset-password-form .form-actions{margin-top:4px}
@media(max-width:900px){.password-change-form{grid-template-columns:1fr 1fr}.password-change-btn{width:100%}}
@media(max-width:520px){.login-page .login-wrap{padding:16px}.login-page .login-card{padding:24px 20px}.password-change-form{grid-template-columns:1fr}}


/* v0.9.9 unified leave status tabs + office/department views */
.status-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 16px}.status-tabs a,.dept-tabs a{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 16px;border:1px solid var(--line);border-radius:11px;background:#fff;color:#475467;font-size:14px;font-weight:850}.status-tabs a.active,.dept-tabs a.active{background:#1769e0;border-color:#1769e0;color:#fff;box-shadow:0 5px 14px rgba(23,105,224,.18)}.dept-tabs{display:flex;gap:7px;flex-wrap:wrap;margin:0 0 15px}.dept-tabs a{min-height:36px;padding:0 12px;font-size:13px}.dept-tabs small{margin-left:6px;opacity:.72}.strong-link{font-weight:900}.compact-member-table table{min-width:560px}.dept-insight{align-items:start}.four-summary{grid-template-columns:1.35fr repeat(3,1fr)}
.month-bar-row>span,.month-bar-row>strong{font-size:14px!important}.table-sub{font-size:12px!important}.section-heading small{font-size:13px}.status-tabs,.dept-tabs{position:static!important}
@media(min-width:1101px){body.president-layout .sidebar.desktop-nav{position:absolute!important;top:0!important;height:100vh!important;bottom:auto!important}}
@media(max-width:900px){.four-summary{grid-template-columns:1fr 1fr}.four-summary>div:first-child{grid-column:1/-1}.status-tabs a{flex:1 1 auto}}

.status-head-actions{display:flex;align-items:center;gap:10px}.status-head-actions .btn{white-space:nowrap}.leave-status-head{align-items:flex-end}

/* v1.0.1 TEST: all-department monthly comparison */
.all-dept-chart-card{padding:8px 14px 14px;overflow:auto}.all-dept-chart{display:grid;gap:0;min-width:1050px}.dept-month-row{display:grid;grid-template-columns:250px minmax(760px,1fr);gap:18px;align-items:center;padding:15px 10px;border-bottom:1px solid var(--line);color:inherit}.dept-month-row:last-child{border-bottom:0}.dept-month-row:hover{background:#f8fbff}.dept-month-name{display:flex;flex-direction:column;gap:4px}.dept-month-name strong{font-size:15px}.dept-month-name small{font-size:13px;color:#667085}.dept-month-bars{height:94px;display:grid;grid-template-columns:repeat(12,minmax(48px,1fr));gap:7px;align-items:end}.dept-mini-month{height:94px;display:grid;grid-template-rows:58px 16px 18px;align-items:end;text-align:center}.mini-bar-track{height:58px;display:flex;align-items:flex-end;justify-content:center;border-radius:7px;background:#f2f5f9;overflow:hidden}.mini-bar-track i{display:block;width:72%;min-height:0;background:linear-gradient(180deg,#66a7fb,#1769e0);border-radius:5px 5px 0 0}.dept-mini-month span{font-size:12px;color:#667085;line-height:16px}.dept-mini-month b{font-size:12px;line-height:18px;color:#101828}.dept-tabs>a:first-child{font-weight:900}
@media(max-width:900px){.all-dept-chart{min-width:920px}.dept-month-row{grid-template-columns:190px minmax(680px,1fr)}}

/* v1.0.2 mobile calendar horizontal swipe fix */
@media(max-width:900px){
  .calendar-shell{
    width:100%!important;
    max-width:100%!important;
    height:auto!important;
    overflow-x:auto!important;
    overflow-y:visible!important;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-x pan-y;
    overscroll-behavior-x:contain;
  }
  .calendar-shell .weekday-row,
  .calendar-shell .calendar-grid{
    min-width:760px!important;
    width:760px!important;
    max-width:none!important;
  }
}
@media(max-width:520px){
  .calendar-shell .weekday-row,
  .calendar-shell .calendar-grid{
    min-width:720px!important;
    width:720px!important;
  }
  .calendar-shell{
    scrollbar-width:thin;
  }
}

/* v1.0.3 mobile account hub */
.account-menu-grid{display:grid;gap:12px;max-width:820px}
.account-menu-card{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:13px;padding:17px 18px;color:inherit;text-decoration:none}
.account-menu-card:hover{border-color:#bfd4f2;background:#f8fbff}
.account-menu-icon{width:44px;height:44px;border-radius:12px;background:var(--soft);color:var(--blue);display:grid;place-items:center;font-size:19px;font-weight:900}
.account-menu-card div{display:flex;flex-direction:column;gap:3px}
.account-menu-card strong{font-size:16px}
.account-menu-card small{font-size:13px;color:var(--muted)}
.account-menu-arrow{font-size:27px;color:#98a2b3;line-height:1}
.account-logout-form{max-width:820px;margin-top:14px}
.account-logout-btn{width:100%;height:44px;border:1px solid #f2b8b5;background:#fff6f5;color:#b42318;border-radius:11px;font-weight:900;cursor:pointer}
@media(max-width:900px){
  .account-page-head{margin-bottom:14px}
  .account-menu-grid{gap:10px}
  .account-menu-card{padding:15px 14px;grid-template-columns:40px 1fr auto}
  .account-menu-icon{width:40px;height:40px}
  .account-menu-card strong{font-size:15px}
  .account-menu-card small{font-size:13px;line-height:1.45}
}


/* v1.0.4 pending approval count badges */
.approval-nav-link{position:relative;display:flex!important;align-items:center;gap:8px}
.approval-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#d92d20;color:#fff;font-size:11px!important;font-weight:900;line-height:20px;box-shadow:0 1px 2px rgba(16,24,40,.15)}
.approval-count-badge[hidden]{display:none!important}
.sidebar-nav .approval-count-badge{margin-left:auto;flex:0 0 auto}
.mobile-nav-icon{position:relative;display:inline-grid;place-items:center;height:20px;min-width:24px}
.mobile-nav-icon>b{line-height:1}
.approval-count-badge.mobile{position:absolute;top:-8px;right:-12px;min-width:18px;height:18px;padding:0 5px;font-size:10px!important;line-height:18px;border:2px solid #fff}
@media(max-width:900px){.mobile-approval-link{overflow:visible!important}.mobile-nav-icon{overflow:visible}}

/* v1.0.5 - leave request final confirmation */
.leave-confirm-modal{width:min(560px,100%);max-height:88vh;overflow:auto;background:#fff;border-radius:17px;box-shadow:0 24px 70px rgba(16,24,40,.24)}
.leave-confirm-body{padding:18px 20px;display:grid;gap:14px}
.leave-confirm-note{margin:0;padding:11px 13px;border-radius:10px;background:#fff7ed;color:#9a3412;font-size:14px;line-height:1.55}
.leave-confirm-grid{display:grid;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.leave-confirm-row{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;padding:11px 13px;border-bottom:1px solid var(--line);align-items:start}
.leave-confirm-row:last-child{border-bottom:0}
.leave-confirm-row>span{font-size:14px;color:var(--muted);font-weight:700}
.leave-confirm-row>strong,.leave-confirm-row>div{font-size:14px;line-height:1.55;color:var(--text);word-break:break-word}
.leave-confirm-flow{display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.leave-confirm-flow .confirm-flow-person{display:inline-flex;align-items:center;gap:4px}
.leave-confirm-flow .confirm-flow-person:not(:last-child)::after{content:'›';margin-left:4px;color:#98a2b3;font-weight:800}
.leave-confirm-actions{padding:14px 20px 18px;display:flex;justify-content:flex-end;gap:9px;border-top:1px solid var(--line)}
.leave-confirm-actions button{min-width:96px}
@media(max-width:520px){.leave-confirm-row{grid-template-columns:1fr;gap:4px;padding:10px 12px}.leave-confirm-actions{display:grid;grid-template-columns:1fr 1fr}.leave-confirm-actions button{width:100%;min-width:0}}

/* v1.0.6 - cancellation policy / history */
.policy-guide {
  margin: 0 0 14px;
  border: 1px solid #d9e3f0;
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
}
.policy-guide > summary {
  cursor: pointer;
  list-style: none;
  padding: 13px 16px;
  font-weight: 700;
  font-size: 14px;
  color: #0f2744;
}
.policy-guide > summary::-webkit-details-marker { display: none; }
.policy-guide > summary::after {
  content: "보기";
  float: right;
  color: #1268d7;
  font-weight: 700;
  font-size: 13px;
}
.policy-guide[open] > summary::after { content: "닫기"; }
.policy-guide-body {
  padding: 0 16px 14px;
  border-top: 1px solid #edf2f7;
  color: #53657b;
  font-size: 14px;
  line-height: 1.65;
}
.policy-guide-body p { margin: 10px 0 0; }
.dangerbtn.disabled,
.dangerbtn:disabled {
  opacity: .48;
  cursor: not-allowed;
  box-shadow: none;
}
.admin-cancel-form {
  display: flex;
  gap: 8px;
  align-items: center;
  min-width: 360px;
}
.admin-cancel-form input {
  min-width: 220px;
  height: 38px;
  padding: 0 11px;
  border: 1px solid #d6e0ec;
  border-radius: 10px;
  font: inherit;
}
@media (max-width: 760px) {
  .policy-guide > summary,
  .policy-guide-body { font-size: 14px; }
  .admin-cancel-form { min-width: 300px; }
}

/* v1.0.9 - long-term list filters and pagination */
.list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 14px}
.status-filter-tabs{display:flex;gap:7px;flex-wrap:wrap}
.status-filter-tabs a{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 14px;border:1px solid var(--line);border-radius:11px;background:#fff;color:#344054;font-size:14px;font-weight:850;text-decoration:none}
.status-filter-tabs a span{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#f2f4f7;color:#475467;font-size:11px}
.status-filter-tabs a.active{background:#1769e0;border-color:#1769e0;color:#fff;box-shadow:0 5px 14px rgba(23,105,224,.18)}
.status-filter-tabs a.active span{background:rgba(255,255,255,.2);color:#fff}
.inline-list-controls{display:flex;gap:9px;align-items:end;flex-wrap:wrap}
.inline-list-controls label,.approval-filter-grid label{display:grid;gap:5px;color:#475467;font-size:12px;font-weight:800}
.inline-list-controls select,.approval-filter-grid select,.approval-filter-grid input{height:40px;border:1px solid #d0d9e6;border-radius:10px;background:#fff;padding:0 11px;font:inherit;color:#101828}
.approval-filter-card{padding:15px 16px;margin:0 0 14px}
.approval-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(145px,1fr));gap:11px;align-items:end}
.approval-filter-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
.custom-date-filter.is-hidden{display:none}
.list-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:12px 2px 0}
.result-summary{color:#667085;font-size:13px}
.pagination{display:flex;align-items:center;gap:5px}
.pagination a,.pagination span{min-width:36px;height:36px;padding:0 8px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;font-size:13px;font-weight:800}
.pagination a{border:1px solid var(--line);background:#fff;color:#344054}
.pagination a.active{background:#1769e0;border-color:#1769e0;color:#fff}
.pagination a.disabled{opacity:.35;pointer-events:none}
.pagination span{color:#98a2b3}
@media(max-width:1100px){.approval-filter-grid{grid-template-columns:repeat(3,minmax(145px,1fr))}}
@media(max-width:700px){
  .list-toolbar{align-items:stretch}.status-filter-tabs{width:100%}.status-filter-tabs a{flex:1 1 auto;padding:0 10px}
  .inline-list-controls{width:100%}.inline-list-controls label{flex:1 1 130px}.inline-list-controls select{width:100%}
  .approval-filter-grid{grid-template-columns:1fr 1fr}.approval-filter-actions>*{flex:1}
  .list-footer{justify-content:center}.result-summary{width:100%;text-align:center}
}
@media(max-width:480px){.approval-filter-grid{grid-template-columns:1fr}.status-filter-tabs a{font-size:13px}.pagination a,.pagination span{min-width:32px;height:34px}}

/* v1.1.0 HQ monthly report */
.hq-report-table{min-width:1050px}.hq-report-table th,.hq-report-table td{white-space:nowrap}.hq-report-table thead a{color:inherit;text-decoration:none}.hq-report-table thead a:hover{text-decoration:underline}.hq-report-table .report-used{font-weight:800;background:rgba(37,99,235,.06)}.hq-report-note{margin-top:18px}.hq-report-note h2{margin-top:0}.hq-report-note ul{margin:8px 0 0;padding-left:20px;line-height:1.8}


/* v1.1.1 - compact approval history search bar */
.approval-filter-card{padding:10px 12px;margin:0 0 12px}
.approval-filter-grid{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}
.approval-filter-grid label{display:grid;gap:4px;flex:1 1 155px;max-width:240px;font-size:12px}
.approval-filter-grid label:has(input[name="q"]){flex-basis:190px;max-width:280px}
.approval-filter-grid label:has(select[name="page_size"]){flex:0 0 92px;max-width:92px}
.approval-filter-grid select,.approval-filter-grid input{height:36px;border-radius:9px;padding:0 10px}
.approval-filter-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:8px}
.approval-filter-actions .compact{min-height:36px;height:36px;padding:0 14px}
@media(max-width:900px){.approval-filter-grid label{flex:1 1 calc(50% - 8px);max-width:none}.approval-filter-grid label:has(select[name="page_size"]){flex:1 1 calc(50% - 8px);max-width:none}}
@media(max-width:560px){.approval-filter-card{padding:10px}.approval-filter-grid{gap:7px}.approval-filter-grid label{flex:1 1 100%;max-width:none}.approval-filter-actions{margin-top:8px}.approval-filter-actions>*{flex:1}}


/* v1.1.2 - approval inbox aligned with request-list toolbar */
.approval-list-toolbar{margin-bottom:14px}
.approval-list-toolbar .approval-tabs{margin:0}
.approval-toolbar-controls{display:flex;align-items:flex-end;gap:8px;margin-left:auto}
.approval-page-size{display:grid;gap:5px;color:#475467;font-size:12px;font-weight:800}
.approval-page-size select{height:40px;min-width:86px;border:1px solid #d0d9e6;border-radius:10px;background:#fff;padding:0 10px;font:inherit;color:#101828}
.approval-search-toggle{height:40px;min-height:40px;padding:0 15px;border-radius:10px}
.approval-search-toggle.active{background:#eef5ff;border-color:#9fc2f3;color:#0f63d8}
.approval-filter-card{overflow:hidden;max-height:420px;opacity:1;transform:none;transition:max-height .18s ease,opacity .15s ease,margin .18s ease,padding .18s ease,border-width .18s ease}
.approval-filter-card.is-collapsed{max-height:0;opacity:0;margin:0;padding-top:0;padding-bottom:0;border-width:0;pointer-events:none}
.approval-filter-grid{display:grid;grid-template-columns:repeat(5,minmax(145px,1fr));gap:9px;align-items:end}
.approval-filter-grid label{max-width:none!important;flex:none!important}
.approval-filter-grid select,.approval-filter-grid input{height:40px}
.approval-filter-actions{margin-top:10px}
.approval-filter-actions .compact{height:40px;min-height:40px}
@media(max-width:900px){.approval-toolbar-controls{width:100%;margin-left:0}.approval-page-size{flex:1}.approval-page-size select{width:100%}.approval-search-toggle{flex:1}.approval-filter-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.approval-list-toolbar{gap:9px}.approval-list-toolbar .approval-tabs{width:100%}.approval-list-toolbar .approval-tab{flex:1;justify-content:center}.approval-filter-grid{grid-template-columns:1fr}}

/* v1.1.3 - unified request/approval query toolbar + account security */
.request-toolbar-controls,.approval-toolbar-controls{display:flex;align-items:flex-end;gap:8px;margin-left:auto}
.request-toolbar-controls label,.approval-toolbar-controls label{display:grid;gap:5px;color:#475467;font-size:12px;font-weight:800;margin:0}
.request-toolbar-controls select,.approval-toolbar-controls select{height:40px;min-height:40px;border:1px solid #d0d9e6;border-radius:10px;background:#fff;padding:0 11px;font:inherit;color:#101828}
.request-search-toggle,.approval-search-toggle{height:40px;min-height:40px;padding:0 15px;align-self:flex-end;margin:0;display:inline-flex;align-items:center;justify-content:center}
.request-filter-card,.approval-filter-card{padding:10px 12px;margin:0 0 12px;overflow:hidden;max-height:420px;opacity:1;transform:none;transition:max-height .18s ease,opacity .15s ease,margin .18s ease,padding .18s ease,border-width .18s ease}
.request-filter-card.is-collapsed,.approval-filter-card.is-collapsed{max-height:0;opacity:0;margin:0;padding-top:0;padding-bottom:0;border-width:0;pointer-events:none}
.request-filter-grid{display:flex;align-items:end;gap:8px;flex-wrap:wrap}
.request-filter-grid label{display:grid;gap:5px;color:#475467;font-size:12px;font-weight:800;min-width:190px}
.request-filter-grid select,.request-filter-grid input{height:40px;border:1px solid #d0d9e6;border-radius:10px;background:#fff;padding:0 11px;font:inherit;color:#101828}
.request-filter-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:8px}
.request-custom-date-filter.is-hidden,.custom-date-filter.is-hidden{display:none!important}
.request-search-toggle.active,.approval-search-toggle.active{border-color:#1769e0;color:#1769e0;background:#f4f8ff}
.switch-row{display:flex!important;align-items:center;gap:9px;min-height:42px;border:1px solid #d0d9e6;border-radius:10px;padding:0 12px;background:#fff;font-weight:700!important;color:#344054!important}
.switch-row input{width:17px;height:17px;margin:0}
.inline-security-form{display:inline-flex;margin:0}
.security-pill{border:0;border-radius:999px;min-width:54px;height:30px;padding:0 10px;font-weight:850;cursor:pointer}
.security-pill.allowed{background:#ecfdf3;color:#027a48;border:1px solid #abefc6}
.security-pill.blocked{background:#f2f4f7;color:#475467;border:1px solid #d0d5dd}
@media(max-width:900px){
  .request-toolbar-controls,.approval-toolbar-controls{width:100%;margin-left:0;flex-wrap:wrap}
  .request-toolbar-controls label,.approval-toolbar-controls label{flex:1 1 130px}
  .request-toolbar-controls select,.approval-toolbar-controls select{width:100%}
  .request-search-toggle,.approval-search-toggle{flex:1 1 110px}
}
@media(max-width:560px){
  .request-filter-grid{display:grid;grid-template-columns:1fr}
  .request-filter-grid label{min-width:0}
  .request-filter-actions>*{flex:1}
}

/* v1.1.4 security/history + compact toolbars */
.employee-status-tabs{margin:0 0 12px}.warnbtn{border-color:#f7c97b!important;color:#9a6700!important;background:#fffaf0!important}
.login-fail-count{display:block;margin-top:4px;color:#667085;font-size:11px;max-width:150px}.alert-count{background:#fee4e2!important;color:#b42318!important}
.compact-security-filter{padding:10px 12px;margin-bottom:12px}.security-filter-row{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.security-filter-row label{display:grid;gap:4px;font-size:12px;font-weight:800;color:#475467}.security-filter-row select,.security-filter-row input[type="text"],.security-filter-row input:not([type]){height:38px;border:1px solid #d0d9e6;border-radius:9px;padding:0 10px}.check-filter{display:flex!important;align-items:center!important;height:38px;padding:0 8px}.check-filter input{width:16px;height:16px}.table-sub{display:block;color:#667085;font-size:12px;margin-top:3px}
.inline-edit{display:inline-block}.inline-edit summary{list-style:none;cursor:pointer}.inline-edit summary::-webkit-details-marker{display:none}.delegation-edit-form{display:flex;gap:6px;align-items:center;margin-top:7px;min-width:620px}.delegation-edit-form select,.delegation-edit-form input{height:36px;border:1px solid #d0d9e6;border-radius:8px;padding:0 8px}.delegation-edit-form select{min-width:150px}.actions-cell{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.list-toolbar .request-search-toggle,.list-toolbar .approval-search-toggle{order:0}.status-filter-tabs + .request-search-toggle,.approval-tabs + .approval-search-toggle{margin-left:4px}.request-toolbar-controls,.approval-toolbar-controls{margin-left:auto}
.request-filter-card,.approval-filter-card{padding:8px 10px}.request-filter-grid{display:flex;gap:8px;align-items:end}.request-filter-grid label{min-width:150px;max-width:210px}.request-filter-actions,.approval-filter-actions{margin-top:6px;justify-content:flex-start}
@media(max-width:700px){.delegation-edit-form{min-width:0;flex-direction:column;align-items:stretch}.security-filter-row>*{flex:1 1 45%}.compact-security-filter{padding:8px}}


/* v1.1.5 TEST: proxy security + mobile period fit + control alignment */
@media(max-width:520px){
  .calendar-toolbar{overflow-x:auto!important;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .calendar-toolbar::-webkit-scrollbar{display:none}
  .cal-title{flex-wrap:nowrap!important;min-width:max-content!important}
  .calendar-select-wrap{flex:0 0 auto!important}
  .year-select{width:92px!important;min-width:92px!important;padding-left:8px!important;padding-right:22px!important}
  .month-select{width:74px!important;min-width:74px!important;padding-left:8px!important;padding-right:20px!important}
}
.page-head .page-actions{display:flex!important;align-items:center!important;gap:8px!important}
.page-head .page-actions select,.page-head .page-actions .primary,.page-head .page-actions .secondarybtn{height:40px!important;min-height:40px!important;box-sizing:border-box!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;margin:0!important}
.delegation-inline-edit{position:relative}
.delegation-inline-edit[open] .delegation-edit-form{z-index:30}


/* v1.1.6 TEST: toolbar alignment + delegation inline edit + my-leave hotfix */
.toolbar-primary-actions{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap;min-width:0}
.toolbar-primary-actions .status-filter-tabs,.toolbar-primary-actions .approval-tabs{margin:0!important}
.toolbar-primary-actions .request-search-toggle,.toolbar-primary-actions .approval-search-toggle{align-self:flex-start!important;margin:0!important;height:40px!important;min-height:40px!important}
.request-toolbar-controls,.approval-toolbar-controls{align-items:flex-start!important}
.request-toolbar-controls label,.approval-toolbar-controls label{margin:0!important}
.request-list-toolbar,.approval-list-toolbar{align-items:flex-start!important}

/* Keep the opened delegation editor on a single aligned line instead of stacking the edit button above the form. */
.actions-cell{vertical-align:middle!important}
.delegation-inline-edit[open],.actions-cell .inline-edit[open]{display:inline-flex!important;align-items:center!important;gap:8px!important;vertical-align:middle!important}
.delegation-inline-edit[open] summary,.actions-cell .inline-edit[open] summary{flex:0 0 auto;margin:0!important}
.delegation-inline-edit[open] .delegation-edit-form,.actions-cell .inline-edit[open] .delegation-edit-form{display:flex!important;align-items:center!important;gap:7px!important;margin:0!important;min-width:0!important;flex-wrap:nowrap!important}
.delegation-inline-edit[open] .delegation-edit-form select,.delegation-inline-edit[open] .delegation-edit-form input,.actions-cell .inline-edit[open] .delegation-edit-form select,.actions-cell .inline-edit[open] .delegation-edit-form input{height:36px!important;min-height:36px!important}
.delegation-inline-edit[open] .delegation-edit-form button,.actions-cell .inline-edit[open] .delegation-edit-form button{height:36px!important;min-height:36px!important;margin:0!important}
.actions-cell>form{display:inline-flex!important;vertical-align:middle!important;margin:0!important}
.actions-cell>form .dangerbtn{height:36px!important;min-height:36px!important;margin:0!important}

/* Make the request search panel compact when it only contains period controls. */
.request-filter-card{width:100%;box-sizing:border-box}
.request-filter-card:not(.is-collapsed){display:flex;align-items:flex-end;justify-content:space-between;gap:10px;flex-wrap:wrap}
.request-filter-card:not(.is-collapsed) .request-filter-grid{flex:1 1 auto;margin:0}
.request-filter-card:not(.is-collapsed) .request-filter-actions{flex:0 0 auto;margin:0!important;align-self:flex-end}

@media(max-width:900px){
  .toolbar-primary-actions{width:100%}
  .request-toolbar-controls,.approval-toolbar-controls{width:100%;margin-left:0!important}
  .request-filter-card:not(.is-collapsed){display:block}
  .request-filter-card:not(.is-collapsed) .request-filter-actions{margin-top:8px!important}
}
@media(max-width:700px){
  .delegation-inline-edit[open],.actions-cell .inline-edit[open]{display:block!important}
  .delegation-inline-edit[open] .delegation-edit-form,.actions-cell .inline-edit[open] .delegation-edit-form{margin-top:7px!important;flex-direction:column!important;align-items:stretch!important}
}
