.sidebar .pickup-launch { margin-top:auto; padding:20px 0 16px; }
.sidebar .pickup-launch + .user-card { margin-top:0; }
.pickup-sidebar-button { display:flex; align-items:center; gap:10px; width:100%; border:1px solid #ffffff30; border-radius:10px; padding:12px 14px; background:#ffffff09; color:#e4eee8; text-align:left; font-weight:600; }
.pickup-sidebar-button:hover { background:#ffffff18; }
.pickup-sidebar-button .ui-icon { margin:0; }
.pickup-dialog,.pickup-editor { width:min(760px,calc(100% - 32px)); max-height:90vh; max-height:90dvh; overflow:auto; border:1px solid var(--line); border-radius:18px; background:var(--paper); color:var(--ink); padding:24px; box-shadow:0 24px 80px #102c2840; font-size:14px; }
.pickup-editor { width:min(440px,calc(100% - 32px)); }
.pickup-dialog::backdrop,.pickup-editor::backdrop { background:#102c2870; }
.pickup-dialog button,.pickup-editor button { min-height:40px; border:1px solid var(--line); border-radius:9px; padding:9px 13px; background:white; color:var(--ink); font-size:14px; font-weight:600; }
.pickup-dialog button:hover,.pickup-editor button:hover { background:#edf3ef; }
.pickup-dialog button.primary,.pickup-editor button.primary { background:var(--forest); color:white; border-color:var(--forest); box-shadow:none; }
.pickup-dialog button.primary:hover,.pickup-editor button.primary:hover { background:var(--forest-2); }
.pickup-dialog button:disabled,.pickup-editor button:disabled { opacity:.45; cursor:not-allowed; }
.pickup-dialog button:focus-visible,.pickup-editor button:focus-visible,.pickup-sidebar-button:focus-visible { outline:3px solid #74a08f; outline-offset:3px; }
.pickup-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.pickup-heading h2 { display:flex; align-items:center; gap:10px; margin:0; font-size:23px; }
.pickup-heading h2 .ui-icon { margin:0; width:24px; height:24px; color:var(--forest-2); }
.pickup-dialog .pickup-close { width:36px; min-height:36px; padding:0; font-size:24px; line-height:1; background:transparent; border-color:transparent; color:var(--muted); }
.pickup-summary { display:flex; align-items:center; justify-content:space-between; gap:16px; background:#edf3ef; border-radius:12px; padding:20px; margin:20px 0; }
.pickup-summary span { font-size:14px; font-weight:600; color:#425b50; }
.pickup-summary .pickup-period { margin-left:8px; font-weight:400; font-size:12px; color:var(--muted); }
.pickup-summary strong { display:block; font-size:32px; line-height:1.3; margin-top:6px; font-variant-numeric:tabular-nums; }
.pickup-review-badge { color:#856022; border:1px solid #e6d8ba; border-radius:7px; padding:6px 9px; white-space:nowrap; background:#fff9ec; }
.pickup-message { color:var(--forest); background:#edf3ef; border-radius:8px; padding:10px 12px; line-height:1.6; overflow-wrap:anywhere; }
.pickup-message:empty { display:none; }
.pickup-toolbar { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:16px 0 8px; }
.pickup-toolbar label,.pickup-select { display:flex; align-items:center; gap:9px; }
.pickup-toolbar label { font-weight:400; }
.pickup-dialog input[type=checkbox] { width:18px; height:18px; margin:0; flex-shrink:0; accent-color:var(--forest); }
.pickup-day { display:grid; grid-template-columns:140px minmax(0,1fr) 130px; gap:14px; padding:16px 0; border-bottom:1px solid var(--line); align-items:center; }
.pickup-day label { min-width:0; }
.pickup-day:has([data-select]:checked) { background:#f0f5f1; }
.pickup-day small,.pickup-history small { display:block; color:var(--muted); line-height:1.6; margin-top:4px; font-size:12px; }
.pickup-day .error { display:block; margin-top:4px; font-size:12px; }
.pickup-day input[data-amount] { text-align:right; font-variant-numeric:tabular-nums; }
.pickup-empty { display:grid; justify-items:center; gap:12px; padding:36px 12px; color:var(--muted); }
.pickup-empty .ui-icon { width:30px; height:30px; margin:0; color:#89a095; }
.pickup-empty strong { font-size:14px; font-weight:500; }
.pickup-confirm { display:grid; grid-template-columns:minmax(0,1fr) 210px; gap:16px; margin-top:22px; padding:18px; border:1px solid var(--line); border-radius:12px; background:white; }
.pickup-confirm[hidden] { display:none; }
.pickup-confirm>label,.pickup-editor form>label { display:grid; align-content:start; gap:8px; min-width:0; font-size:12px; }
.pickup-confirm input[name=code] { letter-spacing:.2em; }
.pickup-confirm input::placeholder { letter-spacing:normal; font-size:13px; color:#89948e; }
.pickup-confirm textarea { resize:vertical; min-height:74px; }
.pickup-selected-total { grid-column:1/-1; font-size:18px; }
.pickup-confirm button { grid-column:1/-1; justify-self:end; }
.pickup-history,.pickup-settings { border-top:1px solid var(--line); margin-top:18px; padding-top:16px; }
.pickup-history summary,.pickup-settings summary { font-size:14px; font-weight:600; cursor:pointer; color:#42594e; padding:4px 0; }
.pickup-history article { padding:16px 0; border-bottom:1px solid var(--line); overflow-wrap:anywhere; }
.pickup-dialog p,.pickup-editor p { line-height:1.6; }
.pickup-history p,.pickup-settings p { color:var(--muted); font-size:13px; }
.pickup-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin:12px 0; }
.pickup-settings .pickup-actions { justify-content:space-between; padding:10px 0; border-bottom:1px solid var(--line); }
.pickup-editor form { display:grid; gap:16px; }
.pickup-editor h2 { margin:0 0 6px; font-size:21px; }
.pickup-editor .pickup-actions { justify-content:flex-end; margin:0; }
.pickup-editor [role=status] { color:var(--danger); margin:0; }
.pickup-editor [role=status]:empty { display:none; }
@media(max-width:900px) {
  .sidebar .pickup-launch { margin:0; padding:0; flex:0 0 40px; }
  .pickup-sidebar-button { width:40px; height:40px; padding:9px; justify-content:center; }
  .pickup-sidebar-button span { display:none; }
}
@media(max-width:620px) {
  .pickup-dialog,.pickup-editor { padding:18px; width:calc(100% - 24px); border-radius:14px; }
  .pickup-heading { padding-bottom:14px; }
  .pickup-heading h2 { font-size:21px; }
  .pickup-summary { padding:16px; gap:10px; flex-wrap:wrap; margin:16px 0; }
  .pickup-summary strong { font-size:28px; }
  .pickup-day { grid-template-columns:minmax(0,1fr) 110px; gap:10px; }
  .pickup-select { grid-column:1/-1; }
  .pickup-toolbar { gap:8px; }
  .pickup-toolbar label { font-size:12px; }
  .pickup-toolbar button { padding:8px; font-size:12px; white-space:nowrap; }
  .pickup-toolbar .ui-icon { width:16px; height:16px; margin-right:4px; }
  .pickup-confirm { grid-template-columns:1fr; padding:14px; gap:14px; }
  .pickup-confirm button { width:100%; }
}
