.weekly-daybar{display:grid;grid-template-columns:32px minmax(0,1fr) 32px;gap:5px;align-items:center;margin:7px 0}
.weekly-upload-bar{display:flex;justify-content:flex-end;margin:5px 0}
.weekly-upload-bar button,.weekly-upload-form button{min-height:38px;border:1px solid var(--line);border-radius:8px;padding:5px 12px;background:var(--card);color:var(--accent);font:inherit;font-size:15px;cursor:pointer}
.weekly-upload-form{min-width:0;margin:6px 0;padding:10px;border:1px solid var(--line);border-radius:10px}
.weekly-upload-form[hidden]{display:none}
.weekly-upload-form legend{font-size:15px;font-weight:700}
.weekly-upload-target,.weekly-upload-actions{display:flex;gap:6px;margin:5px 0}
.weekly-upload-target button[aria-pressed="true"],#weeklyUploadSave{background:var(--accent);color:var(--accentText);font-weight:700}
.weekly-upload-form button:disabled,.weekly-upload-bar button:disabled{opacity:.5;cursor:default}
#weeklyUploadPreview{display:block;max-width:100%;width:auto;max-height:200px;margin:8px auto;object-fit:contain}
#weeklyUploadTargetLabel{font-size:14px;line-height:1.4}
.weekly-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
.weekly-daybar button{min-width:0;height:36px;padding:0 2px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--text);font:inherit;font-size:13px;cursor:pointer}
.weekly-daybar button[aria-pressed="true"]{background:var(--accent);color:var(--accentText);border-color:var(--accent);font-weight:800}
.weekly-daybar button.today:not([aria-pressed="true"]){border:2px solid var(--accent);font-weight:800}
.weekly-daybar button:disabled{opacity:.4;cursor:default}
.weekly-selected{font-size:13px;font-weight:700;color:var(--accent);margin:5px 0}
.weekly-tools{display:flex;justify-content:flex-end;gap:6px;margin:5px 0 8px;align-items:center}
.weekly-tools button{border:1px solid var(--line);background:var(--card);color:var(--accent);border-radius:7px;padding:6px 9px;font:inherit;font-size:11px;cursor:pointer}
.weekly-tools span{font-size:11px;color:var(--hint);flex:1}
.weekly-tools[hidden]{display:none}
.weekly-photo-stage{position:relative;display:block;width:100%;line-height:0}
.weekly-photo-stage img{display:block;width:100%;height:auto;border-radius:8px}
.weekly-photo-stage svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.weekly-photo-stage .weekly-highlight{fill:#159de512;stroke:#0078be;stroke-width:3;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 1px #fff)}
.weekly-photo-stage .weekly-fit-outline{fill:none;stroke:#d46000;stroke-width:2;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}
.weekly-fit-handle{position:absolute;width:28px;height:28px;margin:-14px;border:2px solid white;border-radius:50%;background:#d46000;touch-action:none;z-index:2;cursor:move;padding:0}
.weekly-photo-stage.adjusting{touch-action:pan-y}
.weekly-menu-viewer{padding:41px 8px 8px}
.weekly-menu-viewer .weekly-view-header{position:relative;max-height:none;overflow:visible;padding-right:2px}
.weekly-menu-viewer .weekly-view-scroll{overflow:auto;max-height:calc(94vh - 145px);overscroll-behavior:contain;scroll-behavior:auto}
.weekly-menu-viewer .weekly-photo-stage{flex:none;max-width:none}
.weekly-menu-viewer .weekly-photo-stage img{width:100%;max-width:none}
.weekly-menu-viewer .weekly-selected{line-height:1.4}
@media(max-width:360px){.weekly-daybar{gap:3px;grid-template-columns:27px minmax(0,1fr) 27px}.weekly-daybar button{font-size:12px}}
