/* Baseline theme. Structure-only styling meant to be replaced by a site-specific design.
   All colors/typography are tokens on :root. Uses logical properties so RTL works. */
:root {
  --c-primary: #1f3a5f;
  --c-secondary: #3c7a89;
  --c-accent: #e0a458;
  --c-soft: #c9d6df;
  --c-bg: #f7f9fb;
  --c-surface: #ffffff;
  --c-text: #1b2733;
  --c-muted: #5b6b7a;
  --font-body: system-ui, -apple-system, "Segoe UI", "Noto Sans", "Noto Sans JP", "Noto Sans TC", "Noto Sans Arabic", sans-serif;
  --font-head: var(--font-body);
  --radius: 10px;
  --wrap: 1160px;
  --gap: clamp(16px, 3vw, 28px);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--c-bg); color: var(--c-text); font: 17px/1.7 var(--font-body); }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--c-primary); text-underline-offset: 3px; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible { outline: 3px solid var(--c-accent); outline-offset: 2px; }
h1, h2, h3 { font-family: var(--font-head); line-height: 1.25; color: var(--c-text); }
h1 { font-size: clamp(1.9rem, 4.5vw, 2.8rem); margin: .2em 0 .4em; }
h2 { font-size: clamp(1.4rem, 3vw, 1.8rem); margin: 2em 0 .6em; }
h3 { font-size: 1.15rem; margin: 1.4em 0 .4em; }
.wrap { width: 100%; max-width: var(--wrap); margin-inline: auto; padding-inline: 16px; }
.skip-link { position: absolute; inset-inline-start: -999px; top: 8px; background: var(--c-surface); padding: 8px 12px; z-index: 10; }
.skip-link:focus { inset-inline-start: 8px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* header */
.site-header { background: var(--c-surface); border-bottom: 1px solid var(--c-soft); position: sticky; top: 0; z-index: 5; }
.header-inner { display: flex; align-items: center; gap: 16px; min-height: 64px; flex-wrap: wrap; }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(--c-text); font-weight: 700; font-size: 1.1rem; }
.nav-toggle { margin-inline-start: auto; display: none; background: none; border: 1px solid var(--c-soft); border-radius: var(--radius); padding: 6px 12px; font: inherit; cursor: pointer; }
.site-nav { margin-inline-start: auto; }
.site-nav ul { list-style: none; display: flex; flex-wrap: wrap; gap: 4px 18px; margin: 0; padding: 0; }
.site-nav a { text-decoration: none; color: var(--c-text); font-size: .95rem; padding: 6px 0; display: inline-block; }
.site-nav a[aria-current="page"] { color: var(--c-primary); box-shadow: inset 0 -2px 0 var(--c-accent); }
@media (max-width: 860px) {
  .nav-toggle { display: block; }
  .site-nav { display: none; width: 100%; margin: 0; }
  .nav-open .site-nav { display: block; }
  .site-nav ul { flex-direction: column; padding-bottom: 12px; }
}

/* layout pieces */
main { padding-block: 24px 64px; }
.breadcrumb ol { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: 0 0 12px; font-size: .88rem; color: var(--c-muted); }
.breadcrumb li + li::before { content: "/"; margin-inline-end: 6px; color: var(--c-soft); }
.eyebrow { text-transform: uppercase; letter-spacing: .06em; font-size: .78rem; color: var(--c-secondary); margin: 0; font-weight: 600; }
.lead { font-size: 1.15rem; color: var(--c-muted); max-width: 70ch; }
.meta { font-size: .88rem; color: var(--c-muted); }
.page-head { margin-bottom: 24px; }
.btn, .btn-secondary, button[type="submit"] { display: inline-block; padding: 10px 18px; border-radius: var(--radius); font: inherit; font-weight: 600; text-decoration: none; cursor: pointer; border: 2px solid var(--c-primary); }
.btn, button[type="submit"] { background: var(--c-primary); color: #fff; }
.btn-secondary { background: transparent; color: var(--c-primary); }
.cta { display: flex; flex-wrap: wrap; gap: 12px; }

.hero { display: grid; grid-template-columns: 1.1fr 1fr; gap: var(--gap); align-items: center; padding-block: 16px 24px; }
.hero-points { padding-inline-start: 1.2em; }
.hero-media img { border-radius: var(--radius); }
@media (max-width: 860px) { .hero { grid-template-columns: 1fr; } }

.grid { display: grid; gap: var(--gap); grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.card { background: var(--c-surface); border: 1px solid var(--c-soft); border-radius: var(--radius); overflow: hidden; display: flex; flex-direction: column; }
.card-body { padding: 16px 18px 18px; }
.card h3 { margin: .3em 0; }
.card h3 a { text-decoration: none; color: var(--c-text); }
.card p { margin: .4em 0; }

.intro-split { display: grid; grid-template-columns: 1.4fr 1fr; gap: var(--gap); align-items: start; }
@media (max-width: 860px) { .intro-split { grid-template-columns: 1fr; } }

/* article */
.prose { max-width: 75ch; }
.prose table { font-size: .95rem; }
.cover img { border-radius: var(--radius); margin-bottom: 24px; }
.figure { margin: 28px 0; }
.figure img { width: 100%; max-height: 560px; object-fit: contain; border: 1px solid var(--c-soft); border-radius: var(--radius); background: #fff; }
.figure figcaption { margin-top: 8px; font-size: .9rem; color: var(--c-muted); }
.article-layout { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 40px; align-items: start; }
.toc { position: sticky; top: 84px; font-size: .9rem; border-inline-start: 3px solid var(--c-soft); padding-inline-start: 14px; }
.toc h2 { font-size: .95rem; margin: 0 0 8px; }
.toc ol { padding-inline-start: 1.1em; margin: 0; }
@media (max-width: 960px) { .article-layout { grid-template-columns: 1fr; } .toc { position: static; } }
.callout { background: var(--c-surface); border-inline-start: 4px solid var(--c-accent); padding: 4px 18px; margin: 1.4em 0; border-radius: 0 var(--radius) var(--radius) 0; }
.related-tool { background: var(--c-surface); border: 1px solid var(--c-soft); border-radius: var(--radius); padding: 8px 22px 22px; margin-top: 40px; }

.table-wrap { overflow-x: auto; margin: 1.2em 0; -webkit-overflow-scrolling: touch; }
table { border-collapse: collapse; width: 100%; background: var(--c-surface); }
th, td { border: 1px solid var(--c-soft); padding: 9px 12px; text-align: start; vertical-align: top; }
th { background: var(--c-bg); font-weight: 600; }
th .sort { all: unset; cursor: pointer; font-weight: 600; }
th[aria-sort="ascending"] .sort::after { content: " ▲"; }
th[aria-sort="descending"] .sort::after { content: " ▼"; }
.table-tools { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; }
.hint { font-size: .85rem; color: var(--c-muted); margin: 0; }

/* tools */
.tool-panel { background: var(--c-surface); border: 1px solid var(--c-soft); border-radius: var(--radius); padding: clamp(16px, 3vw, 28px); margin-bottom: 32px; }
.fields { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.field label { display: block; font-weight: 600; font-size: .92rem; margin-bottom: 4px; }
.input-unit { display: flex; align-items: center; border: 1px solid var(--c-soft); border-radius: var(--radius); background: #fff; }
.input-unit input { border: 0; flex: 1; min-width: 0; padding: 10px 12px; font: inherit; background: transparent; }
.unit { padding-inline: 10px; color: var(--c-muted); font-size: .9rem; }
select, input[type="search"], .quote-input input { width: 100%; padding: 10px 12px; font: inherit; border: 1px solid var(--c-soft); border-radius: var(--radius); background: #fff; }
.actions { margin-block: 18px; }
.results dl { display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); margin: 0; }
.result-row { background: var(--c-bg); border-radius: var(--radius); padding: 12px 14px; }
.result-row dt { font-size: .85rem; color: var(--c-muted); }
.result-row dd { margin: 0; font-size: 1.35rem; font-weight: 700; }
.note { font-size: .85rem; color: var(--c-muted); }
.checklist { list-style: none; padding: 0; }
.checklist li { display: flex; gap: 10px; align-items: flex-start; padding: 8px 0; border-bottom: 1px solid var(--c-soft); }
.checklist input { width: 20px; height: 20px; margin-top: 4px; flex: none; }
.progress { font-weight: 600; }

.faq details { background: var(--c-surface); border: 1px solid var(--c-soft); border-radius: var(--radius); padding: 12px 16px; margin-bottom: 10px; }
.faq summary { cursor: pointer; font-weight: 600; }
.link-list { list-style: none; padding: 0; }
.link-list li { padding: 10px 0; border-bottom: 1px solid var(--c-soft); }
.link-list p { margin: 4px 0 0; color: var(--c-muted); font-size: .95rem; }
.search-results { list-style: none; padding: 0; }
.search-results li { padding: 12px 0; border-bottom: 1px solid var(--c-soft); }
.disclosure { margin-top: 48px; font-size: .95rem; color: var(--c-muted); }

/* footer */
.site-footer { background: var(--c-surface); border-top: 1px solid var(--c-soft); padding-block: 32px; font-size: .92rem; }
.site-footer .wrap { display: grid; gap: 20px; grid-template-columns: 1.2fr 1fr 1fr; }
.site-footer ul { list-style: none; padding: 0; margin: 0; }
.site-footer li { margin-bottom: 6px; }
.footer-note, .copyright { grid-column: 1 / -1; color: var(--c-muted); margin: 0; }
@media (max-width: 760px) { .site-footer .wrap { grid-template-columns: 1fr; } }

/* Principal & Proof */
:root{--c-primary:#173e35;--c-secondary:#385e52;--c-accent:#a34e2c;--c-soft:#ccd2c6;--c-bg:#f6f4ed;--c-surface:#fffefa;--c-text:#192e28;--c-muted:#53635b;--font-body:Arial,Helvetica,sans-serif;--font-head:Georgia,'Times New Roman',serif;--radius:0;--wrap:1264px}
h1,h2,h3{font-weight:400;letter-spacing:-.035em;text-wrap:balance}h1{font-size:clamp(2.5rem,5vw,4.4rem);line-height:1.08}h2{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.15;margin-block:0 .8em}h3{font-size:1.65rem}main>section{margin-block-start:70px}.wrap{padding-inline:40px;min-width:0}figure{margin:0}figcaption{font-size:.67rem;color:var(--c-muted);margin-block-start:8px}.site-header{position:static;background:var(--c-bg);border-block-start:5px solid var(--c-primary)}.header-inner{min-height:100px}.brand-name{font:600 1.6rem/1.1 var(--font-head);letter-spacing:-.06em}.brand img{width:37px;height:37px}.site-nav ul{gap:22px}.site-nav a{font-size:.78rem;font-weight:600}.edition{display:flex;justify-content:space-between;border-block-end:1px solid var(--c-soft);padding-block:14px;font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;color:var(--c-muted)}.home main{padding-block-start:0}.hero{grid-template-columns:1.03fr 1fr;gap:52px;margin-block-start:40px;padding-block:6px 45px;border-block-end:1px solid var(--c-soft)}.hero h1{font-size:clamp(3rem,5.2vw,4.8rem);white-space:pre-line;max-width:11ch;letter-spacing:-.045em}.hero .lead{font-size:1rem;line-height:1.75;max-width:47ch}.eyebrow{font-size:.65rem;letter-spacing:.13em;margin-block-end:18px}.hero-points{list-style:none;padding:0;font-size:.77rem;line-height:1.95}.hero-points li::before{content:'—';color:var(--c-accent);margin-inline-end:8px}.hero-media{align-self:stretch;display:flex;flex-direction:column}.hero-media img{width:100%;height:100%;min-height:400px;object-fit:cover;aspect-ratio:1.05}.btn,.btn-secondary,button[type=submit]{font-size:.78rem;border-width:1px;min-height:46px;padding:13px 19px}.cta{align-items:center;gap:17px}.cta .btn-secondary{border-color:transparent;border-block-end-color:var(--c-primary);padding-inline:0}.section-kicker{display:block;font:700 .65rem/1.6 var(--font-body);letter-spacing:.13em;text-transform:uppercase;color:var(--c-accent);margin-block-end:10px}.ledger{display:grid;grid-template-columns:.72fr 1fr;gap:56px;padding:40px;background:var(--c-primary);color:var(--c-bg)}.ledger h2{color:inherit;font-size:2.5rem;max-width:12ch}.ledger p{font-size:.9rem;color:#dbe4d7}.ledger .section-kicker{color:#e8b59b}.ledger .fields,.ledger .results dl{grid-template-columns:1fr 1fr}.ledger .field label{color:var(--c-bg)}.ledger .result-row{background:none;border-color:#608174}.ledger dt,.ledger .note{color:#dbe4d7}.ledger dd{color:white}.ledger button[type=submit]{background:#dbe4d7;color:var(--c-primary)}.ledger .btn-secondary{color:var(--c-bg);border-color:#a3b6a7}.ledger .schedule{color:var(--c-bg)}.ledger .schedule table{color:var(--c-text)}.grid.guides{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px}.card{border:0;background:none;min-width:0}.card-media{overflow:hidden;background:#e0e5d9}.card-media img{width:100%;aspect-ratio:1.75;object-fit:cover}.card-body{padding:20px 0 24px;border-block-end:1px solid var(--c-soft)}.card h3{font-size:1.8rem}.card p{font-size:.9rem;color:var(--c-muted)}.card .eyebrow{font-size:.65rem}.card .meta{font-size:.7rem}.cats{grid-template-columns:1fr;gap:0;counter-reset:topics}.cat-card{display:grid;grid-template-columns:220px 1fr;gap:32px;padding-block:24px;border-block-start:1px solid var(--c-soft);counter-increment:topics}.cat-card .card-media img{height:100%;aspect-ratio:1.6}.cat-card .card-body{padding:0;padding-inline-end:80px;position:relative;border:0}.cat-card .card-body::after{content:'0' counter(topics);position:absolute;inset-inline-end:0;inset-block-start:0;font:400 2.8rem/1 var(--font-head);color:#7a8779}.cat-card h3{font-size:2rem}.tools{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.tool-card h3{font-size:1.45rem}.tool-card img{aspect-ratio:1.65}.page-head{padding-block:20px 24px;border-block-end:1px solid var(--c-soft);margin-block-end:36px}.page-head h1{max-width:21ch}.breadcrumb ol{font-size:.72rem;margin-block-end:28px}.intro-split{gap:60px;grid-template-columns:1.1fr 1fr}.intro-split img{aspect-ratio:1.6;object-fit:cover}.article .page-head{max-width:1000px}.article .meta{font-size:.75rem}.cover{max-width:1000px;margin-block:30px 44px}.cover img{max-height:440px;aspect-ratio:2.3;width:100%;object-fit:cover;margin:0}.article-layout{grid-template-columns:230px minmax(0,760px);gap:56px}.toc{top:24px;border:0;border-block-start:3px solid var(--c-primary);padding:18px 0;font-size:.76rem}.toc h2{font:700 .7rem/1.5 var(--font-body);letter-spacing:.1em;text-transform:uppercase}.toc a{color:var(--c-muted)}.toc li{margin-block:7px}.prose{font-size:1.03rem;line-height:1.85;min-width:0;max-width:73ch}.prose>p:first-child{font-size:1.14rem;color:var(--c-primary)}.prose h2{font-size:2rem;margin-block:1.6em .65em}.prose h3{font-size:1.4rem}.prose table{display:block;overflow:auto;max-width:100%;font-size:.85rem}.prose blockquote{margin:24px 0;padding:16px 24px;border-inline-start:3px solid var(--c-accent);background:#e9eadd}.related-tool{max-width:1045px;padding:28px;border:1px solid var(--c-soft);margin-block:45px}.related-tool h2{font-size:1.7rem}.table-wrap{max-width:100%;border-block:1px solid var(--c-soft);margin-block:24px}table{font-size:.86rem}th,td{padding:17px 16px}th{background:#e5e9df;font-size:.75rem}td:first-child{font-weight:600}th .sort:focus-visible{outline:3px solid var(--c-accent);outline-offset:4px}th .sort::after{content:' ↕'}th[aria-sort=ascending] .sort::after{content:' ↑'}th[aria-sort=descending] .sort::after{content:' ↓'}.tool-panel{max-width:1060px;padding:36px}.fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 28px}.field label{font-size:.77rem;line-height:1.5;margin-block-end:8px}.input-unit{border-color:#809184}.input-unit input{font-variant-numeric:tabular-nums;padding:12px 14px;color:var(--c-text)}.unit{font-size:.75rem}.results dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.result-row{padding:14px 0;background:none;border-block-start:1px solid var(--c-soft)}.result-row dt{font-size:.72rem;line-height:1.5}.result-row dd{font:400 clamp(1.55rem,2.6vw,2.35rem)/1.3 var(--font-head);font-variant-numeric:tabular-nums;margin:8px 0;overflow-wrap:anywhere}.result-row:first-child dd{font-weight:700}.note{font-size:.75rem}.tool-error{background:#fff1e9;color:#863b23;border-inline-start:3px solid #a34e2c;padding:12px;font-size:.85rem}.tool-error:empty{display:none}.schedule{font-size:.8rem}.checklist li{padding-block:14px;gap:14px}.checklist label{cursor:pointer}.checklist input{accent-color:var(--c-primary)}.tool h3{font-size:1.55rem}.tool [data-reset]{margin-block-start:25px}.faq{max-width:940px}.faq details{background:none;border:0;border-block-start:1px solid var(--c-soft);padding:18px 0;margin:0}.faq summary{font:400 1.3rem/1.5 var(--font-head)}.faq details>div{padding-block-start:18px;font-size:.95rem;color:var(--c-muted)}.disclosure{border-block-start:1px solid var(--c-soft);padding-block:26px;max-width:86ch;font-size:.78rem}.disclosure h2{font:700 .74rem/1.6 var(--font-body);letter-spacing:.08em;text-transform:uppercase}.link-list li,.search-results li{padding-block:20px}.link-list a,.search-results a{font:400 1.4rem/1.4 var(--font-head)}.link-list p,.search-results p{font-size:.9rem}.site-footer{background:var(--c-primary);color:var(--c-bg);padding-block:56px 30px;font-size:.8rem}.site-footer .wrap{gap:28px 70px;grid-template-columns:1.3fr .8fr 1fr}.site-footer a{color:var(--c-bg)}.footer-brand strong{font:400 1.8rem/1.3 var(--font-head)}.footer-brand p,.footer-note,.copyright{color:#dbe4d7}.footer-note{border-block-start:1px solid #527267;padding-block-start:24px;font-size:.7rem}.copyright{font-family:var(--font-head);font-size:.7rem}[hidden]{display:none!important}
@media(min-width:1100px){.home .guides .guide-card:first-child{grid-column:1/-1;display:grid;grid-template-columns:1.05fr 1fr;gap:40px;padding-block:12px 30px;border-block-end:1px solid var(--c-soft)}.home .guides .guide-card:first-child .card-body{border:0;align-self:center}.home .guides .guide-card:first-child h3{font-size:2.45rem}.home .guides .guide-card:first-child img{height:100%;aspect-ratio:1.65}}
@media(max-width:1100px){.site-nav{width:100%;margin:0}.site-nav ul{justify-content:space-between;gap:10px}.header-inner{gap:8px;padding-block:18px}.hero{gap:30px}.ledger{gap:30px;padding:30px}.ledger h2{font-size:2rem}}
@media(max-width:760px){.wrap{padding-inline:22px}.header-inner{min-height:78px}.brand-name{font-size:1.38rem}.brand img{width:32px;height:32px}.nav-toggle{display:block;font-size:.8rem}.site-nav{display:none}.nav-open .site-nav{display:block}.site-nav ul{display:grid;grid-template-columns:1fr 1fr;gap:5px 18px}.site-nav a{min-height:44px;font-size:.8rem}.edition{font-size:.57rem;letter-spacing:.09em}.edition span:last-child{display:none}.hero{grid-template-columns:1fr;gap:28px;margin-block-start:26px;padding-block-end:34px}.hero h1{font-size:clamp(3rem,11.7vw,4.4rem);max-width:12ch}.hero .eyebrow{font-size:.6rem;margin-block-end:16px}.hero-media img{height:auto;min-height:0;aspect-ratio:4/3}.hero .cta{gap:12px}.hero-points{font-size:.73rem}.ledger{grid-template-columns:1fr;padding:26px;gap:18px}.ledger h2{max-width:18ch;font-size:2.2rem}.ledger .fields{grid-template-columns:1fr 1fr;gap:15px}.ledger .field label{font-size:.68rem}.ledger .unit{font-size:.65rem;padding-inline:7px}.ledger .input-unit input{padding:10px}.ledger .results dl{grid-template-columns:1fr}.ledger .result-row{padding-block:8px}.ledger .result-row dd{margin-block:5px}.ledger .result-row:first-child dd{font-size:2.5rem}.grid.guides,.tools{grid-template-columns:1fr;gap:24px}.cat-card{grid-template-columns:105px 1fr;gap:18px;padding-block:20px}.cat-card .card-media img{aspect-ratio:1;height:auto}.cat-card h3{font-size:1.5rem}.cat-card .card-body{padding-inline-end:0}.cat-card .card-body::after{display:none}.cat-card p{font-size:.79rem}.card h3{font-size:1.7rem}.tool-card{display:grid;grid-template-columns:100px 1fr;gap:20px}.tool-card .card-media img{aspect-ratio:1;height:100%}.tool-card .card-body{padding-block:0 16px}.tool-card h3{font-size:1.45rem}.tool-card p{font-size:.8rem}main>section{margin-block-start:52px}.page-head h1{font-size:2.55rem}.page-head{padding-block:8px 18px;margin-block-end:26px}.breadcrumb ol{font-size:.68rem;margin-block-end:22px}.intro-split,.article-layout{grid-template-columns:1fr;gap:24px}.toc{position:static}.cover{margin-block:20px 30px}.cover img{aspect-ratio:4/3;max-height:none}.prose{font-size:1rem;line-height:1.8}.prose h2{font-size:1.75rem}.prose h3{font-size:1.3rem}.prose th,.prose td{padding:10px;min-width:105px}.table-wrap table{min-width:620px}.tool-panel{padding:22px}.fields,.results dl{grid-template-columns:1fr}.result-row dd{font-size:2rem}.tool-panel .actions button{width:100%}.site-footer .wrap{grid-template-columns:1fr 1fr;gap:28px 20px}.footer-brand{grid-column:1/-1}.site-footer{padding-block:35px 24px}.site-footer a{display:inline-block;padding-block:3px}.faq summary{font-size:1.16rem}.related-tool{padding:22px}h2{font-size:2rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{.site-header,.site-footer,.toc,.actions{display:none}.article-layout{display:block}.prose{max-width:100%}}
/* Keep grid children shrinkable on narrow viewports. */
.ledger>div,.ledger .field{min-width:0}.ledger .fields{grid-template-columns:repeat(2,minmax(0,1fr))}.hero h1{max-width:none}.ledger .tool-error{color:#863b23}.ledger h2{max-width:100%}
@media(max-width:440px){.ledger .fields{grid-template-columns:minmax(0,1fr)}}
.field,.tool,.fields,.tool-panel{min-width:0}.input-unit input{width:100%}
@media(max-width:760px){.fields,.results dl{grid-template-columns:minmax(0,1fr)}}
