:root {
  color-scheme: dark;
  --bg: #0a0d10;
  --surface: #11161b;
  --surface-2: #171e25;
  --line: #27313a;
  --line-strong: #3c4852;
  --text: #eef1f3;
  --muted: #8d9aa5;
  --accent: #d7ff4f;
  --accent-dim: rgba(215, 255, 79, 0.12);
  --cyan: #61dbe8;
  --orange: #ffb05c;
  --red: #ff6b6b;
  --purple: #b9a2ff;
}

* { box-sizing: border-box; }
body {
  margin: 0;
  min-width: 320px;
  background:
    linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px),
    var(--bg);
  background-size: 32px 32px;
  color: var(--text);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

button, select, input, textarea { font: inherit; }
button, select {
  color: var(--text);
  background: var(--surface-2);
  border: 1px solid var(--line-strong);
  border-radius: 6px;
}
button { cursor: pointer; padding: 8px 12px; }
button:hover { border-color: var(--accent); }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
select { padding: 7px 32px 7px 10px; }

.app-shell { max-width: 1500px; margin: 0 auto; padding: 26px; }
.topbar { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.eyebrow, .section-number { color: var(--accent); font: 500 11px ui-monospace, SFMono-Regular, Menlo, monospace; letter-spacing: .14em; }
.eyebrow { margin: 0 0 7px; }
h1 { margin: 0; font-size: clamp(25px, 3vw, 38px); font-weight: 500; letter-spacing: -.035em; }
h2 { display: inline; margin: 0 0 0 9px; font-size: 15px; font-weight: 500; }
.run-control { display: flex; align-items: center; gap: 9px; }
.run-control label { color: var(--muted); font-size: 12px; }
.status-chip, .event-kind { border: 1px solid var(--line-strong); border-radius: 999px; padding: 5px 9px; color: var(--accent); font: 500 10px ui-monospace, monospace; letter-spacing: .06em; }

.summary-strip { display: grid; grid-template-columns: repeat(5, 1fr); border: 1px solid var(--line); background: rgba(17,22,27,.88); }
.summary-strip > div { padding: 14px 16px; border-right: 1px solid var(--line); }
.summary-strip > div:last-child { border-right: 0; }
.summary-strip span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 11px; }
.summary-strip strong { font: 500 16px ui-monospace, SFMono-Regular, Menlo, monospace; }

.transport { display: grid; grid-template-columns: auto auto auto minmax(160px,1fr) auto auto; align-items: center; gap: 8px; margin: 12px 0 18px; }
.play-button { min-width: 66px; color: #101308; background: var(--accent); border-color: var(--accent); font-weight: 500; }
#timeline { width: 100%; accent-color: var(--accent); }
#step-label { min-width: 70px; color: var(--muted); font: 12px ui-monospace, monospace; text-align: right; }

.workspace { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(340px, .72fr); gap: 16px; }
.left-column, .right-column { display: grid; align-content: start; gap: 16px; }
.panel { border: 1px solid var(--line); background: rgba(17,22,27,.94); }
.panel-heading { display: flex; align-items: center; justify-content: space-between; min-height: 45px; padding: 0 14px; border-bottom: 1px solid var(--line); }

.office-world { position: relative; min-height: 430px; overflow: hidden; background: #0d1216; }
.world-room { position: absolute; overflow: hidden; border: 1px solid var(--line-strong); background: linear-gradient(145deg, rgba(255,255,255,.025), transparent 60%); }
.world-room::before { content: attr(data-label); position: absolute; z-index: 2; top: 9px; left: 10px; color: var(--muted); font: 10px ui-monospace, monospace; letter-spacing: .08em; }
.world-room::after { content: ''; position: absolute; inset: 0; opacity: .13; background-image: linear-gradient(45deg, var(--line) 25%, transparent 25%), linear-gradient(-45deg, var(--line) 25%, transparent 25%); background-size: 20px 20px; }
.room-office { left: 1.5%; top: 2%; width: 57%; height: 61%; }
.room-boss_office { left: 60%; top: 2%; width: 38.5%; height: 29%; }
.room-meeting_room { left: 60%; top: 33%; width: 38.5%; height: 30%; }
.room-client_site { left: 1.5%; top: 65%; width: 97%; height: 33%; }
.furniture { position: absolute; z-index: 1; border: 1px solid #34404a; background: #1b242b; box-shadow: inset 0 0 0 2px rgba(0,0,0,.18); }
.desk { width: 72px; height: 28px; }
.desk::after { content: ''; position: absolute; left: 28px; top: -8px; width: 16px; height: 8px; background: #35424c; }
.meeting-table { left: 25%; top: 43%; width: 52%; height: 24%; border-radius: 18px; }
.client-table { left: 34%; top: 42%; width: 32%; height: 25%; border-radius: 4px; }
.plant { width: 18px; height: 18px; border-radius: 50%; border-color: #52653b; background: #26331e; }

.world-person { position: absolute; z-index: 5; width: 54px; margin-left: -27px; margin-top: -24px; text-align: center; transition: left .78s cubic-bezier(.2,.8,.2,1), top .78s cubic-bezier(.2,.8,.2,1); }
.world-person.moving .person-body { animation: person-bob .22s ease-in-out infinite alternate; }
.world-person.moving .person-leg:first-child { animation: left-leg .22s ease-in-out infinite alternate; }
.world-person.moving .person-leg:last-child { animation: right-leg .22s ease-in-out infinite alternate; }
.person-sprite { position: relative; display: block; width: 26px; height: 40px; margin: 0 auto; filter: drop-shadow(0 5px 4px rgba(0,0,0,.4)); }
.person-head { position: absolute; left: 8px; top: 0; width: 11px; height: 11px; border-radius: 50%; background: #f1c8a6; }
.person-body { position: absolute; left: 5px; top: 10px; width: 17px; height: 19px; border-radius: 7px 7px 3px 3px; background: var(--person-color, var(--cyan)); }
.person-leg { position: absolute; top: 28px; width: 5px; height: 11px; border-radius: 0 0 3px 3px; background: #aeb8c0; transform-origin: top center; }
.person-leg:first-child { left: 7px; }
.person-leg:last-child { right: 6px; }
.person-name { display: inline-block; margin-top: 2px; padding: 2px 5px; background: rgba(5,8,10,.82); color: var(--text); font-size: 9px; white-space: nowrap; }
.world-person[data-agent="boss"] { --person-color: var(--accent); }
.world-person[data-agent="sales"] { --person-color: var(--orange); }
.world-person[data-agent="client"] { --person-color: var(--purple); }
.world-person[data-agent="player"] { --person-color: var(--muted); opacity: .78; }
.speech-bubble { position: absolute; left: 50%; bottom: calc(100% + 5px); min-width: 78px; max-width: 155px; padding: 6px 8px; transform: translateX(-50%); border: 1px solid var(--accent); background: #161d18; color: var(--text); font-size: 9px; line-height: 1.35; text-align: left; }
.speech-bubble::after { content: ''; position: absolute; left: 50%; bottom: -5px; width: 8px; height: 8px; transform: translateX(-50%) rotate(45deg); border-right: 1px solid var(--accent); border-bottom: 1px solid var(--accent); background: #161d18; }
@keyframes person-bob { from { transform: translateY(0); } to { transform: translateY(-2px); } }
@keyframes left-leg { from { transform: rotate(13deg); } to { transform: rotate(-13deg); } }
@keyframes right-leg { from { transform: rotate(-13deg); } to { transform: rotate(13deg); } }

.task-list { padding: 8px 14px 14px; }
.task { display: grid; grid-template-columns: minmax(120px, 1fr) 110px 1.6fr 58px; align-items: center; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--line); }
.task:last-child { border-bottom: 0; }
.task-title { font-size: 12px; }
.task-owner { color: var(--muted); font-size: 11px; }
.progress-track { display:block; width:100%; height: 6px; overflow: hidden; background: #222a31; }
.progress-fill { display:block; height: 100%; background: var(--accent); transition: width .22s ease; }
.task-value { color: var(--muted); font: 11px ui-monospace, monospace; text-align: right; }

.information-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 1px; background: var(--line); }
.information-item { min-height: 105px; padding: 13px; background: var(--surface); }
.information-item h3 { margin: 0 0 8px; font-size: 12px; font-weight: 500; }
.information-item p { margin: 0 0 11px; color: var(--muted); font-size: 11px; line-height: 1.55; }
.knowers { display: flex; flex-wrap: wrap; gap: 5px; }
.knower { padding: 3px 6px; background: var(--accent-dim); color: var(--accent); font: 10px ui-monospace, monospace; }

.event-panel { border-top-color: var(--accent); }
.event-time { margin: 14px 14px 6px; color: var(--accent); font: 11px ui-monospace, monospace; }
.current-event-summary { min-height: 65px; margin: 0; padding: 4px 14px 15px; font-size: 17px; line-height: 1.5; }
.event-detail { display: grid; grid-template-columns: 75px 1fr; margin: 0; padding: 12px 14px; border-top: 1px solid var(--line); font-size: 11px; }
.event-detail dt { color: var(--muted); }
.event-detail dd { margin: 0 0 7px; overflow-wrap: anywhere; }
.causes { padding: 0 14px 14px; }
.cause { margin-top: 6px; padding-left: 9px; border-left: 2px solid var(--purple); color: var(--muted); font-size: 10px; line-height: 1.45; }

.event-log { max-height: 350px; margin: 0; padding: 5px 0; overflow: auto; list-style: none; }
.event-log li { display: grid; grid-template-columns: 66px 1fr; gap: 8px; padding: 8px 12px; border-left: 2px solid transparent; color: var(--muted); font-size: 10px; line-height: 1.4; }
.event-log li.active { border-left-color: var(--accent); background: var(--accent-dim); color: var(--text); }
.event-log time { font-family: ui-monospace, monospace; }
.relationship-list { padding: 9px 14px 14px; }
.relationship { display: grid; grid-template-columns: 1fr 90px 38px; align-items: center; gap: 8px; padding: 7px 0; color: var(--muted); font-size: 10px; }
.relationship .progress-fill { background: var(--cyan); }

.empty { padding: 20px; color: var(--muted); font-size: 12px; }

.play-workspace { margin-top: 18px; }
.current-room { border-color: var(--accent); box-shadow: inset 0 0 0 1px rgba(215,255,79,.18); }
.current-room::before { color: var(--accent); }
.visibility-note { margin: 0; padding: 9px 14px; border-top: 1px solid var(--line); color: var(--muted); font-size: 10px; }
.command-panel { border-top-color: var(--accent); }
#action-form { padding: 14px; }
#player-command { width: 100%; resize: vertical; padding: 13px; outline: none; border: 1px solid var(--line-strong); border-radius: 6px; background: #0b1014; color: var(--text); line-height: 1.55; }
#player-command:focus { border-color: var(--accent); box-shadow: 0 0 0 2px var(--accent-dim); }
.command-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; }
.suggestions { display: flex; flex-wrap: wrap; gap: 6px; }
button.ghost { padding: 6px 9px; background: transparent; color: var(--muted); font-size: 10px; }
button:disabled { cursor: wait; opacity: .55; }
.action-feedback { min-height: 38px; padding: 10px 14px; border-top: 1px solid var(--line); background: var(--accent-dim); color: var(--accent); font-size: 11px; }
.action-feedback.error { background: rgba(255,107,107,.09); color: var(--red); }
.play-event-log { max-height: 430px; }
.play-information { grid-template-columns: 1fr; }
.memory-list { max-height: 320px; margin: 0; padding: 8px 14px 14px 32px; overflow: auto; color: var(--muted); font-size: 10px; line-height: 1.55; }
.memory-list li { padding: 6px 0; border-bottom: 1px solid var(--line); }

.career-onboarding { max-width: 780px; margin: 6vh auto 0; overflow: hidden; padding: 36px; border-top-color: var(--accent); border-radius: 12px; background: linear-gradient(145deg,rgba(23,30,37,.98),rgba(12,17,21,.98)); box-shadow: 0 30px 90px rgba(0,0,0,.35); }
.career-onboarding h1 { font-size: clamp(34px, 6vw, 64px); }
.onboarding-copy { max-width: 650px; margin: 22px 0 28px; color: var(--muted); font-size: 15px; line-height: 1.75; }
.entry-brand { display: flex; align-items: center; gap: 11px; margin-bottom: 30px; }
.entry-logo { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid rgba(215,255,79,.45); border-radius: 12px; background: var(--accent-dim); color: var(--accent); font-size: 20px; font-weight: 700; }
.entry-brand div { display: grid; gap: 3px; }
.entry-brand strong { font-size: 16px; font-weight: 600; }
.entry-brand small { color: var(--muted); font-size: 10px; letter-spacing: .08em; }
.entry-promises { display: flex; flex-wrap: wrap; gap: 7px; margin: -10px 0 24px; }
.entry-promises span { padding: 6px 9px; border: 1px solid var(--line); border-radius: 999px; color: var(--muted); font-size: 10px; }
.profile-form { display: grid; grid-template-columns: repeat(2,1fr); gap: 12px; }
.profile-form label, .plan-card { display: grid; gap: 7px; }
.profile-form label > span { color: var(--muted); font-size: 11px; }
.profile-form input, .profile-form select, .plan-card input, .plan-card select { width: 100%; padding: 10px; border: 1px solid var(--line-strong); border-radius: 5px; background: #0b1014; color: var(--text); }
.begin-career { grid-column: 1 / -1; min-height: 48px; margin-top: 8px; }
.form-status { margin: 18px -36px -36px; min-height: 42px; padding: 12px 36px; }
.form-status.error { border-color: rgba(255,107,107,.25); background: rgba(255,107,107,.08); color: var(--red); }
.recovery-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.recovery-actions button { min-height: 46px; }
.career-cockpit { position: sticky; z-index: 50; top: 0; width: 100vw; margin: -26px calc(50% - 50vw) 18px; padding: calc(13px + env(safe-area-inset-top)) max(26px, calc((100vw - 1500px) / 2 + 26px)) 11px; border-bottom: 1px solid var(--line-strong); background: rgba(10,13,16,.975); box-shadow: 0 12px 26px rgba(0,0,0,.28); }
.career-cockpit .topbar { margin-bottom: 10px; }
.career-topbar { align-items: center; }
.account-entry { position: relative; z-index: 60; }
.account-button { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 6px 10px 6px 7px; border-color: var(--line); background: rgba(17,22,27,.9); text-align: left; }
.account-button:hover, .account-button[aria-expanded="true"] { border-color: var(--accent); background: var(--surface-2); }
.account-avatar { display: grid; flex: 0 0 34px; width: 34px; height: 34px; place-items: center; border: 1px solid rgba(215,255,79,.4); border-radius: 50%; background: var(--accent-dim); color: var(--accent); font-weight: 650; }
.account-copy { display: grid; gap: 2px; min-width: 88px; }
.account-copy strong { max-width: 130px; overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.account-copy small { color: var(--muted); font-size: 10px; }
.account-chevron { color: var(--muted); font-size: 15px; transition: transform .2s ease; }
.account-button[aria-expanded="true"] .account-chevron { transform: rotate(180deg); }
.account-menu { position: absolute; z-index: 56; top: calc(100% + 8px); right: 0; width: min(310px, calc(100vw - 28px)); overflow: hidden; border: 1px solid var(--line-strong); border-radius: 12px; background: #12181e; box-shadow: 0 18px 50px rgba(0,0,0,.45); }
.account-menu-scrim { position: fixed; inset: 0; z-index: 55; background: rgba(2, 5, 8, .01); cursor: default; }
.account-menu-scrim[hidden] { display: none; }
.account-menu-header{display:flex;align-items:center;justify-content:space-between;min-height:44px;padding:0 12px;border-bottom:1px solid var(--line);color:var(--accent);font:11px ui-monospace,monospace;letter-spacing:.1em}.account-menu-header button{min-width:44px;min-height:44px;border:0;background:transparent;color:#cbd7df;font-size:24px;cursor:pointer}
.account-summary { display: flex; align-items: center; gap: 11px; padding: 16px; border-bottom: 1px solid var(--line); }
.account-summary div { display: grid; gap: 3px; }
.account-summary strong { font-size: 14px; }
.account-summary small { color: var(--muted); font-size: 11px; }
.account-summary #account-ruleset { color: var(--muted); font-size: 10px; }
.account-section { display: grid; gap: 8px; padding: 13px 16px; border-bottom: 1px solid var(--line); }
.account-section-title { color: var(--muted); font-size: 10px; letter-spacing: .08em; }
.asset-summary strong { color: var(--text); font-size: 12px; }
.asset-summary p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.55; }
.account-setting { display: flex; align-items: center; justify-content: space-between; min-height: 30px; font-size: 12px; }
.account-setting input { width: 17px; height: 17px; accent-color: var(--accent); }
.account-links { display: grid; padding: 7px; }
.account-links a, .account-links > button, .runtime-details summary { display: flex; align-items: center; justify-content: space-between; min-height: 40px; padding: 9px; border: 0; border-radius: 6px; background: transparent; color: var(--text); font-size: 12px; text-decoration: none; }
.account-links a:hover, .account-links > button:hover, .runtime-details summary:hover { background: var(--surface-2); }
.account-action-copy { display: block; padding: 0 9px 8px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.runtime-details summary { cursor: pointer; list-style: none; }
.runtime-details summary::-webkit-details-marker { display: none; }
.runtime-details p { margin: 0 9px 8px; padding: 8px 10px; border-radius: 6px; background: #0b1014; color: var(--muted); font: 10px ui-monospace,monospace; }
.account-danger { width: calc(100% - 14px); min-height: 40px; margin: 0 7px 7px; border-color: rgba(255,107,107,.25); background: transparent; color: var(--red); font-size: 12px; text-align: left; }
.quiet-button { border: 1px solid var(--line); border-radius: 999px; background: transparent; color: var(--muted); padding: 5px 10px; cursor: pointer; }
.quiet-button:hover { color: var(--ink); border-color: var(--ink); }
.career-modal { position: fixed; z-index: 110; inset: 0; display: grid; padding: max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left)); place-items: center; overflow: auto; background: rgba(3,5,7,.76); backdrop-filter: blur(9px); }
.career-modal[hidden] { display: none; }
.career-modal-card { width: min(540px, 100%); max-height: min(720px, calc(100dvh - 36px)); overflow: auto; border: 1px solid var(--line-strong); border-radius: 14px; background: #11171d; box-shadow: 0 28px 90px rgba(0,0,0,.72); }
.career-modal-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 18px 18px 14px; border-bottom: 1px solid var(--line); }
.career-modal-header .eyebrow { margin: 0 0 5px; }
.career-modal-header h2 { margin: 0; font-size: 19px; }
.modal-close { width: 34px; height: 34px; padding: 0; border-color: transparent; background: transparent; color: var(--muted); font-size: 25px; line-height: 1; }
.modal-close:hover { border-color: var(--line); color: var(--text); }
.career-modal-copy { margin: 0; padding: 15px 18px 7px; color: var(--muted); font-size: 12px; line-height: 1.65; }
.career-archives-list { display: grid; gap: 8px; padding: 11px 18px 18px; }
.career-archive { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 4px 12px; align-items: center; padding: 12px; border: 1px solid var(--line); border-radius: 9px; background: #0c1116; }
.career-archive.current { border-color: rgba(215,255,79,.52); background: rgba(215,255,79,.055); }
.career-archive strong { min-width: 0; overflow: hidden; color: var(--text); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.career-archive span { color: var(--muted); font-size: 11px; }
.career-archive button { grid-row: span 2; min-width: 76px; min-height: 34px; padding: 6px 10px; border-color: var(--line-strong); background: transparent; color: var(--text); font-size: 11px; }
.career-archive button:not(:disabled):hover { border-color: var(--accent); color: var(--accent); }
.career-archive button:disabled { cursor: default; border-color: transparent; color: var(--accent); }
.release-notes-list { display: grid; gap: 10px; margin: 0; padding: 18px 24px 4px 38px; color: var(--text); font-size: 13px; line-height: 1.65; }
.release-notes-list li::marker { color: var(--accent); }
.release-current { margin: 15px 18px 0; padding: 11px 12px; border-left: 2px solid var(--cyan); background: rgba(117,214,255,.06); color: var(--muted); font-size: 12px; }
.release-current strong { color: var(--text); }
.release-history { margin: 16px 24px 20px; color: var(--muted); font-size: 12px; line-height: 1.65; }
.release-history summary { cursor: pointer; }
.release-action { width: calc(100% - 36px); margin: 14px 18px 18px; }
.release-v4-active { margin: 14px 18px 18px; color: var(--accent); font-size: 13px; }
.career-clock { position: relative; display: grid; grid-template-columns: repeat(4,1fr); overflow: hidden; border: 0; border-radius: 0; background: transparent; }
.career-clock > div:not(.career-progress) { padding: 9px 14px 14px; border-right: 1px solid var(--line); }
.career-clock span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 10px; }
.career-clock strong { font: 500 14px ui-monospace,monospace; }
.seasonal-life-active .career-clock { grid-template-columns: minmax(250px,1.45fr) minmax(150px,1fr) minmax(150px,1fr); }
.seasonal-life-active .career-clock > .seasonal-time-group { display: flex; align-items: center; gap: 7px; min-width: 0; padding-block: 10px; }
.seasonal-time-readout { display: inline-flex; align-items: baseline; gap: 7px; min-width: 0; }
.seasonal-life-active .seasonal-time-group strong { display: inline; flex: none; margin: 0; font-size: 14px; white-space: nowrap; }
.seasonal-life-active .seasonal-time-group #career-period { color: var(--ink); }
.seasonal-clock-controls { display: inline-flex; align-items: center; gap: 1px; margin-left: 1px; }
.seasonal-clock-controls button { display: inline-grid; width: 18px; height: 18px; min-height:0; min-width:0; padding: 0; place-items: center; border: 0; border-radius: 3px; background: transparent; color: var(--muted); font: 500 14px/1 ui-monospace,monospace; }
.seasonal-clock-controls button:hover { color: var(--text); background: rgba(255,255,255,.055); }
.seasonal-clock-controls button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.seasonal-clock-controls button.is-active { color: var(--accent); }
.career-progress { position: absolute; right: 0; bottom: 0; left: 0; height: 3px; background: var(--line); }
.career-progress span { height: 100%; margin: 0; background: var(--accent); transition: width .25s ease; }
.market-ticker { grid-column: 1 / -1; display: flex; flex-direction: column; align-items: stretch; gap: 6px; min-width: 0; padding: 7px 0 2px; border-top: 1px solid var(--line); background: transparent; }
.career-clock .market-ticker-title { flex: none; margin: 0; color: var(--accent); font-size: 9px; letter-spacing: .08em; }
.market-ticker-items { display: flex; flex: 1; align-items: center; gap: 13px; min-width: 0; overflow-x: auto; scrollbar-width: none; }
.market-ticker-items::-webkit-scrollbar { display: none; }
.market-quote { display: flex; flex: none; align-items: baseline; gap: 5px; white-space: nowrap; }
.market-rank-label { padding: 2px 4px; border-radius: 3px; font: normal 8px ui-monospace,monospace; }
.market-leader .market-rank-label { background: rgba(255,107,107,.13); color: var(--red); }
.market-laggard .market-rank-label { background: rgba(57,200,121,.13); color: #39c879; }
.market-quote em { color: var(--muted); font: normal 9px inherit; }
.market-quote strong { font: 500 10px ui-monospace,monospace; }
.market-up strong { color: var(--red); }
.market-down strong { color: #39c879; }
.market-flat strong { color: var(--muted); }
.plan-title { display: flex; align-items: center; gap: 5px; }
.plan-help-button { display: inline-grid; flex: none; width: 17px; height: 17px; padding: 0; place-items: center; border-color: var(--line-strong); border-radius: 50%; background: transparent; color: var(--muted); font: 600 10px ui-monospace,monospace; }
.plan-help-button:hover, .plan-help-button[aria-expanded="true"] { border-color: var(--cyan); color: var(--cyan); }
.plan-help-popover { position: fixed; z-index: 90; width: min(280px,calc(100vw - 16px)); padding: 11px 12px; border: 1px solid var(--line-strong); border-radius: 8px; background: #182027; box-shadow: 0 15px 45px rgba(0,0,0,.55); }
.plan-help-popover[hidden] { display: none; }
.plan-help-popover strong { color: var(--cyan); font-size: 11px; }
.plan-help-popover p { margin: 6px 0 0; color: var(--text); font-size: 11px; line-height: 1.55; }
.market-good { color: var(--accent); }
.market-bad { color: var(--red); }
.primary-decision, .event-resolution-panel { scroll-margin-top: 220px; }
.career-stats { position: fixed; z-index: 45; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 0; margin: 0; overflow: hidden; border: 0; border-top: 1px solid var(--line-strong); border-radius: 0; background: rgba(10,13,16,.975); box-shadow: 0 -10px 28px rgba(0,0,0,.32); backdrop-filter: blur(14px); }
#career-game { padding-bottom: 94px; }
.career-stat { display: grid; gap: 6px; min-width: 0; min-height: 76px; padding: 10px max(12px, calc((100vw - 1500px) / 14)); border-right: 1px solid var(--line); background: transparent; }
.career-stat:last-child { border-right: 0; }
.career-stat > span:first-child { color: var(--muted); font-size: 11px; }
.career-stat strong { font: 500 17px ui-monospace,monospace; }
.stat-value { display: flex; align-items: baseline; justify-content: space-between; gap: 7px; min-width: 0; }
.stat-value strong { overflow: hidden; text-overflow: ellipsis; }
.stat-display-compact { display: none; }
.stat-delta { flex: none; font: normal 9px ui-monospace,monospace; }
.stat-delta.positive { color: var(--accent); }
.stat-delta.negative { color: var(--red); }
.stat-delta.neutral { color: var(--muted); }
.career-stat .progress-fill { background: var(--cyan); }
.stat-health .progress-fill, .stat-mindset .progress-fill { background: var(--accent); }
.stat-reputation .progress-fill { background: var(--cyan); }
.relationship-stat-button { align-content: center; justify-items: start; width: 100%; border: 0; border-radius: 0; color: var(--text); text-align: left; }
.relationship-stat-button:hover, .relationship-stat-button[aria-expanded="true"] { background: var(--accent-dim); }
.relationship-stat-button small { color: var(--muted); font: 9px ui-monospace,monospace; }
.relationship-stat-icon { display: block; width: 25px; height: 25px; color: var(--accent); }
.relationship-stat-icon svg { display: block; width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }

.relationship-drawer { position: fixed; z-index: 75; right: 24px; bottom: 102px; width: min(650px,calc(100vw - 48px)); max-height: min(650px,calc(100dvh - 126px)); overflow: auto; border: 1px solid var(--line-strong); border-radius: 14px; background: rgba(15,20,25,.98); box-shadow: 0 24px 90px rgba(0,0,0,.7); backdrop-filter: blur(16px); }
.relationship-drawer[hidden] { display: none; }
.relationship-drawer-header { position: sticky; z-index: 2; top: 0; display: flex; align-items: center; justify-content: space-between; min-height: 58px; padding: 11px 14px; border-bottom: 1px solid var(--line); background: rgba(15,20,25,.96); }
.relationship-drawer-header div { display: flex; align-items: baseline; gap: 9px; }
.relationship-drawer-header span { color: var(--accent); font: 8px ui-monospace,monospace; letter-spacing: .1em; }
.relationship-drawer-header h2 { margin: 0; font-size: 15px; }
.relationship-drawer-header button { width: 34px; height: 34px; padding: 0; border-color: transparent; background: transparent; color: var(--muted); font-size: 21px; }
.relationship-list-view { padding: 10px; }
.relationship-hint { margin: 0 2px 10px; color: var(--muted); font-size: 10px; line-height: 1.5; }
.relationship-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.relationship-person { display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: center; gap: 9px; min-width: 0; min-height: 58px; padding: 8px; border-color: var(--line); background: var(--surface); text-align: left; }
.relationship-person:hover { border-color: var(--cyan); background: var(--surface-2); }
.relationship-avatar { display: grid; flex: none; width: 38px; height: 38px; place-items: center; border: 1px solid rgba(97,219,232,.35); border-radius: 50%; background: rgba(97,219,232,.09); color: var(--cyan); font-size: 14px; font-weight: 600; }
.relationship-person.negative .relationship-avatar { border-color: rgba(255,107,107,.35); background: rgba(255,107,107,.08); color: var(--red); }
.relationship-person.close .relationship-avatar { border-color: rgba(215,255,79,.4); background: var(--accent-dim); color: var(--accent); }
.relationship-person-copy { display: grid; gap: 2px; min-width: 0; }
.relationship-person-copy strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.relationship-person-copy small { overflow: hidden; color: var(--muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.relationship-person em { color: var(--cyan); font: normal 10px ui-monospace,monospace; }
.relationship-person.negative em { color: var(--red); }
.relationship-mini-track { width: 100%; height: 3px; margin-top: 3px; overflow: hidden; border-radius: 99px; background: var(--line); }
.relationship-mini-track i { display: block; height: 100%; background: var(--cyan); }
.relationship-person.negative .relationship-mini-track i { margin-left: auto; background: var(--red); }
.relationship-detail { padding: 14px 18px 22px; }
.relationship-back { padding: 5px 0; border: 0; background: transparent; color: var(--muted); font-size: 10px; }
.relationship-detail-identity { display: flex; align-items: center; gap: 13px; margin: 14px 0 18px; }
.relationship-detail-identity .relationship-avatar { width: 54px; height: 54px; font-size: 18px; }
.relationship-detail-identity h3 { margin: 0 0 4px; font-size: 22px; font-weight: 500; }
.relationship-detail-identity p { margin: 0; color: var(--muted); font-size: 11px; }
.relationship-detail-score { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 7px; }
.relationship-detail-score span { color: var(--muted); font-size: 10px; }
.relationship-detail-score strong { color: var(--cyan); font: 16px ui-monospace,monospace; }
.relationship-detail-track { display: block; width: 100%; height: 5px; overflow: hidden; border-radius: 99px; background: var(--line); }
.relationship-detail-track i { display: block; height: 100%; }
.relationship-detail-track i.positive { background: var(--cyan); }
.relationship-detail-track i.negative { margin-left: auto; background: var(--red); }
.relationship-detail-traits { display: flex; flex-wrap: wrap; gap: 6px; margin: 18px 0 12px; }
.relationship-detail-traits span { padding: 5px 8px; border: 1px solid var(--line); border-radius: 999px; color: var(--accent); font-size: 9px; }
.relationship-detail-description { margin: 0; color: var(--text); font-size: 12px; line-height: 1.75; }
.relationship-detail-note { margin-top: 17px; padding: 12px; border-left: 2px solid var(--cyan); background: rgba(97,219,232,.06); }
.relationship-detail-note span { color: var(--cyan); font-size: 9px; letter-spacing: .06em; }
.relationship-detail-note p { margin: 6px 0 0; color: var(--muted); font-size: 11px; line-height: 1.65; }
.career-layout { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(310px,.6fr); gap: 16px; }
.planner-panel { overflow: hidden; border-top-color: var(--line-strong); border-radius: 8px; background: rgba(13,18,22,.82); }
.planner-panel .panel-heading { min-height: 42px; background: rgba(255,255,255,.012); }
.planner-panel .section-number { color: var(--muted); font-size: 9px; }
.planner-panel .panel-heading h2 { color: #c4ccd1; font-size: 13px; }
.weekly-mandate { padding:10px 14px; border-bottom:1px solid var(--line); background:rgba(255,255,255,.018); color:var(--muted); font-size:10px; line-height:1.5; }
.workload-meter { padding: 14px; border-bottom: 1px solid var(--line); }
.workload-meter > div { display: flex; justify-content: space-between; margin-bottom: 8px; }
.workload-meter span { color: var(--muted); font-size: 11px; }
.workload-meter strong { font: 500 13px ui-monospace,monospace; }
.workload-meter p { margin: 8px 0 0; color: var(--muted); font-size: 10px; }
.research-issue-panel { padding: 14px; border-bottom: 1px solid var(--line); background: rgba(97,219,232,.035); }
.research-issue-panel[hidden] { display: none; }
.research-issue-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.research-issue-heading span { color: var(--cyan); font: 10px ui-monospace,monospace; letter-spacing: .08em; }
.research-issue-heading strong { color: var(--accent); font-size: 10px; font-weight: 600; }
.research-issue-panel h3 { margin: 8px 0 4px; font-size: 15px; font-weight: 600; }
.research-issue-panel > p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.research-issue-carryover { display: grid; gap: 4px; margin: 9px 0; }
.research-issue-carryover[hidden] { display: none; }
.research-issue-carryover span { color: #b9dd8a; font-size: 9px; line-height: 1.4; }
.research-issue-evidence { display: flex; flex-wrap: wrap; gap: 5px; margin: 10px 0; }
.research-issue-evidence span { padding: 4px 6px; border: 1px solid var(--line-strong); border-radius: 999px; color: var(--muted); font-size: 9px; }
.research-issue-evidence span.ready { border-color: rgba(97,219,232,.48); color: var(--cyan); }
.research-issue-trace { display: grid; gap: 5px; margin: 0 0 10px; }
.research-issue-trace[hidden] { display: none; }
.research-issue-trace article { padding: 7px 8px; border-left: 2px solid rgba(97,219,232,.36); background: rgba(97,219,232,.04); }
.research-issue-trace strong { display: block; color: var(--text); font-size: 10px; }
.research-issue-trace p { margin: 3px 0; color: var(--muted); font-size: 10px; line-height: 1.45; }
.research-issue-trace small { color: var(--cyan); font: 9px ui-monospace,monospace; }
.research-issue-actions { margin: 0 -14px -14px; }
.research-issue-actions .plan-card { min-height: 88px; background: rgba(11,16,20,.6); }
.progress-fill.warn { background: var(--orange); }
.progress-fill.danger { background: var(--red); }
.planner-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; background: var(--line); }
.plan-card { min-height: 118px; padding: 14px; background: var(--surface); }
.plan-card[hidden] { display: none; }
.plan-card > span { font-size: 13px; }
.plan-card small { min-height: 26px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.plan-stepper { display: grid; grid-template-columns: 44px minmax(0,1fr) 44px; }
.plan-stepper button { min-height: 42px; padding: 0; border-radius: 5px 0 0 5px; color: var(--accent); font-size: 18px; }
.plan-stepper button:last-child { border-radius: 0 5px 5px 0; }
.plan-stepper input { min-width: 0; border-right: 0; border-left: 0; border-radius: 0; text-align: center; appearance: textfield; }
.plan-stepper input::-webkit-inner-spin-button { appearance: none; }
.danger-card { background: rgba(255,107,107,.035); }
.danger-card > span, .danger-card small { color: var(--red); }
.settle-week { width: calc(100% - 28px); min-height: 48px; margin: 14px; }
.career-roster { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: var(--line); }
.career-roster article { display: grid; justify-items: center; gap: 5px; padding: 15px 7px; background: var(--surface); }
.career-roster strong { font-size: 12px; }
.career-roster small { color: var(--muted); font-size: 10px; text-align: center; }
.career-roster em { color: var(--cyan); font: normal 10px ui-monospace,monospace; }
.relation-track { position:relative; display:block; width:74%; height:4px; margin-top:2px; background:linear-gradient(90deg,rgba(255,107,107,.12) 0 50%,rgba(97,219,232,.12) 50%); }
.relation-track::after { content:''; position:absolute; top:-2px; bottom:-2px; left:50%; width:1px; background:var(--line-strong); }
.relation-track i { position:absolute; top:0; height:100%; }
.relation-track i.positive { background:var(--cyan); }
.relation-track i.negative { background:var(--red); }
.memory-list small { display: block; margin-top: 4px; color: var(--cyan); font-style: normal; }
.mini-person { position: relative; width: 19px; height: 32px; margin-bottom: 5px; border-radius: 7px 7px 3px 3px; background: var(--person-color,var(--cyan)); }
.mini-person::before { content:''; position:absolute; left:5px; top:-8px; width:10px; height:10px; border-radius:50%; background:#efc39f; }
.career-roster [data-role="chief"] { --person-color:var(--accent); }
.career-roster [data-role="sales"] { --person-color:var(--orange); }
.career-roster [data-role="director"] { --person-color:var(--red); }
.career-roster [data-role="fund"] { --person-color:var(--purple); }
.career-roster [data-role="tech_chief"] { --person-color:var(--purple); }
.career-roster [data-role="peer"] { --person-color:var(--cyan); }
.career-roster article.direct-chief { box-shadow: inset 0 0 0 1px var(--accent); background: var(--accent-dim); }
.stock-board { position:relative; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; padding-top:25px; background:var(--line); }
.stock-board::before { content:attr(data-markets); position:absolute; top:0; right:0; left:0; height:25px; padding:6px 12px; background:#0b1014; color:var(--muted); font:9px ui-monospace,monospace; }
.stock-card { display:grid; grid-template-columns:1fr auto; gap:6px; padding:12px; background:var(--surface); }
.stock-card div { display:grid; gap:4px; }
.stock-card strong { font-size:11px; }
.stock-card span,.stock-card small { color:var(--muted); font-size:10px; }
.stock-card em { color:var(--orange); font:normal 9px ui-monospace,monospace; }
.stock-card small { grid-column:1 / -1; }
.stock-card.owned { box-shadow:inset 3px 0 var(--accent); }
.stock-card.contestable { box-shadow:inset 3px 0 var(--purple); }
.result-panel { overflow: hidden; border-radius: 8px; }
.result-status { color: var(--muted); font: 10px ui-monospace,monospace; }
.week-result { color: var(--muted); font-size: 12px; }
.week-result > p { margin: 0; padding: 22px; line-height: 1.6; }
.result-hero { padding: 20px; border-bottom: 1px solid var(--line); background: linear-gradient(135deg, var(--accent-dim), transparent 70%); }
.result-hero > span { color: var(--accent); font-size: 10px; letter-spacing: .08em; }
.result-hero h3 { margin: 7px 0 13px; color: var(--text); font-size: clamp(18px,2vw,24px); font-weight: 500; line-height: 1.35; }
.result-summary { display: flex; flex-wrap: wrap; gap: 7px; }
.result-summary span { padding: 5px 8px; border: 1px solid rgba(215,255,79,.18); border-radius: 999px; background: rgba(10,13,16,.45); color: var(--muted); font-size: 10px; }
.result-summary span.team-support { border-color: rgba(106, 203, 255, .28); color: #9ddcff; }
.result-changes { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1px; background: var(--line); }
.result-change { display: grid; gap: 5px; padding: 14px; background: var(--surface); }
.result-change span { color: var(--muted); font-size: 10px; }
.result-change strong { color: var(--text); font: 12px ui-monospace,monospace; }
.result-change strong i { color: var(--muted); font-style: normal; }
.result-change em { color: var(--accent); font: normal 10px ui-monospace,monospace; }
.result-change.negative em { color: var(--red); }
.result-quiet { grid-column: 1/-1; margin: 0; padding: 14px; background: var(--surface); }
.result-causes { padding: 17px 20px 20px; }
.result-causes h4 { margin: 0 0 8px; color: var(--text); font-size: 12px; font-weight: 500; }
.result-causes ul { margin: 0; padding-left: 18px; line-height: 1.7; }
.quarter-row { display:grid; grid-template-columns:45px repeat(4,1fr); gap:8px; padding:10px 12px; border-bottom:1px solid var(--line); color:var(--muted); font-size:10px; }
.quarter-row strong { color:var(--accent); }
.quarter-row.commission-row { grid-template-columns:45px repeat(5,1fr); }
.quarter-row .up { color:var(--accent); }
.quarter-row .down { color:var(--red); }
.bonus-row { display:grid; gap:5px; padding:11px 12px; border-bottom:1px solid var(--line); background:var(--accent-dim); color:var(--muted); font-size:10px; }
.bonus-row strong { color:var(--accent); }
@media (max-width:640px) { .quarter-row.commission-row { grid-template-columns:42px 1fr 1fr; } .quarter-row.commission-row span { min-width:0; } }
.decision-panel { overflow: hidden; border-top-color: var(--purple); border-radius: 8px; }
.primary-decision { border-color: rgba(185,162,255,.5); background: linear-gradient(135deg,rgba(31,29,47,.52),rgba(17,22,27,.96) 42%); box-shadow: 0 0 0 1px rgba(185,162,255,.08), 0 20px 44px rgba(0,0,0,.23); }
.primary-decision .panel-heading { min-height: 52px; padding: 0 18px; background: rgba(185,162,255,.045); }
.primary-decision .section-number { color: var(--purple); font-size: 10px; }
.primary-decision .panel-heading h2 { font-size: 16px; font-weight: 550; }
.event-required { padding: 5px 8px; border: 1px solid rgba(185,162,255,.26); border-radius: 999px; background: rgba(185,162,255,.1); color: var(--purple); font-size: 10px; white-space: nowrap; }
.decision-body { padding: 22px 20px 20px; }
.decision-body h3 { margin: 0 0 10px; font-size: 23px; font-weight: 560; letter-spacing: -.015em; }
.decision-body > p { max-width: 760px; margin: 0 0 19px; color: #aeb9c2; font-size: 13px; line-height: 1.7; }
.decision-tradeoffs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; margin: 0 0 14px; }
.decision-tradeoffs article { display: grid; gap: 3px; min-width: 0; padding: 9px 10px; border: 1px solid var(--line); border-radius: 6px; background: rgba(255,255,255,.018); }
.decision-tradeoffs span { color: var(--muted); font-size: 9px; letter-spacing: .06em; }
.decision-tradeoffs strong { color: var(--text); font-size: 11px; font-weight: 500; line-height: 1.45; }
.decision-options { display: grid; grid-template-columns: 1fr; gap: 7px; }
.decision-option { display: grid; grid-template-columns: minmax(152px,.55fr) minmax(0,1fr); align-items: center; gap: 14px; min-height: 68px; padding: 13px 15px; border-color: var(--line); background: rgba(7,11,14,.38); text-align: left; transition: border-color .16s ease, background .16s ease, transform .16s ease; }
.decision-option:hover { border-color: rgba(215,255,79,.68); background: rgba(215,255,79,.045); transform: translateX(2px); }
.decision-option strong { font-size: 13px; font-weight: 560; line-height: 1.45; }
.decision-option span { color: var(--muted); font-size: 11px; line-height: 1.55; }
.illegal-option { border-color: rgba(255,107,107,.55); background: rgba(255,107,107,.06); }
.illegal-option strong { color: var(--red); }
@media (max-width:640px) { .decision-tradeoffs { grid-template-columns: 1fr; } }

.event-resolution-panel { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 15px 16px; border: 1px solid rgba(97,219,232,.3); border-radius: 8px; background: rgba(97,219,232,.075); }
.event-resolution-panel[hidden] { display: none; }
.event-resolution-panel > div { display: grid; gap: 6px; }
.event-resolution-panel > div > span { color: var(--cyan); font-size: 9px; letter-spacing: .09em; }
.event-resolution-panel strong { font-size: 13px; font-weight: 500; line-height: 1.5; }
.event-resolution-panel > button { flex: none; width: 32px; height: 32px; padding: 0; border-color: transparent; background: transparent; color: var(--muted); font-size: 20px; }
.resolution-changes { display: flex!important; flex-wrap: wrap; gap: 5px!important; }
.resolution-change { padding: 4px 7px; border-radius: 999px; background: var(--accent-dim); color: var(--accent)!important; font: 9px ui-monospace,monospace; letter-spacing: 0!important; }
.resolution-change.negative { background: rgba(255,107,107,.1); color: var(--red)!important; }
.resolution-change.neutral { background: rgba(97,219,232,.08); color: var(--muted)!important; font-family: inherit; }

.world-workbench { margin-top: 16px; overflow: hidden; border-radius: 8px; }
.world-tabs { display: flex; gap: 4px; padding: 7px; border-bottom: 1px solid var(--line); background: #0d1216; }
.world-tab { min-height: 40px; border-color: transparent; background: transparent; color: var(--muted); font-size: 12px; }
.world-tab:hover { border-color: transparent; color: var(--text); }
.world-tab.active { background: var(--surface-2); color: var(--accent); }
.world-tab-panel { min-height: 120px; }
.right-column .panel { overflow: hidden; border-radius: 8px; }
.right-column .memory-list { max-height: 380px; font-size: 11px; }

body.large-text { font-size: 17px; }
body.large-text .career-stat > span:first-child, body.large-text .plan-card small, body.large-text .memory-list, body.large-text .decision-option span { font-size: 12px; }
body.large-text .plan-card > span, body.large-text .decision-option strong { font-size: 14px; }
body.reduce-motion *, body.reduce-motion *::before, body.reduce-motion *::after { scroll-behavior: auto!important; animation-duration: .001ms!important; animation-iteration-count: 1!important; transition-duration: .001ms!important; }

.world-running-overlay { position: fixed; z-index: 100; inset: 0; display: grid; place-items: center; padding: 20px; background: rgba(4,7,9,.78); backdrop-filter: blur(7px); }
.world-running-overlay[hidden] { display: none; }
.update-notice { position: fixed; z-index: 90; inset: 0; display: grid; place-items: center; padding: max(18px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left)); pointer-events: none; }
.update-notice[hidden] { display: none; }
.update-notice-card { display: grid; gap: 10px; width: min(330px, 100%); padding: 16px; border: 1px solid rgba(215,255,79,.48); border-radius: 10px; background: rgba(19,25,29,.98); color: var(--text); box-shadow: 0 18px 60px rgba(0,0,0,.5); pointer-events: auto; }
.update-notice h2 { margin: 0; font-size: 16px; font-weight: 650; }
.update-notice p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.55; }
.update-notice-actions { display: flex; justify-content: flex-end; gap: 8px; }
.update-notice button { min-width: 76px; min-height: 44px; padding: 6px 11px; border: 0; border-radius: 7px; background: var(--accent); color: #11160d; font-size: 12px; font-weight: 800; white-space: nowrap; }
.update-notice button.secondary { border: 1px solid var(--line); background: transparent; color: var(--text); }
.update-notice button:disabled { background: #343c3f; color: #aab2b4; cursor: default; }
.world-running-card { width: min(430px,100%); padding: 30px; border: 1px solid var(--line-strong); border-radius: 14px; background: linear-gradient(145deg,#171e25,#0d1216); box-shadow: 0 30px 100px rgba(0,0,0,.6); text-align: center; }
.world-running-card h2 { display: block; margin: 4px 0 10px; font-size: 22px; }
.world-running-card > p:last-child { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.world-running-orbit { position: relative; display: block; width: 48px; height: 48px; margin: 0 auto 20px; border: 1px solid var(--line-strong); border-radius: 50%; }
.world-running-orbit::before { content: ''; position: absolute; top: -4px; left: 19px; width: 9px; height: 9px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 18px var(--accent); transform-origin: 5px 28px; animation: world-orbit 1.15s linear infinite; }
@keyframes world-orbit { to { transform: rotate(360deg); } }

body.has-scene-takeover .career-ended-banner,
body.has-scene-takeover .career-layout,
body.has-scene-takeover .world-workbench { display: none!important; }
.scene-takeover { --scene-tone: var(--accent); position: relative; min-height: calc(100dvh - 230px); margin-top: 12px; overflow: visible; background: transparent; color: var(--text); }
.scene-takeover[hidden] { display: none; }
.scene-takeover.scene-positive { --scene-tone: #73e6b1; }
.scene-takeover.scene-pressure { --scene-tone: #ffbd65; }
.scene-takeover.scene-danger { --scene-tone: #ff7777; }
.scene-frame { position: relative; display: grid; grid-template-rows: 1fr auto; min-height: inherit; width: min(980px,100%); margin: 0 auto; padding: clamp(28px,5vh,54px) clamp(12px,5vw,62px) 24px; }
.scene-content { align-self: center; max-width: 800px; }
.scene-eyebrow { margin: 0 0 22px; color: var(--scene-tone); font: 600 11px/1.3 ui-monospace,monospace; letter-spacing: .16em; }
.scene-content h2 { max-width: 720px; margin: 0; font-size: clamp(28px,3.8vw,48px); font-weight: 500; line-height: 1.18; letter-spacing: -.025em; }
.scene-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 18px; }
.scene-tags[hidden] { display: none; }
.scene-tags span { padding: 5px 8px; border: 1px solid color-mix(in srgb,var(--scene-tone) 28%,var(--line)); border-radius: 999px; color: var(--scene-tone); font-size: 9px; }
.scene-body { display: grid; gap: 12px; max-width: 690px; margin-top: 30px; }
.scene-body p { margin: 0; color: #aeb8c1; font-size: clamp(14px,1.55vw,18px); line-height: 1.85; }
.scene-highlights { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); max-width: 800px; margin-top: clamp(30px,5vh,54px); border-top: 1px solid color-mix(in srgb,var(--scene-tone) 25%,var(--line)); border-bottom: 1px solid color-mix(in srgb,var(--scene-tone) 25%,var(--line)); }
.scene-highlights article { display: grid; gap: 8px; min-width: 0; padding: 16px 18px; background: transparent; }
.scene-highlights article + article { border-left: 1px solid var(--line); }
.scene-highlights span { color: #7e8993; font-size: 10px; letter-spacing: .08em; }
.scene-highlights strong { min-width: 0; color: var(--scene-tone); font-size: 14px; font-weight: 500; line-height: 1.45; overflow-wrap: anywhere; }
.scene-action { display: flex; align-items: center; justify-content: flex-end; gap: 18px; padding-top: 30px; }
.scene-feedback { margin: 0; color: var(--muted); font-size: 11px; }
.scene-continue { min-width: 230px; min-height: 52px; border-color: var(--scene-tone); background: var(--scene-tone); color: #07100d; }
.scene-continue:disabled { opacity: .6; }

.career-ended-banner { display: grid; gap: 6px; margin: 14px 0; padding: 17px 19px; border: 1px solid rgba(255,176,92,.3); border-radius: 8px; background: rgba(255,176,92,.08); }
.career-ended-banner[hidden] { display: none; }
.career-ended-banner span { color: var(--orange); font-size: 10px; letter-spacing: .08em; }
.career-ended-banner strong { font-size: 17px; font-weight: 500; line-height: 1.45; }
.career-ended-banner p { margin: 0; color: var(--muted); font-size: 11px; }

@media (max-width: 920px) {
  .workspace { grid-template-columns: 1fr; }
  .summary-strip { grid-template-columns: repeat(3, 1fr); }
  .summary-strip > div { border-bottom: 1px solid var(--line); }
  .career-layout { grid-template-columns: 1fr; }
  .career-stats { grid-template-columns: repeat(7,minmax(0,1fr)); }
  .career-roster { grid-template-columns: repeat(3,1fr); }
  .right-column { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .update-notice { padding: 18px; }
  .update-notice-card { width: min(342px, 100%); padding: 14px; }
  .app-shell { padding: 10px 10px calc(78px + env(safe-area-inset-bottom)); }
  .career-cockpit { width: 100vw; margin: -10px calc(50% - 50vw) 12px; padding: calc(8px + env(safe-area-inset-top)) max(10px, env(safe-area-inset-left)) 8px max(10px, env(safe-area-inset-right)); box-shadow: 0 8px 20px rgba(0,0,0,.3); }
  .career-cockpit .topbar { margin-bottom: 7px; }
  .topbar { align-items: stretch; flex-direction: row; margin-bottom: 14px; }
  .career-topbar { display: grid; grid-template-columns: minmax(118px,1fr) auto; align-items: center; gap: 7px; }
  .career-topbar > div:first-child { min-width: 0; }
  .career-topbar h1 { overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
  .career-topbar .eyebrow { display: none; }
  .account-entry { margin-left: auto; }
  .account-button { gap: 5px; min-height: 42px; max-width: 235px; padding: 4px 6px 4px 4px; }
  .account-avatar { flex-basis: 28px; width: 28px; height: 28px; font-size: 12px; }
  .account-copy { display: grid; min-width: 44px; max-width: 64px; }
  .account-copy strong { max-width: 64px; font-size: 10px; }
  .account-copy small { overflow: hidden; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
  .account-meta-chip { display: inline; padding: 3px 5px; font-size: 8px; }
  .account-chevron { display: none; }
  .account-menu { position: fixed; top: auto; right: 8px; bottom: calc(8px + env(safe-area-inset-bottom)); left: 8px; width: auto; max-height: min(560px, calc(100dvh - 116px)); overflow: auto; border-radius: 16px; box-shadow: 0 -18px 60px rgba(0,0,0,.7); }
  .summary-strip { grid-template-columns: repeat(2, 1fr); }
  .transport { grid-template-columns: auto auto auto 1fr; }
  #timeline { grid-column: 1 / -1; grid-row: 2; }
  #step-label { grid-column: 4; grid-row: 1; }
  #speed { display: none; }
  .information-grid { grid-template-columns: 1fr; }
  .office-world { min-height: 500px; }
  .task { grid-template-columns: 1fr auto; }
  .progress-track { grid-column: 1 / -1; }
  .command-actions { align-items: stretch; flex-direction: column; }
  .command-actions .play-button { min-height: 42px; }
  .profile-form { grid-template-columns: 1fr; }
  .career-onboarding { margin-top: 2vh; padding: 24px 20px; }
  .career-onboarding h1 { font-size: 38px; }
  .onboarding-copy { margin: 17px 0 22px; font-size: 14px; }
  .entry-brand { margin-bottom: 23px; }
  .form-status { margin: 16px -20px -24px; padding: 12px 20px; }
  .profile-form label > span { font-size: 12px; }
  .profile-form input, .profile-form select { min-height: 46px; }
  .career-clock { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .career-clock > div:not(.career-progress):not(.market-ticker) { min-height: 39px; padding: 6px 7px 8px; border-bottom: 0; }
  .career-clock > div:nth-child(4) { border-right: 0; }
  .career-clock span { margin-bottom: 2px; font-size: 8px; }
  .career-clock > div:not(.market-ticker) strong { display: block; overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
  .seasonal-life-active .career-clock { grid-template-columns: minmax(0,1.9fr) minmax(0,1.3fr) minmax(0,1.1fr); }
  .seasonal-life-active .career-clock > .seasonal-time-group { grid-column: auto; align-items: center; flex-direction: row; gap: 3px; min-height: 25px; padding: 5px 4px; }
  .seasonal-life-active .seasonal-time-readout { gap: 4px; max-width: 100%; }
  .seasonal-life-active .seasonal-time-group strong { font-size: 10px; }
  .seasonal-clock-controls { gap: 1px; margin-left: 0; flex-shrink:0; }
  .seasonal-clock-controls button { width: 14px; height: 18px; min-width: 0; min-height: 0; font-size: 10px; }
  .market-ticker { gap: 8px; padding: 7px 8px 8px; }
  .market-ticker-items { gap: 11px; }
  .market-quote { gap: 4px; }
  .market-quote em { font-size: 8px; }
  .market-quote strong { font-size: 9px; }
  .career-progress { height: 2px; }
  .primary-decision, .event-resolution-panel { scroll-margin-top: 170px; }
  #career-game { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
  .career-stats { position: fixed; z-index: 45; right: 0; bottom: 0; left: 0; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 0; margin: 0; padding-bottom: env(safe-area-inset-bottom); overflow: hidden; border: 0; border-top: 1px solid var(--line-strong); border-radius: 0; background: rgba(10,13,16,.975); box-shadow: 0 -10px 28px rgba(0,0,0,.42); backdrop-filter: blur(14px); }
  .career-stat { align-content: center; gap: 3px; min-height: 56px; padding: 6px 4px; border-right: 1px solid var(--line); background: transparent; text-align: center; }
  .career-stat:last-child { border-right: 0; }
  .career-stat.stat-funds { display: none; }
  .career-stats { grid-template-columns: repeat(6,minmax(0,1fr)); }
  .career-stat > span:first-child { overflow: hidden; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
  .career-stat strong { font-size: 11px; }
  .career-stat .stat-value { display: block; }
  .career-stat .stat-delta { display: none; }
  .career-stat .progress-track { grid-column: auto; width: calc(100% - 8px); height: 3px; margin: 0 auto; border-radius: 99px; }
  .relationship-stat-button { justify-items: center; padding: 6px 2px; text-align: center; }
  .relationship-stat-icon { width: 20px; height: 20px; }
  .relationship-stat-button small { font-size: 7px; }
  .stat-display-full { display: none; }
  .stat-display-compact { display: inline; }
  .career-layout { gap: 12px; }
  .right-column { grid-template-columns: 1fr; }
  .panel-heading { min-height: 48px; }
  .decision-body { padding: 18px 14px 16px; }
  .decision-body h3 { font-size: 20px; }
  .decision-body > p { font-size: 13px; }
  .decision-options { grid-template-columns: 1fr; }
  .decision-option { grid-template-columns: 1fr; gap: 4px; min-height: 72px; padding: 12px; }
  .planner-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .plan-card { grid-template-columns: minmax(0,1fr) 82px; grid-template-rows: auto auto; align-items: center; gap: 2px 6px; min-height: 68px; padding: 8px; }
  .plan-card > .plan-title { grid-column: 1; grid-row: 1; overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
  .plan-card small { grid-column: 1; grid-row: 2; min-height: 0; overflow: hidden; font-size: 8px; line-height: 1.25; text-overflow: ellipsis; }
  .plan-card .plan-stepper, .plan-card > select { grid-column: 2; grid-row: 1 / 3; width: 82px; }
  .plan-stepper { grid-template-columns: 26px minmax(0,1fr) 26px; }
  .plan-stepper button, .plan-stepper input { min-height: 34px; padding: 0; }
  .plan-stepper button { font-size: 15px; }
  .plan-stepper input { font-size: 12px; }
  .plan-card > select { min-height: 34px; padding: 4px 18px 4px 5px; font-size: 9px; }
  .weekly-mandate { padding: 8px 10px; font-size: 9px; }
  .workload-meter { padding: 9px 10px; }
  .workload-meter > div { margin-bottom: 5px; }
  .workload-meter p { margin-top: 5px; font-size: 9px; }
  .research-issue-panel { padding: 10px; }
  .research-issue-panel h3 { margin-top: 6px; font-size: 12px; }
  .research-issue-panel > p { font-size: 9px; }
  .research-issue-actions { margin: 0 -10px -10px; }
  .research-issue-actions .plan-card { min-height: 58px; }
  .action-feedback { min-height: 32px; padding: 8px 10px; font-size: 9px; }
  .settle-week { position: static; min-height: 46px; margin: 10px; width: calc(100% - 20px); box-shadow: none; }
  .result-changes { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .result-change strong { font-size: 11px; }
  .world-tabs { overflow-x: auto; }
  .world-tab { flex: 0 0 auto; min-height: 44px; }
  .career-roster { grid-template-columns: repeat(2,1fr); }
  .stock-board { grid-template-columns: 1fr; }
  .memory-list { font-size: 12px; }
  .scene-takeover { min-height: calc(100dvh - 205px - env(safe-area-inset-bottom)); margin-top: 6px; }
  .scene-frame { min-height: inherit; padding: 20px 8px 18px; }
  .scene-content { align-self: start; padding-top: 0; }
  .scene-eyebrow { margin-bottom: 17px; font-size: 9px; }
  .scene-content h2 { max-width: 330px; font-size: clamp(24px,7.2vw,31px); line-height: 1.2; }
  .scene-body { margin-top: 22px; }
  .scene-body p { font-size: 14px; line-height: 1.75; }
  .scene-highlights { grid-template-columns: 1fr; margin-top: 26px; }
  .scene-highlights article { grid-template-columns: minmax(68px,auto) minmax(0,1fr); align-items: start; gap: 10px; padding: 11px 10px; }
  .scene-highlights article + article { border-top: 1px solid var(--line); border-left: 0; }
  .scene-highlights span { padding-top: 2px; white-space: nowrap; }
  .scene-highlights strong { font-size: 12px; }
  .scene-action { position: sticky; bottom: calc(64px + env(safe-area-inset-bottom)); display: grid; gap: 8px; margin: 24px -8px -18px; padding: 14px 8px 18px; background: linear-gradient(to bottom,transparent,var(--bg) 24%); }
  .scene-feedback { min-height: 14px; text-align: center; }
  .scene-continue { width: 100%; min-height: 52px; }
  .relationship-drawer { right: 6px; bottom: calc(68px + env(safe-area-inset-bottom)); left: 6px; width: auto; max-height: min(590px,calc(100dvh - 84px - env(safe-area-inset-bottom))); border-radius: 14px 14px 10px 10px; }
  .relationship-list { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px; }
  .relationship-person { grid-template-columns: 32px minmax(0,1fr) auto; gap: 6px; min-height: 52px; padding: 6px; }
  .relationship-avatar { width: 32px; height: 32px; font-size: 12px; }
  .relationship-person em { font-size: 8px; }
  .relationship-detail { padding: 10px 14px 18px; }
}
.policy-consent{display:flex!important;align-items:flex-start;gap:8px}.policy-consent input{width:auto;margin-top:3px}.policy-consent a{color:var(--accent)}
.legal-page{max-width:820px;margin:40px auto;padding:32px;line-height:1.75}.legal-page h1{font-size:30px}.legal-page h2{margin-top:28px;font-size:18px}.legal-page li{margin:8px 0}.legal-page a{color:var(--accent)}

/* V5: one continuous, geometric research floor.  The scene is presentation
   only; its people and locations are created from the current public game
   state in career.js. */
.v5-workbench{max-width:1180px;margin:16px auto;border:1px solid var(--line-strong);background:#0b1218;overflow:hidden}.v5-workbench>header{display:flex;align-items:center;gap:12px;min-height:42px;padding:0 14px;border-bottom:1px solid var(--line);color:#aabac4;font-size:12px}.v5-workbench>header>span{color:var(--accent);font:11px ui-monospace,monospace;letter-spacing:.12em}.v5-workbench>header>strong{color:#e7eff4;font-size:13px}.v5-workbench>header button{margin-left:auto;border:0;background:transparent;color:#aabac4;font:inherit;cursor:pointer}.v5-workbench>header button:hover{color:var(--accent)}.v5-workbench #v5-scene-status{overflow:hidden;color:#dce9e9;font-size:12px;text-overflow:ellipsis;white-space:nowrap}
.v5-central-card{position:fixed;z-index:70;top:50%;left:50%;width:min(420px,calc(100vw - 40px));max-height:min(76vh,620px);overflow:auto;transform:translate(-50%,-50%);padding:18px;border:1px solid #617783;background:#10191f;box-shadow:0 26px 90px #000b}.v5-central-card:before{content:"";position:fixed;z-index:-1;inset:-100vh -100vw;background:#0009}.v5-central-card>span{color:#b593ff;font:10px ui-monospace,monospace;letter-spacing:.12em}.v5-central-card h2{margin:8px 0;color:#f0f5f4;font-size:19px;line-height:1.35}.v5-central-card p{margin:8px 0;color:#becbd0;font-size:13px;line-height:1.6}.v5-central-card button{display:grid;width:100%;gap:4px;margin-top:7px;padding:10px;border:1px solid #3e5964;background:#14232a;color:#ecf3f2;text-align:left;cursor:pointer}.v5-central-card button strong{font-size:13px}.v5-central-card button small{color:#9fb2ba;font-size:12px;line-height:1.4}.v5-central-card button:hover{border-color:var(--accent)}
.v5-workbench .scene-grid{position:relative;display:block;height:390px;background:#0e1922}.v5-workbench .scene-grid:before{content:"";position:absolute;inset:0;opacity:.26;background-image:linear-gradient(#66849422 1px,transparent 1px),linear-gradient(90deg,#6684941d 1px,transparent 1px);background-size:34px 34px}.v5-workbench .scene-location{position:absolute;display:block;overflow:hidden;border:1px solid #49616f;background:#14222c}.v5-workbench .scene-location.institute{left:1.5%;top:3%;width:57%;height:60%}.v5-workbench .scene-location.listed{right:1.5%;top:3%;width:38.5%;height:28%}.v5-workbench .scene-location.client{left:1.5%;bottom:3%;width:97%;height:31%}.v5-workbench .scene-location h2{position:absolute;z-index:2;top:8px;left:11px;margin:0;color:#e7eff4;font-size:13px}.v5-workbench .scene-location p{position:absolute;z-index:2;top:26px;left:11px;margin:0;color:#9db1bf;font-size:9px}.v5-workbench .room-geometry{position:absolute;inset:46px 11px 11px;border:1px solid #3c5361;background:#101d27}.v5-workbench .room-geometry b{position:absolute;display:block;border:1px solid #607985;background:#253945;box-shadow:inset 0 0 0 2px #172832}.v5-workbench .institute-geometry .desk{width:25%;height:27%}.v5-workbench .desk-a{left:7%;top:20%}.v5-workbench .desk-b{left:38%;top:20%}.v5-workbench .desk-c{left:7%;bottom:15%}.v5-workbench .desk-d{left:38%;bottom:15%}.v5-workbench .institute-geometry .room{width:24%;height:34%;background:#1c303b}.v5-workbench .chief-office{right:6%;top:12%}.v5-workbench .director-office{right:6%;bottom:10%}.v5-workbench .listed-geometry .table-small{left:24%;top:36%;width:52%;height:34%}.v5-workbench .listed-geometry .seat{width:13%;height:18%}.v5-workbench .listed-geometry .seat-a{left:6%;top:42%}.v5-workbench .listed-geometry .seat-b{right:6%;top:42%}.v5-workbench .listed-geometry .seat-c{left:43%;top:8%}.v5-workbench .listed-geometry .seat-d{left:43%;bottom:8%}.v5-workbench .client-geometry .table-large{left:22%;top:26%;width:56%;height:48%}.v5-workbench .client-geometry .seat{width:9%;height:13%}.v5-workbench .client-geometry .seat-a,.v5-workbench .client-geometry .seat-b,.v5-workbench .client-geometry .seat-c,.v5-workbench .client-geometry .seat-d{left:8%}.v5-workbench .client-geometry .seat-e,.v5-workbench .client-geometry .seat-f,.v5-workbench .client-geometry .seat-g,.v5-workbench .client-geometry .seat-h{right:8%}.v5-workbench .client-geometry .seat-a,.v5-workbench .client-geometry .seat-e{top:16%}.v5-workbench .client-geometry .seat-b,.v5-workbench .client-geometry .seat-f{top:38%}.v5-workbench .client-geometry .seat-c,.v5-workbench .client-geometry .seat-g{top:60%}.v5-workbench .client-geometry .seat-d,.v5-workbench .client-geometry .seat-h{bottom:7%}
.v5-workbench .actor{position:absolute;z-index:4;width:54px;margin-left:-27px;margin-top:-24px;border:0;background:transparent;text-align:center;transition:left .78s cubic-bezier(.2,.8,.2,1),top .78s cubic-bezier(.2,.8,.2,1),opacity .35s;cursor:pointer}.v5-workbench .person-sprite{position:relative;display:block;width:26px;height:40px;margin:0 auto;filter:drop-shadow(0 5px 4px #0006)}.v5-workbench .person-sprite i{position:absolute;display:block}.v5-workbench .person-head{left:8px;top:0;width:11px;height:11px;border-radius:50%;background:#f1c8a6}.v5-workbench .person-body{left:5px;top:10px;width:17px;height:19px;border-radius:7px 7px 3px 3px;background:var(--person-color,#56ccda)}.v5-workbench .person-leg{top:28px;width:5px;height:11px;border-radius:0 0 3px 3px;background:#aeb8c0}.v5-workbench .person-leg:nth-child(3){left:7px}.v5-workbench .person-leg:nth-child(4){right:6px}.v5-workbench .actor strong{display:inline-block;max-width:74px;overflow:hidden;background:#05080ad1;color:#e8f1f3;font-size:9px;text-overflow:ellipsis;text-shadow:none;white-space:nowrap}.v5-workbench .actor.player{--person-color:var(--accent)}.v5-workbench .actor-chief{--person-color:#aa8cf0}.v5-workbench .actor-director{--person-color:#ff5e6b}.v5-workbench .actor-client,.v5-workbench .actor-ir,.v5-workbench .actor-peer{--person-color:#56ccda}.v5-workbench .actor.working .person-body{box-shadow:0 0 0 5px #c9ff4322,0 0 16px #c9ff4388}.v5-life-note{display:grid;grid-template-columns:minmax(0,1fr) repeat(3,auto);align-items:center;gap:8px 12px;padding:12px 14px;border-top:1px solid var(--line);background:#10191d}.v5-life-note strong{color:#dfe8eb;font-size:14px}.v5-life-note p{grid-column:1;margin:0;color:#a9bac1;font-size:12px;line-height:1.55}.v5-life-note button{min-height:32px;border:1px solid #48616c;background:#14232a;color:#dce9e9;padding:5px 9px;cursor:pointer}.v5-life-note button:hover{border-color:var(--accent);color:var(--accent)}
@media (max-width:720px){.v5-workbench{margin:10px 0;border-right:0;border-left:0}.v5-workbench>header{padding:0 10px}.v5-workbench>header strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v5-workbench .scene-grid{height:390px}.v5-workbench .scene-location h2{font-size:12px}.v5-workbench .scene-location p{font-size:8px}.v5-workbench .room-geometry{inset:40px 7px 7px}.v5-workbench .actor{width:58px;min-width:58px;min-height:58px;margin-left:-29px;margin-top:-26px;transform:scale(.76);transform-origin:top left}.v5-life-note{grid-template-columns:1fr 1fr;padding:10px}.v5-life-note strong,.v5-life-note p{grid-column:1 / -1}.v5-life-note button{min-height:38px;font-size:11px}}

/* EP-23: the workbench is a readable playback of an already-settled turn.
   These classes only move public actor markers; they never drive a request. */
.v5-workbench .actor.player .person-body{box-shadow:0 0 0 4px #c9ff4344,0 0 18px #c9ff43aa}.v5-workbench .actor.player strong{color:#dcff75;border:1px solid #c9ff4366}.v5-workbench .actor.moving .person-sprite{animation:v5-walk .32s ease-in-out infinite alternate}.v5-workbench .actor.offstage{opacity:0;pointer-events:none}.v5-workbench .scene-grid[data-focus-place="listed"] .scene-location.listed,.v5-workbench .scene-grid[data-focus-place="client"] .scene-location.client{border-color:#c9ff43;box-shadow:inset 0 0 0 1px #c9ff4366}.v5-workbench .scene-grid[data-focus-place="chief"] .chief-office,.v5-workbench .scene-grid[data-focus-place="desk"] .institute-geometry{border-color:#c9ff43;box-shadow:inset 0 0 0 1px #c9ff4366}.v5-workbench .scene-grid[data-focus-place="offstage"]{background:#0a1115}.v5-workbench .scene-grid[data-focus-place="offstage"]::after{content:'暂时离开现场';position:absolute;right:10px;bottom:8px;color:#aabac4;font-size:10px}@keyframes v5-walk{from{transform:translateY(0)}to{transform:translateY(-3px)}}
@media (max-width:720px){.v5-central-card{width:min(342px,calc(100vw - 48px));max-height:70dvh;padding:14px}.v5-central-card h2{margin:7px 0;font-size:18px;line-height:1.32}.v5-central-card p{margin:7px 0;font-size:12px;line-height:1.5}.v5-central-card button{min-height:44px;margin-top:7px;padding:9px}.v5-central-card button strong{font-size:12px}.v5-central-card button small{font-size:10px}.v5-workbench>header{min-height:44px}.v5-workbench>header button{min-width:44px;min-height:44px;padding:4px 8px}.v5-workbench .actor.player strong{font-size:10px}}
.v5-workbench .scene-actor-bubble{position:absolute;z-index:3;left:50%;bottom:100%;width:max-content;max-width:130px;padding:4px 6px;transform:translateX(-50%);border:1px solid #57707b;background:#0d171dcc;color:#dce7e9;font-size:9px;line-height:1.35;white-space:normal;pointer-events:none}
.v5-workbench .scene-location-bubble{position:absolute;z-index:4;right:8px;bottom:8px;max-width:150px;padding:5px 7px;border:1px solid #57707b;background:#0d171ce6;color:#dce7e9;font-size:9px;line-height:1.4;pointer-events:none}
.v5-workbench .actor.player{z-index:8}.v5-workbench .actor.player strong{position:relative;z-index:1;padding:1px 4px}.v5-recent-moment{display:flex;gap:10px;align-items:flex-start;padding:10px 14px;border-top:1px solid #344854;background:#0e171d}.v5-recent-moment span{flex:none;color:var(--accent);font:10px ui-monospace,monospace;letter-spacing:.1em}.v5-recent-moment p{margin:0;color:#bdcbd3;font-size:12px;line-height:1.5}
.scene-sr-status{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}.v5-workbench>header button{min-height:36px}.has-v5-read-phase .planner-panel,.has-v5-read-phase #result-panel{display:none}.v5-workbench .scene-actor-bubble{z-index:12;bottom:calc(100% + 3px);max-width:142px;padding:5px 7px;border-color:#71909c;background:#0b141aeF;color:#e2edef;font-size:10px;line-height:1.45;box-shadow:0 4px 12px #0007}.v5-workbench .scene-location-bubble{z-index:10;max-width:142px;padding:6px 8px;font-size:10px;line-height:1.45;box-shadow:0 4px 12px #0007}
@media (max-width:720px){.v5-workbench .scene-grid{min-width:0}.v5-workbench .scene-actor-bubble{max-width:112px;padding:4px 5px;font-size:9px;line-height:1.35}.v5-workbench .scene-location-bubble{max-width:118px;padding:4px 5px;font-size:9px;line-height:1.35}}
.seasonal-scene-task{position:relative;margin:6px 0 6px auto;flex:0 0 120px;max-width:48%;border:1px solid #415661;border-radius:5px;background:#091116;color:#e8f1f2;font-size:12px;line-height:1.5}.seasonal-scene-task summary{padding:7px 9px;cursor:pointer;color:var(--accent)}.seasonal-agenda-next{display:flex;justify-content:space-between;gap:8px;padding:5px 9px;border-top:1px solid #41566155;opacity:.65}.seasonal-agenda-next small{font-size:10px}.seasonal-scene-task [role=status]{display:block;padding:4px 9px;font-size:10px}.seasonal-life-active .v5-workbench>header{align-items:flex-start}.seasonal-life-active .v5-workbench>header>span{padding-top:14px}
.seasonal-life-active .v5-central-card button{display:block;width:auto;max-width:100%;min-width:0;min-height:32px;padding:6px 10px;font-size:12px;font-weight:400;line-height:1.5;white-space:normal}
.seasonal-life-active .v5-central-card>.play-button{margin-left:auto}
.seasonal-life-active .v5-central-card .modal-actions{display:flex;flex-direction:column;align-items:flex-start;gap:7px}
.seasonal-life-active .v5-central-card .modal-actions>button:only-child{align-self:flex-end}
.seasonal-life-active .v5-central-card .seasonal-choice{width:100%;text-align:left;margin-left:0}.seasonal-choice small{display:block;margin-top:4px;font-size:11px;color:var(--muted)}
.seasonal-life-active .v5-workbench>header{position:relative;min-height:44px;align-items:center;overflow:visible;z-index:20}.seasonal-life-active .seasonal-scene-task{position:absolute;right:8px;top:5px;width:auto;max-width:none;margin:0;z-index:21;display:flex;align-items:flex-start;gap:5px;border:0;background:none;box-shadow:none}.seasonal-action-tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:46px;min-height:52px;padding:5px 2px;border:1px solid #455962;border-radius:9px;background:#0b141a;color:#a6b5bc;font:400 10px/1.3 sans-serif;opacity:.65;cursor:default}.seasonal-action-tile.is-current{border-color:var(--accent);color:var(--accent);opacity:1}.seasonal-action-icon svg{display:block;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.seasonal-action-tile progress{position:absolute;bottom:2px;width:34px;height:2px;accent-color:var(--accent)}.seasonal-life-active .v5-workbench>header>span{padding-top:0}.seasonal-life-active .seasonal-bill-total{color:var(--text);font-size:12px}
.seasonal-life-active .seasonal-plan-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;padding:12px}
.seasonal-life-active .seasonal-plan-actions button{width:auto;min-width:0;min-height:32px;margin:0;padding:6px 10px;font-size:12px;font-weight:400}
.seasonal-life-active .planner-panel{scroll-margin-top:180px}
.seasonal-life-active .workload-meter>.progress-track,.seasonal-life-active #plan-feedback:empty{display:none}
.seasonal-life-active .workload-meter>div{margin:0}.seasonal-life-active #seasonal-plan-preview summary{font-size:12px;margin-top:8px;cursor:pointer}
.seasonal-life-active .planner-panel>.week-result{padding:0 12px 10px;margin:0;font-size:10px}
.seasonal-life-active .seasonal-reflection{font-size:18px;line-height:1.65;color:#edf2e9;margin:18px 0 22px}
.seasonal-life-active .seasonal-day-bill{border-top:1px solid var(--line);padding:12px 0;margin:10px 0;color:var(--muted);font-size:12px}.seasonal-day-bill summary{cursor:pointer}.seasonal-life-active .seasonal-day-bill p{font-size:11px;margin:6px 0}
.seasonal-life-active #week-result{padding:14px}
@media(max-width:720px){.seasonal-life-active .planner-panel{scroll-margin-top:175px}.seasonal-life-active .seasonal-reflection{font-size:16px}.seasonal-scene-task{flex-basis:112px}.seasonal-life-active .v5-central-card h2{font-size:15px}.seasonal-life-active .v5-central-card button{font-size:12px;min-height:34px}}
/* EP-32C: details are additions to the existing workbench, not a new shell. */
.seasonal-life-active .career-stats { grid-template-columns:repeat(6,minmax(0,1fr)) 176px; }
.seasonal-bottom-tools { display:flex; align-items:center; justify-content:center; }
.seasonal-bottom-tools button { width:44px; min-width:44px; min-height:44px; padding:10px; border:0; background:transparent; color:var(--muted); display:grid; place-items:center; }
.seasonal-bottom-tools button:hover { color:var(--accent); }
.seasonal-bottom-tools button:focus-visible, .seasonal-skill-row:focus-visible { outline:2px solid var(--accent); outline-offset:-2px; }
.seasonal-bottom-tools svg, .seasonal-skill-row svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.seasonal-bottom-tools .relationship-stat-button > span:first-child, .seasonal-bottom-tools .relationship-stat-button small { display:none; }
.seasonal-bottom-tools .relationship-stat-icon { width:22px; height:22px; color:inherit; }
.seasonal-skill-row { display:grid; grid-template-columns:24px 1fr auto; gap:8px; align-items:center; width:100%; border:0; background:transparent; color:inherit; text-align:left; padding:10px 4px; font-size:15px; }
.seasonal-skill-row progress { grid-column:2 / 4; }
.seasonal-skill.training .seasonal-skill-row { color:var(--accent); }
.seasonal-skill-help { padding:8px 12px; border-left:2px solid var(--muted); }
.seasonal-skill-help button { background:transparent; color:var(--text); border:0; }
@media(max-width:600px) {
  .seasonal-life-active .career-stats { grid-template-columns:repeat(5,minmax(0,1fr)) 176px; }
  .seasonal-life-active .career-stat > span:first-child { font-size:10px; }
  .seasonal-life-active .career-stat strong { font-size:13px; }
}
.seasonal-growth-detail { width:min(520px,calc(100vw - 36px)); max-height:72dvh; box-sizing:border-box; overflow:auto; background:#111a20; color:#e2e8ea; border:1px solid #53616a; border-radius:12px; padding:20px; }
.seasonal-growth-detail::backdrop { background:rgba(0,0,0,.55); }
.seasonal-growth-detail button, .seasonal-growth-detail summary { min-height:44px; cursor:pointer; }
.seasonal-growth-detail > button { float:right; position:sticky; top:0; background:#253039; color:#e2e8ea; }
.seasonal-growth-detail section { border-bottom:1px solid #34424b; padding:6px 0; }
.seasonal-growth-detail h3 { font-size:15px; margin:8px 0; }
.seasonal-growth-detail section.training h3 { color:#d7ff8e; }
.seasonal-growth-detail p { font-size:13px; line-height:1.6; }
.seasonal-growth-detail progress { width:100%; height:7px; accent-color:#caff42; }
.seasonal-wish-row { display:flex; align-items:center; gap:8px; min-height:48px; font-size:14px; }
.seasonal-wish-row span { flex:1; }
.seasonal-wish-row input { width:24px; height:24px; accent-color:#caff42; }
.seasonal-wish-selection { display:flex; align-items:center; gap:8px; flex:1; min-height:44px; }
.seasonal-wish-focus { display:flex; align-items:center; gap:3px; min-height:44px; }
.seasonal-life-active .v5-workbench .scene-grid[data-life-place]:not([data-life-place=""])::after { content:attr(data-life-place); right:3%; top:58%; bottom:auto; max-width:35%; padding:4px 7px; border:1px solid #40535b; background:#101b21; color:#d5e2e6; }
.seasonal-life-active .seasonal-action-tile{width:38px;min-height:34px;padding:3px 1px;gap:2px;border-radius:6px;font-size:8px;line-height:1.2;white-space:nowrap}
.seasonal-life-active .seasonal-action-icon svg{width:14px;height:14px}
.seasonal-life-active .seasonal-action-tile progress{width:25px;height:2px;bottom:0}
.seasonal-life-active .v5-workbench .scene-grid{height:540px}
.seasonal-life-active .v5-workbench .scene-location.institute{top:2%;height:44%}
.seasonal-life-active .v5-workbench .scene-location.listed{top:2%;height:25%}
.seasonal-life-active .v5-workbench .scene-location.client{top:49%;height:22%;bottom:auto}
.seasonal-life-active .v5-workbench .scene-location.home{left:1.5%;top:74%;width:47.5%;height:24%}
.seasonal-life-active .v5-workbench .scene-location.outdoor{right:1.5%;top:74%;width:47.5%;height:24%}
.seasonal-life-active .home-geometry .bed{left:8%;top:20%;width:34%;height:60%;border-radius:3px}
.seasonal-life-active .home-geometry .sofa{right:8%;top:35%;width:34%;height:38%;border-radius:5px}
.seasonal-life-active .outdoor-geometry{background:#15291f;border-color:#395845}
.seasonal-life-active .outdoor-geometry .tree{right:8%;top:8%;width:25%;height:45%;border-radius:50%;background:#355341;border-color:#50704c}
.seasonal-life-active .outdoor-geometry .bench{left:8%;bottom:16%;width:42%;height:18%}
.seasonal-life-active .scene-grid[data-focus-place="home"] .scene-location.home,.seasonal-life-active .scene-grid[data-focus-place="outdoor"] .scene-location.outdoor{border-color:var(--accent)}
.seasonal-life-active #asset-summary[hidden] { display:none; }
.seasonal-life-active .office-interlude-actor { z-index:15; }
.seasonal-life-active .actor.player { z-index:20; }
.seasonal-life-active .office-looking-back .person-sprite { transform:rotate(-12deg); }
.seasonal-life-active .office-interlude-actor .scene-actor-bubble { font-size:12px; max-width:145px; }
.seasonal-life-active .office-interlude-actor[data-office-point="beside_player"] .scene-actor-bubble { left:calc(100% + 4px); top:18px; bottom:auto; transform:none; max-width:104px; }
.seasonal-growth-bubble { position:absolute; bottom:100%; left:50%; transform:translateX(-50%); padding:4px 7px; max-width:150px; width:max-content; background:#202e24; color:#d7ff8e; border:1px solid #577b42; border-radius:6px; font-size:11px; line-height:1.35; pointer-events:none; z-index:12; }
.chief-team-dialog {
  width: min(510px, calc(100vw - 28px));
  max-height: min(78dvh, 780px);
  padding: 18px;
  border: 1px solid rgba(106, 143, 125, .5);
  border-radius: 18px;
  background: #10221e;
  color: #eff9f2;
  overflow: auto;
}
.chief-team-dialog::backdrop { background: rgba(3, 16, 13, .58); }
.chief-team-header { display: flex; justify-content: space-between; align-items: center; gap: 12px; position: sticky; top: -18px; z-index: 2; background: #10221e; padding: 6px 0; }
.chief-team-header h2 { margin: 0; font-size: 1.2rem; }
.chief-team-close { min-width: 44px; min-height: 44px; font-size: 1.35rem; }
.chief-team-feedback { margin: 3px 0; color: #d4f4c0; font-size: 13px; }
.chief-team-feedback:empty { display: none; }
.chief-team-feedback.error { color: #ffb6a7; }
.chief-pending-check { margin: 4px 0; padding: 6px 10px; }
.chief-team-focus { display: grid; gap: 6px; padding: 10px; border: 1px solid #567261; border-radius: 10px; }
.chief-team-focus h3 { margin: 0; font-size: 1rem; }
.chief-team-focus button { text-align: left; padding: 6px 9px; font-size: 13px; min-height: 36px; }
.chief-team-summary { color: #b7d7c4; margin: 8px 0 8px; }
.chief-team-tally { color: #d8ecdd; font-size: 13px; margin: 0 0 15px; }
.chief-team-history { color: #d2e5d9; font-size: 13px; line-height: 1.5; margin: -8px 0 12px; }
.chief-team-members, .chief-team-tasks { display: grid; gap: 8px; margin: 13px 0; }
.chief-team-members h3, .chief-team-tasks h3 { font-size: 1rem; margin: 0 0 3px; }
.chief-member-row { display: grid; gap: 3px; border-bottom: 1px solid rgba(155, 197, 174, .2); padding: 8px 0; }
.chief-member-row > button { justify-self: start; width: auto; min-height: 36px; padding: 5px 10px; font-size: inherit; }
.chief-member-row span, .chief-member-row small { color: #b7d7c4; }
.chief-member-row details { font-size: 13px; }
.chief-member-row details p { margin: 5px 0 0; line-height: 1.45; }
.chief-task-card { display: grid; gap: 7px; border: 1px solid rgba(155, 197, 174, .2); border-radius: 12px; padding: 10px; }
.chief-task-card small { color: #bfd4c8; }
.chief-task-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
.chief-task-form label { display: grid; gap: 4px; font-size: 13px; }
.chief-task-form :is(input:not([type="checkbox"]), select, button) { min-width: 0; min-height: 40px; }
.chief-task-form input[type="checkbox"] { width: 17px; height: 17px; min-height: 0; }
.chief-task-form label:has(input[type="checkbox"]) { display: flex; align-items: center; gap: 6px; }
.chief-task-form button { grid-column: 1 / -1; justify-self: start; padding: 8px 12px; font-size: inherit; }
.chief-assignment-summary, .chief-resource-note { grid-column: 1 / -1; margin: 0; font-size: 12px; line-height: 1.45; }
.chief-review-options { display: grid; gap: 7px; }
.chief-review-options button { display: block; width: 100%; margin: 6px 0; padding: 8px 10px; text-align: left; font-size: inherit; }
.chief-review-options p { font-size: 12px; margin: 4px 0; color: #bfd4c8; }
.plan-card[data-chief-review] { grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr) auto; }
.plan-card[data-chief-review] > .chief-review-detail,
.plan-card[data-chief-review] > .chief-review-late { grid-column: 1 / -1; min-width: 0; }
.chief-review-late { display: flex; align-items: center; gap: 7px; font-size: 12px; line-height: 1.4; }
.chief-review-late[hidden] { display: none; }
.chief-review-late input[type="checkbox"] { width: 17px; height: 17px; min-width: 17px; padding: 0; margin: 0; }
.chief-review-detail small { display: block; overflow-wrap: anywhere; }
.chief-team-entry { position: relative; }
.chief-team-badge { position: absolute; right: 0; top: -12px; white-space: nowrap; border-radius: 10px; padding: 1px 4px; font-size: 10px; background: #b0d76b; color: #122018; }
.chief-review-notice { position: fixed; right: 16px; bottom: 95px; z-index: 80; padding: 9px 13px; border-radius: 10px; background: #d9f7c0; color: #182619; box-shadow: 0 4px 20px #0008; }
.self-created-profile-field[hidden] { display: none; }
.chief-task-form [role="alert"] { grid-column: 1 / -1; }
.chief-team-entry svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.chief-weekly-plan { display:grid; gap:9px; margin:12px 0; padding:12px; border:1px solid #567261; border-radius:10px; background:#14261e; }
.chief-weekly-plan h3,.chief-weekly-plan p { margin:0; }
.chief-weekly-plan p,.chief-weekly-member span,.chief-weekly-member small { color:#c4d9cb; font-size:13px; }
.chief-weekly-form,.chief-weekly-member { display:grid; gap:8px; }
.chief-weekly-form fieldset { display:flex; flex-wrap:wrap; gap:8px 12px; margin:0; padding:8px; border:1px solid #395a46; border-radius:8px; }
.chief-weekly-form legend { padding:0 4px; font-weight:700; }
.chief-weekly-form label { display:flex; align-items:center; gap:5px; font-size:13px; }
.chief-weekly-form input[type="number"] { width:52px; min-height:36px; }
.chief-weekly-form select { max-width:180px; min-height:36px; }
.chief-weekly-form details { width:100%; font-size:12px; }
.chief-weekly-form details p { margin:5px 0; }
.chief-existing-note { width: 100%; display: grid; gap: 4px; }
.chief-existing-note p { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 12px; }
.chief-existing-note button { min-height: 36px; padding: 4px 8px; font-size: 12px; }
.chief-legacy-assignment { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.chief-legacy-assignment label { display: inline-flex; align-items: center; gap: 5px; }
.chief-legacy-assignment [role="alert"] { flex-basis: 100%; }
.chief-weekly-actions,.chief-weekly-rating { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.chief-weekly-plan button,.chief-weekly-rating select,.chief-weekly-rating input { min-height:36px; padding:5px 8px; }
.chief-weekly-member { padding:8px 0; border-top:1px solid #395a46; }
.chief-capacity-dialog { width:min(440px, calc(100vw - 24px)); max-height:calc(100dvh - 48px); overflow:auto; padding:18px; border:1px solid #8ba992; border-radius:12px; background:#10221e; color:#edf5e9; }
.chief-capacity-dialog::backdrop { background:rgba(3,16,13,.65); }
.chief-capacity-dialog h3 { margin:0 0 10px; font-size:1.1rem; }
.chief-capacity-dialog p { line-height:1.5; margin:8px 0; }
.chief-capacity-actions { display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end; margin-top:14px; }
.chief-capacity-actions button { min-height:40px; padding:6px 12px; }
.chief-team-tasks > summary { cursor:pointer; font-weight:650; }
@media (max-width: 390px) {
  .chief-team-dialog { width: calc(100vw - 20px); max-height: calc(100dvh - 78px); padding: 12px; }
  .chief-weekly-plan button,.chief-weekly-form input[type="number"],.chief-weekly-rating select { min-height:44px; }
  .chief-team-header { top: -12px; }
  .chief-member-row { gap: 2px; }
  .chief-member-row > button { min-height: 44px; }
  .chief-review-notice { left: 10px; right: 10px; bottom: 82px; }
  .plan-card[data-chief-review] { grid-template-columns: minmax(0, 1fr) 82px; }
  .plan-card[data-chief-review] > .chief-review-detail,
  .plan-card[data-chief-review] > .chief-review-late { grid-column: 1 / -1; grid-row: auto; }
  .plan-card[data-chief-review] .chief-review-hint { font-size: 10px; overflow: visible; }
}
