.cal-summary{display:flex;flex-wrap:wrap;gap:12px 28px;padding:12px 16px;margin:14px 0;background:#edf3f0;border:1px solid #d8e4dd;border-radius:8px;font-size:12px}.cal-summary strong{font-size:20px;margin-right:5px;font-variant-numeric:tabular-nums}.cal-summary-note{margin-left:auto;align-self:center;color:#5a7068}.calendar-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(260px,1fr);gap:16px}.cal-panel{background:#fff;border:1px solid #d8e2dc;border-radius:9px;min-width:0;overflow:hidden}.cal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #e0e7e2}.cal-head h2{font-size:16px;margin:0;letter-spacing:-.2px}.cal-head>div{display:flex;gap:6px}.cal-head button{padding:6px 10px;min-height:32px;font-size:12px}.cal-head>span{font-size:12px;color:#62766d}.cal-legend{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:12px 16px;font-size:11px;color:#436c5c}.cal-legend>span:nth-child(2){color:#9b651e}.cal-legend label{display:flex;align-items:center;gap:5px;margin-left:auto}.cal-legend input{width:15px;height:15px;min-height:0;margin:0}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));padding:0 12px 12px;gap:3px}.cal-weekday{text-align:center;padding:6px 0;font-size:11px;color:#667970}.cal-day{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;text-align:left;min-width:0;min-height:60px;padding:7px 5px;background:#fafcfb;border:1px solid #edf1ee;border-radius:4px;color:#203e32;box-shadow:none}.cal-day:hover{background:#eaf2ee}.cal-outside{opacity:.45}.cal-number{font-size:12px;line-height:18px;font-variant-numeric:tabular-nums}.cal-today .cal-number{font-weight:700;color:#0b7054;text-decoration:underline;text-underline-offset:4px}.cal-selected{border:2px solid #285e49;padding:6px 4px;background:#eaf3ee}.cal-chip{display:block;margin-top:5px;padding:2px 3px;background:#fff2da;color:#79511a;border-radius:3px;font-size:10px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-official{background:#deeee4;color:#285b43}.cal-done{text-decoration:line-through;opacity:.6}.cal-dots{display:none}.cal-more{font-size:10px;margin-top:4px;color:#6c766e}.cal-foot{font-size:11px;color:#667970;padding:0 16px 12px;margin:0;line-height:1.6}.cal-event-list{max-height:630px;overflow:auto}.cal-event{padding:15px 16px;border-bottom:1px solid #e2e8e4;border-left:3px solid #bd8a3f}.cal-event-official{border-left-color:#39775c}.cal-event:last-child{border-bottom:0}.cal-event small{font-size:10px;color:#667970}.cal-event h3{font-size:14px;line-height:1.4;margin:7px 0}.cal-event p,.cal-body p{font-size:12px;line-height:1.6;margin:7px 0 12px}.cal-event button,.cal-event a{font-size:12px}.cal-event button{padding:6px 9px}.cal-empty{padding:20px;font-size:12px;color:#667970;line-height:1.6}.cal-bottom{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.cal-body{padding:4px 16px 12px}.cal-body strong{font-weight:600}.cal-undated{display:flex;flex-direction:column;gap:5px;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid #e3e9e5;border-radius:0;padding:12px 0;font-size:12px}.cal-undated span{font-size:11px;color:#667970}.dash-planning-status{padding:8px 10px;margin-bottom:8px;background:#edf3ef;border-radius:4px}.dash-planning-status strong,.dash-planning-status span{display:block}.dash-planning-status span{font-size:10px;margin-top:5px;color:#5a7068}.calendar-layout button:focus-visible,.cal-bottom button:focus-visible{outline:3px solid #b68b3d;outline-offset:2px}
@media(max-width:1100px){.calendar-layout{grid-template-columns:1fr}.cal-event-list{max-height:360px}.cal-day{min-height:56px}.cal-bottom{grid-template-columns:1fr}}
@media(max-width:600px){.cal-summary{gap:10px 16px}.cal-summary-note{margin-left:0;width:100%}.cal-summary strong{font-size:18px}.cal-grid{padding:0 8px 8px;gap:2px}.cal-day{min-height:54px;padding:5px}.cal-selected{padding:4px}.cal-chip,.cal-more{display:none}.cal-dots{display:block;font-size:9px;margin-top:8px;letter-spacing:1px}.cal-head{padding:12px}.cal-head button{min-height:44px;min-width:40px}.cal-head h2{font-size:15px}.cal-legend{padding:10px 12px;gap:9px}.cal-legend label{width:100%;margin-left:0}.cal-event button{min-height:44px}.cal-summary-note{font-size:11px}}
