:root{--navy:#1F3A5F;--navy-dark:#172C49;--accent:#F2A900;--tint:#E8EEF5;--bg:#F4F6F9;--card:#fff;--rule:#D5DBE3;--text:#1A1A1A;--muted:#5C6670;--danger:#B3261E;--ok:#2E7D32}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font:16px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;padding-bottom:env(safe-area-inset-bottom)}
a{color:var(--navy)}h1{font-size:1.4rem;margin:.3em 0}h2{font-size:1.05rem;margin:1.2em 0 .5em;color:var(--navy)}
.muted{color:var(--muted)}.small{font-size:.85rem}
.top{position:sticky;top:0;z-index:1000;background:var(--navy);color:#fff;display:flex;align-items:center;gap:12px;padding:8px 14px;flex-wrap:wrap}
.brand{color:#fff;text-decoration:none;font-size:1.05rem;white-space:nowrap}.brand b{letter-spacing:.06em;border-bottom:3px solid var(--accent)}.brand span{opacity:.8;margin-left:4px}
.tabs{display:flex;gap:2px;flex:1;overflow-x:auto}.tabs a{color:#fff;text-decoration:none;padding:7px 12px;border-radius:6px;opacity:.85;white-space:nowrap}
.tabs a.on{background:var(--accent);color:var(--navy-dark);opacity:1;font-weight:600}
.usermenu{position:relative}.usermenu summary{cursor:pointer;list-style:none;padding:6px 8px}.usermenu>div{position:absolute;right:0;top:100%;background:#fff;border:1px solid var(--rule);border-radius:8px;box-shadow:0 6px 20px #0003;min-width:180px;padding:6px;z-index:1100}
.usermenu>div a,.usermenu>div button{display:block;width:100%;text-align:left;padding:8px 10px;color:var(--text);text-decoration:none;background:none;border:0;font:inherit;cursor:pointer;border-radius:6px}.usermenu>div a:hover,.usermenu>div button:hover{background:var(--tint)}
main{max-width:1400px;margin:0 auto;padding:12px 14px 40px}
.btn{background:var(--navy);color:#fff;border:0;border-radius:8px;padding:10px 16px;font:inherit;font-weight:600;cursor:pointer;text-decoration:none;display:inline-block}
.btn.ghost{background:#fff;color:var(--navy);border:1px solid var(--rule)}.btn.danger{background:#fff;color:var(--danger);border:1px solid #e3b4b0}.btn.small{padding:6px 10px;font-size:.85rem}
input,select{font:inherit;padding:9px 10px;border:1px solid #8A9BB0;border-radius:8px;background:#F7FAFD;min-width:0}
.login{max-width:380px;margin:8vh auto}.login form{display:flex;flex-direction:column;gap:12px;background:#fff;padding:18px;border-radius:12px;border:1px solid var(--rule)}
.login label{display:flex;flex-direction:column;gap:4px;font-weight:600;font-size:.9rem}
.logo-big{display:inline-block;font-weight:800;letter-spacing:.08em;color:var(--navy);font-size:1.6rem;border-bottom:4px solid var(--accent)}
.err{background:#fde8e6;color:var(--danger);padding:10px;border-radius:8px}.ok{background:#e6f4e7;color:var(--ok);padding:10px;border-radius:8px;font-weight:600;word-break:break-word}
.filters{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-bottom:6px}
.searchrow{display:flex;gap:8px;flex:1 1 420px}.searchrow input{flex:1}
.morefilters summary{cursor:pointer;color:var(--navy);font-weight:600;padding:8px 4px}.frow{display:flex;gap:8px;flex-wrap:wrap;padding:4px 0}
.mine{display:flex;gap:6px;align-items:center;font-weight:600}.clear{font-size:.9rem}
.count{color:var(--muted);margin:6px 0 10px;font-size:.9rem}.empty{color:var(--muted);padding:20px;text-align:center}
.board{display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:12px;align-items:start;overflow-x:auto}
.col{background:var(--tint);border-radius:10px;padding:8px}.col h2{margin:4px 4px 8px;font-size:.95rem}.col h2 span{background:#fff;border-radius:10px;padding:1px 8px;font-size:.8rem;color:var(--muted)}
.col .card{margin-bottom:8px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.card{display:block;background:var(--card);border-radius:10px;overflow:hidden;text-decoration:none;color:var(--text);border:1px solid var(--rule);box-shadow:0 1px 2px #0001}
.card:hover{border-color:var(--navy)}
.thumb{position:relative;aspect-ratio:16/9;background:#dde3ea}.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.noimg{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted)}
.pcount{position:absolute;right:6px;bottom:6px;background:#000a;color:#fff;font-size:.75rem;padding:2px 6px;border-radius:8px}
.cbody{padding:8px 10px}.crow{display:flex;justify-content:space-between;align-items:center}.date{font-size:.85rem;color:var(--muted);font-weight:600}
.cust{font-weight:700;margin-top:4px}.site{font-size:.85rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.meta{font-size:.82rem;color:var(--muted);margin-top:2px}
.badge{display:inline-block;font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.03em}
.b-full{background:#1F3A5F;color:#fff}.b-cab{background:#dbe7f5;color:#1F3A5F}.b-support{background:#F2A900;color:#172C49}.b-base{background:#2E7D32;color:#fff}.b-off{background:#ddd;color:#555}
.tags{margin-top:6px;display:flex;flex-wrap:wrap;gap:4px}.tag{display:inline-flex;align-items:center;gap:2px;background:#FFF4D6;border:1px solid #f0d78a;color:#5a4300;font-size:.75rem;border-radius:10px;padding:1px 8px}
.tagbox{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.tagbox .tag{font-size:.9rem;padding:3px 4px 3px 10px}.tag.sugg{background:#fff;border-style:dashed;color:var(--muted)}
.tag button{border:0;background:none;font-size:1.05rem;cursor:pointer;color:inherit;padding:0 5px}.addtag{display:flex;gap:6px}.addtag input{width:150px;padding:6px 8px}
.calhead{display:flex;align-items:center;gap:12px;justify-content:center;margin:6px 0}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.dow{font-weight:700;text-align:center;font-size:.8rem;color:var(--muted)}
.day{background:#fff;border:1px solid var(--rule);border-radius:8px;min-height:110px;padding:4px;display:flex;flex-direction:column;gap:4px}.day.blank{background:none;border:0}.day.none{background:#fafbfc}
.day.today{border:2px solid var(--accent)}.dnum{font-size:.8rem;font-weight:700;color:var(--muted)}
.calitem{display:flex;gap:5px;align-items:center;text-decoration:none;color:var(--text);font-size:.72rem;line-height:1.2;background:var(--tint);border-radius:6px;padding:3px;border-left:4px solid var(--navy)}
.calitem img{width:38px;height:38px;object-fit:cover;border-radius:4px;flex:none}.ci-support{border-left-color:var(--accent)}.ci-base{border-left-color:var(--ok)}
#map{height:calc(100vh - 230px);min-height:380px;border-radius:10px;border:1px solid var(--rule)}#map.small{height:260px;min-height:0}
.maptools{display:flex;gap:12px;align-items:center;margin:6px 0 8px}
.pin{width:18px;height:18px;border-radius:50%;border:3px solid #fff;box-shadow:0 1px 4px #0008;background:var(--navy)}.pin.support{background:var(--accent)}.pin.base{background:var(--ok)}.pin.me{background:#1a73e8}
.pop{width:200px}.pop img{width:100%;height:110px;object-fit:cover;border-radius:6px;display:block;margin-bottom:4px}.pop b{display:block}
#nearlist ol{padding-left:20px}
.job{max-width:900px}.back{text-decoration:none;font-weight:600}.jobhead{margin:8px 0}
.facts{display:grid;grid-template-columns:max-content 1fr;gap:4px 14px;background:#fff;border:1px solid var(--rule);border-radius:10px;padding:12px}.facts dt{color:var(--muted);font-weight:600}.facts dd{margin:0}
.notes{background:#fff;border:1px solid var(--rule);border-left:4px solid var(--accent);border-radius:8px;padding:10px 12px}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px}.gallery img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px;display:block}
#lightbox{position:fixed;inset:0;background:#000e;z-index:2000;display:flex;align-items:center;justify-content:center}#lightbox[hidden]{display:none}
#lightbox img{max-width:96vw;max-height:88vh;object-fit:contain}#lightbox button{position:absolute;background:#0008;color:#fff;border:0;font-size:2.2rem;width:52px;height:52px;border-radius:50%;cursor:pointer}
.lbx{top:12px;right:12px}.lbp{left:8px;top:50%}.lbn{right:8px;top:50%}.lbo{position:absolute;bottom:14px;color:#fff}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{background:#fff;border:1px solid var(--rule);border-radius:16px;padding:6px 12px;text-decoration:none}.chip b{color:var(--muted);font-size:.8rem}
.timeline{list-style:none;padding:0;border-left:3px solid var(--rule);margin-left:8px}.timeline li{position:relative;padding:0 0 16px 18px}.timeline li:before{content:"";position:absolute;left:-8px;top:4px;width:13px;height:13px;border-radius:50%;background:var(--accent)}
.tl-date{font-weight:700;color:var(--navy)}.tl-body{background:#fff;border:1px solid var(--rule);border-radius:8px;padding:8px 10px;margin-top:4px}
.adduser{background:#fff;border:1px solid var(--rule);border-radius:10px;padding:12px;display:flex;flex-wrap:wrap;gap:10px;align-items:end}.adduser h2{width:100%;margin:0}
.adduser label{display:flex;flex-direction:column;font-weight:600;font-size:.85rem;gap:3px}.adduser label.inline{flex-direction:row;align-items:center;gap:6px}
.users{width:100%;border-collapse:collapse;margin-top:14px;background:#fff;border-radius:10px;overflow:hidden}.users th,.users td{padding:8px;border-bottom:1px solid var(--rule);text-align:left;vertical-align:middle}
.users tr.off td{color:var(--muted)}.acts{display:flex;gap:6px;flex-wrap:wrap}.acts form{margin:0}
@media (max-width:700px){
 .thumb{aspect-ratio:5/2}
 .top{padding:6px 10px;gap:6px}.tabs{order:3;width:100%;flex:none}.tabs a{padding:6px 10px;font-size:.92rem}.usermenu{margin-left:auto}
 main{padding:10px}.board{grid-template-columns:1fr;overflow:visible}.searchrow{flex-basis:100%}
 .cal{gap:2px}.day{min-height:56px;padding:2px}.calitem span{display:none}.calitem{padding:1px;border-left-width:3px}.calitem img{width:100%;height:34px}
 .users thead{display:none}.users tr{display:block;padding:8px}.users td{display:block;border:0;padding:2px 0}
}

/* added videos & photos */
.thumb{position:relative}.vbadge{position:absolute;left:6px;top:6px;background:#C62828;color:#fff;font-size:12px;font-weight:700;padding:2px 7px;border-radius:10px}
.mediabox{margin:6px 0 12px}.mediabox .small{margin:6px 0 0}
.mq{border:1px solid #d9e0ea;border-radius:8px;padding:8px 10px;margin-top:8px;font-size:14px}.mq .bar{height:8px;background:#e6ebf2;border-radius:4px;margin-top:6px;overflow:hidden}.mq .bar i{display:block;height:100%;background:#2E7D32;width:0}
.mq.err{border-color:#C62828;color:#B71C1C}.mq .mrow{display:flex;justify-content:space-between;gap:8px}
.gallery figure{margin:0}.gallery figure.vid{grid-column:span 2}.gallery video{width:100%;max-height:360px;background:#000;border-radius:6px;display:block}
.gallery figcaption{font-size:12px;color:#5b6675;display:flex;justify-content:space-between;align-items:center;gap:4px;padding:2px 2px 0}
.mdel{border:0;background:none;cursor:pointer;font-size:15px;padding:2px 4px}

.locwarn{color:#b42318;font-weight:600}
.b-edited{background:#fff3cd;color:#7a5a00;border:1px solid #e8c766}
.editlog{margin:.5em 0 1em;padding:.5em .75em;background:#fffbea;border-left:3px solid #e8c766;border-radius:6px}
.editform{display:grid;gap:.6em;max-width:640px}
.editform label{display:grid;gap:.2em;font-weight:600}
.editform input,.editform select,.editform textarea{font:inherit;padding:.5em .6em;border:1px solid #c9d2dc;border-radius:8px;font-weight:400}
.editform label.inline{display:flex;gap:.5em;align-items:center;font-weight:400}
.editform .was{margin-top:-.3em;padding:.3em .6em;background:#fffbea;border-radius:6px}
.locedit{border:1px solid #d7dee6;border-radius:10px;padding:.6em .8em}
#editmap{height:300px;border-radius:8px;margin:.4em 0}
.btnrow{display:flex;gap:.5em;flex-wrap:wrap;align-items:center}
