:root{--bg:#f4f7fb;--card:#fff;--text:#17212b;--muted:#6b7280;--line:#e5e7eb;--brand:#0b6b58;--brand2:#0f8a70;--danger:#b42318;--warning:#b54708;--shadow:0 8px 24px rgba(16,24,40,.06)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Arial,Tahoma,sans-serif}.topbar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.topbar-inner{max-width:1420px;margin:auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,var(--brand),var(--brand2));display:grid;place-items:center;color:#fff;font-weight:800}.brand h1{font-size:18px;margin:0}.brand small{color:var(--muted)}.user-area{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.pill{background:#eef7f4;color:var(--brand);padding:7px 10px;border-radius:999px;font-size:12px;font-weight:700}.btn{border:0;border-radius:10px;padding:10px 14px;font-weight:700;cursor:pointer}.btn-primary{background:var(--brand);color:#fff}.btn-secondary{background:#fff;color:var(--text);border:1px solid var(--line)}.btn-danger{background:#fff0ef;color:var(--danger)}.container{max-width:1420px;margin:24px auto;padding:0 24px}.hero{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}.hero h2{margin:0 0 6px;font-size:28px}.hero p{margin:0;color:var(--muted)}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.stat{background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;box-shadow:var(--shadow)}.stat .label{font-size:13px;color:var(--muted)}.stat .value{font-size:28px;font-weight:800;margin-top:6px}.grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid var(--line)}.card-head h3{margin:0;font-size:16px}.card-body{padding:18px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.input,.select,.textarea{width:100%;border:1px solid #d0d5dd;border-radius:10px;padding:10px 12px;font:inherit;background:#fff}.textarea{min-height:90px;resize:vertical}.field{margin-bottom:14px}.field label{display:block;font-size:13px;font-weight:700;margin-bottom:6px}.req{color:var(--danger)}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{padding:11px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.table th{font-size:12px;color:var(--muted);font-weight:700;background:#fafafa}.status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:800;background:#f2f4f7;color:#475467}.status.approved{background:#ecfdf3;color:#027a48}.status.rejected{background:#fef3f2;color:#b42318}.status.pending_manager,.status.pending_gm,.status.pending_hr,.status.pending_finance,.status.pending_purchasing,.status.pending_admin,.status.pending_approval{background:#fffaeb;color:#b54708}.empty{padding:30px;text-align:center;color:var(--muted)}.quick-types{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.type-btn{padding:14px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:left;cursor:pointer}.type-btn strong{display:block;margin-bottom:4px}.type-btn small{color:var(--muted)}.modal-backdrop{position:fixed;inset:0;background:rgba(16,24,40,.55);display:none;align-items:flex-start;justify-content:center;padding:40px 18px;z-index:100;overflow:auto}.modal-backdrop.open{display:flex}.modal{width:min(860px,100%);background:#fff;border-radius:18px;box-shadow:0 20px 60px rgba(0,0,0,.2)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid var(--line)}.modal-head h3{margin:0}.modal-body{padding:20px}.modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid var(--line)}.close{border:0;background:transparent;font-size:24px;cursor:pointer}.notice{padding:11px 13px;border-radius:10px;margin-bottom:14px;display:none}.notice.show{display:block}.notice.error{background:#fef3f2;color:#b42318}.notice.success{background:#ecfdf3;color:#027a48}.item-table{width:100%;border-collapse:collapse}.item-table th,.item-table td{border:1px solid var(--line);padding:6px}.item-table input{width:100%;border:0;padding:7px}.mini-btn{border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 10px;cursor:pointer}.actions{display:flex;gap:6px;flex-wrap:wrap}.details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.detail{background:#f9fafb;border-radius:10px;padding:10px}.detail b{display:block;font-size:11px;color:var(--muted);margin-bottom:4px}.loading-overlay{position:fixed;inset:0;background:rgba(255,255,255,.82);z-index:200;display:none;align-items:center;justify-content:center;font-weight:800}.loading-overlay.show{display:flex}@media(max-width:900px){.stats{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}.hero{flex-direction:column}.details-grid{grid-template-columns:1fr}}@media(max-width:560px){.stats{grid-template-columns:1fr}.quick-types{grid-template-columns:1fr}.container,.topbar-inner{padding-left:14px;padding-right:14px}.hero h2{font-size:23px}}


/* New Request type selector */
.request-type-selector{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.request-type-choice{appearance:none;border:1px solid #d9e0dc;background:#fff;border-radius:12px;padding:15px 16px;text-align:left;cursor:pointer;transition:.18s ease;font:inherit;color:inherit}
.request-type-choice:hover{border-color:#0b7a5c;box-shadow:0 4px 14px rgba(0,0,0,.07);transform:translateY(-1px)}
.request-type-choice strong{display:block;font-size:14px;margin-bottom:5px}
.request-type-choice small{display:block;color:#6b7280;font-size:12px}
@media(max-width:700px){.request-type-selector{grid-template-columns:1fr}}


/* Request details formatted view */
.request-details-card{background:#fff;border:1px solid #e7ece9;border-radius:12px;overflow:hidden}
.detail-row{display:grid;grid-template-columns:minmax(180px,32%) 1fr;border-bottom:1px solid #edf1ef;min-height:46px}
.detail-row:last-child{border-bottom:0}
.detail-label{font-weight:700;background:#f7f9f8;padding:12px 14px;color:#34443d}
.detail-value{padding:12px 14px;white-space:pre-wrap;word-break:break-word}
.detail-section{padding:12px 14px;border-bottom:1px solid #edf1ef}
.detail-section:last-child{border-bottom:0}
.detail-section h5{margin:0 0 10px;font-size:14px}
.request-detail-table-wrap{margin:0}
.request-detail-table{width:100%;border-collapse:collapse}
.request-detail-table th,.request-detail-table td{padding:9px 10px;border:1px solid #e6ebe8;text-align:left;vertical-align:top}
.request-detail-table th{background:#f5f8f6;font-weight:700}
.total-row .detail-label,.total-row .detail-value{font-weight:800}
@media(max-width:700px){.detail-row{grid-template-columns:1fr}.detail-label{border-bottom:1px solid #edf1ef}.request-detail-table{min-width:640px}}

/* Request for another employee + leave balance */
.request-for-card{border:1px solid #dfe7e3;background:#f8fbfa;border-radius:14px;padding:14px 16px;margin-bottom:18px}
.request-for-card .field{margin-bottom:12px}.request-for-card .field:last-child{margin-bottom:0}
.leave-balance-card{align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;margin-top:10px;border-radius:12px;background:#eef8f4;border:1px solid #cfe8dd;flex-wrap:wrap}
.leave-balance-card b{font-size:14px}.leave-balance-card span{font-size:13px;color:#52615b}.leave-balance-value{font-size:18px!important;font-weight:800!important;color:#0f6b56!important}
input[readonly]{background:#f3f5f4;cursor:not-allowed}
