:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#202534;background:#f7f8fb;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-height:100vh;padding:env(safe-area-inset-top) 14px env(safe-area-inset-bottom)}
.app-shell{max-width:560px;margin:0 auto;padding:22px 0 34px}.topbar{display:flex;align-items:center;justify-content:space-between;margin:6px 2px 22px}
h1{font-size:30px;letter-spacing:-.8px;margin:3px 0 0}h2{font-size:20px;margin:0}h3{font-size:18px;margin:5px 0 0}
.eyebrow{font-size:10px;letter-spacing:1.4px;font-weight:750;color:#778096;margin:0}
.panel{background:#fff;border:1px solid #e9ebf1;border-radius:20px;padding:18px;box-shadow:0 5px 22px #25304b08}
.muted{color:#788196}.small{font-size:12px}.hidden{display:none!important}
.auth-panel p{line-height:1.5}.auth-panel form{display:grid;gap:14px;margin-top:20px}
label{display:grid;gap:7px;font-size:13px;font-weight:650;color:#485064}
input,select{width:100%;border:1px solid #dfe3ec;border-radius:12px;padding:13px 12px;background:#fff;color:#202534;font:inherit;font-size:15px}
button{font:inherit;cursor:pointer;border:0}.primary,.secondary{border-radius:12px;padding:12px 16px;font-weight:700}.primary{background:#263d68;color:white}.secondary{background:#eef1f7;color:#34415b}
.auth-actions{display:flex;gap:10px}.auth-actions button{flex:1}.text-button{background:transparent;color:#53617d;font-weight:650}
.message{font-size:13px;min-height:18px;margin:10px 0 0;color:#58647b}.message.error{color:#b42318}.message.success{color:#18794e}
.month-toolbar{display:flex;align-items:center;justify-content:space-between;margin:0 4px 13px}.month-toolbar h2{font-size:19px}
.icon-button{width:38px;height:38px;border-radius:12px;background:#fff;border:1px solid #e8eaf0;font-size:25px;color:#485675}
.calendar-panel{padding:14px 10px}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.weekdays{margin-bottom:8px}.weekdays span{text-align:center;font-size:11px;color:#9299a8;font-weight:700;padding:5px 0}
.day{min-height:51px;border-radius:12px;background:#f7f8fb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:2px solid transparent;color:#30394d}
.day .num{font-size:14px;font-weight:650}.day .day-status{width:6px;height:6px;border-radius:50%;background:transparent}
.day.empty{background:transparent}.day.today .num{text-decoration:underline;text-underline-offset:3px}
.day.selected{border-color:#263d68}.day.office{background:#e6efff}.day.wfh{background:#e5f5eb}.day.leave{background:#fff3d8}.day.holiday{background:#f0eaff}
.day.office .day-status{background:#3976d8}.day.wfh .day-status{background:#2c9b61}.day.leave .day-status{background:#d69a24}.day.holiday .day-status{background:#8863c7}
.legend{display:flex;flex-wrap:wrap;gap:12px;margin:15px 5px 2px;color:#667086;font-size:11px}.legend span{display:flex;align-items:center;gap:5px}.dot{width:7px;height:7px;border-radius:50%}.dot.office{background:#3976d8}.dot.wfh{background:#2c9b61}.dot.leave{background:#d69a24}.dot.holiday{background:#8863c7}
.editor{margin-top:13px;display:grid;gap:14px}.status-label{font-size:12px}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:13px}
.summary-card{background:#fff;border:1px solid #e9ebf1;border-radius:15px;padding:12px 8px;display:grid;gap:4px}.summary-card strong{font-size:23px}.summary-card span{font-size:11px;color:#747e91}
.office-card strong{color:#3976d8}.wfh-card strong{color:#2c9b61}.leave-card strong{color:#c28b20}.holiday-card strong{color:#8863c7}
.footer-actions{display:flex;align-items:center;justify-content:space-between;margin-top:15px}.privacy-note{font-size:11px;line-height:1.5;color:#9299a8;margin:13px 3px}
@media(min-width:500px){.day{min-height:60px}.calendar-panel{padding:18px}}
