/* Center Console Forum: nautical chart. Written for this forum only. */
:root{
  --sea:#F2F7F6;        /* page, like the paper of a chart */
  --paper:#FFFFFF;
  --shoal:#DDEBF1;      /* the pale blue a chart uses inside the 30 ft line */
  --shoal-2:#EAF3F6;
  --gulf:#0B5A8C;
  --gulf-dk:#08466D;
  --coral:#E8664A;      /* marks and rules only, never small text */
  --coral-ink:#A9402A;  /* 5.6:1 on white, for text */
  --deep:#102A3A;
  --muted:#46606F;      /* 6.4:1 on --sea */
  --rule:#C5D9D8;
  --rule-dk:#9FBFC4;
  --radius:3px;
  --head:"Lexend",system-ui,sans-serif;
  --body:"Merriweather Sans",system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--sea);color:var(--deep);font:400 16px/1.68 var(--body)}
img{max-width:100%;height:auto}
a{color:var(--gulf);text-underline-offset:2px}
a:hover{color:var(--gulf-dk)}
:focus-visible{outline:3px solid var(--coral);outline-offset:2px;border-radius:2px}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}

/* ---------- header: chart margin with soundings and a contour ---------- */
.chart-head{position:relative;background:var(--paper);border-bottom:1px solid var(--rule-dk);overflow:hidden}
.chart-head>.soundings{position:absolute;top:0;right:0;width:52%;height:100%;pointer-events:none}
.soundings text{font:italic 400 13px var(--body);fill:var(--deep);opacity:.2}
.soundings .contour{fill:none;stroke:var(--gulf);stroke-width:1.2;opacity:.28}
.soundings .contour-30{fill:none;stroke:var(--gulf);stroke-width:1;stroke-dasharray:7 5;opacity:.22}
.soundings .shallows{fill:var(--shoal);opacity:.55}
.head-in{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:10px 28px;padding-top:18px;padding-bottom:16px}
.brand{display:inline-block;line-height:0}
.brand>img{height:44px;width:auto}
.head-note{margin:0;font:500 14px/1.4 var(--head);color:var(--muted);max-width:25em}
.head-acct{margin:0 0 0 auto;font-size:13px;color:var(--muted);background:var(--paper);padding:2px 8px;border-radius:var(--radius)}
.head-acct>a{font-weight:700}

/* ---------- nav ---------- */
.chartnav{background:var(--gulf);color:#fff}
.chartnav-in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:0 20px}
.chartnav ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap}
.chartnav a{display:block;padding:11px 12px;color:#fff;text-decoration:none;font:500 14px/1.3 var(--head)}
.chartnav a:hover{background:var(--gulf-dk);color:#fff}
.chartnav a[aria-current="page"]{box-shadow:inset 0 -3px 0 var(--coral)}
.chartnav .site-links a{color:#DCEBF4;font-weight:400}

/* ---------- page ---------- */
main{padding:26px 0 40px}
.crumbs{font-size:13px;color:var(--muted);margin-bottom:12px}
.crumbs>span{margin:0 7px;color:var(--rule-dk)}
h1,h2,h3{font-family:var(--head);font-weight:600;line-height:1.25;color:var(--deep)}
.page-title{font-size:clamp(26px,4vw,36px);margin:0 0 8px;letter-spacing:-.01em}
.page-note{margin:0 0 22px;color:var(--muted);max-width:44em}

.tally{display:flex;flex-wrap:wrap;gap:0;margin:0 0 26px;border:1px solid var(--rule-dk);background:var(--paper);width:max-content;max-width:100%}
.tally>div{padding:10px 20px;border-right:1px solid var(--rule)}
.tally>div:last-child{border-right:0}
.tally b{display:block;font:600 24px/1.1 var(--head);color:var(--gulf);min-width:3ch;font-variant-numeric:tabular-nums}
.tally>div>span{font-size:13px;color:var(--muted)}

.block{margin:0 0 28px}
.block-h{font-size:19px;margin:0 0 10px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.block-h>small{font:400 13px var(--body);color:var(--muted)}

/* boards: chart panels, the shoal tint is the board's water */
.boards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.boards>li{background:var(--paper);border:1px solid var(--rule-dk);border-top:4px solid var(--gulf);padding:16px 16px 14px;display:flex;flex-direction:column}
.boards .b-name{font:600 18px/1.3 var(--head);text-decoration:none}
.boards .b-name:hover{text-decoration:underline}
.boards .b-desc{margin:6px 0 12px;font-size:14px;color:var(--muted);flex:1}
.boards .b-nums{display:flex;gap:16px;font-size:13px;color:var(--muted);border-top:1px dashed var(--rule-dk);padding-top:8px}
.boards .b-nums>span>b{color:var(--deep);font-variant-numeric:tabular-nums}

/* thread rows: each row is a leg, with its starter's home port as a fix */
.legs{list-style:none;margin:0;padding:0;background:var(--paper);border:1px solid var(--rule-dk)}
.leg{display:grid;grid-template-columns:1fr auto;gap:8px 24px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--rule)}
.leg:last-child{border-bottom:0}
.leg-title{font:500 16px/1.4 var(--head);text-decoration:none;color:var(--deep)}
.leg-title:hover{color:var(--gulf);text-decoration:underline}
.leg-fix{margin:4px 0 0;font-size:13px;color:var(--muted)}
.leg-fix>.fix{color:var(--gulf);font-variant-numeric:tabular-nums;margin-right:8px;white-space:nowrap}
.leg-fix>b{color:var(--deep);font-weight:700}
.pin{display:inline-block;margin-right:8px;padding:0 7px;font:600 11px/20px var(--head);color:var(--coral-ink);border:1px solid var(--coral);border-radius:var(--radius);vertical-align:2px}
.leg-log{display:flex;gap:18px;margin:0;font-size:13px}
.leg-log>div{min-width:52px}
.leg-log dt{color:var(--muted);font-size:12px}
.leg-log dd{margin:0;font-variant-numeric:tabular-nums;color:var(--deep);white-space:nowrap}
.leg-log .by{display:block;color:var(--muted);font-size:12px}

.note-box{border-left:4px solid var(--coral);background:var(--shoal-2);padding:12px 16px;font-size:14px;margin:8px 0 0}

/* ---------- thread page ---------- */
.thread-head{margin:0 0 20px;padding-bottom:14px;border-bottom:2px solid var(--deep)}
.thread-head>h1{font-size:clamp(22px,3.4vw,30px);margin:0 0 8px}
.thread-meta{margin:0;font-size:13px;color:var(--muted)}
.thread-meta>.fix{color:var(--gulf);font-variant-numeric:tabular-nums;margin-right:10px}
.thread-meta>span+span::before{content:"/";margin:0 8px;color:var(--rule-dk)}

.posts{display:flex;flex-direction:column;gap:16px}
.post{display:grid;grid-template-columns:200px 1fr;background:var(--paper);border:1px solid var(--rule-dk)}
.post.is-op{border-left:4px solid var(--gulf)}
.helm{background:var(--shoal-2);border-right:1px solid var(--rule);padding:14px 14px 16px;font-size:13px;line-height:1.5}
.helm>.author-name{display:block;font:600 15px/1.3 var(--head);color:var(--deep);word-break:break-word}
.op-pill{display:inline-block;margin-left:6px;padding:0 6px;font:600 10px/17px var(--head);color:#fff;background:var(--gulf);border-radius:var(--radius);vertical-align:2px}
.helm>.rank{display:block;margin:2px 0 10px;color:var(--gulf);font-weight:700;font-size:12px}
.helm>.rank-mod{color:var(--coral-ink)}
.helm>.author-loc,.helm>.author-stats{display:block;color:var(--muted)}
.helm>.runs{display:block;margin-top:10px;padding-top:8px;border-top:1px dashed var(--rule-dk);color:var(--deep)}
.helm>.runs>i{font-style:normal;color:var(--muted);display:block;font-size:11px}
.post-body{padding:12px 20px 10px;min-width:0;display:flex;flex-direction:column}
.post-when{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--rule);padding-bottom:6px;margin-bottom:6px}
.post-when>a{color:var(--muted);text-decoration:none}
.post-content{flex:1;max-width:46em}
.post-content p{margin:10px 0}
.post-content ul,.post-content ol{padding-left:22px;margin:10px 0}
.post-content li{margin:4px 0}
.post-content blockquote{margin:12px 0;padding:8px 14px;border-left:3px solid var(--rule-dk);background:var(--shoal-2);color:var(--muted);font-size:14px}
.post-content blockquote>cite{display:block;font-style:normal;font-weight:700;color:var(--deep);font-size:12px;margin-bottom:2px}
.post-content table{border-collapse:collapse;font-size:14px;margin:12px 0;width:100%;max-width:34em}
.post-content th,.post-content td{border:1px solid var(--rule);padding:5px 8px;text-align:left;vertical-align:top}
.post-content th{background:var(--shoal-2);font-weight:700}
.post-content td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.table-scroll{overflow-x:auto}
.post-footer{display:flex;gap:6px;padding-top:8px;margin-top:8px;border-top:1px solid var(--rule)}
.post-footer>button,.post-footer>a{font:500 12px/1 var(--head);color:var(--gulf);background:none;border:1px solid var(--rule);border-radius:var(--radius);padding:6px 10px;cursor:pointer;text-decoration:none}
.post-footer>button:hover,.post-footer>a:hover{border-color:var(--gulf)}

.reply-line{margin:20px 0 0;font-size:14px;color:var(--muted)}
.after{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-top:28px}
.after>section{background:var(--paper);border:1px solid var(--rule-dk);padding:14px 16px}
.after h2{font-size:16px;margin:0 0 8px}
.readlist{list-style:none;margin:0;padding:0}
.readlist>li{padding:6px 0;border-bottom:1px dashed var(--rule)}
.readlist>li:last-child{border-bottom:0}
.readlist>li>span{display:block;font-size:12px;color:var(--muted)}
.tags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.tags>li{font-size:12px;padding:2px 8px;border:1px solid var(--rule-dk);border-radius:var(--radius);background:var(--shoal-2)}

/* ---------- prose pages ---------- */
.prose{max-width:44em;background:var(--paper);border:1px solid var(--rule-dk);padding:22px 26px}
.prose>h1{font-size:30px;margin:0 0 12px}
.prose>h2{font-size:19px;margin:26px 0 6px}
.prose>.lede{font-size:17px}
.prose li{margin:6px 0}

/* ---------- footer: the chart's title block ---------- */
.titleblock{background:var(--deep);color:#D5E3EA;padding:28px 0 32px;font-size:14px}
.titleblock a{color:#fff}
.tb-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:24px}
.tb-brand>.brand>img{height:30px;width:auto;background:var(--sea);padding:3px 6px;border-radius:var(--radius)}
.tb-brand>p{margin:10px 0 0}
.tb-nav{display:flex;flex-direction:column;gap:4px}
.tb-ranks{list-style:none;margin:0;padding:0}
.tb-ranks>li{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid #2A4657;padding:3px 0}
.tb-ranks>li>b{font-weight:700;color:#fff}
.tb-scale{grid-column:1/-1;margin:6px 0 0;padding-top:12px;border-top:1px solid #2A4657;font-style:italic;color:#A9C1CD;font-size:13px}

/* ---------- small screens ---------- */
@media (max-width:860px){
  .boards{grid-template-columns:1fr}
  .after{grid-template-columns:1fr}
  .tb-grid{grid-template-columns:1fr}
}
@media (max-width:680px){
  .wrap{padding:0 14px}
  .head-acct{margin-left:0;padding:0;background:none}
  .chart-head>.soundings{width:100%;opacity:.6}
  .brand>img{height:38px}
  .leg{grid-template-columns:1fr}
  .leg-log{flex-wrap:wrap}
  .post{grid-template-columns:1fr}
  .helm{border-right:0;border-bottom:1px solid var(--rule);display:flex;flex-wrap:wrap;gap:2px 12px;align-items:baseline;padding:10px 14px}
  .helm>.author-name{display:inline}
  .helm>.rank{display:inline;margin:0}
  .helm>.author-loc,.helm>.author-stats{display:inline}
  .helm>.runs{flex-basis:100%;margin-top:4px;padding-top:4px}
  .helm>.runs>i{display:inline;margin-right:6px}
  .post-body{padding:10px 14px}
  .prose{padding:18px 16px}
  .chartnav a{padding:9px 9px}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important;scroll-behavior:auto!important}
}
/* Merriweather Sans renders "_" as a doubled glyph; set usernames in Lexend */
.leg-fix b,.thread-meta b,.leg-log dd{font-family:var(--head);font-weight:500}
