/* Journeys library and profile (Milestone 1). Scoped under .fd; tokens come from entry.css. */
.fd-page{display:grid;grid-template-rows:auto minmax(0,1fr);background:radial-gradient(1200px 600px at 80% -10%,#1d2a22 0%,#0d0f0c 60%)}
.fd .fd-page-body{min-height:0;display:grid}
.fd .fd-page-scroll{overflow:auto;overscroll-behavior:contain;width:min(880px,100%);margin:0 auto;padding:clamp(20px,4vh,44px) clamp(18px,4vw,40px) 60px;display:grid;gap:20px;align-content:start}
.fd-page h1{font:700 clamp(28px,3.4vw,40px)/1.1 var(--fd-font);color:#fff}
.fd-page h2{font:600 13px/1.2 var(--fd-font);letter-spacing:.12em;text-transform:uppercase;color:var(--fd-gold);margin-top:6px}
.fd-page .fd-bar{grid-template-columns:auto 1fr auto}
.fd .fd-empty{padding:28px;border:1px dashed var(--fd-line2);border-radius:14px;color:var(--fd-mut);text-align:center}

/* journeys */
.fd .fd-jgroup{display:grid;gap:10px}
.fd .fd-jlist{display:grid;gap:12px}
.fd .fd-jcard{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;padding:14px;border-radius:16px;background:#171a16;border:1px solid var(--fd-line)}
.fd .fd-jcard[data-group=active]{border-color:var(--fd-gold);box-shadow:0 8px 30px #0008}
.fd .fd-jface{display:block;width:68px;height:76px;border-radius:11px;overflow:hidden;background:#2b2f26;border:1px solid var(--fd-line2)}
.fd .fd-jface svg{display:block;width:100%;height:100%}
.fd .fd-jtext{display:grid;gap:2px;min-width:0}
.fd .fd-jtext h3{font:700 20px/1.2 var(--fd-font);color:#fff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fd .fd-jtext p{font-size:14px;color:var(--fd-mut)}
.fd .fd-jstage{color:var(--fd-text)!important}
.fd .fd-chip-state{justify-self:start;margin-top:6px;padding:3px 10px;border-radius:999px;border:1px solid var(--fd-line2);font:600 12px/1.4 var(--fd-font);color:var(--fd-mut)}
.fd .fd-state-on{border-color:var(--fd-gold);color:var(--fd-gold)}
.fd .fd-state-done{border-color:var(--fd-green);color:#9fd6b4}
.fd .fd-state-bad{border-color:var(--fd-danger);color:var(--fd-danger)}
.fd .fd-jacts{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.fd .fd-jacts .fd-btn{min-height:44px;padding:8px 16px}

/* profile */
.fd .fd-profile-head{display:flex;gap:18px;align-items:center}
.fd .fd-pface{display:block;flex:none;width:92px;height:106px;border-radius:14px;overflow:hidden;background:#2b2f26;border:1px solid var(--fd-gold)}
.fd .fd-pface svg{display:block;width:100%;height:100%}
.fd .fd-profile-head p{color:var(--fd-mut);margin-top:4px}
.fd .fd-profile-head strong{color:var(--fd-text)}
.fd .fd-plist{display:grid;gap:10px}
.fd .fd-prow{display:flex;gap:14px;align-items:center;justify-content:space-between;padding:14px 16px;border-radius:14px;background:#171a16;border:1px solid var(--fd-line)}
.fd .fd-prow h3{font:700 16px/1.3 var(--fd-font);color:#fff}
.fd .fd-prow p{font-size:13px;color:var(--fd-mut);margin-top:2px;max-width:56ch}
.fd .fd-prow .fd-btn{flex:none;min-height:44px;padding:8px 18px}
.fd .fd-switch{flex:none;position:relative;width:56px;height:44px;display:grid;align-items:center}
.fd .fd-switch::before{content:'';width:52px;height:28px;border-radius:999px;background:#3a3f36;border:1px solid var(--fd-line2);transition:background .15s}
.fd .fd-switch span{position:absolute;left:4px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .15s}
.fd .fd-switch.is-on::before{background:var(--fd-green);border-color:var(--fd-green)}
.fd .fd-switch.is-on span{transform:translateX(24px)}

/* dialogs with fields */
.fd .fd-textarea{min-height:96px;font:400 14px/1.4 ui-monospace,monospace;resize:vertical}
.fd .fd-file{display:block;color:var(--fd-mut);font-size:14px}
.fd .fd-file input{cursor:pointer;color:var(--fd-text);font:600 14px/1.4 var(--fd-font)}

@media (max-width:700px){
  .fd .fd-jcard{grid-template-columns:auto minmax(0,1fr);gap:12px}
  .fd .fd-jacts{grid-column:1/-1;justify-content:stretch}.fd .fd-jacts .fd-btn{flex:1 1 90px}
  .fd .fd-jface{width:56px;height:64px}
  .fd .fd-pface{width:72px;height:84px}
  .fd .fd-prow{flex-wrap:wrap}.fd .fd-prow .fd-btn{width:100%}
  .fd .fd-switch{width:56px}.fd .fd-prow:has(.fd-switch){flex-wrap:nowrap}
}

/* the goal card */
.fd .fd-goal-lines{display:grid;gap:10px}
.fd .fd-goal-lines li{padding:14px 16px;border-radius:12px;background:#ffffff0a;border-left:3px solid var(--fd-gold);font:500 17px/1.4 var(--fd-font);color:#fff}
.fd .fd-aim{display:grid;gap:4px;padding:14px 16px;border-radius:12px;border:1px solid var(--fd-gold);background:#e4bd6812}
.fd .fd-aim strong{font:700 18px/1.3 var(--fd-font);color:var(--fd-gold)}
.fd .fd-aim span{font-size:14px;color:var(--fd-mut)}
.fd .fd-legal a{display:inline-block;padding:15px 5px;margin:-15px 0}
.fd .fd-legal a{min-width:44px;text-align:center}
.fd .fd-learn{display:grid;gap:10px}
.fd .fd-learn li{display:grid;gap:2px;padding:10px 12px;border-left:3px solid var(--fd-gold);background:#ffffff0a;border-radius:6px}
.fd .fd-learn strong{color:#fff;font-size:15px}
.fd .fd-learn span{color:var(--fd-mut);font-size:14px}
.fd .fd-jtext .fd-jplayed{font-size:12px;color:#9a9283}
