/* Shared campaign theme: applies equally to pages and framed tools. */
:root { --voyage-sea:#192e29; --voyage-ink:#30291e; --voyage-paper:#ecdfbc; --voyage-brass:#b4935a; --voyage-rule:#b59b69; }
html { background:#172722; }
body { margin:0; min-width:0; color:var(--voyage-ink); font-family:'Quattrocento',Georgia,serif; line-height:1.6; background:radial-gradient(ellipse at top,#3c4634aa,#102622ed),url('/assets/img/login/gov_splash_01.png') center/cover fixed; }
*,*::before,*::after { box-sizing:border-box; }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea { -webkit-tap-highlight-color:transparent; }
:where(button,.voyage-button,.button-link,.btn):focus-visible { outline:2px solid #d4b16a; outline-offset:3px; }
.voyage-button,.button-link,.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:9px 16px; border:1px solid #a68c55; border-radius:3px; background:#2d493b; color:#f4e5c4; text-decoration:none; cursor:pointer; line-height:1.4; }
.voyage-button:hover,.button-link:hover,.btn:hover { background:#466048; color:#fff4d4; }
.voyage-button-secondary { background:#e4d2a6; color:#344032; }
.voyage-eyebrow { margin:0 0 8px; color:#79633d; font:11px/1.5 Georgia,serif; letter-spacing:.18em; }
.folio-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
body:has(>.page-container) { background:radial-gradient(ellipse at top,#3b4833b3,#13271ee6),url('/assets/img/login/gov_splash_01.png') center/cover fixed; }
body:has(>.page-container)>.page-container { padding:76px clamp(16px,4vw,56px) 48px; }
body:has(>.page-container) .content-container { box-sizing:border-box; width:100%; max-width:1180px; margin:auto; padding:clamp(22px,4vw,52px); background:radial-gradient(ellipse at top left,#f7edcf,#e3d0a5); border:3px double var(--voyage-brass); border-radius:4px; box-shadow:0 16px 55px #07161066; }
body:has(>.page-container) h1 { margin:0 0 12px; color:#263e31; font:clamp(30px,4vw,46px)/1.15 Georgia,serif; text-align:left; }
body:has(>.page-container) h2 { color:#354833; font-family:Georgia,serif; }
body:has(>.page-container) h3 { color:#354833; }
body:has(>.page-container) .section,body:has(>.page-container) .weather-section { border-top:1px solid #b9a477; padding-top:20px; margin-top:24px; }
body:has(>.page-container) .kbd { border-color:#af9566; background:#eee0bb; color:#394632; }
.folio-heading { padding-bottom:24px; margin-bottom:26px; border-bottom:1px solid #ac9058; }
.folio-heading p:last-child { color:#6e6048; margin-bottom:0; }
.shelf-heading { font:19px Georgia,serif; letter-spacing:.04em; border-bottom:1px solid #b69a64; padding-bottom:12px; margin:24px 0; }
.document-feature { display:grid; grid-template-columns:minmax(180px,290px) minmax(0,1fr); align-items:center; gap:clamp(24px,4vw,58px); padding:10px 0 28px; }
.document-cover { display:block; position:relative; padding:0; border-radius:2px; outline-offset:8px; text-decoration:none; }
.document-cover img { display:block; width:100%; height:auto; aspect-ratio:612/792; object-fit:contain; border-radius:2px; box-shadow:7px 10px 17px #33221255; transition:transform .22s ease,filter .22s ease; }
.document-cover:hover img,.document-cover:focus-visible img { transform:translateY(-7px) rotate(-2deg); filter:drop-shadow(0 0 12px #bda05399); }
.cover-prompt { position:absolute; bottom:14px; left:50%; transform:translateX(-50%); width:max-content; padding:5px 12px; background:#233c31; color:#f2dfb4; border:1px solid #b4955f; opacity:0; transition:opacity .2s; pointer-events:none; }
.document-cover:hover .cover-prompt,.document-cover:focus-visible .cover-prompt { opacity:1; }
.document-description h2 { font:clamp(24px,3vw,38px)/1.15 Georgia,serif; margin:12px 0 18px; }
.document-subtitle { font-style:italic; color:#706044; }
.document-description p { margin:14px 0; }
.document-meta { font-size:13px; color:#756346; }
.reference-shelf { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:20px; }
.reference-card { border:1px solid #b19662; background:#fff8e333; color:#4c432d; padding:24px; border-radius:3px; text-decoration:none; transition:background .2s,border-color .2s; }
.reference-card h3 { font:24px Georgia,serif; margin:12px 0; }
.reference-card:hover { background:#fff8e388; border-color:#866c3c; }
.reference-card>span:last-child { display:block; margin-top:18px; font-size:13px; color:#37543c; }
.document-reader-page { display:flex; flex-direction:column; height:100dvh; overflow:hidden; }
.reader-toolbar { flex-shrink:0; display:flex; align-items:center; justify-content:space-between; gap:18px; padding:20px 24px 20px 80px; background:#20382c; border-bottom:2px solid #ae925d; color:#ebdab5; }
.reader-toolbar h1 { margin:3px 0 0; font:22px Georgia,serif; color:#efdfba; }
.reader-toolbar small { font-size:10px; letter-spacing:.15em; }
.reader-canvas { flex:1; min-height:0; padding:16px; }
.reader-canvas object { display:block; width:100%; height:100%; background:#d2bf91; border:1px solid #ac8e51; }
.pdf-fallback { padding:28px; text-align:center; overflow:auto; height:100%; }
.pdf-fallback img { width:min(240px,100%); }
.voyage-framed .reader-toolbar { padding-left:24px; }
/* Account, campaign, trade workbench, calendar and editor pages. */
.selector-page { padding:76px 24px 32px; }
.selector-shell,.picker-card,.folio-paper { background:radial-gradient(ellipse at top,#f5eacb,#e1cca2); border:3px double #af905b; border-radius:4px; box-shadow:0 14px 45px #081b1666; }
.selector-header { border-bottom:1px solid #b49a68; padding-bottom:24px; }
.selector-shell h1,.picker-card h1 { color:#304934; }
.campaign-card,.dispatch-editor-body .card { background:#f8edcf; border:1px solid #b09765; border-radius:4px; }
.selector-shell input,.selector-shell select,.dispatch-editor-body input,.dispatch-editor-body select,.dispatch-editor-body textarea { border-color:#ac9365; background:#fff6df; color:#30291e; accent-color:#375440; }
.selector-shell button,.dispatch-editor-body button { border:1px solid #9b8353; background:#344f3e; color:#f6e6c2; border-radius:3px; padding:8px 14px; }
body:has(>.login-form-container) { overflow:auto; }
body>.login-form-container { position:relative; top:auto; left:auto; transform:none; width:min(520px,calc(100% - 40px)); margin:80px auto 32px; padding:28px; background:#eaddba; border:3px double #a88850; border-radius:4px; }
body>.login-form-container form { padding:0; background:none; border:0; }
body>.login-form-container h2 { color:#334b34; }
body>.login-form-container input { background:#fff5dc; border:1px solid #af9669; }
body>.login-form-container button { background:#344f3c; color:#f9edcc; border:1px solid #ac915a; }
#calendar { margin:76px auto 28px; width:min(960px,calc(100% - 40px)); padding:clamp(16px,4vw,34px); background:#eadbb7; border:3px double #ad8e54; border-radius:4px; color:#344b36; }
body:has(>#calendar) { overflow:auto; }
.calendar-controls { flex-wrap:wrap; padding:14px; background:#253f30; color:#f1dfb4; border:1px solid #a88a51; border-radius:3px; }
.calendar-controls button { cursor:pointer; padding:6px 14px; background:#3b5540; color:#f6e9c6; border:1px solid #b39a60; border-radius:3px; }
.calendar-cell { background:#f7edce; border-color:#b59b66; padding:20px 8px; color:#3d442e; }
.calendar-cell.today { background:#37543e; color:#fff0c9; box-shadow:inset 0 0 0 2px #b9a06a; }
.voyage-framed #calendar { margin:20px auto; }
.dispatch-editor-body .de-header { padding:18px 24px 18px 80px; background:#263e30; border-bottom:2px solid #b1935b; }
.dispatch-editor-body .de-header h1 { color:#eddcb5; }
.dispatch-editor-body .rich-editor,.dispatch-editor-body [contenteditable] { background:#fff6dc; border-color:#b89f6d; }
#fts-page { padding-top:76px; }
.voyage-framed body:has(>.page-container)>.page-container { padding:20px; }
.voyage-framed body:has(>.page-container) .content-container { box-shadow:none; }
/* Chart room: retain native chart pixels and align the location markers. */
#map-root { height:100dvh; background:radial-gradient(ellipse at center,#46533a66,#10251de8),url('/assets/img/login/gov_splash_01.png') center/cover; }
.chart-heading { position:fixed; top:20px; left:82px; right:28px; z-index:100; display:flex; align-items:center; justify-content:space-between; gap:16px; color:#ecdcba; }
.chart-heading h1 { margin:0; font:clamp(22px,2.4vw,34px) Georgia,serif; color:#ecdcba; }
.chart-heading .voyage-eyebrow { color:#b8a579; margin-bottom:4px; }
.chart-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.chart-actions button,.chart-actions a { padding:8px 12px; background:#263e2f; color:#ecdcb8; border:1px solid #ac915c; border-radius:3px; cursor:pointer; text-decoration:none; font-size:14px; }
.chart-actions button:hover,.chart-actions a:hover { background:#456046; }
#map-visual-wrapper { padding-top:54px; padding-bottom:30px; }
#map-border { padding:8px; border:3px double #ad8e50; border-radius:4px; background:linear-gradient(130deg,#516043,#192c23); box-shadow:0 20px 65px #0009,inset 0 0 0 1px #d0ad6744; }
#map-inner { max-width:calc(100vw - 58px); width:auto; height:auto; overflow:auto; overscroll-behavior:contain; scrollbar-color:#917e52 #263a2a; scrollbar-width:thin; }
.chart-surface { position:relative; }
#main-map { width:100%; max-width:none; height:auto; display:block; image-rendering:auto; }
#clouds-layer { max-width:none; }
.chart-caption { position:absolute; left:10px; bottom:-40px; margin:0; font-size:12px; color:#d4c19a; letter-spacing:.06em; }
#audio-controls { bottom:-44px; right:10px; opacity:1; padding:4px 8px; border:1px solid #8f7e50; background:#1e3529; border-radius:3px; gap:8px; }
#audio-controls button { color:#f0deb4; background:#334c36; border-color:#ae925b; }
#audio-controls input[type=range] { accent-color:#c4a266; }
#info-panel { border:3px double #b39960; background:#eadbb4; border-radius:4px; }
#info-header { background:#2a4432; color:#efdfb6; }
#splash-border { border:3px double #ac8e54; padding:6px; background:#263c2c; box-shadow:0 18px 70px #0009; border-radius:4px; }
#splash-image { max-height:88dvh; width:auto; max-width:90vw; }
@media(max-width:650px) { .document-feature { grid-template-columns:1fr; } .document-cover { width:min(260px,90%); margin:auto; } .reader-toolbar { padding:74px 14px 14px; flex-wrap:wrap; gap:12px; } .voyage-framed .reader-toolbar { padding:14px; } .reader-toolbar>div { order:-1; width:100%; } .chart-heading { top:14px; left:76px; right:14px; flex-wrap:wrap; } .chart-heading h1 { font-size:22px; } .chart-actions { gap:6px; } .chart-actions button,.chart-actions a { padding:6px 10px; font-size:12px; } .chart-caption { display:none; } #map-visual-wrapper { padding-top:90px; } .campaign-grid { grid-template-columns:1fr; } .selector-page { padding-inline:12px; } .selector-shell { padding:20px; } }
@media(prefers-reduced-motion:reduce) { .document-cover img,.cover-prompt,.reference-card { transition:none; } .document-cover:hover img,.document-cover:focus-visible img { transform:none; } }
.reader-pagination { flex-shrink:0; display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:12px; padding:12px 16px; color:#dfd0aa; background:#203529; border-bottom:1px solid #9d8554; }
.reader-pagination select { padding:6px; color:#2c3929; background:#eadab2; border:1px solid #b29a64; border-radius:3px; }
.reader-pagination button:disabled { opacity:.45; cursor:default; }
.reader-pagination #reader-status { font-size:12px; }
.reader-canvas { overflow:auto; overscroll-behavior:contain; background:#14271f88; }
#reader-image { display:block; width:min(100%,1000px); height:auto; margin:0 auto; box-shadow:0 8px 32px #0006; }
.reader-canvas.enlarged #reader-image { width:1600px; max-width:none; margin:0; }
.reader-noscript { color:#f0deb4; text-align:center; }
.reader-text { width:min(100%,1000px); margin:20px auto; background:#f1e5c7; border:1px solid #b89b64; padding:16px 22px; color:#30291e; }
.reader-text summary { cursor:pointer; color:#35503b; }
#reader-text-content { white-space:pre-wrap; line-height:1.8; margin-top:18px; }
.chart-surface { overflow:hidden; }
.voyage-cabinet-body .voyage-brand { padding-bottom:12px; margin-bottom:12px; }
.voyage-account:has(strong)>small { display:none; }
.voyage-account strong { font-size:23px; line-height:1.3; }
.voyage-account-links { margin:6px 0; }
.voyage-private { padding-top:24px; row-gap:20px; }
.map-room-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:24px;margin:28px 0}
.map-room-card{display:flex;flex-direction:column;overflow:hidden;color:inherit!important;text-decoration:none!important;border:1px solid #94713d;border-radius:8px;background:linear-gradient(135deg,#243c3b,#102526);box-shadow:0 8px 22px #0005;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.map-room-card>img{width:100%;height:190px;object-fit:cover;border-bottom:1px solid #94713d}
.map-room-card>div{padding:22px;display:flex;flex:1;flex-direction:column}
body:has(>.page-container) .map-room-card h2{margin:8px 0;color:#edcf8d}
.map-room-card p{color:#d6d2bc;line-height:1.6}
.map-room-open{margin-top:auto;padding-top:16px;color:#edcf8d;font-weight:bold}
.map-room-card .folio-eyebrow{color:#c5b58c;font-size:11px;letter-spacing:.14em}
.map-room-card:hover,.map-room-card:focus-visible{transform:translateY(-4px);border-color:#e3bd71;box-shadow:0 12px 28px #0007,0 0 16px #c49a4433;outline:2px solid #e3bd71;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.map-room-card{transition:none}.map-room-card:hover,.map-room-card:focus-visible{transform:none}}
