:root{font:16px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#183347;background:#f2f6f7;--brand:#103b59;--accent:#007e89}*{box-sizing:border-box}body{margin:0}small{display:block;color:#526773}main{max-width:1120px;margin:32px auto;padding:0 24px}h1{font-size:2rem;letter-spacing:-.04em}h2{font-size:1.2rem;margin:0 0 12px}h3{font-size:1rem}a{color:#006e7c}.card{padding:24px;background:white;border:1px solid #dce5e9;border-radius:14px;margin:18px 0;box-shadow:0 3px 10px #163c4d05}.narrow{max-width:500px;margin:35px auto}form{display:grid;gap:12px;margin:14px 0}label{display:grid;gap:5px;color:#344f5d;font-size:.93rem}input,select,textarea{font:inherit;width:100%;padding:10px 12px;border:1px solid #b9cbd1;border-radius:7px;background:white;color:#183347}input[type=color]{height:48px}.check{display:flex;align-items:center;gap:8px}.check input{width:18px;height:18px}button,.button{font:inherit;padding:10px 18px;border:0;border-radius:7px;background:var(--brand);color:white;cursor:pointer;display:inline-block;text-decoration:none;width:fit-content}button:hover,.button:hover{filter:brightness(1.12)}input:focus,select:focus,textarea:focus,button:focus,a:focus{outline:3px solid #d5a82e;outline-offset:2px}.toolbar{display:flex;align-items:end;gap:18px;flex-wrap:wrap}.section-head{display:flex;justify-content:space-between;gap:15px;align-items:center}.badge{background:#e2f3ed;color:#155b45;padding:6px 12px;border-radius:30px;font-size:.85rem;white-space:nowrap}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}td,th{text-align:left;border-bottom:1px solid #e0e8ea;padding:12px 8px;vertical-align:top;overflow-wrap:anywhere}th{color:#536973;background:#f6f9f9}summary{cursor:pointer;font-weight:600}details>form{max-width:700px}details.card[open]>summary{margin-bottom:16px}.notice{background:#e1f2e8;padding:15px;border-radius:8px}.error{background:#fff0e8;color:#822e16;padding:15px;border-radius:8px}fieldset{border:1px solid #dce5e9;border-radius:8px;display:flex;gap:16px;flex-wrap:wrap}footer{text-align:center;color:#657b88;padding:30px}#analytics-consent{background:#fff6da;padding:14px;text-align:center}[hidden]{display:none!important}@media(max-width:650px){main{padding:0 14px}.card{padding:16px}.section-head{align-items:start;flex-direction:column}td,th{padding:9px 5px}h1{font-size:1.6rem}}@media print{nav,.tabbar,.install-hint,form,button,.toolbar,details:not([open]),footer,#analytics-consent{display:none!important}body{background:white;font-size:11px}main{max-width:none;margin:0;padding:0}header{padding:0 0 12px}.card{break-inside:avoid;padding:10px;box-shadow:none;border-radius:0}a{color:inherit;text-decoration:none}thead{display:table-header-group}@page{size:landscape;margin:12mm}}
.pw-meter{margin:.35rem 0 .8rem}.pw-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;max-width:320px}.pw-bar i{height:6px;border-radius:3px;background:#dde3ea}
.pw-meter[data-level="1"] .pw-bar i:nth-child(-n+1){background:#c0392b}.pw-meter[data-level="2"] .pw-bar i:nth-child(-n+2){background:#d08a00}.pw-meter[data-level="3"] .pw-bar i:nth-child(-n+3){background:#2e8b57}.pw-meter[data-level="4"] .pw-bar i{background:#1e6b3f}
.pw-label{display:inline-block;font-size:.85rem;font-weight:700;margin-top:.25rem}.pw-checks{list-style:none;margin:.3rem 0 0;padding:0;font-size:.85rem;color:#5b6b7b}.pw-checks li.pass{color:#1e6b3f}
.pw-toggle{margin-top:.3rem;padding:.2rem .7rem;font-size:.85rem}.pw-help{font-size:.85rem;color:#5b6b7b;margin:.2rem 0 .6rem}

/* App bar, menus and installable app */
.appbar{background:#fff;border-bottom:1px solid #dce5e9;padding:14px max(24px,calc((100vw - 1120px)/2));padding-top:max(14px,env(safe-area-inset-top))}
.brand{display:flex;align-items:center;gap:18px;color:inherit;text-decoration:none;width:fit-content;max-width:100%}
.brand img{display:block;flex:none}.logo-full{height:56px;width:auto}.brand .logo-mark{display:none;height:36px;width:auto}
.brand-text{display:grid;min-width:0;padding-left:18px;border-left:1px solid #dce5e9}.brand-text strong{font-size:1.35rem;line-height:1.2;color:#183347;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-text small{font-size:.9rem}
.topnav{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:10px max(24px,calc((100vw - 1120px)/2));background:var(--brand)}
.topnav a{color:#fff;text-decoration:none;padding:8px 12px;border-radius:8px;font-size:.97rem}.topnav a:hover{background:#ffffff1f}.topnav a[aria-current=page]{background:#ffffff2e;font-weight:600}
.topnav form{margin:0 0 0 auto}.topnav button{border:1px solid #ffffff66;background:transparent;padding:6px 12px}
.ico{width:24px;height:24px;flex:none}
.tabbar{display:none}
@media(max-width:760px){
 .appbar{position:sticky;top:0;z-index:30;padding:10px 16px;padding-top:max(10px,env(safe-area-inset-top));box-shadow:0 1px 0 #dce5e9}
 .brand{gap:12px}.brand .logo-full{display:none}.brand .logo-mark{display:block}.signed-in .brand-text small{display:none}.brand-text{padding-left:0;border:0}.brand-text strong{font-size:1.1rem}.brand-text small{font-size:.78rem;line-height:1.2}
 .signed-out .brand .logo-full{display:block;height:44px}.signed-out .brand .logo-mark{display:none}.signed-out .brand-text{padding-left:12px;border-left:1px solid #dce5e9}
 .topnav{display:none}
 .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fff;border-top:1px solid #d5dfe4;padding:4px 6px calc(4px + env(safe-area-inset-bottom));box-shadow:0 -4px 16px #10364a12}
 .tabbar>a,.tabbar summary{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px 4px;color:#5b6f7b;text-decoration:none;font-size:.72rem;font-weight:600;border-radius:10px;list-style:none;min-height:52px;justify-content:center;-webkit-tap-highlight-color:transparent}
 .tabbar summary::-webkit-details-marker{display:none}
 .tabbar>a[aria-current=page],.tabbar summary.active,.more[open] summary{color:var(--brand)}
 .tabbar>a[aria-current=page] .ico,.tabbar summary.active .ico{stroke-width:2.4}
 .tabbar>a[aria-current=page]::before,.tabbar summary.active::before{content:"";position:absolute;top:0;width:28px;height:3px;border-radius:0 0 3px 3px;background:var(--brand)}
 .tabbar>a,.more summary{position:relative}.more{flex:1;display:flex}.more summary{width:100%}
 .more[open]::before{content:"";position:fixed;inset:0;background:#0b1f2b66;z-index:-1}
 .sheet{position:fixed;left:8px;right:8px;bottom:calc(68px + env(safe-area-inset-bottom));background:#fff;border-radius:18px;padding:8px;box-shadow:0 10px 40px #0b1f2b40;max-height:70vh;overflow:auto;animation:sheet-in .18s ease-out}
 .sheet-head{padding:10px 14px 8px;color:#5b6f7b;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em}
 .sheet a,.sheet-signout{display:flex;align-items:center;gap:14px;width:100%;padding:13px 14px;border-radius:12px;color:#183347;text-decoration:none;font-size:1rem;background:none;border:0;text-align:left}
 .sheet a[aria-current=page]{background:#eef4f6;color:var(--brand);font-weight:600}.sheet a:active,.sheet-signout:active{background:#eef4f6}
 .sheet form{margin:6px 0 0;padding-top:6px;border-top:1px solid #e3eaee;display:block}.sheet-signout{color:#8a2c14}
 .signed-in main{padding-bottom:calc(84px + env(safe-area-inset-bottom))}.signed-in footer{padding-bottom:calc(90px + env(safe-area-inset-bottom))}
 .app-hero{flex-direction:column;align-items:flex-start;gap:12px}.qr svg{width:160px;height:160px}
 main{margin-top:20px}h1{font-size:1.55rem;margin:.2em 0 .5em}
}
@keyframes sheet-in{from{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}
@media(prefers-reduced-motion:reduce){.sheet{animation:none}}
@media(display-mode:standalone){footer{display:none}.signed-in main{padding-bottom:calc(76px + env(safe-area-inset-bottom))}}
.app-hero{display:flex;gap:18px;align-items:center}.app-hero img{border-radius:18px;box-shadow:0 2px 10px #10364a26;flex:none}.app-hero h2{margin-bottom:4px}.app-hero p{margin:0}
.install-steps{display:grid;gap:10px;margin:18px 0}.card-sub{border:1px solid #dce5e9;border-radius:12px;padding:12px 16px}.card-sub[open] summary{margin-bottom:6px}.card-sub ol{margin:0;padding-left:1.3rem;display:grid;gap:4px}
.share-app{display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:wrap;border-top:1px solid #e3eaee;padding-top:18px}.share-app h3{margin:0 0 4px}.app-url{font-weight:600;overflow-wrap:anywhere}
.qr svg{display:block;width:180px;height:180px}.small-print{font-size:.85rem;color:#5b6f7b;margin-bottom:0}
.install-hint{position:fixed;left:10px;right:10px;bottom:calc(72px + env(safe-area-inset-bottom));z-index:35;display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #d5dfe4;border-radius:14px;padding:10px 12px;box-shadow:0 6px 24px #0b1f2b26;font-size:.92rem}
.install-hint img{width:36px;height:36px;border-radius:9px;flex:none}.install-hint span{flex:1}.install-hint a{font-weight:700;white-space:nowrap}.install-hint button{background:none;color:#5b6f7b;padding:4px 8px;font-size:1.2rem;line-height:1}
@media print{.appbar{position:static}.app-install .install-steps,.app-install button,.app-installed,.install-row{display:none!important}.qr svg{width:260px;height:260px}.share-app{border:0}}
.remember-help{font-size:.85rem;color:#5b6f7b;margin:-6px 0 2px}
.device-list{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:8px}.device-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #dce5e9;border-radius:10px;padding:10px 14px;flex-wrap:wrap}.device-list small{display:block}.device-list form{margin:0}.device-list .badge{margin-left:6px}
.feed{border-top:1px solid #e3eaee;padding-top:14px;margin-top:14px}.feed h3{margin:0 0 8px}
.feed-buttons{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}.feed-buttons .button{font-size:.92rem;padding:9px 14px}
.copy-row{display:flex;gap:8px}.copy-row input{font-size:.85rem;color:#40596a;background:#f6f9f9}.copy-row button{flex:none}
@media(max-width:760px){.feed-buttons .button{flex:1 1 100%;text-align:center}}
.button.ghost{background:#fff;color:var(--brand);border:1.5px solid color-mix(in srgb,var(--brand) 45%,#fff)}.button.ghost.suggested{background:var(--brand);color:#fff;border-color:var(--brand)}
.backup-status{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:10px}.backup-status li{display:flex;gap:12px;align-items:flex-start}.backup-status small{display:block}
.dot{width:12px;height:12px;border-radius:50%;flex:none;margin-top:6px;background:#b9c6cd}.dot.ok{background:#1e8a5a}.dot.bad{background:#c0392b}
