/* Fonts shipped with the site, so Chromebooks, Windows and phones look like a Mac instead of falling back to Roboto.
   Macs keep their built-in fonts (listed first below); these only download when those are missing. */
@font-face{font-family:"FE Display";src:url(/fonts/barlow-condensed-400.woff2) format("woff2");font-weight:400 500;font-style:normal;font-display:swap}
@font-face{font-family:"FE Display";src:url(/fonts/barlow-condensed-600.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"FE Display";src:url(/fonts/barlow-condensed-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:"FE Display";src:url(/fonts/barlow-condensed-800.woff2) format("woff2");font-weight:800 900;font-style:normal;font-display:swap}
@font-face{font-family:"FE Body";src:url(/fonts/source-serif-4.woff2) format("woff2");font-weight:200 900;font-style:normal;font-display:swap}
@font-face{font-family:"FE Body";src:url(/fonts/source-serif-4-italic.woff2) format("woff2");font-weight:200 900;font-style:italic;font-display:swap}
@font-face{font-family:"FE Mono";src:url(/fonts/jetbrains-mono.woff2) format("woff2");font-weight:100 800;font-style:normal;font-display:swap}
:root{
  --snow:#F3F6F2;
  --paper:#FBFCF9;
  --frost:#E4EDEA;
  --ice:#CFE3EA;
  --ice-deep:#9CC3D1;
  --pine:#1F4D3A;
  --pine-deep:#11301F;
  --moss:#5E8A6A;
  --signal:#D9452B;
  --amber:#E2A33B;
  --bark:#6B4F3A;
  --ink:#15231C;
  --muted:#5C6B63;
  --line:#C9D6CF;
  --display:"Avenir Next Condensed","FE Display","Arial Narrow",sans-serif;
  --body:"Iowan Old Style","FE Body",Georgia,serif;
  --mono:"SF Mono","Menlo","FE Mono","Consolas",monospace;
  --r:14px;
}
*{box-sizing:border-box}
html,body{margin:0}
body{
  background:var(--snow);
  background-image:radial-gradient(rgba(31,77,58,.07) 1px,transparent 1.4px);
  background-size:22px 22px;
  color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.55;
}
a{color:var(--pine)}
button,input,textarea,select{font:inherit;color:inherit}
h1,h2,h3,h4{font-family:var(--display);font-weight:800;letter-spacing:.01em;line-height:1.02;margin:0}
.mono{font-family:var(--mono);font-size:.82em;letter-spacing:.02em}
.kicker{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--moss);margin:0 0 10px}
.muted{color:var(--muted)}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;border:2px solid var(--pine-deep);background:var(--pine);color:#fff;
  font-family:var(--display);font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:15px;
  padding:11px 20px;border-radius:999px;cursor:pointer;text-decoration:none;box-shadow:0 3px 0 var(--pine-deep);transition:transform .12s,box-shadow .12s}
.btn:hover{transform:translateY(-1px);box-shadow:0 4px 0 var(--pine-deep)}
.btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--pine-deep)}
.btn.red{background:var(--signal);border-color:#8f2a18;box-shadow:0 3px 0 #8f2a18}
.btn.ghost{background:var(--paper);color:var(--pine-deep)}
.btn.sm{font-size:12px;padding:6px 12px;box-shadow:0 2px 0 var(--pine-deep)}
.btn.sm.red{box-shadow:0 2px 0 #8f2a18}
.btn[disabled]{opacity:.45;pointer-events:none}
.link{background:none;border:0;padding:0;color:var(--pine);text-decoration:underline;cursor:pointer}

/* ---------- public nav ---------- */
.topnav{position:sticky;top:0;z-index:20;background:rgba(251,252,249,.86);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.topnav .wrap{display:flex;align-items:center;gap:22px;height:64px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--pine-deep)}
.brand b{font-family:var(--display);font-size:21px;letter-spacing:.04em;text-transform:uppercase}
.brand small{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--signal);display:block;margin-top:-3px}
.topnav nav{display:flex;gap:18px;margin-left:auto;align-items:center}
.topnav nav a{font-family:var(--display);font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:14px;text-decoration:none;color:var(--ink)}
.topnav nav a:hover{color:var(--signal)}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;border-bottom:3px solid var(--pine-deep);
  background:linear-gradient(180deg,#DCEBEF 0%,#EDF4F2 58%,var(--paper) 100%)}
#snow{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hero .wrap{position:relative;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:30px;align-items:end;padding-top:70px}
.hero h1{font-size:clamp(64px,10vw,148px);text-transform:uppercase;color:var(--pine-deep);letter-spacing:-.01em}
.hero h1 span{display:block;color:var(--signal);-webkit-text-stroke:0}
.lede{font-size:20px;max-width:34em;margin:18px 0 26px}
.cta{display:flex;gap:12px;flex-wrap:wrap;padding-bottom:60px}
.stamp{display:inline-block;font-family:var(--mono);font-weight:700;letter-spacing:.2em;font-size:13px;color:var(--signal);
  border:2px solid var(--signal);padding:6px 12px;border-radius:6px;transform:rotate(-4deg);margin-bottom:22px;background:rgba(255,255,255,.5)}
.fort-art{align-self:end}
.fort-art svg{width:100%;height:auto;display:block}

.ticker{background:var(--pine-deep);color:var(--ice);overflow:hidden;white-space:nowrap;font-family:var(--display);font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;font-size:15px;padding:11px 0}
.ticker div{display:inline-block;animation:tick 38s linear infinite}
.ticker i{font-style:normal;color:var(--amber);margin:0 18px}
@keyframes tick{to{transform:translateX(-50%)}}

/* ---------- sections ---------- */
.sec{padding:84px 0;border-bottom:1px solid var(--line)}
.sec h2{font-size:clamp(40px,5vw,64px);text-transform:uppercase;color:var(--pine-deep)}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:36px;flex-wrap:wrap}
.sec-head p{max-width:30em;margin:0}

.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:2px solid var(--pine-deep);border-radius:var(--r);overflow:hidden;background:var(--paper)}
.stats div{padding:22px 22px 18px;border-right:1px dashed var(--line)}
.stats div:last-child{border-right:0}
.stats b{display:block;font-family:var(--display);font-size:52px;line-height:1;color:var(--pine)}
.stats span{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}

.about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:50px;align-items:start;margin-bottom:46px}
.about p{font-size:21px;margin:0}

.roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.role{background:var(--paper);border:2px solid var(--pine-deep);border-radius:var(--r);padding:22px;position:relative;transition:transform .18s, box-shadow .18s;box-shadow:0 4px 0 var(--pine-deep)}
.role:hover{transform:translateY(-4px) rotate(-.6deg);box-shadow:0 8px 0 var(--pine-deep)}
.role .ico{font-size:34px}
.role h3{font-size:30px;text-transform:uppercase;margin:8px 0 6px}
.role p{margin:0;color:var(--muted)}
.role .no{position:absolute;top:16px;right:18px;font-family:var(--mono);font-size:12px;color:var(--signal)}

.classified{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.cl{position:relative;border-radius:var(--r);overflow:hidden;border:2px solid var(--pine-deep);min-height:250px;background:var(--frost)}
.cl .blur{filter:blur(6px);opacity:.6;padding:24px;pointer-events:none;user-select:none}
.cl .over{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:10px;padding:20px;background:rgba(243,246,242,.35)}
.cl .over h3{font-size:30px;text-transform:uppercase}
.cl .seal{font-family:var(--mono);font-weight:700;color:var(--signal);border:2px solid var(--signal);padding:4px 10px;border-radius:4px;transform:rotate(-6deg);letter-spacing:.2em;font-size:12px;background:var(--paper)}

.rules{counter-reset:r;display:grid;gap:14px;max-width:820px}
.rules li{list-style:none;counter-increment:r;display:flex;gap:20px;align-items:center;background:var(--paper);border:2px solid var(--pine-deep);border-radius:var(--r);padding:18px 22px;font-size:22px}
.rules li::before{content:counter(r,decimal-leading-zero);font-family:var(--display);font-size:44px;font-weight:800;color:var(--signal);min-width:56px}
.rules{padding:0;margin:0}

.dispatch{background:var(--ice);border:2px dashed var(--pine);border-radius:var(--r);padding:20px 24px;margin-top:28px;max-width:820px}

.apply{background:var(--pine);color:#fff;border-radius:24px;padding:56px;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:30px;align-items:center;position:relative;overflow:hidden}
.apply h2{color:#fff}
.apply p{color:var(--ice);font-size:19px}
.apply .btn{background:var(--signal);border-color:#8f2a18;box-shadow:0 3px 0 #8f2a18}
.apply ul{margin:0;padding:0;list-style:none;font-family:var(--mono);font-size:13px;color:var(--ice);display:grid;gap:8px}
.apply ul li::before{content:"✓  ";color:var(--amber)}

/* ---------- footer ---------- */
.foot{padding:36px 0 84px;text-align:center;font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:var(--muted)}
.foot .qw{font-family:var(--display);font-size:20px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);font-weight:700;margin-bottom:6px}
.foot .qw a{color:var(--pine);text-decoration:none;border-bottom:2px solid var(--amber)}

/* ---------- auth ---------- */
.auth{min-height:calc(100vh - 64px);display:grid;place-items:center;padding:50px 20px}
.card{background:var(--paper);border:2px solid var(--pine-deep);border-radius:20px;box-shadow:0 6px 0 var(--pine-deep);padding:34px;width:min(460px,100%)}
.card h2{font-size:44px;text-transform:uppercase;color:var(--pine-deep);margin-bottom:6px}
.field{display:grid;gap:6px;margin:14px 0}
.field label{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
input[type=text],input[type=password],input[type=email],input[type=number],input[type=url],textarea,select{
  width:100%;background:#fff;border:1.5px solid var(--line);border-radius:10px;padding:10px 12px;outline:none}
input:focus,textarea:focus,select:focus{border-color:var(--pine);box-shadow:0 0 0 3px rgba(31,77,58,.15)}
textarea{min-height:110px;resize:vertical}
.err{color:var(--signal);font-family:var(--mono);font-size:13px;min-height:1.2em;margin:4px 0 0}
.demo{margin-top:22px;border-top:1px dashed var(--line);padding-top:16px;font-size:14px}
.demo table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:12px}
.demo td{padding:5px 4px;border-bottom:1px solid var(--frost)}

/* ---------- app shell ---------- */
.app{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:100vh}
.side{background:var(--pine-deep);color:var(--ice);padding:22px 16px;position:sticky;top:0;height:100vh;overflow:auto;display:flex;flex-direction:column;gap:18px}
.side .brand{color:#fff}
.side .brand small{color:var(--amber)}
.idmini{background:rgba(255,255,255,.06);border:1px solid rgba(207,227,234,.25);border-radius:12px;padding:12px 14px}
.idmini b{font-family:var(--display);font-size:20px;color:#fff;display:block}
.idmini span{font-family:var(--mono);font-size:11px;color:var(--ice-deep)}
.rank{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:2px 8px;border-radius:99px;margin-top:6px}
.rank.admin{background:var(--signal);color:#fff}
.rank.leader{background:var(--amber);color:var(--pine-deep)}
.rank.member{background:var(--moss);color:#fff}
.tabs{display:grid;gap:2px}
.tabs a{display:flex;justify-content:space-between;align-items:center;padding:9px 12px;border-radius:10px;text-decoration:none;color:var(--ice);font-family:var(--display);font-weight:600;letter-spacing:.05em;text-transform:uppercase;font-size:15px}
.tabs a:hover{background:rgba(255,255,255,.07)}
.tabs a.on{background:var(--paper);color:var(--pine-deep)}
.tabs .grp{font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--ice-deep);padding:14px 12px 4px;text-transform:uppercase}
.pill{background:var(--signal);color:#fff;font-family:var(--mono);font-size:11px;border-radius:99px;padding:1px 7px}
.side .bottom{margin-top:auto;display:grid;gap:8px;font-family:var(--mono);font-size:12px}
.side .bottom a,.side .bottom button{color:var(--ice);background:none;border:0;text-align:left;padding:0;cursor:pointer;text-decoration:underline}

.main{padding:34px 40px 90px;min-width:0}
.ph{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:26px;flex-wrap:wrap}
.ph h1{font-size:clamp(40px,4.4vw,60px);text-transform:uppercase;color:var(--pine-deep)}
.panel{background:var(--paper);border:1.5px solid var(--line);border-radius:var(--r);padding:22px;min-width:0}
.panel h3{font-size:24px;text-transform:uppercase;margin-bottom:12px;color:var(--pine-deep)}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.stack{display:grid;gap:18px}

/* ID card */
.idcard{background:linear-gradient(135deg,var(--pine) 0%,var(--pine-deep) 100%);color:#fff;border-radius:18px;padding:24px;position:relative;overflow:hidden;min-height:220px}
.idcard::after{content:"92";position:absolute;right:-10px;bottom:-40px;font-family:var(--display);font-weight:800;font-size:190px;color:rgba(255,255,255,.07);line-height:1}
.idcard .top{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--ice-deep)}
.idcard h2{font-size:42px;text-transform:uppercase;margin:18px 0 2px}
.idcard .addr{font-family:var(--mono);font-size:13px;color:var(--amber)}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px;position:relative;z-index:1}
.chip{font-family:var(--mono);font-size:11px;letter-spacing:.06em;padding:4px 10px;border-radius:99px;border:1.5px solid currentColor;background:transparent;cursor:default}
button.chip{cursor:pointer}
.chip.on{background:var(--amber);border-color:var(--amber);color:var(--pine-deep)}
.chip.dim{opacity:.45}
.idcard .chip{color:#fff}
.idcard .chip.on{color:var(--pine-deep)}
.panel .chip{color:var(--pine)}
.panel .chip.on{color:var(--pine-deep)}

.ann{border-left:4px solid var(--signal);padding:6px 0 6px 14px;margin:0 0 14px}
.ann p{margin:0}
.ann small{font-family:var(--mono);font-size:11px;color:var(--muted)}

.codes{display:grid;gap:8px}
.code{display:grid;grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr);align-items:center;gap:8px;background:#fff;border:1.5px solid var(--line);border-radius:10px;padding:10px 14px}
.code b{font-family:var(--display);font-size:22px;text-transform:uppercase;color:var(--signal)}
.code span{font-family:var(--display);font-size:20px;text-transform:uppercase}
.code i{font-style:normal;color:var(--muted);text-align:center}

/* tables */
table.t{width:100%;border-collapse:collapse;font-size:15px}
table.t th{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-align:left;padding:8px 10px;border-bottom:2px solid var(--pine-deep)}
table.t td{padding:10px;border-bottom:1px solid var(--frost);vertical-align:middle}
.tscroll{overflow-x:auto}
.badge{font-family:var(--mono);font-size:11px;padding:2px 8px;border-radius:99px;background:var(--frost)}
.badge.ok{background:#DCEFE2;color:var(--pine)}
.badge.bad{background:#F8DCD5;color:#8f2a18}
.badge.warn{background:#FBEBCB;color:#7a5410}

/* inbox */
.qw-line{font-family:var(--mono);font-size:13px;color:var(--pine);background:var(--ice);border-radius:99px;padding:6px 14px;display:inline-block}
.mail{display:grid;grid-template-columns:150px minmax(0,320px) minmax(0,1fr);border:2px solid var(--pine-deep);border-radius:var(--r);overflow:hidden;background:var(--paper);min-height:540px}
.folders{background:var(--frost);padding:14px;display:grid;align-content:start;gap:4px}
.folders button{all:unset;cursor:pointer;padding:8px 10px;border-radius:8px;font-family:var(--display);font-weight:600;text-transform:uppercase;letter-spacing:.05em;display:flex;justify-content:space-between}
.folders button.on{background:var(--paper);color:var(--pine-deep);box-shadow:inset 0 0 0 1.5px var(--pine)}
.folders .btn{margin-bottom:10px;justify-content:center}
.mlist{border-left:1px solid var(--line);border-right:1px solid var(--line);overflow:auto;max-height:640px}
.mitem{all:unset;display:block;box-sizing:border-box;width:100%;padding:13px 16px;border-bottom:1px solid var(--frost);cursor:pointer}
.mitem:hover{background:#F2F7F5}
.mitem.on{background:var(--ice)}
.mitem.unread b{color:var(--ink)}
.mitem.unread::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--signal);margin-right:6px}
.mitem b{font-family:var(--display);font-size:16px;color:var(--muted)}
.mitem p{margin:2px 0 0;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mitem small{font-family:var(--mono);font-size:11px;color:var(--muted)}
.reader{padding:24px;min-width:0}
.reader h2{font-size:32px;text-transform:uppercase;margin-bottom:8px}
.reader .meta{font-family:var(--mono);font-size:12px;color:var(--muted);border-bottom:1px dashed var(--line);padding-bottom:12px;margin-bottom:16px;display:grid;gap:3px}
.reader .body{white-space:pre-wrap}
.empty{display:grid;place-items:center;height:100%;color:var(--muted);text-align:center;padding:30px;font-family:var(--mono);font-size:13px}

/* map */
.mapwrap{position:relative;width:100%;border:2px solid var(--pine-deep);border-radius:var(--r);overflow:hidden;background:#EAF2EC}
.mapwrap svg{display:block;width:100%;height:auto;touch-action:none}
.pin{cursor:default}
.editing .pin{cursor:grab}
.pin text{font-family:var(--display);font-weight:700;font-size:20px;text-transform:uppercase;letter-spacing:.03em;paint-order:stroke;stroke:#F6FAF7;stroke-width:5px;fill:var(--ink)}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-family:var(--mono);font-size:12px;margin-top:12px}
.legend i{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;vertical-align:-1px}

/* briefing slides */
.slides{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}
.slide{aspect-ratio:16/10;background:var(--paper);border:2px solid var(--pine-deep);border-radius:12px;padding:20px;display:flex;flex-direction:column;position:relative;overflow:hidden}
.slide .n{font-family:var(--mono);font-size:11px;color:var(--muted)}
.slide h3{font-size:30px;text-transform:uppercase;margin:6px 0 10px;color:var(--pine-deep)}
.slide ul{margin:0;padding-left:18px;font-size:14px;columns:2}
.slide.big{justify-content:center;align-items:center;background:var(--pine);color:#fff}
.slide.big h3{color:#fff;font-size:44px}
.slide.big .n{color:var(--ice-deep);position:absolute;top:18px;left:20px}

/* coupon */
.coupon{border:2.5px dashed var(--pine);border-radius:18px;padding:28px;background:
  radial-gradient(circle at 0 50%,var(--snow) 14px,transparent 15px),radial-gradient(circle at 100% 50%,var(--snow) 14px,transparent 15px),var(--paper)}
.coupon .code-big{font-family:var(--mono);font-size:clamp(20px,3vw,34px);font-weight:700;letter-spacing:.08em;color:var(--pine-deep);background:var(--ice);padding:14px 18px;border-radius:10px;display:inline-block;margin:10px 0;word-break:break-all}
.plan{display:flex;gap:16px;align-items:center}
.plan .tier{font-family:var(--display);font-size:46px;text-transform:uppercase;color:var(--signal)}
.strike{text-decoration:line-through;color:var(--muted)}

.prov{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--frost)}
.prov .ord{font-family:var(--display);font-size:24px;color:var(--signal);font-weight:800}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.inv{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.slip{border:1.5px dashed var(--pine);border-radius:10px;padding:12px;background:#fff}
.slip b{font-family:var(--mono);font-size:18px;letter-spacing:.08em;color:var(--pine-deep)}
.slip.used{opacity:.45}
.slip small{display:block;font-family:var(--mono);font-size:11px;color:var(--muted)}
.audit li{font-family:var(--mono);font-size:12px;padding:6px 0;border-bottom:1px solid var(--frost);list-style:none}
.audit{padding:0;margin:0;max-height:340px;overflow:auto}
pre.code-block{background:var(--pine-deep);color:var(--ice);padding:16px;border-radius:10px;overflow:auto;font-size:12px}
.perm td:not(:first-child){text-align:center;font-family:var(--mono)}

#toast{position:fixed;left:50%;bottom:64px;transform:translateX(-50%) translateY(20px);background:var(--pine-deep);color:#fff;font-family:var(--mono);font-size:13px;padding:10px 18px;border-radius:99px;opacity:0;transition:.25s;pointer-events:none;z-index:99}
#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

.rise{animation:rise .5s cubic-bezier(.2,.8,.2,1) both}
@keyframes rise{from{opacity:0;transform:translateY(14px)}}

@media (max-width:980px){
  .hero .wrap,.about,.apply{grid-template-columns:1fr}
  .roles,.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .app{grid-template-columns:1fr}
  .side{position:relative;height:auto}
  .tabs{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}
  .mail{grid-template-columns:1fr}
  .mlist{max-height:280px;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .main{padding:24px 18px 90px}
}
@media (max-width:640px){
  .roles,.grid2,.grid3,.classified{grid-template-columns:1fr}
  .topnav nav a.hide-sm{display:none}
  .apply{padding:32px}
}

@media print{
  .topnav,.side,#snow,#toast,.ticker,.cta,.btn{display:none !important}
  .app{display:block}
  .main{padding:0}
  .sec{padding:30px 0;break-inside:avoid}
  body.printing-slips .main > *:not(.print-slips){display:none !important}
  .slip{break-inside:avoid}
}
/* Fort Evergreen · styles for the bigger HQ (map, mail, missions, calendar, radio, games…) */
.skip{position:absolute;left:-999px;top:8px;background:var(--pine-deep);color:#fff;padding:8px 14px;border-radius:8px;z-index:99}
.skip:focus{left:12px}
:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
kbd{font-family:var(--mono);font-size:11px;background:var(--frost);border:1px solid var(--line);border-bottom-width:2px;border-radius:5px;padding:1px 6px}
.cond-light{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;background:var(--paper);border:1.5px solid var(--line);border-radius:99px;padding:3px 10px}
.cond-light i{width:9px;height:9px;border-radius:50%;display:inline-block;box-shadow:0 0 0 3px rgba(0,0,0,.06)}
.countdown{display:inline-flex;align-items:center;gap:10px;background:var(--paper);border:2px dashed var(--pine);border-radius:14px;padding:6px 14px}
.countdown b{font-family:var(--display);font-size:38px;color:var(--signal);line-height:1}
.countdown span{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;line-height:1.3}
.faq{display:grid;gap:10px;max-width:820px}
.faq details{background:var(--paper);border:2px solid var(--pine-deep);border-radius:var(--r);padding:16px 20px}
.faq summary{font-family:var(--display);font-weight:700;font-size:21px;cursor:pointer;text-transform:uppercase;letter-spacing:.02em}
.faq p{margin:10px 0 0}
.notice{background:var(--ice);border-radius:10px;padding:10px 14px;font-size:15px}
.notice.red{background:#F8DCD5;color:#8f2a18}
.stats > a{display:block;padding:22px 22px 18px;border-right:1px dashed var(--line);text-decoration:none;color:inherit}
.stats > a:hover{background:var(--frost)}
.stats > :last-child{border-right:0}
.span2{grid-column:span 2}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}

/* top bar, bell, alert */
.topbar{display:flex;align-items:center;gap:14px;margin:-10px 0 22px;flex-wrap:wrap}
.tb-right{margin-left:auto;display:flex;gap:8px;align-items:center}
.tb-search,.bell,.tb-help{background:var(--paper);border:1.5px solid var(--line);border-radius:99px;padding:6px 12px;cursor:pointer;font-size:14px}
.tb-search:hover,.bell:hover,.tb-help:hover{border-color:var(--pine)}
.bellwrap{position:relative}
.bell .pill{margin-left:4px}
.bellbox{position:absolute;right:0;top:44px;width:min(360px,86vw);background:var(--paper);border:2px solid var(--pine-deep);border-radius:14px;box-shadow:0 8px 0 rgba(17,48,31,.15);padding:12px;z-index:40;max-height:420px;overflow:auto}
.bn{display:block;padding:9px 10px;border-radius:8px;text-decoration:none;color:var(--ink);font-size:14px;border-bottom:1px solid var(--frost)}
.bn.new{background:#F2F7F5;font-weight:600}
.bn small{display:block;font-family:var(--mono);font-size:11px;color:var(--muted);font-weight:400}
.alertbar{background:var(--signal);color:#fff;font-family:var(--display);font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:10px 16px;border-radius:12px;margin:-8px 0 20px;animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{50%{opacity:.82}}

/* side id + avatars */
.idmini{display:flex;gap:10px;align-items:center;text-decoration:none}
.idmini span span{display:block}
.ava{display:inline-grid;place-items:center;border-radius:50%;border:2px solid rgba(17,48,31,.18);flex:none;line-height:1}
.ulink{color:var(--ink);font-weight:700;text-decoration:none;border-bottom:1.5px solid var(--amber)}
.avas{display:flex;gap:2px;margin-top:8px}
.bar{height:9px;background:var(--frost);border-radius:99px;overflow:hidden;margin:6px 0}
.bar i{display:block;height:100%;background:var(--pine);border-radius:99px;transition:width .4s}
.bar.green i{background:#2F8A5B}.bar.amber i{background:var(--amber)}.bar.red i{background:var(--signal)}
.urg{background:var(--signal);color:#fff;font-family:var(--mono);font-size:10px;padding:1px 6px;border-radius:4px;letter-spacing:.06em}
.urgtext{color:#8f2a18}

/* modal, palette, toast, confetti */
.modal-bg{position:fixed;inset:0;background:rgba(17,48,31,.35);backdrop-filter:blur(3px);display:grid;place-items:center;z-index:80;padding:20px}
.modal{background:var(--paper);border:2px solid var(--pine-deep);border-radius:20px;box-shadow:0 8px 0 var(--pine-deep);padding:26px;width:min(560px,100%);max-height:88vh;overflow:auto;position:relative;animation:rise .25s both}
.modal.wide{width:min(820px,100%)}
.modal h2{font-size:34px;text-transform:uppercase;color:var(--pine-deep)}
.modal-x{position:absolute;right:14px;top:10px;border:0;background:none;font-size:28px;cursor:pointer;color:var(--muted)}
.pal input{font-size:18px;padding:14px}
#palres{margin-top:10px;max-height:56vh;overflow:auto}
.palr{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--ink)}
.palr.on,.palr:hover{background:var(--ice)}
.palr small{font-family:var(--mono);font-size:11px;color:var(--muted)}
.toast-undo{background:var(--amber);color:var(--pine-deep);border:0;border-radius:99px;padding:2px 10px;margin-left:8px;cursor:pointer;font-family:var(--mono);font-size:12px;pointer-events:auto}
#toast{pointer-events:auto}
.confetti{position:fixed;inset:0;pointer-events:none;z-index:90;overflow:hidden}
.confetti i{position:absolute;top:-30px;color:#9CC3D1;font-style:normal;animation:fall 2.2s ease-in forwards}
@keyframes fall{to{transform:translateY(110vh) rotate(260deg);opacity:.2}}
body.no-motion *{animation:none !important;transition:none !important}
body.compact{font-size:15px}
body.compact .panel{padding:14px}
body.compact .main{padding:20px 24px 80px}
body.compact .grid2,body.compact .grid3{gap:12px}
#printzone{display:none}

/* segmented buttons, chips with inputs */
.segs{display:inline-flex;flex-wrap:wrap;border:1.5px solid var(--pine-deep);border-radius:12px;overflow:hidden;background:var(--paper)}
.seg{border:0;border-right:1px solid var(--line);background:none;padding:7px 12px;font-family:var(--display);font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:13px;cursor:pointer;color:var(--ink)}
.seg:last-child{border-right:0}
.seg.on{background:var(--pine);color:#fff}
.seg:hover:not(.on){background:var(--frost)}
label.chip{cursor:pointer;color:var(--pine)}
label.chip input{margin:0 4px 0 0;vertical-align:-1px}
label.chip:has(input:checked){background:var(--amber);border-color:var(--amber);color:var(--pine-deep)}
.check{display:flex;gap:8px;align-items:center;padding:6px 0;cursor:pointer}
.code-pill{display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.06em;padding:2px 8px;border-radius:99px;color:#fff;margin-right:6px}
.code-pill.atk{background:var(--signal)}.code-pill.def{background:#2F6FD0}
.mini-mission{display:block;padding:8px 10px;border:1.5px solid var(--line);border-radius:10px;margin:6px 0;text-decoration:none;color:var(--ink);background:#fff}
.mini-mission:hover{border-color:var(--pine)}

/* ---------- map ---------- */
.mapcard{background:var(--paper);border:2px solid var(--pine-deep);border-radius:18px;padding:14px}
.mapcard:fullscreen{overflow:auto;border-radius:0}
.maptools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}
.layers{display:flex;flex-wrap:wrap;gap:10px;font-family:var(--mono);font-size:12px}
.layers label{display:flex;gap:4px;align-items:center;cursor:pointer}
.mapgrid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:14px}
.mapwrap{position:relative;border:2px solid var(--pine-deep);border-radius:14px;overflow:hidden;background:#EAF2EC;cursor:grab;outline-offset:3px}
.mapwrap:active{cursor:grabbing}
.mapwrap.mode-move .zone{cursor:move}
.mapwrap.mode-marker{cursor:crosshair}
.mapwrap.mode-arrow .zone{cursor:pointer}
.mapsvg{display:block;width:100%;height:auto;touch-action:none;user-select:none}
.mapsvg.mini{border-radius:12px;border:1.5px solid var(--line)}
.zone{transition:opacity .2s}
.zone.dim{opacity:.18}
.zone:hover{filter:brightness(1.04)}
.zl{font-family:var(--display);font-weight:800;font-size:22px;text-transform:uppercase;letter-spacing:.03em;paint-order:stroke;stroke:#F6FAF7;stroke-width:6px;stroke-linejoin:round;fill:var(--ink);pointer-events:none}
.al{font-family:var(--mono);font-weight:700;font-size:15px;paint-order:stroke;stroke:#fff;stroke-width:5px;pointer-events:none}
.gridt text{font-family:var(--display);font-weight:800;font-size:22px;fill:#1F4D3A;opacity:.5}
.maptag{font-family:var(--mono);font-size:13px;fill:#5C6B63}
.compass text{font-family:var(--display)}
.mk{cursor:pointer}
.mk:hover circle{stroke:var(--signal)}
.maptip{position:absolute;pointer-events:none;background:var(--pine-deep);color:#fff;padding:6px 10px;border-radius:8px;font-size:13px;opacity:0;transition:opacity .12s;z-index:5;white-space:nowrap}
.maptip.on{opacity:1}
.mapwrap.snowing::after{content:"";position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(#fff 1.4px,transparent 1.6px),radial-gradient(#fff 1px,transparent 1.2px);background-size:60px 60px,34px 34px;animation:mapsnow 6s linear infinite;opacity:.9}
@keyframes mapsnow{to{background-position:30px 360px,-20px 220px}}
.mappanel{max-height:none;overflow:auto}
.mappanel h3{font-size:26px}
.meter b{font-family:var(--display);font-size:46px;color:var(--pine);line-height:1}
.meter span{font-family:var(--mono);font-size:12px;margin-left:6px;color:var(--muted)}
.legend.col{flex-direction:column;gap:6px;margin-top:12px}
.lg{display:flex;align-items:center;gap:8px;cursor:pointer}
.lg i{width:14px;height:14px;border-radius:4px}
.lg b{margin-left:auto;font-family:var(--mono)}
.zlist{display:grid;gap:2px;max-height:300px;overflow:auto}
.zrow{all:unset;display:flex;gap:8px;align-items:center;padding:7px 8px;border-radius:8px;cursor:pointer;font-size:15px}
.zrow:hover{background:var(--frost)}
.zrow i{width:10px;height:10px;border-radius:50%}
.zrow span{margin-left:auto}
.hist{padding:0;margin:0;list-style:none;font-family:var(--mono);font-size:12px;color:var(--muted)}
.hist li{padding:3px 0;border-bottom:1px solid var(--frost)}
.zedit{border-top:1px dashed var(--line);margin-top:14px;padding-top:12px}
.zedit .field{margin:8px 0}

/* ---------- mail ---------- */
.mail{grid-template-columns:170px minmax(0,320px) minmax(0,1fr)}
.folders input[type=search]{margin:4px 0 8px;font-size:14px;padding:7px 10px}
.mbar{display:flex;gap:10px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--line);font-size:13px;background:#FBFCF9;position:sticky;top:0;z-index:1}
div.mitem{display:flex;gap:8px;align-items:flex-start}
div.mitem > input{margin-top:4px}
.mopen{all:unset;cursor:pointer;flex:1;min-width:0}
.mopen p{margin:2px 0 0;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mitem.unread::before{flex:none;margin-top:8px}
.compose .field{margin:8px 0}

/* ---------- missions ---------- */
.kanban{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.kcol{background:var(--frost);border-radius:16px;padding:12px;min-height:200px}
.kcol h3{font-size:20px;text-transform:uppercase;margin:4px 4px 10px}
.mcard{all:unset;box-sizing:border-box;display:block;width:100%;background:var(--paper);border:2px solid var(--pine-deep);border-radius:12px;padding:12px;margin-bottom:10px;cursor:pointer;box-shadow:0 3px 0 var(--pine-deep);transition:transform .12s}
.mcard:hover{transform:translateY(-2px)}
.mcard.me{border-color:var(--amber);box-shadow:0 3px 0 #b98320}
.mcard b{display:block;font-family:var(--display);font-size:20px;margin:6px 0 2px}
.mcard small{font-family:var(--mono);font-size:11px;color:var(--muted)}

/* ---------- calendar & meetings ---------- */
.grid-cal{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:18px}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-top:12px}
.cal > b{font-family:var(--mono);font-size:11px;text-align:center;color:var(--muted);text-transform:uppercase}
.cday{all:unset;box-sizing:border-box;min-height:74px;background:#fff;border:1.5px solid var(--line);border-radius:10px;padding:6px;cursor:pointer;overflow:hidden}
.cday.empty{background:none;border:0;cursor:default}
.cday span{font-family:var(--display);font-weight:700}
.cday i{display:block;font-style:normal;font-size:11px;background:var(--ice);border-radius:4px;padding:1px 4px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cday.today{border-color:var(--signal)}
.cday.sel{background:var(--ice);border-color:var(--pine)}
.event{border-left:4px solid var(--pine);padding:4px 0 10px 12px;margin-bottom:10px}
.event b{font-family:var(--display);font-size:20px;display:block}
.bigtime{font-family:var(--display);font-weight:800;font-size:clamp(60px,9vw,110px);color:var(--pine-deep);line-height:1;letter-spacing:.02em}
.bigtime.sm{font-size:52px;margin:6px 0 10px}
.agenda{padding-left:20px}
.agenda li{padding:4px 0}
.agenda li.now{font-weight:700;color:var(--signal)}
.agenda li.now::marker{content:"▶ "}
table.duty td{min-width:140px;vertical-align:top}
.x{border:0;background:none;cursor:pointer;color:inherit;padding:0 0 0 4px}

/* ---------- HQ & people ---------- */
.minimap{display:block;text-decoration:none;color:inherit}
.motw{background:linear-gradient(135deg,#FFF6DB,var(--paper))}
.ann.urgent{border-left-color:var(--signal);background:#FCEDE9;border-radius:0 8px 8px 0}
.badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.bdg{border:1.5px dashed var(--line);border-radius:12px;padding:10px;text-align:center;opacity:.45;filter:grayscale(1)}
.bdg.on{opacity:1;filter:none;border-style:solid;border-color:var(--amber);background:#FFF8E6}
.bdg span{font-size:28px;display:block}
.bdg b{display:block;font-family:var(--display);font-size:15px}
.bdg small{font-size:11px;color:var(--muted)}
.pick{display:flex;flex-wrap:wrap;gap:6px}
.pick label{cursor:pointer}
.pick input{position:absolute;opacity:0;width:0}
.pick span{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;border:2px solid var(--line);font-size:20px}
.pick input:checked + span{border-color:var(--pine);box-shadow:0 0 0 3px rgba(31,77,58,.2)}
.sw{width:36px;height:36px;border-radius:50%;border:3px solid #fff;box-shadow:0 0 0 1.5px var(--line);cursor:pointer}
.sw.on{box-shadow:0 0 0 3px var(--pine-deep)}
.podium{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end;max-width:640px;margin:0 auto 20px}
.pod{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
.pod span{font-family:var(--mono)}
.pod .step{width:100%;background:var(--pine);color:#fff;font-family:var(--display);font-weight:800;font-size:34px;border-radius:12px 12px 0 0;display:grid;place-items:center}
.pod.p1 .step{height:120px;background:var(--amber);color:var(--pine-deep)}.pod.p2 .step{height:86px}.pod.p3 .step{height:60px;background:var(--moss)}
.flip{perspective:1200px;cursor:pointer;max-width:520px}
.flip-in{position:relative;transition:transform .6s;transform-style:preserve-3d;min-height:270px}
.flip.flipped .flip-in{transform:rotateY(180deg)}
.idface{position:absolute;inset:0;backface-visibility:hidden;border-radius:18px;padding:24px;overflow:hidden}
.idface.front{background:linear-gradient(135deg,var(--pine) 0%,var(--pine-deep) 100%);color:#fff}
.idface.front .top{display:flex;justify-content:space-between;font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--ice-deep)}
.idface.front h2{font-size:34px;text-transform:uppercase}
.idface.front .addr{font-family:var(--mono);font-size:13px;color:var(--amber)}
.idface.back{background:var(--paper);border:2px solid var(--pine-deep);transform:rotateY(180deg)}
.idqr{position:absolute;right:20px;bottom:20px;background:#fff;padding:6px;border-radius:8px}
.idprint .idface{position:relative;transform:none;margin-bottom:16px;width:500px;min-height:250px;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.gate{display:flex;gap:12px;align-items:center;margin-top:14px;padding:16px;border-radius:14px;font-size:18px}
.gate.ok{background:#DCEFE2;border:2px solid #2F8A5B}.gate.bad{background:#F8DCD5;border:2px solid var(--signal)}

/* ---------- pine ---------- */
.outbox{background:var(--ice);border-radius:10px;padding:12px;min-height:48px;white-space:pre-wrap}
.cod{text-align:center;display:flex;flex-direction:column;justify-content:center;align-items:center}
.codbig{font-family:var(--display);font-weight:800;font-size:56px;text-transform:uppercase;color:var(--signal);margin:6px 0;line-height:1}
.quiz{text-align:center;max-width:620px;margin:0 auto}
.opts{display:grid;gap:8px;margin-top:12px}
.opt{display:block;width:100%;text-align:left;background:#fff;border:2px solid var(--line);border-radius:12px;padding:12px 14px;font-size:17px;cursor:pointer;margin:6px 0}
.opt:hover:not([disabled]){border-color:var(--pine)}
.opt.right{background:#DCEFE2;border-color:#2F8A5B}.opt.wrong{background:#F8DCD5;border-color:var(--signal)}
.sugg{padding:10px 0;border-bottom:1px solid var(--frost)}

/* ---------- intel & supplies ---------- */
.panel.quick{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rival{padding:10px 0;border-bottom:1px solid var(--frost)}
.rival span[title]{color:var(--amber);letter-spacing:2px}
.intel{border:1.5px solid var(--line);border-left:5px solid var(--moss);border-radius:10px;padding:10px 12px;margin:10px 0;background:#fff}
.intel.med{border-left-color:var(--amber)}.intel.high{border-left-color:var(--signal);background:#FFF5F2}
.intel p{margin:6px 0}
.chart{width:100%;height:auto;display:block}
.wall{padding:10px 0 14px;border-bottom:1px solid var(--frost)}
.wplan{display:grid;grid-template-columns:repeat(18,minmax(0,1fr));gap:3px;max-width:720px;background:#DCEAEE;padding:8px;border-radius:12px}
.wc{aspect-ratio:1;border:0;border-radius:4px;background:rgba(255,255,255,.5);cursor:pointer}
.wc.v1{background:#fff;box-shadow:inset 0 -3px 0 #9CC3D1}.wc.v2{background:#9CD3E6;box-shadow:inset 0 -3px 0 #4F98B2}
.wc[disabled]{cursor:default}
.wx{text-align:center}

/* ---------- polls, ideas, radio ---------- */
.popt{position:relative;display:flex;justify-content:space-between;width:100%;background:#fff;border:2px solid var(--line);border-radius:10px;padding:10px 12px;margin:6px 0;cursor:pointer;overflow:hidden;font-size:16px}
.popt i{position:absolute;left:0;top:0;bottom:0;background:var(--ice);z-index:0;transition:width .4s}
.popt span,.popt b{position:relative;z-index:1}
.popt.mine{border-color:var(--pine)}
.idea{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--frost)}
.up{display:flex;flex-direction:column;align-items:center;background:#fff;border:1.5px solid var(--line);border-radius:10px;padding:4px 10px;cursor:pointer;color:var(--muted);height:fit-content}
.up.on{border-color:var(--signal);color:var(--signal)}
.radio{display:grid;grid-template-columns:200px minmax(0,1fr);border:2px solid var(--pine-deep);border-radius:var(--r);overflow:hidden;background:var(--paper);min-height:560px}
.chans{background:var(--frost);padding:12px;display:grid;align-content:start;gap:4px}
.chans button{all:unset;cursor:pointer;padding:9px 10px;border-radius:8px}
.chans button small{display:block;font-size:12px;color:var(--muted)}
.chans button.on{background:var(--paper);box-shadow:inset 0 0 0 1.5px var(--pine)}
.chatcol{display:flex;flex-direction:column;min-width:0;padding:12px}
.pinned{background:#FFF6DB;border-radius:10px;padding:8px 12px;font-size:14px;margin-bottom:8px}
.msgs{flex:1;overflow:auto;max-height:430px;padding-right:6px}
.msg{display:flex;gap:10px;padding:8px;border-radius:10px}
.msg.me{background:#F2F7F5}
.msg.ping{background:#FFF6DB}
.msg p{margin:2px 0}
.mh{display:flex;gap:8px;align-items:baseline}
.mh small{font-family:var(--mono);font-size:11px;color:var(--muted)}
.mention{background:var(--ice);border-radius:4px;padding:0 3px}
.reacts{display:flex;gap:4px;flex-wrap:wrap}
.reacts button{border:1px solid var(--line);background:#fff;border-radius:99px;font-size:12px;padding:1px 8px;cursor:pointer}
.reacts button.on{border-color:var(--pine);background:var(--ice)}
.phrases{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}
.phrases .chip{cursor:pointer;color:var(--pine);background:#fff}

/* ---------- tools, games, features ---------- */
.todo{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--frost)}
.todo.done label{text-decoration:line-through;color:var(--muted)}
.arena{position:relative;height:340px;background:linear-gradient(#DCEBEF,#F4F8F6);border:2px solid var(--pine-deep);border-radius:14px;margin-top:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}
.target{position:absolute;border:0;background:#fff;border-radius:50%;width:54px;height:54px;font-size:30px;cursor:crosshair;box-shadow:0 3px 0 rgba(0,0,0,.15);animation:pop .2s both}
.target.hit{transform:scale(1.4);opacity:0;transition:.2s}
@keyframes pop{from{transform:scale(.2)}}
.feats{columns:3 300px;column-gap:18px}
.feats .panel{break-inside:avoid;margin-bottom:18px}
.feats ul{padding-left:18px;margin:10px 0}
.feats li{padding:2px 0;font-size:15px}

@media (max-width:1100px){ .mapgrid{grid-template-columns:1fr} .grid-cal{grid-template-columns:1fr} }
@media (max-width:980px){ .kanban{grid-template-columns:1fr} .radio{grid-template-columns:1fr} .span2{grid-column:auto} .mail{grid-template-columns:1fr} }
@media (max-width:640px){ .podium{grid-template-columns:repeat(3,1fr)} .wplan{gap:2px;padding:4px} .topbar .muted{display:none} }

@media print{
  body.printing > *:not(#printzone){display:none !important}
  body.printing #printzone{display:block !important;padding:20px}
  #printzone .slip{break-inside:avoid}
  .topbar,.alertbar,.maptools,.mappanel{display:none !important}
  .mapgrid{display:block}
}

/* map landmarks (school, parking) */
.lm{font-family:var(--display);font-weight:800;font-size:18px;fill:#5C6B63;text-transform:uppercase;letter-spacing:.06em;pointer-events:none}
.landmarks{pointer-events:none}

/* ---------- inbox v2 ---------- */
.mail{grid-template-columns:200px minmax(0,360px) minmax(0,1fr);min-height:620px}
.folders{gap:2px}
.folders button span:first-child{display:flex;align-items:center;gap:6px}
.folders button span:last-child{font-family:var(--mono);font-size:12px;color:var(--signal)}
.fhead{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:14px 10px 4px;display:flex;justify-content:space-between}
.fhead .link{all:unset;cursor:pointer;font-size:15px;color:var(--pine)}
.folders .dot{width:10px;height:10px;border-radius:50%;display:inline-block}
.folders .away{font-size:12px;background:#FFF4D6;border-radius:8px;padding:6px 10px;margin:10px 0 0}
.fstat{font-size:11px;margin:12px 10px 0}
.ib{all:unset;cursor:pointer;display:inline-grid;place-items:center;min-width:30px;height:30px;border-radius:8px;font-size:15px;color:var(--pine-deep)}
.ib:hover{background:var(--frost)}
.ib.em{min-width:26px;height:26px;font-size:15px}
.mtabs{display:flex;border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:2}
.mtabs button{all:unset;cursor:pointer;flex:1;text-align:center;padding:10px 4px;font-family:var(--display);font-weight:700;text-transform:uppercase;font-size:13px;letter-spacing:.04em;color:var(--muted);border-bottom:3px solid transparent}
.mtabs button.on{color:var(--pine-deep);border-bottom-color:var(--signal)}
.mtabs button span{font-family:var(--mono);font-size:10px;background:var(--signal);color:#fff;border-radius:99px;padding:1px 6px}
.mtabs + .mbar{top:41px}
.mhead{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:10px 16px 4px;background:#F6F9F7;border-bottom:1px solid var(--frost)}
.lblhead{display:flex;gap:10px;align-items:center}
div.mitem{position:relative;padding:11px 14px}
div.mitem.on{box-shadow:inset 4px 0 0 var(--signal)}
.mitem.unread{background:#FBFDFC}
.mitem.unread .mrow1 b{color:var(--ink);font-weight:800}
.mitem.unread .msubj{font-weight:700}
.mrow1{display:flex;align-items:center;gap:8px;min-width:0}
.mrow1 b{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:15px}
.mrow1 small{flex:none}
.msubj{display:block;font-size:14px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msnip{display:block;font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.mlist.compact div.mitem{padding:7px 14px}
.tc{font-family:var(--mono);font-size:11px;background:var(--frost);color:var(--pine-deep);border-radius:99px;padding:1px 7px;flex:none}
.tc.big{font-size:14px;vertical-align:middle}
.seen{font-family:var(--mono);font-size:10px;color:#2F6B4B}
.mlabels{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.lbl{font-style:normal;font-family:var(--mono);font-size:10px;letter-spacing:.04em;padding:2px 8px;border-radius:99px;background:color-mix(in srgb,var(--c,#5C6B63) 16%,#fff);color:var(--c,#5C6B63);border:1px solid color-mix(in srgb,var(--c,#5C6B63) 40%,#fff);display:inline-flex;align-items:center;gap:4px}
.lbl.grp{--c:#0F8B8D}
.lbl .x{all:unset;cursor:pointer;font-size:12px}
.mquick{position:absolute;right:8px;top:8px;display:none;background:var(--paper);border-radius:8px;box-shadow:0 2px 8px rgba(17,48,31,.15)}
div.mitem:hover .mquick{display:flex}
.mempty{padding:50px 20px;text-align:center}
.contacts .contact{display:flex;gap:10px;align-items:center;cursor:default}
.contacts .cbody{flex:1;min-width:0}.contacts .cbody p{margin:0;font-size:12px}
.contacts .cact{display:flex;gap:6px;align-items:center}
.contacts .mbar input{width:100%;font-size:14px;padding:6px 10px}
.mtool{display:flex;flex-wrap:wrap;gap:2px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:8px;margin-bottom:14px}
.mtool select{font-size:13px;padding:4px 8px;margin:0 2px}
.mtool .back{display:none}
.mthread{display:grid;gap:10px}
.mcard{border:1.5px solid var(--line);border-radius:12px;background:#fff;padding:0 16px}
.mcard[open]{padding-bottom:14px}
.mcard.urgent{border-color:var(--signal)}
.mcard summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:auto 1fr auto;gap:4px 10px;align-items:center;padding:12px 0}
.mcard summary::-webkit-details-marker{display:none}
.mwho{min-width:0}.mwho b{font-family:var(--display);font-size:16px}.mwho small{display:block;font-family:var(--mono);font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mwho .mono{font-size:11px}
.mwhen{font-size:11px;color:var(--muted)}
.mcard .msnip.closed{grid-column:2 / 4}
.mcard[open] .msnip.closed{display:none}
.mcard .body{white-space:normal;line-height:1.55}
.mcard .body p{margin:0}.mcard .body p.gap{height:.8em}
.mcard .body ul{margin:4px 0;padding-left:22px}
.quoted{margin-top:8px;color:var(--muted);border-left:3px solid var(--line);padding-left:10px;font-size:14px}
.quoted summary{cursor:pointer;font-family:var(--mono);font-size:12px;list-style:none}
.cw{background:#FFF1C9;border-bottom:2px dotted #B7791F;border-radius:3px;padding:0 2px;cursor:help}
.mention{background:var(--ice);border-radius:4px;padding:0 3px;text-decoration:none;color:var(--pine-deep);font-weight:600}
.secret{background:#FFF4D6;border:1px solid #F0D58C;border-radius:8px;padding:8px 12px;font-size:13px;margin:4px 0 10px}
.acards{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.acard{display:grid;grid-template-columns:auto 1fr;gap:0 8px;align-items:center;border:1.5px solid var(--line);border-radius:10px;padding:8px 12px;text-decoration:none;color:var(--ink);background:#F6F9F7;max-width:280px}
.acard:hover{border-color:var(--pine)}
.acard small{grid-column:2;font-family:var(--mono);font-size:10px;color:var(--muted)}
.mfoot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:12px}
.reacts{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.react{all:unset;cursor:pointer;font-size:13px;border:1px solid var(--line);border-radius:99px;padding:2px 8px;background:#fff}
.react.on{background:var(--ice);border-color:var(--ice-deep)}
.addreact{display:none;gap:0}
.mcard:hover .addreact{display:inline-flex}
.quick{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:14px;padding:12px;border:1.5px dashed var(--line);border-radius:12px}
.quick .chip{font-size:12px;color:var(--pine)}
.quick .chip:hover{background:var(--frost)}
.ctools{display:flex;flex-wrap:wrap;gap:2px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:3px 6px;margin:6px 0}
.ctools .sep{width:1px;height:20px;background:var(--line);margin:0 6px}
.ctools2{margin:6px 0}.ctools2 select{font-size:13px;padding:5px 8px}
.mprev{border:1.5px dashed var(--line);border-radius:10px;padding:12px;min-height:220px;background:#fff}
.mprev p{margin:0}
.mwelcome{padding:60px 20px;text-align:center}.mwelcome h2{font-size:22px;text-transform:none;font-family:var(--mono)}
@media (max-width:980px){ .mail{grid-template-columns:1fr}
  .mail.reading .mlist,.mail.reading .folders{display:none}
  .mail:not(.reading) .reader{display:none}
  .mtool .back{display:inline-grid}
  .mquick{display:flex;position:static;box-shadow:none;background:none}
}

/* ---------- paper meeting pack + pocket card (print) ---------- */
.paperpanel{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;border-style:dashed}
.paperpanel h3{margin:0 0 4px}
#printzone .pack{font-family:Georgia,serif;color:#000;font-size:13px}
#printzone .pack header{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:3px solid #000;padding-bottom:8px;margin-bottom:10px}
#printzone .pack h1{font-size:30px;margin:0;text-transform:uppercase}
#printzone .pack h3{font-size:15px;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid #000;margin:14px 0 6px;padding-bottom:2px}
#printzone .pt{width:100%;border-collapse:collapse}
#printzone .pt td,#printzone .pt th{border-bottom:1px solid #999;padding:5px 6px;text-align:left;vertical-align:middle}
#printzone .pbox{display:inline-block;width:14px;height:14px;border:1.5px solid #000;border-radius:2px;vertical-align:middle}
#printzone .line{min-width:90px}
#printzone .line.full{border-bottom:1px solid #999;height:24px}
#printzone .pm{margin:6px 0;break-inside:avoid}
#printzone .pc{display:inline-block;margin:3px 14px 0 0}
#printzone .small{font-size:11px}
#printzone .pmap{margin-top:12px;break-inside:avoid}#printzone .pmap svg{width:100%;height:auto;max-height:420px}
#printzone .pack-sheet{break-before:page}
#printzone .pockets{display:grid;grid-template-columns:1fr 1fr;gap:16px}
#printzone .pocket{border:2px dashed #000;border-radius:10px;padding:12px 14px;font-size:12px;font-family:Georgia,serif;break-inside:avoid}
#printzone .pocket h2{margin:2px 0;font-size:22px;text-transform:uppercase}
#printzone .pocket p{margin:5px 0}
.ava.photo{object-fit:cover;background:#CFE3EA;padding:0}
.photo-pick{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
