:root {
  --ink: #0d1822;
  --muted: #667883;
  --line: #dce6ea;
  --paper: #f3f7f8;
  --white: #ffffff;
  --navy: #06111d;
  --navy-2: #0b2232;
  --cyan: #31d4d8;
  --cyan-dark: #0d9fa6;
  --amber: #f4be52;
  --red: #ef6f77;
  --success: #1eaa78;
  --purple: #9e86ff;
  --shadow: 0 15px 45px rgba(4, 18, 29, .14);
  --radius: 18px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--navy); }
body { margin: 0; color: var(--ink); background: radial-gradient(circle at 50% -10%, #173d55 0, #07141f 33%, #eaf0f2 33.2%, #eef3f4 100%); font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP", sans-serif; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .45; }
[hidden] { display: none !important; }
.app-shell { width: min(100%, 820px); min-height: 100vh; margin: 0 auto; background: var(--paper); box-shadow: 0 0 80px rgba(0,0,0,.3); }
.app-header { position: relative; overflow: hidden; padding: max(18px, env(safe-area-inset-top)) 17px 18px; color: #fff; background: linear-gradient(145deg, #071522, #0b2536 70%, #0b3442); }
.header-grid, .city-grid { position: absolute; inset: 0; opacity: .14; background-image: linear-gradient(rgba(49,212,216,.28) 1px, transparent 1px), linear-gradient(90deg, rgba(49,212,216,.28) 1px, transparent 1px); background-size: 24px 24px; pointer-events: none; }
.brand-row { position: relative; display: grid; grid-template-columns: 48px 1fr 42px; align-items: center; gap: 11px; }
.brand-mark { width: 48px; height: 48px; display: grid; place-items: center; position: relative; border: 1px solid rgba(49,212,216,.55); border-radius: 14px; color: var(--cyan); background: rgba(0,0,0,.24); box-shadow: inset 0 0 18px rgba(49,212,216,.08), 0 0 18px rgba(49,212,216,.08); font-family: Impact, sans-serif; font-size: 18px; }
.brand-mark small { position: absolute; right: 5px; bottom: 2px; color: var(--amber); font-size: 9px; }
.brand-copy h1, .brand-copy p, .brand-copy small { margin: 0; }
.brand-copy h1 { font-size: 19px; letter-spacing: .06em; }
.brand-copy > small { display: block; margin-top: 2px; color: #93b5c4; font-size: 8px; letter-spacing: .15em; }
.eyebrow { margin: 0 0 4px; color: var(--cyan-dark); font-size: 8px; font-weight: 900; letter-spacing: .15em; text-transform: uppercase; }
.app-header .eyebrow { color: #76dfe1; }
.icon-button { width: 40px; height: 40px; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; color: #d8edf2; background: rgba(255,255,255,.06); font-size: 19px; }
.restart-button { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 40px; padding: 0 13px; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; color: #e5f7fa; background: rgba(255,255,255,.07); font-size: 12px; font-weight: 800; white-space: nowrap; }
.restart-button:active { transform: translateY(1px); }
.agent-dashboard { position: relative; display: grid; grid-template-columns: 1fr 70px; gap: 9px; margin-top: 16px; }
.agent-rank, .xp-box, .case-progress { border: 1px solid rgba(255,255,255,.11); border-radius: 13px; background: rgba(0,0,0,.19); }
.agent-rank { display: flex; align-items: center; gap: 9px; padding: 10px; }
.rank-icon { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; color: var(--cyan); background: rgba(49,212,216,.1); font-size: 20px; }
.agent-rank small, .xp-box small { display: block; color: #88a9b8; font-size: 8px; }
.agent-rank strong { font-size: 11px; letter-spacing: .06em; }
.xp-box { padding: 9px; text-align: center; }
.xp-box strong { display: block; color: var(--amber); font-size: 20px; }
.case-progress { grid-column: 1 / -1; padding: 10px 11px; }
.case-progress > div:first-child { display: flex; justify-content: space-between; gap: 10px; }
.case-progress strong { font-size: 10px; }
.case-progress span { color: #88a9b8; font-size: 8px; }
.progress-track { height: 5px; margin-top: 8px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.1); }
.progress-bar { width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--cyan-dark), var(--cyan), var(--amber)); transition: width .4s ease; }
main { padding: 14px; }
.season-hero { display: grid; grid-template-columns: 116px 1fr; gap: 13px; overflow: hidden; padding: 13px; border: 1px solid #17394b; border-radius: 21px; color: #fff; background: linear-gradient(145deg, #102839, #06131e); box-shadow: var(--shadow); }
.hero-visual { position: relative; min-height: 185px; overflow: hidden; border: 1px solid rgba(49,212,216,.25); border-radius: 16px; background: radial-gradient(circle at 50% 42%, rgba(49,212,216,.22), transparent 48%), linear-gradient(160deg, #0c2b3c, #07111a); }
.signal-radar { position: absolute; left: 50%; top: 47%; width: 92px; height: 92px; display: grid; place-items: center; border: 1px solid rgba(49,212,216,.45); border-radius: 50%; transform: translate(-50%,-50%); }
.signal-radar::before, .signal-radar::after, .signal-radar i { content: ""; position: absolute; border: 1px solid rgba(49,212,216,.24); border-radius: 50%; }
.signal-radar::before { inset: 14px; }.signal-radar::after { inset: 29px; }.signal-radar i:nth-child(1){ width: 1px; height: 100%; border: 0; border-left: 1px solid rgba(49,212,216,.2); border-radius: 0; }.signal-radar i:nth-child(2){ width: 100%; height: 1px; border: 0; border-top: 1px solid rgba(49,212,216,.2); border-radius: 0; }
.signal-radar b { color: var(--amber); font-family: "SFMono-Regular", Consolas, monospace; font-size: 28px; text-shadow: 0 0 18px rgba(244,190,82,.45); }
.protocol-stamp { position: absolute; left: 8px; bottom: 9px; padding: 5px 7px; border: 2px solid rgba(239,111,119,.8); color: #ff8d94; font-size: 8px; font-weight: 1000; letter-spacing: .08em; transform: rotate(-7deg); }
.hero-copy { min-width: 0; }
.case-label-row { display: flex; align-items: center; gap: 7px; }
.case-label { display: inline-flex; padding: 4px 7px; border-radius: 5px; color: #09202b; background: var(--amber); font-size: 8px; font-weight: 1000; }
.status-pill { display: inline-flex; padding: 4px 7px; border-radius: 999px; font-size: 8px; font-weight: 900; }
.status-pill.active { color: #8ff4e4; background: rgba(30,170,120,.18); }.status-pill.solved { color: #0f694e; background: #dff7ee; }
.hero-copy .eyebrow { margin-top: 9px; color: #83b7c9; }
.hero-copy h2 { margin: 0; font-size: 21px; letter-spacing: .04em; }
.hero-copy > p:not(.eyebrow) { margin: 8px 0 10px; color: #a9bfca; font-size: 10px; line-height: 1.75; }
.profile-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; margin: 0; }
.profile-grid div { padding: 7px; border: 1px solid rgba(255,255,255,.08); border-radius: 9px; background: rgba(255,255,255,.04); }
.profile-grid dt { color: #7693a0; font-size: 7px; }.profile-grid dd { margin: 2px 0 0; font-size: 9px; font-weight: 800; }
.transmission-card { display: grid; grid-template-columns: 42px 1fr auto; gap: 11px; align-items: center; margin-top: 13px; padding: 12px; border: 1px solid #b8e4e4; border-radius: 17px; background: linear-gradient(145deg, #edffff, #fff); box-shadow: 0 9px 25px rgba(10,64,72,.07); }
.transmission-avatar { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: linear-gradient(145deg, var(--cyan-dark), #12607d); font-weight: 1000; box-shadow: 0 0 0 4px rgba(49,212,216,.12); }
.transmission-card h2 { margin: 0; font-size: 12px; }.transmission-card p:last-child { margin: 4px 0 0; color: var(--muted); font-size: 9px; line-height: 1.55; }
.signal-chip { padding: 5px 7px; border-radius: 999px; color: #08767b; background: #dff8f6; font-size: 7px; font-weight: 1000; white-space: nowrap; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }.section-heading.compact { margin-bottom: 9px; }.section-heading h2 { margin: 0; font-size: 14px; }
.chapter-section, .clue-board, .mission-route-wrap { margin-top: 14px; }
.chapter-map { display: grid; grid-auto-flow: column; grid-auto-columns: 168px; gap: 9px; overflow-x: auto; padding: 2px 2px 8px; scroll-snap-type: x mandatory; }
.chapter-card { position: relative; min-height: 133px; overflow: hidden; padding: 12px; border: 1px solid var(--line); border-radius: 16px; color: var(--ink); background: #fff; text-align: left; scroll-snap-align: start; box-shadow: 0 6px 18px rgba(9,34,49,.06); }
.chapter-card::after { content: attr(data-number); position: absolute; right: 7px; bottom: -7px; color: rgba(10,52,67,.06); font-family: Impact, sans-serif; font-size: 43px; }
.chapter-card.active { border-color: #54cfd1; background: linear-gradient(145deg,#efffff,#fff); box-shadow: 0 10px 28px rgba(13,159,166,.13); transform: translateY(-2px); }
.chapter-card.completed { border-color: #a8dbc9; }.chapter-card.locked { color: #8b9aa2; background: #edf1f3; }
.chapter-card .chapter-number { display: inline-flex; margin-bottom: 8px; padding: 3px 6px; border-radius: 5px; color: #fff; background: #173d51; font-size: 7px; font-weight: 900; }.chapter-card.active .chapter-number { background: var(--cyan-dark); }.chapter-card.completed .chapter-number { background: var(--success); }
.chapter-card strong { display: block; position: relative; z-index: 1; font-size: 11px; }.chapter-card small { display: block; position: relative; z-index: 1; margin-top: 5px; color: var(--muted); font-size: 8px; line-height: 1.45; }.chapter-card .chapter-progress-mini { position: absolute; left: 12px; right: 12px; bottom: 10px; height: 4px; overflow: hidden; border-radius: 999px; background: #e5ecef; }.chapter-card .chapter-progress-mini i { display: block; height: 100%; background: linear-gradient(90deg,var(--cyan-dark),var(--cyan)); }
.clue-list { display: grid; grid-auto-flow: column; grid-auto-columns: 145px; gap: 8px; overflow-x: auto; padding-bottom: 5px; }
.clue-card { min-height: 88px; padding: 10px; border: 1px dashed #cbd7dc; border-radius: 14px; background: #e9eef0; }.clue-card.unlocked { border-style: solid; border-color: #a8ddd9; background: linear-gradient(145deg,#eafffc,#fff); animation: clueUnlock .35s ease; }.clue-card.locked { opacity: .68; }
.clue-icon { display: block; margin-bottom: 5px; font-size: 20px; }.clue-card strong { display: block; font-size: 9px; line-height: 1.35; }.clue-card small { display: block; margin-top: 4px; color: var(--muted); font-size: 7px; line-height: 1.4; }
.mission-route { display: grid; grid-auto-flow: column; grid-auto-columns: 155px; gap: 8px; overflow-x: auto; padding: 2px 2px 7px; }
.mission-node { display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 8px; min-height: 62px; padding: 9px; border: 1px solid var(--line); border-radius: 14px; color: var(--ink); background: #fff; text-align: left; }
.mission-node.active { border-color: #46c8cb; background: #edffff; box-shadow: 0 8px 20px rgba(13,159,166,.12); }.mission-node.completed { border-color: #abdcca; }.mission-node.locked { color: #93a0a6; background: #edf1f2; }
.node-number { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 10px; color: #fff; background: #17394b; font-size: 9px; font-weight: 1000; }.mission-node.active .node-number { background: var(--cyan-dark); }.mission-node.completed .node-number { background: var(--success); }
.mission-node strong { display: block; font-size: 9px; }.mission-node small { display: block; margin-top: 2px; color: var(--muted); font-size: 7px; }.mission-status { font-size: 10px; }
.mission-card, .panel-card, .sql-preview-card { margin-top: 14px; padding: 15px; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; box-shadow: 0 7px 24px rgba(8,31,44,.06); }
.mission-card { border-color: #9bdedc; background: linear-gradient(145deg,#f5ffff,#fff); }
.mission-topline { display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: 10px; }.mission-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 13px; color: #fff; background: linear-gradient(145deg,#0d9fa6,#14506d); font-size: 22px; }.mission-topline h2 { margin: 0; font-size: 15px; }.reward-chip { padding: 6px 8px; border-radius: 999px; color: #6d4c05; background: #fff0c8; font-size: 8px; font-weight: 1000; white-space: nowrap; }
.mission-card > p { margin: 11px 0; color: var(--muted); font-size: 10px; line-height: 1.7; }.mission-meta-row { display: flex; gap: 6px; flex-wrap: wrap; }.skill-chip,.difficulty-chip,.type-chip { padding: 5px 7px; border-radius: 999px; font-size: 7px; font-weight: 1000; }.skill-chip { color:#0a777b;background:#ddf7f5; }.difficulty-chip { color:#6d4c05;background:#fff0c8; }.type-chip { color:#5843a7;background:#eee9ff; }
.objective-box { margin-top: 10px; padding: 11px; border-left: 4px solid var(--cyan-dark); border-radius: 9px; background: #e9f8f8; }.objective-box span,.story-beat span { display:block; color:#0d7c81; font-size:7px; font-weight:1000; letter-spacing:.1em; }.objective-box strong { display:block; margin-top:3px; font-size:10px; }
.story-beat { margin-top: 9px; padding: 10px 11px; border-radius: 10px; color: #d7e9ee; background: linear-gradient(145deg,#102b3b,#091823); }.story-beat span { color: var(--amber); }.story-beat p { margin: 4px 0 0; font-size: 9px; line-height: 1.55; }
.mission-actions { display:flex; gap:8px; margin-top:10px; }.primary-button,.secondary-button,.ghost-button { min-height: 44px; border: 0; border-radius: 13px; font-size: 10px; font-weight: 1000; }.primary-button { width:100%; color:#fff; background:linear-gradient(145deg,#0d9fa6,#0b647a); box-shadow:0 8px 22px rgba(13,159,166,.23); }.secondary-button { flex:1; color:#08767b; background:#ddf7f5; }.ghost-button { flex:1; color:#60727b; background:#eef2f3; }.text-button { padding:5px 7px; border:0; color:#08767b; background:transparent; font-size:8px; font-weight:900; }
.hint-panel { margin-top:9px; padding:11px; border:1px solid #f0d18b; border-radius:11px; color:#654b11; background:#fff8e8; font-size:9px; line-height:1.6; }
.mode-tabs { position: sticky; top: 0; z-index: 25; display:grid; grid-template-columns:repeat(3,1fr); gap:5px; margin-top:14px; padding:5px; border:1px solid var(--line); border-radius:15px; background:rgba(255,255,255,.92); backdrop-filter:blur(12px); box-shadow:0 7px 18px rgba(5,24,35,.08); }.mode-tab { min-height:40px; border:0; border-radius:10px; color:#6e7f87; background:transparent; font-size:9px; font-weight:900; }.mode-tab span { margin-right:4px; }.mode-tab.active { color:#fff; background:#0b3041; }
.mode-panel { display:none; }.mode-panel.active { display:block; animation:fadeIn .22s ease; }
.chip-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }.column-chip input { position:absolute; opacity:0; pointer-events:none; }.column-chip label { display:flex; align-items:center; gap:8px; min-height:52px; padding:8px; border:1px solid var(--line); border-radius:12px; background:#f7f9fa; }.column-chip .check { width:24px; height:24px; display:grid; place-items:center; border:1px solid #c9d5da; border-radius:7px; color:transparent; background:#fff; }.column-chip strong { display:block; font-size:9px; }.column-chip small { display:block; margin-top:2px; color:var(--muted); font-family:"SFMono-Regular",Consolas,monospace; font-size:7px; }.column-chip input:checked + label { border-color:#64d1d2; background:#eafffd; }.column-chip input:checked + label .check { color:#fff; border-color:var(--cyan-dark); background:var(--cyan-dark); }
.switch-label { display:flex; align-items:center; gap:5px; color:#08767b; font-size:8px; font-weight:900; }.switch-label input { accent-color:var(--cyan-dark); }
.control-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; }.control-grid.two-column { grid-template-columns:repeat(2,1fr); }.control-grid.disabled { opacity:.42; pointer-events:none; }.control-grid label { color:var(--muted); font-size:8px; font-weight:800; }.control-grid select,.control-grid input { width:100%; min-height:39px; margin-top:4px; padding:0 9px; border:1px solid #cfdbe0; border-radius:10px; color:var(--ink); background:#fff; font-size:9px; }
.sql-preview-card,.terminal-card { overflow:hidden; padding-top:0; color:#d8e9ef; border-color:#17384a; background:linear-gradient(145deg,#0d2534,#06131e); }.terminal-lights { display:flex; align-items:center; gap:5px; margin:0 -15px 12px; padding:8px 12px; border-bottom:1px solid rgba(255,255,255,.08); background:rgba(0,0,0,.18); }.terminal-lights i { width:7px; height:7px; border-radius:50%; background:#ef6f77; }.terminal-lights i:nth-child(2){background:#f4be52}.terminal-lights i:nth-child(3){background:#57c989}.terminal-lights span { margin-left:4px; color:#718f9d; font-size:7px; font-weight:900; letter-spacing:.11em; }.sql-preview-card h2,.terminal-card h2 { color:#fff; }.sql-preview-card .eyebrow,.terminal-card .eyebrow { color:#72d9dc; }.sql-preview-card .text-button,.terminal-card .text-button { color:#82e9e8; }
pre { margin:0 0 12px; overflow-x:auto; padding:12px; border:1px solid rgba(49,212,216,.12); border-radius:11px; color:#c5f8ed; background:rgba(0,0,0,.28); font-family:"SFMono-Regular",Consolas,monospace; font-size:10px; line-height:1.65; }
textarea { width:100%; min-height:190px; resize:vertical; padding:13px; border:1px solid rgba(49,212,216,.18); border-radius:12px; color:#c8f8ed; background:#041019; font-family:"SFMono-Regular",Consolas,monospace; font-size:10px; line-height:1.65; outline:none; }.keyword-row { display:flex; gap:5px; overflow-x:auto; margin:9px 0; padding-bottom:3px; }.keyword-row button { flex:none; padding:6px 8px; border:1px solid rgba(49,212,216,.2); border-radius:8px; color:#9fe9e5; background:rgba(49,212,216,.06); font-size:7px; font-weight:900; }.helper-text { color:#7895a2; font-size:8px; line-height:1.5; }
.challenge-card { border-color:#d6ccff; background:linear-gradient(145deg,#fbf9ff,#fff); }.challenge-context { margin:0 0 11px; color:var(--muted); font-size:10px; line-height:1.65; }.schema-preview { display:flex; gap:7px; overflow-x:auto; margin-bottom:11px; padding-bottom:3px; }.schema-card { flex:0 0 145px; padding:9px; border:1px solid #dce4e8; border-radius:11px; background:#f6f9fa; }.schema-card strong { display:block; font-family:"SFMono-Regular",Consolas,monospace; font-size:9px; }.schema-card small { display:block; margin-top:4px; color:var(--muted); font-size:7px; line-height:1.45; }.choice-list { display:grid; gap:8px; margin-bottom:12px; }.sql-choice { position:relative; display:block; width:100%; padding:11px; border:1px solid #d8e1e5; border-radius:12px; color:var(--ink); background:#f8fafb; text-align:left; }.sql-choice.selected { border-color:#8b75ee; background:#f0ecff; box-shadow:0 7px 18px rgba(110,86,214,.1); }.sql-choice.correct { border-color:#71cba9; background:#eaf9f3; }.sql-choice.wrong { border-color:#e89aa0; background:#fff0f1; }.sql-choice .choice-label { display:flex; justify-content:space-between; gap:8px; margin-bottom:7px; font-size:8px; font-weight:1000; }.sql-choice pre { margin:0; padding:9px; color:#d9f7ef; background:#0b202d; font-size:8px; }.sql-choice .choice-note { display:block; margin-top:6px; color:var(--muted); font-size:7px; line-height:1.45; }.plan-preview { display:grid; grid-template-columns:repeat(3,1fr); gap:5px; margin-top:8px; }.plan-metric { padding:7px; border-radius:8px; color:#51646e; background:#edf2f4; text-align:center; }.plan-metric b { display:block; color:#102f3f; font-size:9px; }.plan-metric small { font-size:6px; }.tuning-guide { border-color:#f0d496; background:#fffaf0; }.plan-legend { display:flex; gap:6px; flex-wrap:wrap; }.plan-legend span { padding:6px 8px; border-radius:8px; color:#6b531e; background:#fff1cc; font-size:7px; }.plan-legend b { color:#47330a; }
.execution-section { margin-top:14px; }.process-card { background:linear-gradient(145deg,#fff,#f6fafb); }.execution-steps { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(75px,1fr); gap:5px; overflow-x:auto; margin:0; padding:0 0 4px; list-style:none; }.execution-steps li { min-height:67px; padding:9px 5px; border:1px solid #e0e7ea; border-radius:11px; color:#839198; background:#f3f6f7; text-align:center; opacity:.62; transition:.22s ease; }.execution-steps li > span { width:23px; height:23px; display:grid; place-items:center; margin:0 auto 5px; border-radius:50%; background:#dbe3e6; font-size:8px; font-weight:1000; }.execution-steps strong { display:block; font-family:"SFMono-Regular",Consolas,monospace; font-size:7px; overflow-wrap:anywhere; }.execution-steps small { display:block; margin-top:3px; color:#8a989f; font-size:6px; line-height:1.3; }.execution-steps li.active { opacity:1; color:#076f74; background:#dff8f6; border-color:#79d8d6; transform:translateY(-2px); }.execution-steps li.active > span { color:#fff; background:var(--cyan-dark); }.execution-steps li.done { opacity:1; color:#117052; background:#e8f8f2; border-color:#bde4d6; }.execution-steps li.done > span { color:#fff; background:var(--success); }
.badge { display:inline-flex; align-items:center; min-height:27px; padding:5px 9px; border-radius:999px; color:#08767b; background:#dbf6f5; font-size:8px; font-weight:1000; white-space:nowrap; }.badge.muted { color:var(--muted); background:#edf1f3; }.badge.success { color:#117052; background:#dff7ee; }.badge.error { color:#a7363f; background:#ffe6e8; }
.table-card { overflow:hidden; padding-left:0; padding-right:0; }.table-card .section-heading { padding:0 15px; }.table-scroll { overflow-x:auto; }table { width:100%; min-width:650px; border-collapse:collapse; font-size:9px; }th { position:sticky; top:0; padding:9px; color:#52656f; background:#eaf0f2; text-align:left; white-space:nowrap; }th small { color:#8b9aa2; font-family:"SFMono-Regular",Consolas,monospace; font-size:6px; }td { padding:9px; border-top:1px solid #edf1f3; white-space:nowrap; transition:.2s ease; }tr.matching td { color:#0f634d; background:#ddf7ed; }tr.excluded td { color:#a0acb1; background:#f1f3f4; text-decoration:line-through; opacity:.66; }tr.processing td { color:#72510c; background:#fff0c7; }.result-card { border-color:#9cdedc; }.result-message { margin:0 15px 12px; padding:12px; border-radius:11px; color:var(--muted); background:#eff3f5; font-size:9px; line-height:1.6; }.result-message.success { color:#0f694e; background:#e4f8f0; }.result-message.error { color:#a7363f; background:#ffecef; }.result-actions { padding:0 15px 15px; }.plan-result { margin:0 15px 12px; display:grid; grid-template-columns:repeat(3,1fr); gap:7px; }.plan-result .plan-box { padding:10px; border:1px solid #d8e1e5; border-radius:11px; background:#f7fafb; text-align:center; }.plan-result .plan-box strong { display:block; color:#17394b; font-size:15px; }.plan-result .plan-box small { color:var(--muted); font-size:7px; }.plan-result .plan-detail { grid-column:1/-1; padding:10px; border-radius:10px; color:#5f4a16; background:#fff2cf; font-size:8px; line-height:1.5; }
.stats-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; margin-top:14px; }.stat-card { min-width:0; padding:13px 7px; border:1px solid var(--line); border-radius:15px; background:#fff; text-align:center; }.stat-card span { display:block; min-height:28px; color:var(--muted); font-size:8px; font-weight:800; line-height:1.3; }.stat-card strong { font-size:24px; }.stat-card small { color:var(--muted); font-size:7px; }.skill-tree { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; }.skill-node { padding:9px; border:1px solid var(--line); border-radius:11px; background:#f5f8f9; }.skill-node.unlocked { border-color:#a7ddd2; background:#ecfbf5; }.skill-node strong { display:block; font-size:8px; }.skill-node small { display:block; margin-top:3px; color:var(--muted); font-size:7px; }.record-list { display:grid; gap:8px; }.record-chapter-title { margin-top:7px; padding:6px 2px; color:#0a6871; font-size:8px; font-weight:1000; letter-spacing:.08em; }.record-item { display:grid; grid-template-columns:38px 1fr auto; align-items:center; gap:9px; padding:10px; border-radius:12px; background:#f1f5f6; }.record-item.locked { opacity:.55; }.record-icon { width:35px; height:35px; display:grid; place-items:center; border-radius:10px; background:#fff; }.record-item strong { display:block; font-size:9px; }.record-item small { display:block; margin-top:2px; color:var(--muted); font-size:7px; }
.modal { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:18px; }.modal-backdrop { position:absolute; inset:0; background:rgba(1,8,13,.8); backdrop-filter:blur(8px); }.modal-card { position:relative; width:min(100%,430px); overflow:hidden; padding:25px 20px 20px; border:1px solid rgba(49,212,216,.35); border-radius:24px; color:#fff; background:linear-gradient(145deg,#102b3d,#06121d); box-shadow:0 25px 80px rgba(0,0,0,.5); text-align:center; animation:modalIn .35s ease; }.modal-card::before { content:""; position:absolute; inset:0; opacity:.1; background-image:linear-gradient(rgba(49,212,216,.25) 1px,transparent 1px),linear-gradient(90deg,rgba(49,212,216,.25) 1px,transparent 1px); background-size:22px 22px; }.modal-card > * { position:relative; }.solved-seal { width:108px; height:108px; display:grid; place-items:center; margin:0 auto 16px; border:5px double var(--cyan); border-radius:50%; color:var(--cyan); font-family:Impact,sans-serif; font-size:18px; line-height:.95; letter-spacing:.08em; transform:rotate(-6deg); }.modal-card h2 { font-size:20px; }.modal-card > p:not(.eyebrow) { margin:10px 0 14px; color:#adc0ca; font-size:10px; line-height:1.7; }.solution-query { margin-bottom:14px; padding:11px; border-radius:12px; background:rgba(0,0,0,.24); text-align:left; }.solution-query span { display:block; margin-bottom:5px; color:var(--amber); font-size:8px; font-weight:900; }.solution-query code,.solution-query p { margin:0; color:#c4f8ef; font-size:9px; line-height:1.6; }
.toast { position:fixed; left:50%; bottom:max(22px,env(safe-area-inset-bottom)); z-index:120; max-width:calc(100% - 32px); padding:11px 15px; border:1px solid rgba(49,212,216,.25); border-radius:999px; color:#fff; background:#07131e; font-size:9px; font-weight:900; opacity:0; pointer-events:none; transform:translate(-50%,18px); transition:.25s ease; box-shadow:var(--shadow); }.toast.show { opacity:1; transform:translate(-50%,0); }
footer { padding:18px; color:var(--muted); text-align:center; font-size:8px; }footer p { margin:3px 0; }
@keyframes fadeIn { from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none} }@keyframes clueUnlock { 0%{transform:scale(.94);opacity:.4}60%{transform:scale(1.03)}100%{transform:scale(1);opacity:1} }@keyframes modalIn { from{transform:translateY(18px) scale(.96);opacity:0}to{transform:none;opacity:1} }
@media (max-width: 390px) { .season-hero { grid-template-columns:96px 1fr; gap:10px; padding:11px; }.hero-visual { min-height:170px; }.hero-copy h2 { font-size:18px; }.profile-grid { grid-template-columns:1fr; }.profile-grid div:nth-child(3),.profile-grid div:nth-child(4){display:none}.transmission-card { grid-template-columns:38px 1fr; }.signal-chip { grid-column:2; justify-self:start; }.control-grid { grid-template-columns:1fr; }.mission-topline { grid-template-columns:40px 1fr; }.reward-chip { grid-column:2; justify-self:start; }.mission-actions { flex-direction:column; }.plan-result { grid-template-columns:1fr; }.plan-result .plan-detail { grid-column:auto; } }
@media (min-width: 620px) { main { padding:22px; }.season-hero { grid-template-columns:165px 1fr; }.hero-visual { min-height:220px; }.signal-radar { width:125px;height:125px; }.hero-copy h2 { font-size:28px; }.hero-copy > p:not(.eyebrow) { font-size:12px; }.profile-grid dd { font-size:11px; }.chapter-map { grid-auto-columns:190px; }.clue-list { grid-template-columns:repeat(6,1fr); grid-auto-flow:row; overflow:visible; }.mission-route { grid-auto-columns:minmax(165px,1fr); }.chip-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }.skill-tree { grid-template-columns:repeat(4,minmax(0,1fr)); }.execution-steps { grid-auto-columns:minmax(90px,1fr); } }
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; } }


/* Dialogue Edition 0.4.0 */
.dialogue-console { position:relative; overflow:hidden; margin-top:10px; border:1px solid rgba(49,212,216,.28); border-radius:15px; color:#dcecf1; background:linear-gradient(145deg,#0c2433,#071723); box-shadow:inset 0 1px 0 rgba(255,255,255,.04); }
.dialogue-console::after { content:""; position:absolute; inset:0; pointer-events:none; opacity:.16; background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(49,212,216,.08) 4px); }
.dialogue-console-head { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; padding:9px 11px; border-bottom:1px solid rgba(49,212,216,.14); background:rgba(0,0,0,.15); }
.dialogue-console-head div { display:flex; align-items:baseline; gap:7px; }.dialogue-console-head span { color:var(--cyan); font-size:7px; font-weight:1000; letter-spacing:.14em; }.dialogue-console-head strong { font-size:9px; }.dialogue-counter { color:#9bb3be!important; letter-spacing:.04em!important; }
.dialogue-line-wrap { position:relative; z-index:1; display:grid; grid-template-columns:42px 1fr; gap:10px; align-items:start; padding:12px 11px 9px; }.dialogue-line-wrap.compact-line { padding:11px 0 7px; }
.dialogue-avatar { width:42px; height:42px; display:grid; place-items:center; flex:0 0 auto; border:2px solid rgba(255,255,255,.15); border-radius:50%; color:#fff; background:#21465a; font-size:13px; font-weight:1000; box-shadow:0 0 0 4px rgba(49,212,216,.08); }
.dialogue-avatar.aoi { background:linear-gradient(145deg,#12627c,#16394f); box-shadow:0 0 0 4px rgba(49,212,216,.1),0 0 22px rgba(49,212,216,.15); }.dialogue-avatar.ai { background:linear-gradient(145deg,#0c807a,#15394e); }.dialogue-avatar.command { background:linear-gradient(145deg,#704e24,#29384a); }.dialogue-avatar.zero { color:#ffbcc3; background:linear-gradient(145deg,#5b1823,#16090d); box-shadow:0 0 0 4px rgba(255,92,107,.1),0 0 22px rgba(255,92,107,.16); }.dialogue-avatar.rescue { background:linear-gradient(145deg,#33724e,#173c34); }
.dialogue-copy { min-width:0; }.dialogue-speaker-row { display:flex; flex-wrap:wrap; align-items:baseline; gap:7px; }.dialogue-speaker-row strong { color:#f2fbfd; font-size:10px; }.dialogue-speaker-row small { color:#7897a4; font-size:7px; }.dialogue-copy p { margin:5px 0 0; color:#c4d7de; font-size:9px; line-height:1.72; }
.dialogue-dots { position:relative; z-index:1; display:flex; justify-content:center; gap:5px; padding:0 10px 8px; }.dialogue-dots i { width:16px; height:3px; border-radius:99px; background:#284452; transition:.2s ease; }.dialogue-dots i.read { background:#397c7a; }.dialogue-dots i.active { width:28px; background:var(--cyan); box-shadow:0 0 10px rgba(49,212,216,.4); }
.dialogue-controls { position:relative; z-index:1; display:grid; grid-template-columns:auto 1fr; gap:7px; padding:0 10px 10px; }.compact-button { min-height:34px!important; padding:7px 10px!important; font-size:8px!important; }.dialogue-controls .secondary-button { background:rgba(49,212,216,.1); }
.outcome-dialogue { margin:0 15px 12px; padding:10px 12px 11px; border:1px solid rgba(49,212,216,.3); border-radius:13px; color:#dcecf1; background:linear-gradient(145deg,#0d2634,#081822); }.outcome-dialogue-label { display:flex; justify-content:space-between; color:var(--cyan); font-size:7px; font-weight:1000; letter-spacing:.11em; }.outcome-dialogue-label b { color:#8fa7b2; }.outcome-next { display:block; margin-left:auto; color:#8ceef0; }
.modal-body { margin:10px 0 14px; }.modal-summary { margin:10px 0 0; color:#adc0ca; font-size:10px; line-height:1.7; }.modal-conversation { display:grid; gap:7px; text-align:left; }.modal-speech { padding:9px 10px; border-left:3px solid #4ecfd1; border-radius:8px; background:rgba(255,255,255,.055); }.modal-speech.ai { border-left-color:#43c8bd; }.modal-speech.command { border-left-color:#e6b65c; }.modal-speech.zero { border-left-color:#ff6676; background:rgba(145,22,37,.14); }.modal-speech.rescue { border-left-color:#57c489; }.modal-speech b { color:#e9f7fa; font-size:8px; }.modal-speech p { margin:3px 0 0; color:#b9ced6; font-size:9px; line-height:1.55; }
@media (max-width:390px) { .dialogue-line-wrap { grid-template-columns:36px 1fr; gap:9px; }.dialogue-avatar { width:36px; height:36px; font-size:11px; }.dialogue-controls { grid-template-columns:1fr; }.dialogue-controls .ghost-button { order:2; } }


/* v0.4.1 起動時の再開選択 */
.resume-card { text-align: center; max-width: 430px; }
.resume-emblem { width: 74px; height: 74px; margin: 0 auto 16px; display: grid; place-items: center; border-radius: 22px; border: 1px solid rgba(38,210,220,.45); background: radial-gradient(circle at 30% 20%, rgba(38,210,220,.28), rgba(4,24,38,.95)); box-shadow: 0 0 34px rgba(38,210,220,.18); color: #dfffff; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 22px; font-weight: 900; letter-spacing: .08em; }
.resume-description { margin: 10px 0 18px; color: #52707a; line-height: 1.75; }
.resume-progress { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0 0 18px; padding: 14px 16px; border-radius: 14px; background: #edf7f7; border: 1px solid #cfe8e8; color: #385b63; }
.resume-progress span { font-size: 12px; font-weight: 700; }
.resume-progress strong { color: #0b6670; font-size: 14px; }
.resume-actions { display: grid; gap: 10px; }
.resume-actions button { width: 100%; min-height: 48px; }
.danger-outline-button { border: 1px solid #e79aa5; border-radius: 13px; background: #fff7f8; color: #b62d42; font-weight: 800; }
.resume-note { margin: 14px 0 0; color: #82979d; font-size: 11px; line-height: 1.6; }
@media (max-width: 430px) { .brand-copy small { display: none; } .restart-button { padding: 0 10px; font-size: 11px; } }

/* Cinematic Dialogue Edition 0.4.2 */
.conversation-replay-button { border-color:rgba(22,157,167,.35)!important; color:#0b6f76!important; background:#e9fbfb!important; }
.conversation-cinematic { z-index:140; padding:0; align-items:end; }
.conversation-backdrop { background:linear-gradient(180deg,rgba(1,8,13,.48),rgba(1,8,13,.9)); backdrop-filter:blur(5px); }
.conversation-stage { position:relative; width:min(100%,560px); padding:0 14px calc(14px + env(safe-area-inset-bottom)); border:1px solid rgba(66,229,231,.35); border-bottom:0; border-radius:24px 24px 0 0; color:#eafcff; background:linear-gradient(155deg,#0d2b3e,#06131e 68%); box-shadow:0 -22px 80px rgba(0,0,0,.5); animation:conversationRise .32s ease both; overflow:hidden; }
.conversation-stage::before { content:""; position:absolute; inset:0; pointer-events:none; opacity:.16; background:repeating-linear-gradient(0deg,transparent 0 4px,rgba(73,232,234,.08) 5px); }
.conversation-stage-head { position:relative; z-index:1; display:flex; align-items:center; justify-content:space-between; min-height:46px; border-bottom:1px solid rgba(73,232,234,.14); color:#62e8e7; font-size:9px; font-weight:1000; letter-spacing:.14em; }
.conversation-skip { min-height:34px; padding:6px 10px; border:1px solid rgba(255,255,255,.16); border-radius:10px; color:#b6cbd3; background:rgba(255,255,255,.05); font-size:10px; font-weight:800; }
.conversation-scene { position:relative; z-index:1; display:grid; grid-template-columns:58px 1fr; gap:12px; align-items:end; padding:22px 0 15px; }
.conversation-avatar { width:58px; height:58px; display:grid; place-items:center; border:2px solid rgba(255,255,255,.24); border-radius:50%; color:#fff; background:linear-gradient(145deg,#12627c,#16394f); font-size:19px; font-weight:1000; box-shadow:0 0 0 6px rgba(49,212,216,.09),0 0 35px rgba(49,212,216,.18); }
.conversation-avatar.ai { background:linear-gradient(145deg,#0c807a,#15394e); }.conversation-avatar.command { background:linear-gradient(145deg,#704e24,#29384a); }.conversation-avatar.zero { color:#ffbcc3; background:linear-gradient(145deg,#5b1823,#16090d); box-shadow:0 0 0 6px rgba(255,92,107,.1),0 0 35px rgba(255,92,107,.2); }.conversation-avatar.rescue { background:linear-gradient(145deg,#33724e,#173c34); }
.conversation-bubble { position:relative; min-height:112px; padding:15px 16px; border:1px solid rgba(255,255,255,.11); border-radius:17px 17px 17px 4px; background:rgba(255,255,255,.065); box-shadow:inset 0 1px 0 rgba(255,255,255,.05); }
.conversation-bubble::before { content:""; position:absolute; left:-8px; bottom:13px; width:14px; height:14px; border-left:1px solid rgba(255,255,255,.11); border-bottom:1px solid rgba(255,255,255,.11); background:#102d3c; transform:rotate(45deg); }
.conversation-name-row { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px; }.conversation-name-row strong { color:#fff; font-size:14px; }.conversation-name-row small { color:#86a6b2; font-size:9px; }
.conversation-bubble p { min-height:54px; margin:10px 0 0; color:#d6e8ed; font-size:14px; font-weight:650; line-height:1.8; }
.conversation-progress-dots { position:relative; z-index:1; display:flex; justify-content:center; gap:6px; padding:0 0 13px; }.conversation-progress-dots i { width:20px; height:4px; border-radius:99px; background:#294653; }.conversation-progress-dots i.read { background:#367c7b; }.conversation-progress-dots i.active { width:36px; background:#42e5e7; box-shadow:0 0 12px rgba(66,229,231,.5); }
.conversation-stage-actions { position:relative; z-index:1; display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:center; }.conversation-stage-actions span { color:#8aa5b0; font-size:11px; font-weight:900; }.conversation-stage-actions .primary-button { min-height:48px; }
body.conversation-open { overflow:hidden; }
@keyframes conversationRise { from { opacity:0; transform:translateY(30px); } to { opacity:1; transform:translateY(0); } }
@media (min-width:700px) { .conversation-cinematic { align-items:center; padding:18px; }.conversation-stage { border-bottom:1px solid rgba(66,229,231,.35); border-radius:24px; padding-bottom:16px; } }
@media (max-width:390px) { .conversation-scene { grid-template-columns:48px 1fr; gap:10px; padding-top:17px; }.conversation-avatar { width:48px; height:48px; font-size:16px; }.conversation-bubble { min-height:108px; padding:13px; }.conversation-bubble p { font-size:13px; }.conversation-stage-actions { grid-template-columns:1fr; }.conversation-stage-actions span { text-align:center; }.conversation-stage-actions .primary-button { width:100%; } }

/* Tactical Operation Edition 0.6.0 */
.tactical-card { border-color:#a9dfe1; background:linear-gradient(155deg,#f8ffff 0,#ffffff 50%,#f7f4ff 100%); }
.assembly-workbench { position:relative; overflow:hidden; margin:12px 0; border:1px solid #294c5e; border-radius:17px; color:#d9edf2; background:linear-gradient(150deg,#071824,#0b2938 62%,#0b1c29); box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 14px 30px rgba(4,24,36,.14); }
.assembly-workbench::before { content:""; position:absolute; inset:0; pointer-events:none; opacity:.11; background-image:linear-gradient(rgba(49,212,216,.26) 1px,transparent 1px),linear-gradient(90deg,rgba(49,212,216,.26) 1px,transparent 1px); background-size:20px 20px; }
.assembly-workbench > * { position:relative; z-index:1; }
.assembly-head { display:flex; align-items:center; justify-content:space-between; gap:9px; padding:11px 12px; border-bottom:1px solid rgba(49,212,216,.15); background:rgba(0,0,0,.17); }
.assembly-head div span,.fragment-panel-head div span { display:block; color:var(--cyan); font-size:7px; font-weight:1000; letter-spacing:.14em; }
.assembly-head div strong,.fragment-panel-head div strong { display:block; margin-top:2px; color:#eefbfd; font-size:10px; }
.assembly-status { flex:0 0 auto; padding:5px 7px; border:1px solid rgba(255,255,255,.13); border-radius:999px; color:#8da9b5; background:rgba(0,0,0,.2); font:800 7px/1.2 "SFMono-Regular",Consolas,monospace; letter-spacing:.05em; }
.assembly-status.ready { border-color:rgba(49,212,216,.4); color:#8ef2ee; background:rgba(49,212,216,.09); box-shadow:0 0 14px rgba(49,212,216,.12); }
.assembly-editor-label { display:block; margin:11px 11px 0; }
.assembly-editor-label > span { display:block; margin-bottom:6px; color:#7fa0ad; font-size:7px; font-weight:900; letter-spacing:.1em; }
#assemblyEditor { width:100%; min-height:168px; resize:vertical; padding:13px; border:1px solid rgba(91,211,217,.24); border-radius:12px; outline:none; color:#d7fff8; background:rgba(0,7,12,.62); font:500 11px/1.72 "SFMono-Regular",Consolas,"Noto Sans Mono CJK JP",monospace; caret-color:var(--amber); box-shadow:inset 0 0 22px rgba(0,0,0,.2); transition:border-color .2s ease,box-shadow .2s ease,background .2s ease; }
#assemblyEditor:focus { border-color:rgba(49,212,216,.7); box-shadow:0 0 0 3px rgba(49,212,216,.09),inset 0 0 22px rgba(0,0,0,.25); }
#assemblyEditor.command-correct { border-color:#4fd09b; background:rgba(5,39,31,.73); box-shadow:0 0 0 3px rgba(79,208,155,.09),0 0 24px rgba(79,208,155,.12); }
#assemblyEditor.command-wrong { border-color:#ef7b84; background:rgba(52,10,18,.66); animation:commandShake .24s linear; }
.assembly-toolbar { display:grid; grid-template-columns:repeat(3,1fr); gap:7px; padding:8px 11px 11px; }
.assembly-toolbar button { min-height:36px!important; border-radius:10px; }
.fragment-panel { margin:0 11px 11px; overflow:hidden; border:1px solid rgba(255,255,255,.1); border-radius:13px; background:rgba(255,255,255,.035); }
.fragment-panel-head { display:flex; align-items:center; justify-content:space-between; gap:8px; padding:9px 10px; border-bottom:1px solid rgba(255,255,255,.08); }
.fragment-panel-head small { color:#7c99a5; font:700 7px/1.2 "SFMono-Regular",Consolas,monospace; }
.fragment-palette { display:flex; flex-wrap:wrap; gap:7px; max-height:255px; overflow:auto; padding:10px; overscroll-behavior:contain; }
.sql-fragment { position:relative; display:inline-grid; gap:2px; min-height:42px; max-width:100%; padding:8px 10px; border:1px solid rgba(255,255,255,.13); border-radius:10px; color:#deeff3; background:#173544; text-align:left; box-shadow:0 4px 9px rgba(0,0,0,.12); transition:transform .12s ease,border-color .15s ease,background .15s ease; }
.sql-fragment:active { transform:scale(.96); }
.sql-fragment span { overflow-wrap:anywhere; font:700 9px/1.35 "SFMono-Regular",Consolas,"Noto Sans Mono CJK JP",monospace; }
.sql-fragment small { color:#718f9b; font-size:6px; letter-spacing:.08em; }
.sql-fragment.keyword { border-color:rgba(49,212,216,.35); color:#aaf8f3; background:#103846; }
.sql-fragment.identifier { border-color:rgba(158,134,255,.34); color:#d8ceff; background:#29294b; }
.sql-fragment.condition { border-color:rgba(244,190,82,.38); color:#ffe2a0; background:#41361f; }
.sql-fragment.symbol { min-width:42px; color:#ffbdc3; background:#44232d; text-align:center; }
.sql-fragment.action { color:#d9e7ec; background:#263b47; }
.sql-fragment.used { animation:fragmentPulse .26s ease; border-color:#fff; }
.assembly-guidance { display:flex; align-items:flex-start; gap:8px; margin:0 11px 11px; padding:9px 10px; border-radius:10px; color:#89a4ae; background:rgba(0,0,0,.18); font-size:8px; line-height:1.55; }
.assembly-guidance p { margin:0; }
.guidance-pulse { width:8px; height:8px; flex:0 0 auto; margin-top:2px; border-radius:50%; background:#59747e; }
.assembly-guidance.active .guidance-pulse { background:var(--cyan); box-shadow:0 0 0 4px rgba(49,212,216,.09),0 0 12px rgba(49,212,216,.55); animation:signalPulse 1.4s infinite; }
.operation-button { min-height:52px; box-shadow:0 9px 22px rgba(13,159,166,.2); }
.operation-button:active { transform:translateY(2px); }
@keyframes fragmentPulse { 0%{transform:scale(.95)}60%{transform:scale(1.08)}100%{transform:scale(1)} }
@keyframes signalPulse { 0%,100%{opacity:.5}50%{opacity:1} }
@keyframes commandShake { 0%,100%{transform:none}25%{transform:translateX(-3px)}75%{transform:translateX(3px)} }
@media (max-width:390px) {
  #assemblyEditor { min-height:150px; font-size:10px; }
  .assembly-toolbar { grid-template-columns:1fr 1fr; }
  .assembly-toolbar .danger-outline-button { grid-column:1/-1; }
  .fragment-palette { max-height:235px; }
  .sql-fragment { min-height:40px; padding:7px 9px; }
}

/* Guided Thought Edition 0.7.0 */
.thought-trace{margin:12px 0;overflow:hidden;border:1px solid #5c82a0;border-radius:17px;color:#eaf8ff;background:linear-gradient(145deg,#10293c,#071520 68%);box-shadow:0 14px 30px rgba(4,24,36,.15)}
.thought-trace-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.09);background:rgba(0,0,0,.16)}
.thought-trace-head span{display:block;color:#7ee7e5;font-size:7px;font-weight:1000;letter-spacing:.14em}.thought-trace-head strong{display:block;margin-top:2px;font-size:10px}.thought-step-badge{padding:5px 8px;border:1px solid rgba(126,231,229,.3);border-radius:999px;background:rgba(126,231,229,.08);white-space:nowrap}
.thought-scene{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:start;padding:13px 12px 9px}.thought-avatar{width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:linear-gradient(145deg,#17657c,#1d3449);font-weight:1000;box-shadow:0 0 0 5px rgba(49,212,216,.07)}
.thought-bubble{position:relative;padding:10px 11px;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(255,255,255,.055)}.thought-bubble strong{font-size:9px;color:#fff}.thought-bubble p{margin:5px 0 0;font-size:11px;line-height:1.75;font-weight:700;color:#d8eaf0}.thought-bubble.thought-change{animation:thoughtFlash .28s ease}
.nora-assist{display:flex;gap:8px;margin:0 12px 10px;padding:8px 9px;border-left:3px solid #42d6cf;border-radius:0 9px 9px 0;background:rgba(49,212,216,.07)}.nora-assist b{flex:none;color:#6ce8e3;font-size:8px}.nora-assist p{margin:0;color:#91adb8;font-size:8px;line-height:1.55}.nora-assist.warning{border-left-color:#ef8d75;background:rgba(239,141,117,.08)}.nora-assist.warning b{color:#ffb09c}
.thought-progress{height:4px;margin:0 12px 10px;overflow:hidden;border-radius:99px;background:#203b49}.thought-progress div{height:100%;width:0;background:linear-gradient(90deg,#31d4d8,#8e79f2);transition:width .25s ease}.free-input-toggle{margin:0 12px 12px;width:calc(100% - 24px)}
.sql-fragment.guided-target{border-color:#fff!important;box-shadow:0 0 0 3px rgba(49,212,216,.18),0 0 24px rgba(49,212,216,.55);animation:guidedGlow 1.25s infinite}.sql-fragment.guided-dim{opacity:.34;filter:saturate(.55)}.sql-fragment.guided-wrong{animation:commandShake .24s linear;border-color:#ef7b84!important}.sql-fragment.guided-done{opacity:.55}.assembly-workbench.guided-mode #assemblyEditor{cursor:default}.assembly-workbench.guided-mode .assembly-toolbar{opacity:.45;pointer-events:none}
@keyframes guidedGlow{0%,100%{transform:translateY(0);box-shadow:0 0 0 2px rgba(49,212,216,.12),0 0 14px rgba(49,212,216,.35)}50%{transform:translateY(-2px);box-shadow:0 0 0 4px rgba(49,212,216,.2),0 0 30px rgba(49,212,216,.72)}}
@keyframes thoughtFlash{0%{opacity:.45;transform:translateY(3px)}100%{opacity:1;transform:none}}


/* Chapter Enemy Mastery system retained from 0.8.0 */
.enemy-dashboard{min-width:74px;padding:7px 9px;border:1px solid rgba(238,91,111,.26);border-radius:12px;background:rgba(82,15,28,.26);text-align:center}.enemy-dashboard small{display:block;color:#ef93a2;font-size:6px;font-weight:1000;letter-spacing:.1em}.enemy-dashboard strong{display:block;color:#fff;font-size:13px}.enemy-dashboard span{display:block;color:#ad7f89;font-size:6px;font-weight:800}
.enemy-arena-wrap{margin:14px 0;padding:15px;border:1px solid rgba(238,91,111,.26);border-radius:20px;background:linear-gradient(145deg,rgba(28,10,18,.96),rgba(7,24,34,.98));box-shadow:0 18px 40px rgba(4,11,19,.18)}.enemy-arena-heading h2{color:#fff}.enemy-arena-description{margin:-4px 0 13px;color:#8fa8b2;font-size:9px;line-height:1.7}.enemy-squad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.enemy-card{position:relative;overflow:hidden;min-width:0;padding:10px 9px;border:1px solid rgba(238,91,111,.26);border-radius:15px;background:linear-gradient(160deg,rgba(60,17,31,.78),rgba(9,29,40,.95));text-align:center;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}.enemy-card::before{content:"";position:absolute;inset:0;opacity:.11;background-image:linear-gradient(rgba(255,101,124,.3) 1px,transparent 1px),linear-gradient(90deg,rgba(255,101,124,.3) 1px,transparent 1px);background-size:14px 14px}.enemy-card>*{position:relative;z-index:1}.enemy-card-scan{position:absolute;z-index:0;left:0;right:0;height:1px;background:#ff667c;box-shadow:0 0 11px #ff667c;animation:enemyScan 3s linear infinite}.enemy-card-head{display:flex;justify-content:space-between;gap:4px}.enemy-tier,.enemy-state{font-size:5px;font-weight:1000;letter-spacing:.08em;color:#fc9dac}.enemy-state{color:#d7b56f}.enemy-portrait{position:relative;width:48px;height:48px;margin:8px auto 6px;display:grid;place-items:center;border:1px solid rgba(255,113,136,.42);border-radius:50%;background:rgba(255,92,119,.08);font-size:22px;box-shadow:0 0 0 5px rgba(255,92,119,.035),0 0 20px rgba(255,92,119,.14)}.enemy-portrait i{position:absolute;inset:-5px;border:1px dashed rgba(255,113,136,.22);border-radius:50%;animation:enemyRotate 8s linear infinite}.enemy-card p{margin:0;color:#df7085;font-size:5px;font-weight:1000;letter-spacing:.1em}.enemy-card h3{margin:5px 0 4px;color:#fff;font-size:10px}.enemy-card>strong{display:block;min-height:31px;color:#b9cbd1;font-size:7px;line-height:1.45}.enemy-card>small{display:block;margin:6px 0;color:#7d99a5;font-size:6px}.enemy-card button{width:100%;min-height:33px!important;padding:6px!important;border-radius:9px!important;font-size:7px!important}.enemy-engage-button{border:1px solid #ff7189;color:#fff;background:linear-gradient(135deg,#a62945,#e34e68);font-weight:1000;box-shadow:0 6px 14px rgba(191,40,68,.25)}.enemy-card.locked{opacity:.42;filter:grayscale(.55)}.enemy-card.defeated{border-color:rgba(77,218,168,.38);background:linear-gradient(160deg,rgba(12,55,44,.8),rgba(9,29,40,.95))}.enemy-card.defeated .enemy-portrait{border-color:#53d9a7;color:#76efbf}.chapter-card-meters{display:flex;align-items:center;gap:7px}.chapter-card-meters .chapter-progress-mini{flex:1}.chapter-enemy-mini{flex:none;padding:3px 5px;border-radius:999px;color:#d58493;background:rgba(192,47,73,.1);font-size:5px}.chapter-enemy-mini.clear{color:#57cfa1;background:rgba(55,192,137,.1)}.chapter-card.mastered{box-shadow:0 0 0 2px rgba(75,216,164,.15),0 12px 24px rgba(19,125,94,.12)}
.enemy-battle-modal{z-index:180;padding:0;align-items:stretch;overflow:auto}.enemy-battle-backdrop{background:rgba(2,4,8,.94);backdrop-filter:blur(10px)}.enemy-battle-stage{position:relative;z-index:1;width:min(100%,560px);min-height:100%;margin:0 auto;padding:0 13px 28px;color:#eaf5f7;background:radial-gradient(circle at 50% 8%,rgba(172,29,58,.32),transparent 28%),linear-gradient(155deg,#150912,#06131e 48%,#071e2a);box-shadow:0 0 60px rgba(0,0,0,.55);animation:conversationRise .28s ease}.enemy-battle-stage::before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.08;background-image:linear-gradient(rgba(255,91,119,.3) 1px,transparent 1px),linear-gradient(90deg,rgba(255,91,119,.3) 1px,transparent 1px);background-size:22px 22px}.enemy-battle-topbar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;margin:0 -13px;padding:12px 13px;border-bottom:1px solid rgba(255,100,126,.2);background:rgba(5,10,16,.9);backdrop-filter:blur(8px)}.enemy-battle-topbar span{color:#ef7187;font-size:7px;font-weight:1000;letter-spacing:.13em}.enemy-battle-topbar button{border:0;color:#91a5ae;background:transparent;font-size:8px;font-weight:900}.enemy-identity{display:grid;grid-template-columns:70px 1fr;gap:13px;align-items:center;padding:20px 3px 13px}.enemy-battle-icon{width:70px;height:70px;display:grid;place-items:center;border:1px solid #e54d69;border-radius:50%;color:#ff8da0;background:radial-gradient(circle,#5e172b,#170911);font-size:30px;box-shadow:0 0 0 7px rgba(232,62,94,.06),0 0 35px rgba(232,62,94,.3);animation:enemyPulse 1.8s ease-in-out infinite}.enemy-identity p{margin:0;color:#e86f84;font-size:7px;font-weight:1000;letter-spacing:.12em}.enemy-identity h2{margin:5px 0;color:#fff;font-size:20px}.enemy-identity span{padding:4px 7px;border:1px solid rgba(255,105,131,.3);border-radius:999px;color:#ffb0bd;background:rgba(255,79,108,.08);font-size:6px;font-weight:1000}.battle-gauges{display:grid;gap:8px;margin-bottom:13px}.battle-gauges label{display:flex;justify-content:space-between;margin-bottom:4px;color:#b4c6cc;font-size:6px;font-weight:900;letter-spacing:.08em}.battle-gauges>div>span{display:block;height:7px;overflow:hidden;border-radius:99px;background:#26151c}.battle-gauges i{display:block;width:100%;height:100%;background:linear-gradient(90deg,#821d38,#ff5875);transition:width .25s ease}.battle-gauges .shield{background:#102d39}.battle-gauges .shield i{background:linear-gradient(90deg,#167b91,#45e1d8)}.enemy-operation-brief,.enemy-thought-trace,.enemy-command-workbench,.enemy-battle-result{position:relative;margin:11px 0;padding:14px;border:1px solid rgba(255,255,255,.1);border-radius:16px;background:rgba(255,255,255,.035)}.enemy-operation-brief h3{margin:4px 0 8px;color:#fff;font-size:15px}.enemy-operation-brief>p:not(.eyebrow){margin:0;color:#a7bdc5;font-size:9px;line-height:1.75}.enemy-objective{margin:11px 0;padding:9px 10px;border-left:3px solid #ff657f;background:rgba(255,79,108,.07)}.enemy-objective span{display:block;color:#ef6e85;font-size:6px;font-weight:1000}.enemy-objective strong{display:block;margin-top:3px;color:#fff;font-size:9px}.enemy-schema{display:flex;flex-wrap:wrap;gap:6px}.enemy-schema span{padding:6px 7px;border:1px solid rgba(120,203,216,.18);border-radius:8px;color:#91b3bd;background:rgba(13,58,72,.34);font:600 7px/1.45 monospace}.enemy-thought-head{display:flex;justify-content:space-between;color:#64ded8;font-size:6px;font-weight:1000;letter-spacing:.1em}.enemy-thought-head b{color:#a5bcc4}.enemy-thought-row{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:start;margin-top:11px}.enemy-thought-row p{min-height:62px;margin:0;padding:10px;border:1px solid rgba(255,255,255,.09);border-radius:11px;color:#e2f0f3;background:rgba(255,255,255,.045);font-size:10px;font-weight:700;line-height:1.7}.enemy-nora{display:flex;gap:8px;margin-top:9px;padding:8px;border-left:3px solid #46dcd5;background:rgba(55,210,204,.06)}.enemy-nora b{color:#5fe1da;font-size:7px}.enemy-nora p{margin:0;color:#93aeb7;font-size:8px;line-height:1.55}.enemy-nora.warning{border-color:#ff7188;background:rgba(255,72,103,.07)}.enemy-command-workbench label{display:block;color:#6fe3df;font-size:6px;font-weight:1000;letter-spacing:.11em}.enemy-command-workbench textarea{width:100%;min-height:135px;margin-top:7px;padding:11px;resize:none;border:1px solid rgba(83,216,211,.26);border-radius:11px;outline:0;color:#d9fff9;background:rgba(0,5,10,.62);font:600 9px/1.65 monospace}.enemy-fragment-palette{display:flex;flex-wrap:wrap;gap:6px;max-height:220px;overflow:auto;margin:10px 0;padding:9px;border:1px solid rgba(255,255,255,.08);border-radius:11px;background:rgba(0,0,0,.18)}.enemy-fragment{display:grid;gap:2px;min-height:39px;max-width:100%;padding:7px 9px;border:1px solid rgba(255,255,255,.13);border-radius:9px;color:#e4f0f2;background:#193746;text-align:left;transition:.15s}.enemy-fragment span{overflow-wrap:anywhere;font:700 8px/1.35 monospace}.enemy-fragment small{color:#78939e;font-size:5px}.enemy-fragment.identifier{color:#d9ceff;background:#29284a}.enemy-fragment.condition{color:#ffe1a1;background:#41351f}.enemy-fragment.keyword{color:#aff7f1;background:#103946}.enemy-fragment.symbol{color:#ffbdc6;background:#44232d}.enemy-fragment.guided-target{opacity:1!important;border-color:#fff;box-shadow:0 0 0 3px rgba(48,218,211,.16),0 0 24px rgba(48,218,211,.52);animation:guidedGlow 1.2s infinite}.enemy-fragment.guided-dim{opacity:.3}.enemy-fragment.guided-done{opacity:.48}.enemy-fragment.guided-wrong{border-color:#ff627d!important;animation:commandShake .24s linear}.enemy-execute-button{width:100%;min-height:48px;border:1px solid rgba(255,255,255,.12);border-radius:12px;color:#637982;background:#182a32;font-size:9px;font-weight:1000}.enemy-execute-button.ready{border-color:#ff6c84;color:#fff;background:linear-gradient(135deg,#a52142,#ef5370);box-shadow:0 8px 24px rgba(218,47,78,.28);animation:enemyReady 1.3s infinite}.enemy-retry-button{width:100%;margin-top:8px}.enemy-battle-result{border-color:rgba(73,222,168,.35);background:linear-gradient(145deg,rgba(15,76,58,.34),rgba(255,255,255,.03));text-align:center}.enemy-battle-result>span{color:#55e0ad;font-size:7px;font-weight:1000;letter-spacing:.12em}.enemy-battle-result h3{margin:6px 0;color:#fff;font-size:18px}.enemy-battle-result>p{color:#b2c8c8;font-size:9px;line-height:1.7}.practical-takeaway{margin:12px 0;padding:10px;border:1px solid rgba(81,220,169,.2);border-radius:11px;background:rgba(57,192,140,.06);text-align:left}.practical-takeaway b{color:#63e3b3;font-size:7px}.practical-takeaway p{margin:4px 0 0;color:#aec2c4;font-size:8px;line-height:1.65}body.enemy-battle-open{overflow:hidden}.enemy-hit{animation:enemyStageHit .28s linear}.enemy-record{border-left:2px solid rgba(227,69,96,.25)}
@keyframes enemyScan{0%{top:0;opacity:0}10%{opacity:1}90%{opacity:1}100%{top:100%;opacity:0}}@keyframes enemyRotate{to{transform:rotate(360deg)}}@keyframes enemyPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.04);box-shadow:0 0 0 10px rgba(232,62,94,.05),0 0 45px rgba(232,62,94,.4)}}@keyframes enemyReady{0%,100%{box-shadow:0 8px 20px rgba(218,47,78,.22)}50%{box-shadow:0 8px 34px rgba(218,47,78,.48)}}@keyframes enemyStageHit{0%,100%{transform:none}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@media(max-width:520px){.enemy-squad{grid-template-columns:1fr}.enemy-card{display:grid;grid-template-columns:60px 1fr auto;grid-template-rows:auto auto auto;gap:2px 9px;text-align:left}.enemy-card-head{grid-column:1/-1}.enemy-portrait{grid-row:2/5;width:52px;height:52px;margin:3px}.enemy-card p,.enemy-card h3,.enemy-card>strong,.enemy-card>small{grid-column:2}.enemy-card>strong{min-height:0}.enemy-card button{grid-column:3;grid-row:2/5;align-self:center;width:82px}.agent-dashboard{grid-template-columns:auto auto auto 1fr}.enemy-dashboard{min-width:62px}.stats-grid{grid-template-columns:repeat(2,1fr)}}
.enemy-battle-modal{background:#06131e}.enemy-battle-modal .enemy-battle-backdrop{position:fixed}.enemy-battle-stage{min-height:100vh}

/* v0.8.1 - Unified guided thought experience for every normal mission */
.builder-thought-trace{margin-top:0;border-color:#397f91;background:linear-gradient(145deg,#0d3041,#061620 72%)}
.builder-thought-trace .thought-trace-head span{color:#79ece4}
#builderWorkspace.guided-builder-mode [data-builder-zone]{transition:opacity .2s ease,filter .2s ease,box-shadow .2s ease,transform .2s ease}
#builderWorkspace.guided-builder-mode [data-builder-zone].builder-zone-dim{opacity:.48;filter:saturate(.62)}
#builderWorkspace.guided-builder-mode [data-builder-zone].builder-zone-active{opacity:1;filter:none;box-shadow:0 0 0 2px rgba(55,216,211,.13),0 14px 30px rgba(8,65,80,.12)}
.builder-guided-target{position:relative!important;z-index:3!important;opacity:1!important;filter:none!important;border-color:#36d8d2!important;box-shadow:0 0 0 3px rgba(54,216,210,.18),0 0 24px rgba(54,216,210,.42)!important;animation:guidedGlow 1.2s ease-in-out infinite}
.column-chip label.builder-guided-target,.switch-label.builder-guided-target{background:#e9fffd!important}
.builder-guided-dim{opacity:.34!important;filter:saturate(.5)}
.builder-guided-wrong{border-color:#ed6477!important;box-shadow:0 0 0 3px rgba(237,100,119,.15)!important;animation:commandShake .24s linear!important}
.builder-guided-done{border-color:#56cfa4!important;box-shadow:0 0 0 2px rgba(86,207,164,.12)!important}
#executeVisualButton.builder-guided-target{color:#fff;background:linear-gradient(135deg,#0e8f98,#21c5bd);box-shadow:0 9px 28px rgba(25,190,183,.36)!important}
.builder-thought-trace .nora-assist.warning{border-color:#ef7384;background:rgba(239,80,105,.09)}
.builder-thought-trace .nora-assist.success{border-color:#56d4a7;background:rgba(67,194,143,.08)}
.builder-free-mode-note{margin:8px 0 0;color:#8bb1bd;font-size:8px;line-height:1.6}
@media(max-width:520px){#builderWorkspace.guided-builder-mode [data-builder-zone].builder-zone-dim{opacity:.4}.builder-guided-target{scroll-margin-top:125px}}
