/* Stack World カレンダーモジュール（#screen-calendar 内に隔離・StackLife軽テーマ） */
#screen-calendar{ padding:12px; }
#screen-calendar .cal-bar{ display:flex;align-items:center;gap:8px;margin-bottom:10px; }
#screen-calendar .cal-title{ font-size:16px;font-weight:700;color:#1f2937;flex:1;text-align:center; }
#screen-calendar .cal-nav{ width:34px;height:34px;border:1px solid #e5e7eb;background:#fff;border-radius:8px;font-size:18px;cursor:pointer;color:#374151;line-height:1; }
#screen-calendar .cal-today{ padding:7px 12px;border:1px solid #e5e7eb;background:#fff;border-radius:8px;font-size:12px;cursor:pointer;color:#2563eb; }
#screen-calendar .cal-dow{ display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:2px; }
#screen-calendar .cal-dow>div{ text-align:center;font-size:11px;color:#9ca3af;padding:4px 0; }
#screen-calendar .cal-sat{ color:#2563eb; }
#screen-calendar .cal-sun{ color:#dc2626; }
#screen-calendar .cal-grid{ display:grid;grid-template-columns:repeat(7,1fr);gap:2px; }
#screen-calendar .cal-cell{ min-height:76px;background:#fff;border:1px solid #f1f5f9;border-radius:6px;padding:3px;cursor:pointer;overflow:hidden;display:flex;flex-direction:column;gap:2px; }
#screen-calendar .cal-out{ background:#f9fafb; }
#screen-calendar .cal-out .cal-dnum{ color:#cbd5e1; }
#screen-calendar .cal-today-cell{ border-color:#2563eb;box-shadow:inset 0 0 0 1px #2563eb; }
#screen-calendar .cal-dnum{ font-size:12px;color:#374151;font-weight:600; }
#screen-calendar .cal-chip{ font-size:9.5px;line-height:1.3;padding:1px 4px;border-left:3px solid #2563eb;background:#f8fafc;border-radius:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
#screen-calendar .cal-more{ font-size:9px;color:#9ca3af;padding-left:3px; }
#screen-calendar .cal-legend{ display:flex;gap:16px;justify-content:center;margin-top:14px; }
#screen-calendar .cal-lg{ font-size:11px;color:#6b7280;display:flex;align-items:center;gap:5px; }
#screen-calendar .cal-lg::before{ content:'';width:9px;height:9px;border-radius:50%;background:var(--c); }
#screen-calendar .cal-hint{ text-align:center;font-size:11px;color:#9ca3af;margin-top:8px; }

/* 予定 入力モーダル */
#screen-calendar .cal-modal{ position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:1500;display:none;align-items:flex-end;justify-content:center; }
#screen-calendar .cal-modal.open{ display:flex; }
#screen-calendar .cal-sheet{ background:#fff;width:100%;max-width:460px;border-radius:16px 16px 0 0;padding:18px 18px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -8px 30px rgba(0,0,0,.18);animation:cal-up .2s ease; }
@media(min-width:560px){ #screen-calendar .cal-modal{ align-items:center; } #screen-calendar .cal-sheet{ border-radius:16px; } }
@keyframes cal-up{ from{transform:translateY(24px);opacity:.6} to{transform:none;opacity:1} }
#screen-calendar .cal-m-head{ font-size:15px;font-weight:700;color:#1f2937;margin-bottom:14px; }
#screen-calendar .cal-field{ margin-bottom:12px; }
#screen-calendar .cal-field label{ display:block;font-size:11px;color:#6b7280;margin-bottom:4px; }
#screen-calendar .cal-input{ width:100%;border:1px solid #e5e7eb;border-radius:8px;padding:10px 12px;font-size:14px;color:#1f2937;font-family:inherit;background:#fff; }
#screen-calendar .cal-input:focus{ outline:none;border-color:#2563eb; }
#screen-calendar .cal-row{ display:flex;gap:10px;align-items:center; }
#screen-calendar .cal-check{ display:flex;align-items:center;gap:7px;font-size:13px;color:#374151;cursor:pointer; }
#screen-calendar .cal-check input{ width:17px;height:17px;accent-color:#2563eb; }
#screen-calendar .cal-foot{ display:flex;gap:8px;margin-top:6px; }
#screen-calendar .cal-btn{ flex:1;padding:12px;border-radius:10px;font-size:14px;font-weight:700;border:1px solid #e5e7eb;background:#fff;color:#374151;cursor:pointer;font-family:inherit; }
#screen-calendar .cal-btn.primary{ background:#2563eb;border-color:#2563eb;color:#fff; }
#screen-calendar .cal-btn.danger{ flex:0 0 auto;color:#dc2626;border-color:#fecaca;background:#fef2f2; }

/* ビュー切替（月/週/日） */
#screen-calendar .cal-views{ display:flex;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;margin-bottom:10px;width:-moz-fit-content;width:fit-content; }
#screen-calendar .cal-vbtn{ padding:7px 18px;font-size:12px;border:none;background:#fff;color:#6b7280;cursor:pointer;border-right:1px solid #e5e7eb;font-family:inherit; }
#screen-calendar .cal-vbtn:last-child{ border-right:none; }
#screen-calendar .cal-vbtn.on{ background:#2563eb;color:#fff; }
/* 週アジェンダ */
#screen-calendar .cal-week{ display:flex;flex-direction:column;gap:8px; }
#screen-calendar .cal-wday{ border:1px solid #f1f5f9;border-radius:10px;overflow:hidden; }
#screen-calendar .cal-wtoday{ border-color:#2563eb; }
#screen-calendar .cal-wdhead{ display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#f8fafc;cursor:pointer; }
#screen-calendar .cal-wdname{ font-size:13px;font-weight:700;color:#374151; }
#screen-calendar .cal-wtoday .cal-wdname{ color:#2563eb; }
#screen-calendar .cal-add{ border:1px solid #e5e7eb;background:#fff;color:#2563eb;border-radius:7px;font-size:13px;padding:3px 11px;cursor:pointer;font-family:inherit;line-height:1.2; }
#screen-calendar .cal-add.primary{ background:#2563eb;color:#fff;border-color:#2563eb;font-size:12px;font-weight:700;padding:7px 14px; }
#screen-calendar .cal-wlist{ padding:2px 10px 6px; }
#screen-calendar .cal-wempty{ padding:9px 12px;font-size:12px;color:#9ca3af; }
/* アジェンダ行（週/日共通） */
#screen-calendar .cal-erow{ display:flex;align-items:center;gap:9px;padding:8px 4px;border-top:1px solid #f3f4f6;cursor:pointer; }
#screen-calendar .cal-erow:first-child{ border-top:none; }
#screen-calendar .cal-edot{ width:9px;height:9px;border-radius:50%;flex-shrink:0; }
#screen-calendar .cal-etime{ font-size:11px;color:#9ca3af;width:42px;flex-shrink:0;text-align:right; }
#screen-calendar .cal-etitle{ font-size:13px;color:#1f2937;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
/* 日ビュー */
#screen-calendar .cal-dayhead{ display:flex;align-items:center;justify-content:space-between;font-size:15px;font-weight:700;color:#1f2937;margin-bottom:10px; }
#screen-calendar .cal-daylist{ border:1px solid #f1f5f9;border-radius:10px;padding:2px 12px; }

/* ホーム要約カード（#screen-home に表示） */
#screen-home .cal-summary{ background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:14px 16px;margin-bottom:14px; }
#screen-home .cal-shead{ display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:700;color:#1f2937;margin-bottom:6px; }
#screen-home .cal-sopen{ font-size:12px;color:#2563eb;background:none;border:none;cursor:pointer;font-family:inherit;font-weight:600; }
#screen-home .cal-srow{ display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid #f3f4f6; }
#screen-home .cal-srow:first-of-type{ border-top:none; }
#screen-home .cal-sdate{ font-size:11px;color:#6b7280;width:66px;flex-shrink:0; }
#screen-home .cal-sdot{ width:8px;height:8px;border-radius:50%;flex-shrink:0; }
#screen-home .cal-stitle{ font-size:13px;color:#1f2937;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
#screen-home .cal-sempty{ font-size:12px;color:#9ca3af;padding:6px 0; }

