@font-face{font-family:"Open Sans";font-weight:400;font-display:swap;src:url(/fonts/open-sans-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Open Sans";font-weight:600;font-display:swap;src:url(/fonts/open-sans-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Open Sans";font-weight:700;font-display:swap;src:url(/fonts/open-sans-latin-700-normal.woff2) format("woff2")}
/* Trail Life brand: red #ba262d, brown #876237, true black #010101; greens #728e38, #34441c; tan #d8ccb7 neutral */
:root{--red:#ba262d;--red2:#9a1f25;--brown:#876237;--black:#010101;--g:#34441c;--g2:#728e38;--tan:#d8ccb7;--sand:#f7f3ec;--line:#e3d9c8;--txt:#010101;--mut:#5f5446;--acc:#d8ccb7}
*{box-sizing:border-box}html,body{margin:0;height:100%;font-family:"Open Sans",system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--txt);background:var(--sand)}
.hidden{display:none!important}button{background:var(--red);color:#fff;border:0;border-radius:10px;padding:10px 16px;font-weight:600;cursor:pointer;font-size:15px}
button.ghost{background:none;color:inherit}input{font-size:16px;padding:11px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;outline:none}input:focus{border-color:var(--brown)}
#auth{height:100%;display:grid;place-items:center;background:linear-gradient(160deg,#34441c,#4d6128)}
#authForm{background:#fff;padding:32px;border-radius:20px;width:min(360px,92vw);display:flex;flex-direction:column;gap:12px;text-align:center}#authForm h1{margin:0}#authForm p{margin:0 0 8px;color:var(--mut)}#aerr{color:#ba262d;min-height:1em}
#app{display:flex;height:100%}
aside{width:270px;background:var(--g);color:#f3efe6;display:flex;flex-direction:column;flex:none}
aside header{display:flex;align-items:center;gap:10px;padding:16px;font-size:18px}aside header span{margin-left:auto;font-size:13px;opacity:.8}
nav{flex:1;overflow:auto;padding:0 8px}.sec{font-size:12px;text-transform:uppercase;letter-spacing:.06em;opacity:.6;padding:14px 10px 6px}
nav a{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;cursor:pointer;color:inherit;text-decoration:none}nav a:hover{background:#ffffff14}nav a.on{background:#ffffff26;font-weight:600}
.dot{width:8px;height:8px;border-radius:50%;background:#ffffff40;margin-left:auto}.dot.on{background:#9cc455}
.unread{margin-left:auto;background:var(--acc);color:#222;border-radius:10px;font-size:11px;padding:1px 7px;font-weight:700}
#logout{margin:10px;opacity:.7}
main{flex:1;display:flex;flex-direction:column;min-width:0}
#top{display:flex;align-items:center;gap:8px;padding:12px 18px;background:#fff;border-bottom:1px solid var(--line);padding-top:max(12px,env(safe-area-inset-top))}#top small{display:block;color:var(--mut);font-size:13px}#back{display:none;font-size:28px;padding:0 8px}
section{flex:1;display:flex;flex-direction:column;min-height:0}.pane{overflow:auto;padding:18px}
#msgs{flex:1;overflow:auto;padding:16px 18px}
.m{display:flex;gap:10px;padding:6px 0}.av{width:38px;height:38px;border-radius:10px;background:#efe8db;display:grid;place-items:center;font-size:20px;flex:none}
.m .who{font-weight:700}.m .ts{color:var(--mut);font-size:12px;margin-left:6px;font-weight:400}.m .body{white-space:pre-wrap;word-wrap:break-word;line-height:1.4}
.m img.prev{display:block;max-width:min(320px,100%);border-radius:12px;margin-top:6px;border:1px solid var(--line)}
.doc{display:inline-flex;align-items:center;gap:10px;margin-top:6px;padding:10px 14px;background:#fff;border:1px solid var(--line);border-radius:12px;color:inherit;text-decoration:none}.doc small{color:var(--mut)}
#typing{height:18px;padding:0 18px;font-size:12px;color:var(--mut)}
#composer{display:flex;gap:8px;padding:10px 14px;background:#fff;border-top:1px solid var(--line);padding-bottom:max(10px,env(safe-area-inset-bottom))}#composer #text{flex:1}.att{font-size:22px;display:grid;place-items:center;cursor:pointer;padding:0 4px}
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:10px;display:flex;gap:14px;align-items:center}
.vote{display:flex;flex-direction:column;align-items:center;background:var(--sand);color:var(--g);border:1px solid var(--line);min-width:54px;padding:6px}.vote.mine{background:var(--g);color:#fff}
.card h3{margin:0 0 4px;font-size:16px}.card p{margin:0;color:#555}.card small{color:var(--mut)}
#ideaForm{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}#ideaForm input{flex:1;min-width:180px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}.tile{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;text-decoration:none;color:inherit}
.tile .th{height:110px;display:grid;place-items:center;font-size:40px;background:#f1ebe0;overflow:hidden}.tile .th img{width:100%;height:100%;object-fit:cover}.tile div.i{padding:10px;font-size:14px}.tile small{color:var(--mut);display:block}
@media(max-width:760px){aside{width:100%}#app.inview aside{display:none}#app:not(.inview) main{display:none}#back{display:block}.m img.prev{max-width:100%}}

.card.col{flex-direction:column;align-items:stretch;max-width:560px}.card.col h3{margin:0 0 6px}
.row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.row small,.lbl{display:block;color:var(--mut);font-size:13px}
.sw{appearance:none;width:46px;height:28px;border-radius:14px;background:#c9bfae;position:relative;cursor:pointer;flex:none;padding:0;border:0;transition:.2s}
.sw:before{content:"";position:absolute;width:22px;height:22px;border-radius:50%;background:#fff;top:3px;left:3px;transition:.2s;box-shadow:0 1px 2px #0003}.sw:checked{background:var(--g2)}.sw:checked:before{left:21px}.sw:disabled{opacity:.4}
.lbl{padding:10px 0 4px;border-top:1px solid var(--line)}#mutes{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--line);border-radius:16px;padding:5px 12px;background:#fff;color:var(--txt);font-weight:500;font-size:14px}.chip.muted{background:#f6e1e2;color:#9a1f25;text-decoration:line-through}
.ghost2{background:var(--sand);color:var(--g);border:1px solid var(--line);margin-top:10px}#install ol{margin:6px 0;padding-left:20px;line-height:1.6}details{padding:8px 0;border-top:1px solid var(--line)}summary{cursor:pointer}

.dbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}.dbar input{flex:1;min-width:200px}.btn{background:var(--g);color:#fff;border-radius:10px;padding:10px 16px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}
.btn.ghost2{background:var(--sand);color:var(--g)}.danger{color:#ba262d!important}
.chips{display:flex;gap:6px;overflow-x:auto;padding:4px 0}.chips button{background:#fff;color:var(--txt);border:1px solid var(--line);border-radius:18px;padding:6px 12px;font-weight:500;font-size:14px;white-space:nowrap}.chips button.on{background:var(--g);color:#fff;border-color:var(--g)}
.chips.tags button{font-size:12px;padding:3px 10px}.chips small{opacity:.6;margin-left:4px}#dgrid{margin-top:10px}
.tile{cursor:pointer}.tile .tg{display:flex;gap:4px;flex-wrap:wrap;margin-top:4px}.tg span{background:#f1ebe0;color:var(--g);font-size:11px;padding:1px 7px;border-radius:8px}.th iframe{width:100%;height:100%;border:0;pointer-events:none}
.th pre{margin:0;padding:8px;font-size:9px;text-align:left;width:100%;height:100%;overflow:hidden;color:#555;background:#fff}
#modal{position:fixed;inset:0;background:#0008;display:grid;place-items:center;z-index:10;padding:12px}.mbox{background:#fff;border-radius:16px;width:min(900px,100%);height:min(88vh,100%);display:flex;flex-direction:column;overflow:hidden}
.mhead,.mfoot{display:flex;gap:8px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}.mhead b{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mfoot{border:0;border-top:1px solid var(--line)}.mfoot input{flex:1;min-width:140px}
#mbody{flex:1;overflow:auto;background:#f3f1ec;display:flex}#mbody>*{margin:auto;max-width:100%}#mbody iframe{width:100%;height:100%;border:0;background:#fff}#mbody img{max-height:100%;object-fit:contain}#mbody pre{white-space:pre-wrap;background:#fff;padding:16px;margin:16px;width:100%;align-self:flex-start;border-radius:8px}
select{font-size:15px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff}
.arow{display:flex;gap:6px;align-items:center;padding:4px 0}.arow input{flex:1;padding:7px 10px}.arow button,.addrow button{padding:7px 12px;font-size:13px}.addrow{display:flex;gap:6px;margin-top:6px}.addrow input{flex:1;min-width:0;padding:8px 10px}
.gcard{display:inline-flex;gap:10px;align-items:center;margin-top:6px;padding:10px 14px;background:#fff;border:1px solid var(--line);border-left:4px solid #1a73e8;border-radius:12px;color:inherit;text-decoration:none;max-width:100%}
@media(max-width:760px){.mbox{height:100%;border-radius:12px}}
.arow input{min-width:0}.arow button,.addrow button{margin:0!important;flex:none}.arow .adel{padding:7px 9px}

/* brand additions */
h1,h2,h3,.ttl{color:var(--black)}#authForm h1{color:var(--red);font-weight:700}
.sw:checked{background:var(--g2)!important}
aside header{border-bottom:3px solid var(--red)}aside header img.advlogo{width:44px;height:44px;flex:none}
nav a.on,nav a.active{background:#ffffff1f;box-shadow:inset 3px 0 0 var(--red)}
.tllogo{display:block;margin:0 auto;background:#fff;padding:6px;border-radius:6px;max-width:100%}
#authForm .tllogo{width:150px}.brandmark{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--mut)}.brandmark .tllogo{width:72px;margin:0}
.card h3,.sec{letter-spacing:.04em}a{color:var(--brown)}
#authForm{border-top:5px solid var(--red)}
button,input,textarea,select{font-family:inherit}#authForm img{margin:0 auto}
#authForm .logos{display:flex;justify-content:center;align-items:center;gap:18px}#authForm .logos .tm{height:84px;width:auto;margin:0}#authForm .logos .adv{height:84px;width:84px;margin:0}
.brandmark .tllogo{width:auto;height:64px;padding:0;background:none}
.motto{text-align:center}.motto img{height:26px;width:auto;max-width:100%}#authForm .motto{margin-top:6px}
aside .motto{background:#fff;margin:8px 16px 0;padding:6px;border-radius:8px}aside .motto img{height:20px}
.card.brandmark{flex-direction:row}.brandmark img.tllogo{height:64px!important;width:auto!important;max-width:none;flex:none;align-self:center;object-fit:contain}
#authForm h1{font-size:2.25rem;line-height:1.15}#authForm .troop{font-size:1.125rem;font-weight:700;color:var(--brown);letter-spacing:.06em;margin-top:-6px}
#authForm .logos .tlblock{height:130px;width:auto;margin:0}
#authForm .logos{margin-bottom:14px}
