/* Product layer: shared tokens, dashboard and account pages. No external fonts or trackers. */
:root{--bg:#f4f6f8;--panel:#fff;--line:#e1e7ee;--txt:#172d3c;--dim:#526878;--accent:#126a60;--accent-soft:#e4f3ef;--danger:#ac3229;--shadow:0 8px 30px #1836440a;color-scheme:light}
*{box-sizing:border-box}body{font:15px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--txt);background:var(--bg)}
a{color:#126a60;text-underline-offset:3px}button,input,select,textarea{font:inherit}button,a,input,select,summary,textarea{-webkit-tap-highlight-color:transparent}
button,.button-link{border:1px solid #cdd9df;border-radius:10px;background:#fff;color:var(--txt);padding:10px 15px;cursor:pointer;font-weight:600;line-height:1.4}
button:hover,.button-link:hover{background:#edf6f3;border-color:#8dbdb2}button:disabled{opacity:.55;cursor:wait}button.primary,.primary{background:var(--accent);border-color:var(--accent);color:#fff}
button.primary:hover{background:#0d574e}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,[role=button]:focus-visible{outline:3px solid #efad48;outline-offset:3px}
[hidden]{display:none!important}.muted,.field-help{color:var(--dim)}.field-help{font-size:13px;line-height:1.6;margin:5px 0 10px}.eyebrow{font-size:11px;font-weight:750;letter-spacing:.13em;text-transform:uppercase;color:#54736c;margin:0 0 8px}
.brand{display:flex;align-items:center;gap:10px;color:var(--txt);text-decoration:none;font-size:18px;font-weight:750;line-height:1.2}.brand small{display:block;color:var(--dim);font-size:11px;font-weight:450;margin-top:5px}.brand-mark{font-size:29px;color:var(--accent)}
.app-header{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 30px;border-bottom:1px solid var(--line);background:#fff;position:relative;z-index:1300;gap:20px}
.app-header nav{display:flex;align-items:center;gap:8px}.app-header nav a,.app-header nav button{padding:10px 14px;text-decoration:none;font-size:13px;color:var(--dim);border:0;background:transparent;border-radius:9px;white-space:nowrap}
.app-header nav .nav-active,.app-header nav [aria-pressed=true]{background:var(--accent-soft);color:var(--accent);font-weight:700}#favorite-count{font-size:11px;background:#edf1f3;border-radius:12px;padding:2px 6px;margin-left:4px}
#app{height:calc(100dvh - 76px);background:#e9efee}#side{width:440px;min-width:360px;background:var(--bg);padding:20px 18px;gap:12px;scrollbar-width:thin;border-right:1px solid var(--line)}
#side .head{padding:4px 5px 12px;border:0}#side .head h1{font-size:26px;line-height:1.2;letter-spacing:-.035em;margin:0 0 9px;font-weight:750}.head-description{font-size:13px;color:var(--dim);margin:0 0 12px;max-width:320px}
#side .head .sub{font-size:11px;line-height:1.6;color:var(--dim)}#collect{max-height:60px;overflow:auto;padding:6px 0}#meta{margin-top:9px}#whoami{font-size:11px!important;color:var(--dim)!important;gap:8px!important;flex-wrap:wrap}#userlist{display:none}#whoami a{font-size:11px}
.save-status{border:0;background:#e5f1ea;color:#2e664c;padding:4px 8px;font-size:10px;font-weight:600;border-radius:6px}.save-status[data-state=error]{background:#fce9df;color:#963927}.save-status[data-state=pending],.save-status[data-state=saving]{background:#fff0d8;color:#855b1d}
details.sec,#feed{background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);flex:0 0 auto;overflow:clip}details.sec>summary.sech,#feed>summary{font-size:13px;font-weight:700;padding:14px 16px;cursor:pointer;border:0;background:transparent;color:var(--txt)}
details.sec>summary::marker,#feed>summary::marker{color:#678679}details.sec:not([open])>*:not(summary){display:none}.filters{padding:0 16px 16px;border:0;gap:10px;background:#fff}.filters input,.filters select{background:#f9fbfc;color:var(--txt);border:1px solid #d5dfe6;border-radius:9px;padding:10px 11px;min-height:42px;font-size:13px;width:100%}
.field-label{font-size:11px;font-weight:650;color:var(--dim);display:block}.field-label input{margin-top:5px}.row2{display:flex;gap:9px;flex-wrap:wrap}.row2>label,.row2>input,.row2>select{min-width:0;flex:1}.row2>select{width:46%}.chip{border-color:#d5e1e5;background:#fff;color:#375463;font-size:12px;padding:7px 11px;min-height:34px}.chip:hover{border-color:var(--accent)}.chip.on{background:var(--accent);border-color:var(--accent);color:#fff}.chip.warn{background:#fff3e0;color:#875215;border-color:#eed2a3}
label.t{font-size:12px;color:#405c6b;align-items:flex-start;gap:8px}label.t input{accent-color:var(--accent);min-height:18px;width:18px;flex:none;margin:0}.zstat,#pushnote{font-size:11px;line-height:1.6;color:var(--dim)}.zstat.err,#pushnote.warn{color:#93591e}#zclear{color:#a14536}#zsave{color:var(--accent);font-weight:700}
#listbox{order:2;flex:0 0 auto;min-height:0;max-height:none}#listbox #list{min-height:0;max-height:none;overflow:visible}#filters{order:1}#zone{order:3}#pushbox{order:4}#feed{order:5}#sources{order:6}#nogeom{order:7}#side .head{order:0}#fresh{order:1}#stats{font-size:10px;padding:12px 15px;color:var(--dim);line-height:1.7}
#list .card{position:relative;gap:12px;padding:16px 14px;border-color:#e8edf0;background:#fff;color:var(--txt)}#list .card:hover,#list .card.sel{background:#f0f7f4}#list .card .ph{height:96px;width:90px;border:0;border-radius:9px;background:#e8efee}#list .card .p{font-size:17px;font-weight:750;letter-spacing:-.03em;padding-right:29px}#list .card .d{font-size:12px;line-height:1.6;margin-top:5px}#list .card .m{font-size:10px;line-height:1.6;color:var(--dim);margin-top:5px}#list .card .why{font-size:10px;line-height:1.5;font-style:normal;color:#6b7d83;margin-top:5px}
.favorite{position:absolute;right:10px;top:12px;font-size:21px;padding:2px 6px;border:0;background:transparent;color:#6d8386;min-width:34px;min-height:34px}.favorite[aria-pressed=true]{color:#b47b20}.card-actions{margin-top:10px;display:flex;gap:10px}.card-actions a{font-size:11px;font-weight:700;text-decoration:none;padding:5px 0}.card .notebtn{font-size:10px!important;background:#f6f8fa!important;color:#516c78!important;border-color:#d7e2e7!important}.card .ntext{background:#f5f8f5;color:#344f49;font-size:12px}
.outz{color:#936027;border-color:#e2c8a0;font-size:9px}.loz{color:#506f84;border-color:#bccfdd;font-size:9px}.up{color:#b65446}.down{color:#167b58}.empty-state{padding:32px 20px;text-align:center}.empty-state>span{font-size:36px;color:var(--accent)}.empty-state h3{font-size:16px}.empty-state p{font-size:12px;color:var(--dim);line-height:1.7}.empty-state button{font-size:12px}
#map{isolation:isolate;min-width:0;flex:1}#map-caption{position:absolute;z-index:800;top:20px;left:65px;background:#fffffff2;padding:12px 18px;border:1px solid #dbe6e3;border-radius:12px;box-shadow:var(--shadow);pointer-events:none;max-width:calc(100% - 90px)}#map-caption b{display:block;font-size:13px}#map-caption span{display:block;font-size:10px;color:var(--dim);margin-top:4px}.leaflet-control-zoom{border:1px solid #d3dedb!important;border-radius:10px!important;overflow:hidden;box-shadow:var(--shadow)!important}.leaflet-control-zoom a{color:#24473f!important}.legend{border:1px solid #dce6e2;border-radius:10px;box-shadow:var(--shadow);font-size:10px;color:#284a40}.bub{border:2px solid #fff;box-shadow:0 2px 6px #183c3440;text-shadow:none;border-radius:8px;padding:4px 7px;font-size:11px}.leaflet-popup-content-wrapper{border-radius:13px}.pop{font-family:inherit}.pop .p{color:#172d3c}.pop .php{width:100%;height:165px;object-fit:cover}.pop .notebtn{color:#335b4c;background:#f6faf8}.toast{border-radius:12px;font-size:12px;line-height:1.6}#toasts{top:92px}#pushbtn{font-size:11px}#clearbtn{font-size:11px}#pushbadge{font-size:10px}.evhead,.evtools,.ev{font-size:11px!important}.evtools{padding:0 14px 12px}.ev{color:var(--txt)!important}.ev a{color:var(--accent)!important}.evtools button{font-size:11px}
.skip-link{position:fixed;top:-60px;left:12px;z-index:9999;padding:10px;background:#fff;color:var(--txt)}.skip-link:focus{top:8px}#connection-status{background:#fff1d7;color:#83551a;text-align:center;font-size:12px;padding:8px;position:fixed;top:76px;z-index:4000;width:100%}#announcer{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);z-index:5000;background:#173e35;color:#fff;padding:0;border-radius:12px;max-width:min(90vw,480px);box-shadow:0 6px 25px #102d3326;font-size:13px}#announcer:not(:empty){padding:13px 18px}
.welcome-card{padding:16px;background:#e9f4ef;border:1px solid #cce4d9;border-radius:12px;order:0;font-size:12px}.welcome-card h2{margin:0 0 6px;font-size:15px}.welcome-card p{color:#4c6b5c;margin:5px 0 11px}.welcome-card .button-row{gap:5px}.welcome-card button,.welcome-card a{font-size:11px}.button-row{display:flex;gap:9px;flex-wrap:wrap;align-items:center}.button-link{display:inline-block;text-decoration:none;font-size:12px}.button-row>*{flex:0 1 auto}
.account-page{margin:0;min-height:100dvh;background:radial-gradient(ellipse at 15% 0,#e2efe8 0,transparent 45%),var(--bg);padding:42px 20px}.account-shell{max-width:760px;margin:0 auto}.account-shell>.brand{margin-bottom:32px}.account-card{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;padding:28px;margin-bottom:18px}.account-card h1,.page-heading h1{font-size:30px;line-height:1.2;letter-spacing:-.04em;margin:0 0 14px}.account-card h2{font-size:18px;letter-spacing:-.02em;margin:0 0 12px}.account-card p{font-size:14px;line-height:1.7}.account-card label{display:block;font-size:13px;font-weight:600;margin:16px 0 5px}.account-card input{display:block;width:100%;background:#f9fbfc;border:1px solid #cfdae1;border-radius:9px;padding:12px;margin-top:7px;min-height:46px;color:var(--txt)}.account-card form>.primary{margin-top:16px}.form-error{color:#a5362e;font-size:13px;line-height:1.6}.page-heading{margin:28px 0}.account-footer{font-size:12px;color:var(--dim);padding:20px 0}.device-row,.invite-row{display:flex;align-items:center;gap:16px;border-top:1px solid var(--line);padding:16px 0;font-size:13px}.device-row>div,.invite-row>div{flex:1}.device-row small,.invite-row small{display:block;color:var(--dim);margin-top:3px}.device-row button,.invite-row button{font-size:11px}.login-page{display:grid;place-items:center}.login-page .account-shell{width:min(100%,460px)}.login-page .account-card{margin:0}.login-page .brand{justify-content:center}.login-page button[type=submit]{width:100%;margin-top:18px}.account-card .hint{color:var(--dim);font-size:12px}.account-card code{background:#edf3f1;color:#33574d}.account-page .err{color:var(--danger)}
@media(min-width:901px){#tabs{display:none}.app-header nav .help-link{margin-left:8px}#sources .filters{font-size:11px}#side .head{flex:none}.account-shell{padding-bottom:30px}}
@media(max-width:900px){.app-header{height:66px;padding:0 16px;gap:8px}.brand{font-size:14px;gap:7px}.brand-mark{font-size:24px}.brand small{font-size:9px}.app-header nav{gap:0}.app-header nav a,.app-header nav button{font-size:11px;padding:8px}.app-header nav .help-link{display:none}.app-header nav a.nav-active{display:none}#favorite-count{display:none}#app{height:calc(100dvh - 66px);flex-direction:column}#tabs{order:0;display:flex;position:static;z-index:1250;padding:8px 16px;background:#fff;border-bottom:1px solid var(--line);gap:8px}#tabs button{border:1px solid var(--line);background:#f6f9fa;color:var(--dim);padding:9px;min-height:40px;font-size:13px;flex:1}#tabs button.on{background:var(--accent);border-color:var(--accent);color:#fff}#map{order:1;width:100%;height:43dvh;min-height:210px;flex:none}#side{order:2;width:100%;min-width:0;min-height:0;flex:1;padding:14px;overflow:auto;gap:10px}#side .head{order:0}#side .head h1{font-size:22px}.head-description{display:none}#side .head #collect{max-height:34px}#listbox{order:2;max-height:none;min-height:0!important;flex:none!important}#listbox #list{min-height:0!important;max-height:none!important}body.view-list #listbox{display:block}body.view-map #listbox{display:none}body.view-list #map{display:none}.filters{display:grid;grid-template-columns:1fr;gap:9px;padding:0 14px 14px}.filters .row2,.filters .chips,.filters .zstat{grid-column:auto}.filters>label.t{grid-column:auto}.filters input,.filters select{font-size:16px}details.sec>summary.sech{font-size:13px;padding:14px}.chip{font-size:12px;min-height:40px;padding:9px 12px}#map-caption{top:12px;left:55px;padding:8px 12px}#map-caption b{font-size:11px}#map-caption span{display:none}.legend{font-size:9px;max-width:150px}#toasts{top:60px;max-width:70%}.welcome-card{order:1}#connection-status{top:66px}.account-page{padding:26px 16px}.account-card{padding:22px 20px}.account-card h1,.page-heading h1{font-size:26px}.account-card input{font-size:16px}.account-shell>.brand{margin-bottom:24px}.device-row,.invite-row{gap:10px}.account-card .button-row button{width:100%}.account-page button{min-height:44px}}
.photo-placeholder{display:grid;place-items:center;background:linear-gradient(150deg,#e1eee7,#eff4f2)!important;color:#8eafa1;font-size:42px}
.account-card input[type=checkbox]{display:inline-block;width:18px;height:18px;min-height:18px;vertical-align:middle;margin:0 8px 0 0;accent-color:var(--accent)}
.legacy-accounts .wrap>.brand{margin:8px 0 26px}.legacy-accounts .box{background:#fff;color:var(--txt);border-color:var(--line);border-radius:14px;padding:22px}.legacy-accounts h1{font-size:26px}.legacy-accounts .sub,.legacy-accounts .hint,.legacy-accounts label{color:var(--dim)}.legacy-accounts input,.legacy-accounts select{background:#f9fbfc;color:var(--txt);border-color:#cfdce2;min-height:44px}.legacy-accounts td,.legacy-accounts th{border-color:var(--line)}.legacy-accounts button{background:var(--accent);color:#fff}.legacy-accounts button.ghost{background:#eff5f2;color:var(--accent);border-color:#cdded6}.legacy-accounts button.danger{background:#fff0ea;color:#a54932}.legacy-accounts .msg,.legacy-accounts pre{white-space:pre-wrap;overflow-wrap:anywhere}.legacy-accounts table{display:block;overflow-x:auto}
.advanced-filters{font-size:12px}.advanced-filters summary{cursor:pointer;padding:8px 0;color:var(--accent);font-weight:600}.advanced-filters[open]{display:grid;gap:9px}.advanced-filters select,.advanced-filters .row2{margin-bottom:8px}#whoami a{background:#eff5f2!important;color:#32665a!important;border-color:#d3e2db!important}.welcome-card{padding:12px 14px}.welcome-card h2{font-size:13px}.welcome-card p{font-size:11px;line-height:1.5}.welcome-card .button-link,.welcome-card button{padding:6px 10px;min-height:30px}#side .head h1{font-size:24px}#side .head #meta{font-size:10px}#side .head #collect{font-size:10px;max-height:38px}#whoami{margin-top:8px}
@media(max-width:900px){body.view-list #filters{order:1}body.view-list #listbox{order:2}body.view-list .welcome-card{display:none}body.view-list .head{padding:0 2px 4px}body.view-list .head #meta,body.view-list .head #whoami,body.view-list .head .eyebrow{display:none}body.view-list .head h1{font-size:18px;margin-bottom:6px}body.view-list #filters:not([open]){flex:none}body.view-list #filters .filters{gap:7px}.advanced-filters summary{padding:10px 0}#side .head #collect{max-height:32px}.account-page .wrap .box{background:#fff;border-color:var(--line);color:var(--txt)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
