/* Wandoras Planner: one application system. Outfit is licensed under OFL 1.1. */
:root {
  --ink:#182e2d; --teal:#174d4b; --cream:#f7f8f4; --accent:#e7ce56;
  --line:#e2e7e1; --muted:#65716b; --surface:#fff; --soft:#f0f3ee;
  --danger:#963f35; --ring:#31726e; --header-height:72px;
  --radius:10px; --shadow:0 8px 28px rgb(24 46 45 / 5%);
  --font-primary:"Outfit",Arial,sans-serif;
  color-scheme:light; font-family:var(--font-primary); font-synthesis:none;
}
*,*::before,*::after { box-sizing:border-box; }
html { scroll-padding-top:calc(var(--header-height) + 20px); }
body { margin:0; background:var(--cream); color:var(--ink); font:400 15px/1.55 var(--font-primary); letter-spacing:normal; }
body,input,button,select,textarea { -webkit-font-smoothing:antialiased; }
button,input,select,textarea { font:inherit; letter-spacing:inherit; }
button { cursor:pointer; color:inherit; }
button:disabled { cursor:default; opacity:.45; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
svg { flex-shrink:0; }
h1,h2,h3,h4,h5,h6,p,figure,dl { margin:0; }
h1,h2,h3,h4,h5,h6 { font-family:var(--font-primary); font-weight:600; line-height:1.2; letter-spacing:-.035em; overflow-wrap:break-word; }
h1 { font-size:32px; font-weight:700; }
h2 { font-size:24px; }
h3 { font-size:18px; }
h4 { font-size:16px; }
h5,h6 { font-size:14px; }
strong,b { font-weight:600; }
small { font-size:12px; line-height:1.5; }
[hidden] { display:none!important; }
:where(button,a,input,select,textarea,summary,[tabindex]):focus-visible { outline:2px solid var(--ring); outline-offset:4px; }
::selection { background:#dae8de; color:var(--ink); }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; top:12px; left:12px; padding:12px 18px; background:var(--ink); color:white; border-radius:8px; z-index:100; transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
.icon { display:inline-block; width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; vertical-align:middle; }
.row { display:flex; align-items:center; gap:12px; min-width:0; }
.between { justify-content:space-between; }
.stack { display:grid; gap:16px; }
.wide { width:100%; }
.muted,.subtext { color:var(--muted); }
.subtext { font-size:13px; line-height:1.55; }
.eyebrow,.section-kicker { font-size:11px; font-weight:500; line-height:1.5; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.section-title { font-size:25px; letter-spacing:-.035em; }
.chapter { display:none; }
.badge { display:inline-flex; align-items:center; gap:5px; padding:4px 8px; border-radius:5px; background:var(--soft); color:var(--muted); font-size:11px; font-weight:500; line-height:1.35; }
.badge.gold { background:#f4efdb; color:#6d6031; }
.badge.light { background:rgb(255 255 255 / 14%); color:white; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:40px; padding:10px 15px; border:1px solid var(--line); border-radius:8px; background:white; color:var(--ink); font-size:13px; line-height:1.35; font-weight:600; text-align:center; transition:background-color .14s,border-color .14s; }
.btn:hover:not(:disabled) { background:#f0f4ee; border-color:#c6d3c9; }
.btn.primary { background:var(--teal); border-color:var(--teal); color:white; }
.btn.primary:hover:not(:disabled) { background:#103c3a; border-color:#103c3a; }
.btn.secondary { background:#f1f5ef; border-color:transparent; color:var(--teal); }
.btn.secondary:hover:not(:disabled) { background:#e6eee5; border-color:transparent; }
.btn.small { min-height:34px; padding:7px 10px; font-size:12px; }
.icon-btn { display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; padding:8px; border:1px solid transparent; border-radius:7px; background:transparent; color:var(--muted); flex-shrink:0; }
.icon-btn:hover:not(:disabled) { background:var(--soft); color:var(--ink); }
.link-btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; min-height:34px; padding:5px 3px; border:0; border-radius:5px; background:transparent; color:var(--teal); font-size:13px; line-height:1.4; font-weight:600; text-align:left; }
.link-btn:hover:not(:disabled) { color:#0c3533; text-decoration:underline; text-underline-offset:3px; }
label,legend { display:block; margin:0 0 7px; color:var(--ink); font-size:12px; font-weight:500; line-height:1.5; }
.field { min-width:0; }
.field+.field { margin-top:15px; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; margin-bottom:15px; }
.form-grid>.field { margin:0; }
input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea { width:100%; min-width:0; max-width:100%; min-height:42px; padding:10px 12px; color:var(--ink); border:1px solid #d8dfd7; border-radius:7px; background:white; font-size:14px; font-weight:500; line-height:1.4; transition:border-color .14s,box-shadow .14s; }
textarea { display:block; resize:vertical; min-height:86px; }
input::placeholder,textarea::placeholder { color:#849087; opacity:1; }
input:not([type=checkbox]):not([type=radio]):focus,select:focus,textarea:focus { border-color:var(--ring); box-shadow:0 0 0 3px rgb(49 114 110 / 8%); }
input[type=checkbox],input[type=radio] { width:16px; height:16px; margin:0; accent-color:var(--teal); flex-shrink:0; }
input[type=date],input[type=time],input[type=datetime-local] { appearance:auto; }
details { min-width:0; }
summary { cursor:pointer; font-size:12px; font-weight:500; line-height:1.5; color:var(--ink); }
details>summary { min-height:34px; padding:8px 0; }
details p { color:var(--muted); font-size:13px; line-height:1.6; }
.info-box,.warning-box,.error,.error-box,.add-error { display:flex; align-items:flex-start; gap:9px; padding:12px 14px; border-radius:7px; background:#eef4ec; color:#38594c; font-size:12px; line-height:1.6; overflow-wrap:anywhere; }
.info-box>.icon,.warning-box>.icon { margin-top:2px; width:16px; height:16px; }
.warning-box { background:#faf3df; color:#6b592b; margin:12px 0; }
.error,.error-box,.add-error { background:#fcf0ee; color:var(--danger); }
.add-error { display:grid; gap:8px; }
.error:not(:empty) { margin:12px 0; }
.global-header { position:sticky; top:0; z-index:30; display:flex; align-items:center; gap:28px; min-height:var(--header-height); padding:0 max(24px,calc((100vw - 1320px)/2)); background:rgb(247 248 244 / 97%); border-bottom:1px solid var(--line); }
.wordmark { font-family:var(--font-wordmark,"Geist",Arial,sans-serif); display:inline-block; flex-shrink:0; font-size:32px; line-height:1; font-weight:800; letter-spacing:-.08em; }
.wordmark-dot { color:#d8b62c; }
.global-nav { display:flex; align-items:center; gap:24px; margin-left:auto; }
.global-nav a { display:inline-flex; align-items:center; min-height:44px; font-size:13px; font-weight:500; white-space:nowrap; color:#53665d; }
.global-nav a:hover { color:var(--teal); }
.header-btn { flex-shrink:0; min-height:38px; padding:9px 14px; border:1px solid #d3dcd2; border-radius:7px; background:transparent; color:var(--ink); font-size:13px; font-weight:500; }
.header-btn:hover { background:#edf2e9; }
.menu-toggle { display:none; }
.mobile-menu { display:none; }
.atlas-strip { display:none; }
#main { min-width:0; min-height:calc(100dvh - var(--header-height)); }
#toast { position:fixed; bottom:22px; left:50%; z-index:80; max-width:calc(100vw - 32px); padding:12px 18px; border-radius:9px; background:var(--ink); color:white; box-shadow:var(--shadow); font-size:13px; line-height:1.5; opacity:0; pointer-events:none; transform:translate(-50%,8px); transition:opacity .15s,transform .15s; }
#toast.show { opacity:1; transform:translate(-50%,0); }
#print-summary { display:none; }
@media(max-width:1120px) {
 .global-header { gap:18px; padding-inline:24px; }
 .global-nav { gap:15px; }
 .global-nav a { font-size:12px; }
}
@media(max-width:980px) {
 :root { --header-height:64px; }
 .global-header { padding-inline:20px; gap:12px; }
 .global-nav { display:none; }
 .header-btn { margin-left:auto; }
 .menu-toggle { display:inline-flex; width:40px; height:40px; }
 .mobile-menu.open { position:absolute; display:flex; flex-direction:column; gap:2px; top:calc(100% + 4px); left:20px; right:20px; max-height:calc(100dvh - 90px); overflow:auto; padding:10px; border:1px solid var(--line); border-radius:10px; background:white; box-shadow:var(--shadow); }
 .mobile-menu a { display:block; min-height:44px; padding:12px; border-radius:6px; font-size:14px; font-weight:500; }
 .mobile-menu a:hover { background:var(--soft); }
}
@media(max-width:600px) {
 body { font-size:14px; }
 .global-header { padding-inline:16px; }
 .wordmark { font-size:29px; }
 .header-btn { min-height:44px; font-size:13px; }
 .btn,.btn.small,.link-btn,.icon-btn { min-height:44px; }
 .icon-btn { width:44px; height:44px; }
 input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea { min-height:44px; font-size:16px; }
 .form-grid { gap:12px; }
 .global-header .menu-toggle { width:40px; height:44px; }
 #toast { bottom:16px; padding:11px 15px; }
}
@media(prefers-reduced-motion:reduce) {
 *,*::before,*::after { animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; scroll-behavior:auto!important; }
}
@media print {
 body { background:white; color:#182e2d; font-size:11pt; }
 body>*,.global-header,#main,#dialogs,#toast { display:none!important; }
 body>#print-summary { display:block!important; }
 #print-summary h1 { font-size:24pt; margin-bottom:8pt; }
 #print-summary h2 { font-size:17pt; margin-bottom:9pt; }
 #print-summary section { break-inside:avoid; padding:15pt 0; border-top:1px solid #d8dfd7; }
 #print-summary article { break-inside:avoid; margin-bottom:11pt; }
 #print-summary a { display:block; font-size:9pt; overflow-wrap:anywhere; }
 #print-summary .logistics-details { display:block; font-size:10pt; }
 #print-summary p { margin:5pt 0; }
}
