:root{--ink:#1d2b3a;--muted:#66768a;--line:#dce5ed;--paper:#f5f8fb;--card:#fff;--primary:#0d6b68;--primary-soft:#e2f2ef;--weekend:#f1f4f7;--holiday:#fff0eb;--holiday-ink:#b74a39;--paid-leave:#f0eaff;--paid-leave-ink:#6b4aa1}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:Arial,Hiragino Kaku Gothic ProN,Yu Gothic,sans-serif}button,select{font:inherit}button,select:focus-visible,a:focus-visible{outline-offset:3px;outline:3px solid #f4b942}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}.page-shell{min-height:100vh;padding:32px 20px 64px}.hero-panel,.content-panel{width:min(1080px,100%);margin:0 auto}.hero-panel{color:#fff;background:linear-gradient(135deg,#123a52 0%,#0d6b68 100%);border-radius:28px 28px 0 0;padding:52px clamp(24px,6vw,76px) 46px}.eyebrow,.section-label{color:#8bd1c7;letter-spacing:.18em;margin:0 0 12px;font-size:.76rem;font-weight:700}.hero-panel h1{letter-spacing:.02em;margin:0;font-size:clamp(2rem,5vw,4rem)}.hero-description{color:#d7eceb;max-width:680px;margin:18px 0 0;font-size:1.05rem;line-height:1.8}.content-panel{background:var(--card);border-radius:0 0 28px 28px;padding:clamp(24px,5vw,56px);box-shadow:0 24px 60px #1934481a}.month-controls,.month-navigation,.calendar-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.month-controls h2,.calendar-heading h2{margin:0;font-size:clamp(1.35rem,3vw,2rem)}.select-group{gap:10px;display:flex}.select-group label{color:var(--muted);align-items:center;gap:8px;font-size:.9rem;font-weight:700;display:flex}select{border:1px solid var(--line);min-width:84px;color:var(--ink);background:#fff;border-radius:10px;padding:10px 12px}.month-navigation{justify-content:flex-end;margin:22px 0 28px}.month-navigation button{border:1px solid var(--line);color:var(--primary);background:#fff;border-radius:9px;padding:8px 12px;font-weight:700}.paid-leave-panel{background:#fbfaff;border:1px solid #d9d0ef;border-radius:16px;grid-template-columns:minmax(0,1fr) auto;gap:10px 24px;margin:0 0 28px;padding:22px;display:grid}.paid-leave-panel h2{margin:0;font-size:1.2rem}.paid-leave-panel p{color:var(--muted);margin:8px 0 0;font-size:.86rem;line-height:1.6}.paid-leave-form{align-self:center}.paid-leave-form>label{color:var(--muted);margin-bottom:7px;font-size:.82rem;font-weight:700;display:block}.paid-leave-input-row{gap:8px;display:flex}input[type=date]{border:1px solid var(--line);min-width:154px;color:var(--ink);font:inherit;background:#fff;border-radius:10px;padding:10px 11px}.paid-leave-input-row button{background:var(--paid-leave-ink);color:#fff;border:0;border-radius:10px;padding:10px 15px;font-weight:700}.paid-leave-list{flex-wrap:wrap;grid-column:1/-1;gap:8px;display:flex}.paid-leave-chip{background:var(--paid-leave);color:var(--paid-leave-ink);border-radius:999px;align-items:center;gap:8px;padding:6px 8px 6px 11px;font-size:.82rem;font-weight:700;display:inline-flex}.paid-leave-chip button{width:20px;height:20px;color:var(--paid-leave-ink);background:#6b4aa124;border:0;border-radius:50%;padding:0;line-height:1}.paid-leave-empty,.paid-leave-note{grid-column:1/-1}.paid-leave-empty{margin-bottom:0!important}.paid-leave-note{margin-bottom:0!important;font-size:.78rem!important}.summary-grid{grid-template-columns:1.35fr repeat(4,1fr);gap:14px;display:grid}.summary-card{border:1px solid var(--line);text-align:center;background:#fbfdfe;border-radius:16px;flex-direction:column;align-items:center;min-height:138px;padding:22px;display:flex}.summary-card-primary{background:var(--primary-soft)}.summary-card>span{min-height:2.8em;color:var(--muted);text-align:center;justify-content:center;align-items:center;line-height:1.4;display:flex}.summary-value small{color:var(--muted);font-size:.9rem}.summary-value{color:var(--primary);align-items:baseline;gap:5px;margin:18px 0 0;font-size:2.6rem;line-height:1;display:flex}.summary-value small{font-weight:400}.calendar-heading{align-items:baseline;margin:44px 0 18px}.calendar-heading p{color:var(--muted);margin:0;font-size:.9rem}.calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;display:grid}.weekday{color:var(--muted);text-align:center;padding:10px 4px;font-size:.82rem;font-weight:700}.weekday-0{color:#c05b51}.weekday-6{color:#4e7ea4}.calendar-cell{border:1px solid var(--line);background:var(--card);border-radius:11px;min-height:88px;padding:10px}.calendar-cell:not(.outside-month){cursor:pointer}.calendar-cell.weekend{background:var(--weekend)}.calendar-cell.holiday{background:var(--holiday);border-color:#f0c7bb}.calendar-cell.outside-month{opacity:.35}.day-number{font-size:1rem;font-weight:700;display:block}.day-status{color:var(--muted);text-align:center;margin-top:10px;font-size:.72rem;line-height:1.35;display:block}.holiday .day-status{color:var(--holiday-ink);font-weight:700}.calendar-cell.paid-leave{background:var(--paid-leave);border-color:#cfc0ed}.calendar-cell.paid-leave .day-status{color:var(--paid-leave-ink);font-weight:700}.legend{color:var(--muted);flex-wrap:wrap;gap:18px;margin-top:22px;font-size:.86rem;display:flex}.legend span{align-items:center;gap:7px;display:inline-flex}.legend-dot{border:1px solid var(--line);border-radius:50%;width:12px;height:12px}.business-dot{background:#fff}.weekend-dot{background:var(--weekend)}.holiday-dot{background:var(--holiday);border-color:#f0c7bb}.paid-leave-dot{background:var(--paid-leave);border-color:#cfc0ed}.data-note{color:var(--muted);margin:28px 0 0;font-size:.8rem;line-height:1.7}.data-note a{color:var(--primary);font-weight:700}@media (max-width:720px){.page-shell{padding:12px 10px 36px}.hero-panel{border-radius:20px 20px 0 0;padding:36px 24px 32px}.content-panel{border-radius:0 0 20px 20px;padding:24px 16px 34px}.month-controls{flex-direction:column;align-items:flex-start}.select-group{width:100%}.select-group label,.select-group select{flex:1}.paid-leave-panel{grid-template-columns:1fr}.paid-leave-form{width:100%}.paid-leave-input-row input{flex:1;min-width:0}.summary-grid{grid-template-columns:repeat(2,1fr)}.summary-card-primary{grid-column:span 2}.calendar-heading{flex-direction:column;align-items:flex-start;gap:8px}.calendar-cell{min-height:72px;padding:7px}.day-status{margin-top:7px;font-size:.63rem}}
