/* Music DNA Lab v1.9 — Goals / Living Atlas / collectible system.
   Intentionally inherits the existing editorial design and responsive shell. */
:root{--v19-olive:#77886d;--v19-parchment:#f0e7d7;--v19-clay:#be9873;--v19-dark:#35352f}
.v19-tabs{position:sticky;top:0;z-index:6;background:rgba(241,234,223,.94);backdrop-filter:blur(10px);padding:12px 0;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
.v19-tabs .chip{flex-shrink:0}
.v19-kpis,.v19-cardgrid,.v19-special-grid,.v19-reward-grid,.v19-country-grid{display:grid;gap:13px}
.v19-kpis{grid-template-columns:repeat(2,minmax(0,1fr));margin:15px 0 23px}
.v19-kpi{background:#e1e2d7;border-radius:16px;padding:20px 14px;display:flex;flex-direction:column;gap:12px;min-width:0;min-height:128px}
.v19-kpi small{font-size:11px;letter-spacing:.04em;line-height:1.4;color:#52574b}
.v19-kpi strong{font-weight:660;font-size:clamp(25px,6vw,37px);letter-spacing:-.05em;overflow-wrap:anywhere;color:#343b32}
.v19-cardgrid{grid-template-columns:1fr;margin:16px 0 25px}
.v19-goal-card{border-radius:16px;padding:20px;background:#ede8dd;border:1px solid rgba(79,69,53,.15);min-width:0;display:flex;flex-direction:column;gap:11px}
.v19-goal-card h3,.v19-form h3,.v19-trail h3{font-size:20px;margin:0;letter-spacing:-.03em}
.v19-goal-card p,.v19-form p{margin:0;line-height:1.55}
.v19-overline{font-size:10px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:#7e7567}
.v19-pill{border-radius:99px;padding:6px 9px;background:#d5d0c8;font-size:10px;text-transform:uppercase;letter-spacing:.07em;white-space:nowrap;color:#525044}
.v19-pill.is-earned{background:#cedbcc;color:#314838}
.v19-progress{height:8px;background:#c8c3b7;border-radius:99px;overflow:hidden;width:100%;margin:6px 0}
.v19-progress>span{display:block;height:100%;background:linear-gradient(90deg,#8a9675,#576f61);border-radius:99px;transition:width .22s ease}
.v19-goal-card .chiprow{margin-top:auto}
.v19-form{display:flex;flex-direction:column;gap:15px;margin-top:15px}
.v19-form label,.v19-select-label{display:flex;flex-direction:column;gap:7px;font-weight:600;font-size:12px;letter-spacing:.02em;color:#49483e}
.v19-form input:not([type="hidden"]),.v19-form textarea,.v19-form select,.v19-select-label select{font:inherit;letter-spacing:normal;width:100%;border:1px solid #aba99b;background:#f7f3e9;border-radius:11px;color:#272d27;padding:13px 12px;min-height:46px;box-sizing:border-box;outline-offset:3px}
.v19-form textarea{resize:vertical;min-height:77px;line-height:1.55}
.v19-form .btn{align-self:flex-start;min-height:44px}
.v19-home-goal{padding-top:16px;margin-top:10px;border-top:1px solid #bdb8ab}
.v19-home-goal b{font-size:13px}
.v19-hero-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0}
.v19-hero-summary>div{padding:18px 15px;background:#343a32;border-radius:15px;min-width:0;display:flex;flex-direction:column;gap:9px;color:#f5f1e6}
.v19-hero-summary>div:nth-child(2){background:#e0d3bd;color:#3b3833}
.v19-hero-summary small{font-size:10px;letter-spacing:.13em;font-weight:700}
.v19-hero-summary strong{font-size:40px;letter-spacing:-.06em}
.v19-hero-summary span{font-size:11px;opacity:.8;line-height:1.45}
.v19-select-label{margin:16px 0 0}
.v19-country-top{display:flex;justify-content:space-between;align-items:center;gap:16px;background:#eee4d4;border-radius:17px;padding:22px;margin:24px 0 17px}
.v19-country-top h2{font-size:clamp(25px,6vw,38px);letter-spacing:-.05em;margin:9px 0}
.v19-country-top p{font-size:12px;color:#6c6358;margin:0}
.v19-country-stamp{flex-shrink:0;width:100px;height:100px;border-radius:50%;border:3px double #ada9a0;display:flex;align-items:center;justify-content:center;flex-direction:column;transform:rotate(-7deg);color:#918b80}
.v19-country-stamp.earned{border-color:#65866f;color:#3f765b;background:#e0e7d8}
.v19-country-stamp span{font-size:36px;line-height:1.2}
.v19-country-stamp small{font-size:10px;font-weight:700;letter-spacing:.1em}
.v19-reward-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.v19-reward{padding:15px 10px;border-radius:14px;background:#ece8df;border:1px solid #d5d1c5;display:flex;flex-direction:column;gap:10px;min-width:0;min-height:153px}
.v19-reward.earned{border-color:#7f9c82;background:#d9e5d7}
.v19-reward-symbol{font-size:27px;color:#9c8874}
.v19-reward.earned .v19-reward-symbol{color:#547257}
.v19-reward b{font-size:12px}
.v19-reward small{color:#6d685d;line-height:1.4;font-size:11px}
.v19-suggestion,.v19-entry{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid rgba(97,86,73,.17)}
.v19-suggestion:last-child,.v19-entry:last-child{border-bottom:0}
.v19-suggestion b,.v19-entry b{font-size:13px}
.v19-suggestion p{margin:5px 0}
.v19-suggestion .chiprow{justify-content:flex-end;flex-wrap:wrap}
.v19-entry small{display:block;color:#7d766b;font-size:11px;line-height:1.4;margin-top:5px}
.v19-journal-entry{padding:15px 0;border-bottom:1px solid #d3c8b9}
.v19-journal-entry p{line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere}
.v19-country-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px}
.v19-country-tile{text-align:left;padding:16px 13px;border-radius:14px;border:1px solid #d4c9b6;background:#e9e0d2;color:#4a4339;display:flex;flex-direction:column;gap:9px;min-width:0;cursor:pointer}
.v19-country-tile.earned{background:#dde6d6;border-color:#8aa088}
.v19-country-tile span{font-size:24px}
.v19-country-tile b{font-size:13px;overflow-wrap:anywhere}
.v19-country-tile small{font-size:10px;color:#71695e}
.v19-special-grid{grid-template-columns:1fr;gap:12px;margin-top:13px}
.v19-special{display:flex;gap:14px;align-items:center;background:#eee8dd;border-radius:15px;border:1px solid #d5cbbd;padding:15px}
.v19-special.earned{background:#dfe6da;border-color:#9cae99}
.v19-special b{font-size:13px}
.v19-special p{line-height:1.45;margin:5px 0 0}
.v19-medal{width:46px;height:46px;flex-shrink:0;border-radius:50%;border:2px double #9d8e77;display:grid;place-items:center;font-size:23px;color:#8d7c64;background:#f4ebdb}
.v19-special.earned .v19-medal{color:#466a50;border-color:#5d7d66;background:#d6e5d6}
.v19-ledger-row{padding:13px 0;display:flex;gap:12px;align-items:flex-start;border-bottom:1px solid #dad2c7}
.v19-ledger-row:last-child{border-bottom:0}
.v19-ledger-row b{font-size:13px}
.v19-ledger-row p{line-height:1.5;margin:6px 0;overflow-wrap:anywhere}
.v19-trail .v19-form{border-top:1px solid #d2c9bb;padding-top:13px}
.v19-goal-card .spread,.v19-country-top,.v19-suggestion,.v19-special{overflow-wrap:anywhere}
@media(min-width:710px){.v19-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.v19-cardgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.v19-reward-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.v19-country-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.v19-special-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:370px){.v19-suggestion{display:block}.v19-suggestion .chiprow{justify-content:flex-start;margin-top:8px}.v19-country-stamp{height:79px;width:79px}.v19-hero-summary strong{font-size:34px}.v19-reward{min-height:165px}}
@media(prefers-reduced-motion:reduce){.v19-progress>span{transition:none}}

/* v1.9.3: country stamp art, contextual goal cards, and suggested-destination navigation. */
.v19-country-top {align-items:flex-start}
.v19-country-stamp {width:124px; height:146px; flex-shrink:0; border-radius:0; transform:rotate(3deg); border:0; background:transparent; position:relative; padding:5px; box-sizing:border-box; color:var(--stamp-ink,#50796b); filter:drop-shadow(0 3px 4px rgba(28,26,20,.12)); clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}
.v19-stamp-paper {box-sizing:border-box; background:#e2e3d7; border:4px dotted color-mix(in srgb,var(--stamp-ink,#50796b) 70%,#fff); outline:1px solid var(--stamp-ink,#50796b); outline-offset:-9px; width:100%;height:100%;padding:12px 6px 8px; display:flex;flex-direction:column;align-items:center;justify-content:space-between;overflow:hidden;text-align:center}
.v19-country-stamp.earned .v19-stamp-paper {background:linear-gradient(135deg,#eee7d7,#dadfd1);border-color:var(--stamp-ink,#50796b)}
.v19-stamp-header {font-size:6px;font-weight:800;letter-spacing:.07em;color:var(--stamp-ink,#50796b)}
.v19-stamp-art{display:flex;align-items:center;justify-content:center;position:relative;height:59px;width:69px}
.v19-stamp-record{width:55px;height:55px;border-radius:50%;border:1px solid #2c3433;box-shadow:inset 0 0 0 7px #50605c,inset 0 0 0 9px #acb2a8,inset 0 0 0 17px #45544b,inset 0 0 0 18px #a8b6b0,inset 0 0 0 24px #46544e;display:block;opacity:.8}
.v19-stamp-tone{position:absolute;top:15px;left:23px;display:grid;place-items:center;width:24px;height:24px;background:#efdec3;border-radius:50%;color:var(--stamp-ink,#50796b);font-size:18px;font-weight:900;line-height:1}
.v19-stamp-country{font-size:10px;line-height:1.05;overflow-wrap:anywhere;text-transform:uppercase;color:var(--stamp-ink,#50796b)}
.v19-stamp-status{font-size:6px;font-weight:800;letter-spacing:.06em;color:#565e52}
.v19-country-stamp:not(.earned) .v19-stamp-paper{filter:grayscale(.8);opacity:.66}
.v19-candidate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.v19-candidate{display:flex;flex-direction:column;gap:6px;text-align:left;padding:13px;background:#f5efe3;border:1px solid #cfc4b2;border-radius:12px;color:#403b32;min-height:80px;cursor:pointer}
.v19-candidate small{font-size:10px;line-height:1.35;color:#726b61}
.v19-candidate span{align-self:flex-end;margin-top:auto}
.v19-next-visits h3{font-size:20px;margin:8px 0}
.v19-suggestion-goal{border-color:#9cafa0;background:#e3e8df}
.v19-suggestion-goal .chip{align-self:flex-start;margin-top:auto}
@media(max-width:370px){.v19-country-stamp{width:100px;height:130px}.v19-country-top{gap:10px;padding:15px}.v19-stamp-record{width:46px;height:46px}.v19-stamp-art{height:49px}.v19-stamp-tone{top:12px;left:22px}}
/* Override the v1.9.2 generic stamp span typography on the detailed stamp art. */
.v19-country-stamp .v19-stamp-header{font-size:6px;line-height:1.15;letter-spacing:.05em;white-space:nowrap}
.v19-country-stamp .v19-stamp-art{font-size:inherit;line-height:normal}
.v19-country-stamp .v19-stamp-tone{font-size:18px;line-height:1}
.v19-country-stamp .v19-stamp-status{font-size:6px;line-height:1.2}
