/* =========================================================================
   Military Alphabet — front-page tool styles (assets/css/tool.css)
   Loaded only on the front page. Depends on tokens defined in main.css.
   ========================================================================= */

.ma-tool-main .block { padding: 56px 0; border-top: 1px solid var(--hairline-soft); }
.ma-tool-main .sec-head { display: flex; align-items: baseline; gap: 16px; margin-bottom: 8px; flex-wrap: wrap; }
.ma-tool-main .sec-num { font-family: var(--mono); font-size: 13px; color: var(--phosphor-soft); letter-spacing: .2em; }
.ma-tool-main .sec-head h2 { font-family: var(--display); font-weight: 700; font-size: clamp(24px, 3.6vw, 34px); color: var(--field-tan); letter-spacing: .02em; }
.ma-tool-main .sec-intro { color: var(--field-tan-dim); margin-bottom: 28px; font-size: 17px; }
.ma-mt { margin-top: 16px; }

/* ---- Hero / comms terminal ---- */
.hero { padding: 54px 0 40px; position: relative; }
.eyebrow { font-family: var(--mono); font-size: 12px; letter-spacing: .34em; text-transform: uppercase; color: var(--phosphor-soft); margin-bottom: 14px; }
.hero-title { font-family: var(--display); font-weight: 700; font-size: clamp(30px, 5.4vw, 52px); line-height: 1.02; color: var(--field-tan); letter-spacing: .01em; max-width: 18ch; }
.hero-title em { color: var(--phosphor); font-style: normal; }
.hero .lede { margin-top: 18px; max-width: 60ch; color: var(--field-tan-dim); font-size: 18px; }

.terminal { margin-top: 34px; border: 1px solid var(--hairline); background: linear-gradient(180deg, #22261a, #1a1d13); box-shadow: 0 24px 60px rgba(0, 0, 0, .45); }
.terminal-head { display: flex; align-items: center; gap: 10px; padding: 10px 16px; border-bottom: 1px solid var(--hairline-soft); font-family: var(--mono); font-size: 12px; letter-spacing: .14em; color: var(--field-tan-dim); text-transform: uppercase; }
.terminal-head .knob { width: 11px; height: 11px; border-radius: 50%; border: 1px solid var(--hairline); background: #1a1d13; }
.terminal-head .knob.on { background: var(--phosphor); border-color: var(--phosphor); box-shadow: 0 0 9px var(--phosphor); }
.terminal-head .freq { margin-left: auto; color: var(--phosphor-soft); }
.terminal-body { padding: 20px 20px 24px; }
.field-label { font-family: var(--mono); font-size: 11px; letter-spacing: .2em; text-transform: uppercase; color: var(--field-tan-dim); margin-bottom: 8px; display: block; }
#msgInput { width: 100%; min-height: 74px; resize: vertical; background: var(--ink); border: 1px solid var(--hairline); color: var(--field-tan); font-family: var(--mono); font-size: 17px; letter-spacing: .04em; padding: 14px; line-height: 1.5; outline: none; }
#msgInput:focus { border-color: var(--phosphor-soft); box-shadow: 0 0 0 1px var(--phosphor-soft); }
.controls { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 14px; align-items: center; }
.btn.ghost { background: transparent; color: var(--phosphor); }
.btn.ghost:hover { background: rgba(255, 182, 39, .1); color: var(--phosphor); }
.controls .spacer { margin-left: auto; }
.toggle { font-family: var(--mono); font-size: 12px; letter-spacing: .1em; color: var(--field-tan-dim); text-transform: uppercase; display: flex; align-items: center; gap: 8px; cursor: pointer; user-select: none; }
.toggle input { accent-color: var(--phosphor); }

.readout { margin-top: 18px; border: 1px solid var(--hairline-soft); background: var(--ink); padding: 18px; min-height: 96px; background-image: repeating-linear-gradient(0deg, rgba(255, 182, 39, .025) 0 1px, transparent 1px 3px); }
.readout .empty { font-family: var(--mono); color: var(--field-tan-dim); font-size: 14px; letter-spacing: .08em; }
.tiles { display: flex; flex-wrap: wrap; gap: 8px; }
.tile { border: 1px solid var(--hairline); background: var(--olive-panel); padding: 8px 11px 9px; min-width: 58px; text-align: center; transition: .1s; }
.tile .ch { display: block; font-family: var(--mono); font-size: 12px; color: var(--field-tan-dim); letter-spacing: .1em; }
.tile .word { display: block; font-family: var(--cond); font-weight: 700; font-size: 17px; color: var(--phosphor); letter-spacing: .02em; margin-top: 2px; }
.tile[style*="cursor: pointer"]:hover { border-color: var(--phosphor); background: var(--olive-raised); }
.tile.space { min-width: 34px; background: transparent; border-style: dashed; border-color: var(--hairline-soft); display: flex; align-items: center; justify-content: center; }
.tile.space .ch { color: var(--field-tan-dim); }
.tile.punct .word { color: var(--field-tan); }
.readout-line { font-family: var(--mono); font-size: 14px; color: var(--field-tan-dim); letter-spacing: .06em; margin-top: 14px; word-break: break-word; }
.readout-line b { color: var(--phosphor-soft); font-weight: 400; }

/* ---- Alphabet chart grid ---- */
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)); gap: 10px; }
.card { border: 1px solid var(--hairline-soft); background: var(--olive-panel); padding: 14px 14px 13px; cursor: pointer; transition: .12s; position: relative; overflow: hidden; text-align: left; font: inherit; color: inherit; width: 100%; }
.card:hover { border-color: var(--phosphor-soft); background: var(--olive-raised); transform: translateY(-2px); }
.card:focus-visible { outline: 2px solid var(--phosphor); outline-offset: 2px; }
.card .letter { display: block; font-family: var(--display); font-weight: 700; font-size: 30px; color: var(--phosphor); line-height: 1; }
.card .cw { display: block; font-family: var(--cond); font-weight: 700; font-size: 21px; color: var(--field-tan); margin-top: 6px; letter-spacing: .01em; }
.card .pr { display: block; font-family: var(--mono); font-size: 12.5px; color: var(--field-tan-dim); margin-top: 3px; letter-spacing: .04em; }
.card .morse { display: block; font-family: var(--mono); font-size: 15px; color: var(--phosphor-soft); margin-top: 9px; letter-spacing: .18em; }
.card .spk { position: absolute; top: 11px; right: 11px; font-family: var(--mono); font-size: 10px; letter-spacing: .1em; color: var(--field-tan-dim); text-transform: uppercase; opacity: 0; transition: .12s; }
.card:hover .spk { opacity: 1; }

/* ---- numbers ---- */
.num-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 10px; margin-top: 8px; }
.num-card { border: 1px solid var(--hairline-soft); background: var(--olive-panel); padding: 12px; text-align: center; cursor: pointer; transition: .1s; font: inherit; color: inherit; width: 100%; }
.num-card:hover { border-color: var(--phosphor-soft); background: var(--olive-raised); }
.num-card .n { display: block; font-family: var(--display); font-weight: 700; font-size: 26px; color: var(--phosphor); }
.num-card .w { display: block; font-family: var(--cond); font-weight: 600; font-size: 16px; color: var(--field-tan); margin-top: 2px; }
.num-card .m { display: block; font-family: var(--mono); font-size: 13px; color: var(--phosphor-soft); margin-top: 6px; letter-spacing: .16em; }

/* ---- variants table ---- */
.tabs { display: flex; gap: 0; flex-wrap: wrap; border: 1px solid var(--hairline); border-bottom: none; margin-top: 6px; }
.tab { font-family: var(--cond); font-weight: 600; text-transform: uppercase; letter-spacing: .05em; font-size: 14px; padding: 11px 18px; background: var(--olive-panel); color: var(--field-tan-dim); border: none; border-right: 1px solid var(--hairline); cursor: pointer; transition: .1s; flex: 1; text-align: center; min-width: 120px; }
.tab:last-child { border-right: none; }
.tab.active { background: var(--phosphor); color: var(--ink); }
.tab:not(.active):hover { background: var(--olive-raised); color: var(--field-tan); }
.tbl-wrap { border: 1px solid var(--hairline); overflow-x: auto; }
table.vt { width: 100%; border-collapse: collapse; font-family: var(--cond); font-size: 15.5px; }
table.vt th { text-align: left; padding: 11px 16px; background: var(--ink); color: var(--field-tan-dim); font-family: var(--mono); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; font-weight: 400; border-bottom: 1px solid var(--hairline); }
table.vt td { padding: 9px 16px; border-bottom: 1px solid var(--hairline-soft); }
table.vt tr:last-child td { border-bottom: none; }
table.vt td.l { font-family: var(--display); font-weight: 700; color: var(--phosphor); width: 60px; font-size: 17px; }
table.vt td.w { color: var(--field-tan); font-weight: 600; }
table.vt tr:hover td { background: rgba(255, 182, 39, .04); }

/* ---- prose ---- */
.prose h3 { font-family: var(--cond); font-weight: 700; font-size: 20px; color: var(--field-tan); margin: 26px 0 8px; letter-spacing: .01em; }
.prose p { margin-bottom: 16px; color: var(--field-tan); }
.prose p.dim { color: var(--field-tan-dim); }

/* ---- FAQ ---- */
.faq { border-top: 1px solid var(--hairline-soft); }
.faq details { border-bottom: 1px solid var(--hairline-soft); padding: 16px 0; }
.faq summary { font-family: var(--cond); font-weight: 600; font-size: 18px; color: var(--field-tan); cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 16px; align-items: center; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: '+'; font-family: var(--mono); color: var(--phosphor); font-size: 22px; flex: none; }
.faq details[open] summary::after { content: '–'; }
.faq details p { margin-top: 12px; color: var(--field-tan-dim); }

/* ---- intro band ---- */
.intro-band { padding: 34px 0 10px; border-top: none; }
.intro-band p { font-size: 19px; line-height: 1.65; color: var(--field-tan); }
.intro-band p + p { margin-top: 16px; }
.intro-band p.dim { color: var(--field-tan-dim); font-size: 17px; }

/* ---- callout note ---- */
.note { border-left: 3px solid var(--phosphor); background: var(--olive-panel); padding: 16px 20px; margin-top: 22px; }
.note h3 { font-family: var(--cond); font-weight: 700; font-size: 17px; color: var(--phosphor); letter-spacing: .02em; margin-bottom: 6px; }
.note p { color: var(--field-tan-dim); font-size: 16px; margin: 0; }

/* ---- how-to examples ---- */
.examples { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; margin-top: 6px; }
.ex { border: 1px solid var(--hairline-soft); background: var(--olive-panel); padding: 14px 16px; }
.ex .ctx { font-family: var(--mono); font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: var(--phosphor-soft); margin-bottom: 6px; }
.ex .say { font-family: var(--cond); font-size: 18px; color: var(--field-tan); line-height: 1.4; }
.ex .say b { color: var(--phosphor); font-weight: 700; }

/* ---- evolution table ---- */
.ma-evo-heading { font-family: var(--cond); font-weight: 700; font-size: 20px; color: var(--field-tan); margin: 30px 0 12px; }
.evo-wrap { border: 1px solid var(--hairline); overflow-x: auto; margin-top: 6px; }
table.evo { width: 100%; border-collapse: collapse; font-family: var(--cond); font-size: 15px; }
table.evo th { text-align: left; padding: 11px 14px; background: var(--ink); color: var(--field-tan-dim); font-family: var(--mono); font-size: 10.5px; letter-spacing: .14em; text-transform: uppercase; font-weight: 400; border-bottom: 1px solid var(--hairline); white-space: nowrap; }
table.evo td { padding: 8px 14px; border-bottom: 1px solid var(--hairline-soft); color: var(--field-tan-dim); white-space: nowrap; }
table.evo tr:last-child td { border-bottom: none; }
table.evo td.l { font-family: var(--display); font-weight: 700; color: var(--phosphor); width: 44px; }
table.evo td.now { color: var(--field-tan); font-weight: 600; }
table.evo tr:hover td { background: rgba(255, 182, 39, .04); }
.evo-note { font-family: var(--cond); font-size: 15px; color: var(--field-tan-dim); margin-top: 14px; }
.evo-note b { color: var(--field-tan); font-weight: 600; }

/* ---- phrases ---- */
.phrases { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; margin-top: 6px; }
.phrase { border: 1px solid var(--hairline-soft); background: var(--olive-panel); padding: 14px 16px; }
.phrase .p-code { font-family: var(--display); font-weight: 700; font-size: 18px; color: var(--phosphor); letter-spacing: .02em; }
.phrase .p-mean { font-family: var(--cond); font-size: 15.5px; color: var(--field-tan-dim); margin-top: 4px; }

/* ---- front-page editorial content appended below the tool ---- */
.ma-front-content { color: var(--field-tan); }
