.tasa-box{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:22px;margin:0 0 20px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.tasa-box h3{margin-top:0}
.tasa-notice{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;padding:12px 16px;border-radius:8px;margin-bottom:16px}
.tasa-cal{max-width:760px;background:#fff;border:1px solid #e5e7eb;border-radius:16px;padding:24px;box-shadow:0 1px 3px rgba(0,0,0,.05);font-family:inherit}
.tasa-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;flex-wrap:wrap;gap:8px}
.tasa-nav{display:flex;align-items:center;gap:10px}
.tasa-monthlabel{font-size:19px;font-weight:600;min-width:160px;text-align:center}
.tasa-hint{font-size:13px;color:#6b7280}
.tasa-icon{width:36px;height:36px;border:1px solid #e5e7eb;background:#fff;border-radius:8px;font-size:20px;line-height:1;cursor:pointer;color:#374151}
.tasa-icon:hover{background:#f3f4f6}
.tasa-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}
.tasa-stat{background:#f8fafc;border-radius:10px;padding:12px 14px}
.tasa-stat-label{display:block;font-size:13px;color:#6b7280}
.tasa-stat-num{display:block;font-size:24px;font-weight:600;margin-top:2px}
.tasa-monthstatus{font-size:18px}
.tasa-legend{display:flex;gap:18px;margin-bottom:12px;font-size:13px;color:#374151;flex-wrap:wrap}
.tasa-legend span{display:inline-flex;align-items:center;gap:6px}
.tasa-dot{width:12px;height:12px;border-radius:3px;display:inline-block}
.tasa-d-home{background:#9FE1CB}.tasa-d-office{background:#B5D4F4}.tasa-d-travelling{background:#FAC775}
.tasa-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:6px}
.tasa-dow div{text-align:center;font-size:12px;color:#9ca3af}
.tasa-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.tasa-day{position:relative;aspect-ratio:1;border:1px solid #eceef1;border-radius:8px;font-size:14px;cursor:pointer;display:flex;align-items:flex-start;justify-content:flex-start;padding:6px 8px;font-family:inherit;transition:transform .05s}
.tasa-day:hover{transform:scale(1.03);border-color:#cbd5e1}
.tasa-day-tag{position:absolute;bottom:4px;right:6px;font-size:10px;font-weight:700;opacity:.7}
.tasa-panel{margin-top:18px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:18px}
.tasa-panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.tasa-panel-date{font-weight:600}
.tasa-statusbtns{display:flex;gap:8px;margin-bottom:14px}
.tasa-sbtn{flex:1;padding:10px;border:1px solid #e5e7eb;background:#fff;border-radius:8px;cursor:pointer;font-size:14px;font-family:inherit}
.tasa-sbtn:hover{background:#f9fafb}
.tasa-sbtn-on{font-weight:600}
.tasa-travel-extra label{display:block;font-size:14px;font-weight:600;margin-bottom:10px}
.tasa-travel-extra select{display:block;width:100%;max-width:320px;margin-top:5px;padding:8px;border:1px solid #d1d5db;border-radius:6px;font-weight:400}
.tasa-check{font-weight:600}
.tasa-check input{margin-right:6px}
.tasa-submit-row{display:flex;align-items:center;gap:14px;margin-top:18px}
.tasa-btn{display:inline-block;background:#2563eb;color:#fff;border:0;border-radius:8px;padding:11px 20px;font-size:15px;cursor:pointer;font-family:inherit}
.tasa-btn:hover{background:#1d4ed8}
.tasa-saved-flag{color:#16a34a;font-size:14px;font-weight:600}
.tasa-approve-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px 0;border-bottom:1px solid #eee}
.tasa-approve-meta{flex:1 1 100%;margin-bottom:4px}
.tasa-approve-row input[type=text]{flex:1;min-width:160px;padding:8px;border:1px solid #d1d5db;border-radius:6px}
.tasa-approve{background:#16a34a}.tasa-approve:hover{background:#15803d}
.tasa-reject{background:#dc2626}.tasa-reject:hover{background:#b91c1c}
@media(max-width:640px){.tasa-stats{grid-template-columns:repeat(2,1fr)}.tasa-day{font-size:12px;padding:4px 5px}}
