body{font-family:Arial,sans-serif;background:#0b1220;color:#fff;margin:0}
.wrap{max-width:1180px;margin:40px auto;padding:20px}
.card{background:#132033;border:1px solid #243447;border-radius:20px;padding:24px}
.card + .card{margin-top:24px}
input,textarea,select{width:100%;border-radius:12px;border:1px solid #2b3e55;background:#0e1726;color:#fff;padding:12px;margin:6px 0 14px;box-sizing:border-box;font-family:Arial,sans-serif}
textarea{min-height:90px;resize:vertical}
button,.btn{display:inline-block;background:#22d3ee;color:#083344;border:none;border-radius:12px;padding:12px 16px;font-weight:700;text-decoration:none;cursor:pointer}
.btn-secondary{background:#223247;color:#fff}
.btn-danger{background:#ef4444;color:#fff}
.err{background:#3a1720;border:1px solid #7f1d1d;color:#fecaca;padding:12px;border-radius:12px;margin:12px 0}
.ok{background:#0f2d20;border:1px solid #166534;color:#dcfce7;padding:12px;border-radius:12px;margin:12px 0}
.warn{background:#3b2a0d;border:1px solid #92400e;color:#fde68a;padding:12px;border-radius:12px;margin:12px 0}
a{color:#7dd3fc}
.grid{display:grid;grid-template-columns:1.2fr .8fr;gap:24px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:900px){.grid,.grid-2{grid-template-columns:1fr}}
.tile{display:block;background:#102136;border:1px solid #243447;border-radius:20px;padding:24px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:700px){.stats{grid-template-columns:1fr}}
.stat{padding:18px;border-radius:16px;background:#0e1726;border:1px solid #243447}
.stat strong{font-size:26px;display:block;margin-top:6px}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.day,.weekday{aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;border-radius:12px}
.weekday{background:#18283e;border:1px solid #243447;font-size:12px;font-weight:700}
.day{background:#0e1726;border:1px solid #243447;position:relative}
.day.clickable{cursor:pointer}
.day.selected{background:#11364b;border-color:#22d3ee}
.day.pending{outline:2px solid #fbbf24}
.day.approved{outline:2px solid #22c55e}
.day.rejected{outline:2px solid #ef4444}
.day small{position:absolute;bottom:4px;right:6px;font-size:10px;color:#94a3b8}
.top{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.badge{display:inline-block;padding:7px 12px;border-radius:999px;font-size:12px;font-weight:700}
.pending{background:#3b2a0d;color:#fde68a}
.approved{background:#0f2d20;color:#dcfce7}
.rejected{background:#3a1720;color:#fecaca}
.cancelled{background:#1f2937;color:#e5e7eb}
.table{width:100%;border-collapse:collapse;margin-top:12px}
.table th,.table td{padding:10px;border-bottom:1px solid #243447;text-align:left;vertical-align:top}
.small{font-size:13px;color:#cbd5e1}
.actions form{display:inline-block;margin-right:8px;margin-bottom:6px}
.legend{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0 16px}
.legend span{padding:6px 10px;border-radius:999px;font-size:12px}
.legend .l1{background:#3b2a0d;color:#fde68a}
.legend .l2{background:#0f2d20;color:#dcfce7}
.legend .l3{background:#3a1720;color:#fecaca}
.legend .l4{background:#1f2937;color:#e5e7eb}
