/*

 */

/* Keep critical controls usable on touch devices and respect text zoom. */
button, input[type="submit"], input[type="file"], select, summary { min-height: 44px; }
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), textarea, select { font-size: 16px; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 3px solid #245e54; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; } }
.itinerary-form input:not([type="hidden"]):not([type="submit"]):not([type="file"]), .itinerary-form textarea, .itinerary-form select { min-height: 44px; padding: 10px 12px; border: 1px solid #9ca3af; border-radius: 8px; background: white; }

/* PackMin's 16-bit-era skin: opaque colour plates, stepped bevels, and
   pixel window frames. Body text and native controls stay easy to read. */
.packmin-arcade {
  --pm-paper: #e9e1cb;
  --pm-ink: #27213d;
  --pm-panel: #fff7df;
  --pm-teal: #23645b;
  --pm-orange: #b75432;
  --pm-blue: #3d638e;
  --pm-green: #356846;
  --pm-gold: #d4a348;
  --pm-shadow: #9887a6;
  --pm-highlight: #fffbe9;
  background: var(--pm-paper);
  color: var(--pm-ink);
}
.packmin-arcade .bg-gray-50 { background-color: var(--pm-paper); }
.packmin-arcade .bg-white { background-color: var(--pm-panel); }
.packmin-arcade .text-gray-900, .packmin-arcade .text-gray-800 { color: var(--pm-ink); }
.packmin-arcade .text-gray-600, .packmin-arcade .text-gray-500 { color: #574e61; }
.packmin-arcade h1, .packmin-arcade h2, .packmin-arcade summary, .packmin-arcade legend {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-weight: 800;
  letter-spacing: .025em;
}
.packmin-arcade h1 { text-shadow: 2px 2px 0 #d6c6a7; }
.packmin-arcade .rounded-lg, .packmin-arcade .rounded-md, .packmin-arcade .rounded-xl { border-radius: 2px; }
.packmin-arcade main .bg-white.border,
.packmin-arcade main .bg-white.shadow,
.packmin-arcade main .bg-white.shadow-sm,
.packmin-arcade main fieldset {
  border: 2px solid var(--pm-ink);
  box-shadow: inset 2px 2px 0 var(--pm-highlight), inset -2px -2px 0 #c6b998, 4px 4px 0 var(--pm-shadow);
}
.packmin-arcade main .bg-amber-50 { background: #f4e3b4; border: 2px solid #6b4d27; box-shadow: inset 2px 2px 0 #fff4ca, 4px 4px 0 #b49867; }
.packmin-arcade .bg-blue-600 { background-color: var(--pm-teal); }
.packmin-arcade .bg-gray-900 { background-color: var(--pm-ink); }
.packmin-arcade button:not(.leaflet-control-zoom-in):not(.leaflet-control-zoom-out),
.packmin-arcade input[type="submit"],
.packmin-arcade a.bg-blue-600,
.packmin-arcade a.bg-gray-900 {
  min-width: 44px;
  border-radius: 2px;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-weight: 700;
}
.packmin-arcade input[type="submit"], .packmin-arcade a.bg-blue-600, .packmin-arcade a.bg-gray-900 {
  border: 2px solid var(--pm-ink);
  box-shadow: inset 2px 2px 0 #79a69a, inset -2px -2px 0 #163e3a, 3px 3px 0 var(--pm-ink);
}
.packmin-arcade input[type="submit"]:active, .packmin-arcade a.bg-blue-600:active, .packmin-arcade a.bg-gray-900:active { transform: translate(2px, 2px); box-shadow: inset 2px 2px 0 #163e3a; }
.packmin-arcade .itinerary-form input:not([type="hidden"]):not([type="submit"]):not([type="file"]),
.packmin-arcade .itinerary-form textarea, .packmin-arcade .itinerary-form select {
  border: 2px solid var(--pm-ink);
  border-radius: 2px;
  background: var(--pm-highlight);
  box-shadow: inset 2px 2px 0 #c6b998;
}
.packmin-arcade .arcade-nav { background: var(--pm-ink); border-bottom: 4px solid var(--pm-gold); box-shadow: 0 3px 0 var(--pm-shadow); }
.packmin-arcade .arcade-nav a, .packmin-arcade .arcade-nav summary, .packmin-arcade .arcade-nav .text-gray-900 { color: var(--pm-panel); }
.packmin-arcade .arcade-nav a { min-width: 44px; min-height: 44px; }
.packmin-arcade .arcade-nav details > div { background: var(--pm-panel); border: 2px solid var(--pm-ink); box-shadow: 4px 4px 0 var(--pm-shadow); }
.packmin-arcade .arcade-nav details > div a { color: var(--pm-ink); }
.packmin-arcade .arcade-nav .bg-blue-100 { background: var(--pm-teal); }
.packmin-arcade .arcade-nav a:focus-visible, .packmin-arcade .arcade-nav summary:focus-visible { outline-color: var(--pm-gold); }
.packmin-arcade footer { background: var(--pm-panel); border-top: 2px solid var(--pm-ink); }

/* Lively companion + arcade adventure. All illustrated assets/sprite factories
   are original PackMin art; these are composition and motion wrappers only. */
.pm-expedition { display:grid; grid-template-columns:minmax(0,1fr) 224px; gap:24px; align-items:center; margin:24px 0; padding:24px; color:var(--pm-panel); background:var(--pm-ink); border:3px solid var(--pm-ink); box-shadow:inset 3px 3px 0 #625277,inset -3px -3px 0 #171426,5px 5px 0 var(--pm-shadow); }
.pm-expedition h2 { font-size:24px; line-height:1.3; margin:8px 0 12px; letter-spacing:0; text-wrap:balance; }
.pm-kicker { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:12px; font-weight:800; letter-spacing:.08em; }
.pm-expedition .pm-kicker { color:var(--pm-gold); }
.pm-expedition-description { line-height:1.55; }
.pm-stage-label { display:flex; align-items:center; gap:8px; font-size:13px; margin-top:14px; color:#f0dfbd; }
.pm-expedition-art { position:relative; isolation:isolate; min-height:232px; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.pm-scene-window { position:absolute; z-index:-1; left:5px; top:6px; width:65px; height:90px; display:grid; grid-template-columns:repeat(3,1fr); gap:4px; padding:5px; background:#9d7b49; }
.pm-scene-window span { background:linear-gradient(#74668f 0 66%,#c1a681 66% 80%,#574760 80%); }
.pm-scene-suitcase { width:200px; height:auto; object-fit:contain; image-rendering:pixelated; }
.pm-garment-shelf { display:flex; gap:12px; align-items:center; padding:8px 14px 4px; border-top:3px solid #7c658f; background:#3b324c; }
.pm-garment-shelf .wardrobe-glyph { width:48px; height:48px; }
.pm-expedition-compact { grid-template-columns:minmax(0,1fr) 176px; padding:20px; gap:18px; }
.pm-expedition-compact .pm-expedition-art { min-height:175px; }
.pm-expedition-compact .pm-scene-suitcase { width:144px; }
.pm-expedition-compact .pm-garment-shelf { gap:6px; padding:6px; }
.pm-expedition-compact .pm-garment-shelf .wardrobe-glyph { width:48px; height:48px; }
.pm-expedition-compact .pm-scene-window { width:48px; height:62px; }
.pm-reading-sweep { position:absolute; top:12%; bottom:26%; width:3px; background:#efcb78; box-shadow:8px 0 0 #efcb7830; animation:pm-source-read 2.8s ease-in-out infinite alternate; }
@keyframes pm-source-read { from { transform:translateX(-64px); } to { transform:translateX(64px); } }
[data-motion-paused="true"] .pm-reading-sweep { animation:none; display:none; }
.pm-proposal-card { display:flex; gap:16px; align-items:flex-start; padding:20px 0; border-top:1px solid #c3b590; }
.pm-quantity-art { flex:0 0 64px; width:64px; min-height:64px; display:flex; align-items:center; justify-content:center; background:#e5e7d1; box-shadow:inset 2px 2px 0 var(--pm-highlight),2px 2px 0 #c3b590; }
.pm-quantity-art .wardrobe-glyph { width:48px; height:48px; }
.pm-proposal-copy { min-width:0; flex:1; overflow-wrap:anywhere; }
.pm-proposal-copy .pm-kicker { color:var(--pm-teal); margin-bottom:5px; }
.pm-quantity-comparison { display:flex; flex-wrap:wrap; align-items:center; gap:6px 16px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:28px; line-height:1.4; margin:8px 0; }
.pm-quantity-comparison strong { color:var(--pm-teal); }
.pm-quantity-comparison [aria-label="to"] { font-size:18px; }
.pm-task-heading-art { display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.pm-task-heading-art img { width:96px; height:auto; object-fit:contain; image-rendering:pixelated; }
.pm-task-heading-art .pixel-icon { width:24px; height:24px; }
.pm-task-item { display:flex; align-items:center; gap:12px; min-width:0; }
.pm-task-item > span { flex:0 0 48px; }
.pm-task-item p { overflow-wrap:anywhere; }
.pm-bag-receipt { display:flex; align-items:center; gap:16px; background:#e4ead3; border:2px solid var(--pm-teal); padding:16px; box-shadow:3px 3px 0 var(--pm-shadow); margin:20px 0; }
.pm-bag-receipt h2 { font-size:18px; margin-bottom:4px; }
.pm-receipt-art { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.pm-receipt-art > .pixel-icon { width:24px; height:24px; }
.pm-receipt-art .wardrobe-glyph { width:48px; height:48px; }
.pm-volume-meter { display:block; width:100%; height:16px; margin:16px 0 8px; border:0; background:#ded2b5; accent-color:var(--pm-teal); }
.pm-volume-meter::-webkit-progress-bar { background:#ded2b5; }
.pm-volume-meter::-webkit-progress-value { background:repeating-linear-gradient(90deg,var(--pm-teal) 0 12px,#ded2b5 12px 16px); }
.pm-volume-meter::-moz-progress-bar { background:repeating-linear-gradient(90deg,var(--pm-teal) 0 12px,#ded2b5 12px 16px); }
@media(max-width:600px) { .pm-expedition,.pm-expedition-compact { grid-template-columns:minmax(0,1fr) 120px; padding:18px; gap:12px; } .pm-expedition h2 { font-size:20px; } .pm-expedition-art,.pm-expedition-compact .pm-expedition-art { min-height:155px; } .pm-scene-suitcase,.pm-expedition-compact .pm-scene-suitcase { width:120px; } .pm-garment-shelf,.pm-expedition-compact .pm-garment-shelf { gap:4px; padding:6px 4px; } .pm-garment-shelf .wardrobe-glyph,.pm-expedition-compact .pm-garment-shelf .wardrobe-glyph { width:32px; height:32px; } .pm-scene-window { width:44px; height:62px; } .pm-bag-receipt { flex-wrap:wrap; } }
@media(max-width:380px) { .pm-expedition,.pm-expedition-compact { grid-template-columns:1fr; } .pm-expedition-art,.pm-expedition-compact .pm-expedition-art { width:200px; margin:auto; min-height:190px; } .pm-scene-suitcase,.pm-expedition-compact .pm-scene-suitcase { width:144px; } .pm-proposal-card { gap:12px; } .pm-quantity-art { flex-basis:48px; width:48px; } }
@media(prefers-reduced-motion:reduce) { .pm-reading-sweep { animation:none; display:none; } .packmin-arcade input[type="submit"]:active,.packmin-arcade a.bg-blue-600:active,.packmin-arcade a.bg-gray-900:active { transform:none; } }

/* Compact work feedback, never a decorative hero or an AI percentage. */
.pm-trip-map { height:240px; width:100%; background:#e9e3d5; }
.pm-composer .pm-file-input { min-width:0; max-width:100%; font-size:14px; }
.pm-date-range { display:grid; grid-template-columns:minmax(0,1fr); gap:8px; }
.pm-date-range > div, .pm-date-range input { min-width:0; max-width:100%; }
@media(min-width:640px) { .pm-date-range { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.pm-primary-action { padding:6px 0; background:var(--pm-panel); }
.pm-work-status { display:flex; gap:12px; align-items:center; padding:12px; border:2px solid var(--pm-ink); background:var(--pm-panel); }
.pm-work-art { display:flex; align-items:center; position:relative; width:90px; height:48px; flex:0 0 90px; overflow:hidden; }
.pm-work-suitcase { width:48px; height:48px; object-fit:contain; image-rendering:pixelated; margin-left:auto; }
.pm-work-garment { position:absolute; left:0; animation:pm-work-feed 1.6s steps(8,end) infinite; }
.pm-nav-activity { position:relative; width:28px; height:28px; margin-left:6px; overflow:hidden; }
.pm-nav-activity .pm-work-garment { animation-name:pm-nav-feed; }
@keyframes pm-nav-feed { from { transform:translateX(28px); opacity:1; } to { transform:translateX(-28px); opacity:0; } }
@keyframes pm-work-feed { from { transform:translateX(0); opacity:1; } 70% { opacity:1; } to { transform:translateX(56px); opacity:0; } }
[data-motion-paused="true"] .pm-work-garment { animation:none; }
@media(prefers-reduced-motion:reduce) { .pm-work-garment { animation:none; } }
