:root{font-family:Inter,"Segoe UI",Arial,sans-serif;color:#193b36;background:#f4f5ef;font-synthesis:none;--muted:#68766f;--line:#dfe5db;--green:#166452;--amber:#855a17;--red:#a13636}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #d19b3c;outline-offset:3px}[hidden]{display:none!important}.app{max-width:740px;margin:auto;padding:28px 20px calc(105px + env(safe-area-inset-bottom))}header{margin-bottom:23px}.brand{display:flex;align-items:center;gap:9px;font-size:10px;font-weight:750;letter-spacing:1.7px;margin-bottom:27px}.brand-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:#123b35;color:#fff;font-size:17px;letter-spacing:0}.heading{display:flex;justify-content:space-between;align-items:center;gap:10px}.eyebrow{font-size:10px;font-weight:750;letter-spacing:1.3px;text-transform:uppercase;color:var(--muted);margin:0 0 7px}h1{font-family:Georgia,serif;font-weight:500;font-size:30px;letter-spacing:-.7px;margin:0;line-height:1.12}h2{font-size:19px;letter-spacing:-.35px;margin:0}h3{font-size:16px;margin:0}.muted{color:var(--muted);font-size:12px;line-height:1.5}.icon-button{border:1px solid #cdd9cd;background:transparent;width:43px;height:43px;border-radius:50%;font-size:26px;color:#255248;flex-shrink:0}.section{margin:25px 0}.section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.section-head a,.text-button{font-size:12px;color:var(--green);background:none;border:0;padding:8px}.card{background:#fff;border:1px solid var(--line);border-radius:19px;padding:19px;margin-top:11px;overflow:hidden}.top3{background:#153e36;color:#f7f7ec;border-color:#153e36;padding:21px}.top3 .eyebrow{color:#acccbb}.top3 h2{font-family:Georgia,serif;font-size:23px;font-weight:400;margin:2px 0 9px}.task{display:flex;gap:12px;align-items:flex-start;padding:14px 0;border-bottom:1px solid #ffffff24}.task:last-child{border-bottom:0;padding-bottom:4px}.task input{appearance:none;width:23px;height:23px;min-width:23px;border:1px solid #b8cec0;border-radius:7px;margin:2px 0 0;background:transparent;cursor:pointer}.task input:checked{appearance:auto;accent-color:#d8b86a}.task-title{font-size:14px;font-weight:600;line-height:1.45;overflow-wrap:anywhere}.task-meta{font-size:11px;line-height:1.5;margin-top:5px;color:var(--muted)}.top3 .task-meta{color:#b8d0c0}.tasks-list .task{border-color:var(--line)}.rank{font-size:10px;color:#a8c7b8;margin-bottom:4px}.periods{display:flex;background:#e6ebe2;padding:3px;border-radius:11px;gap:3px;margin:12px 0 17px}.periods button{flex:1;border:0;background:transparent;border-radius:8px;padding:10px 4px;color:#5c6e62;font-size:12px;min-height:38px}.periods button[aria-pressed=true]{background:#fff;box-shadow:0 1px 4px #243b2810;color:#163e34;font-weight:650}.metrics{display:grid;grid-template-columns:1fr 1fr;gap:18px 15px}.metric label{display:block;font-size:11px;line-height:1.35;color:var(--muted);margin-bottom:6px}.metric strong{font-size:23px;font-weight:600;letter-spacing:-.7px;overflow-wrap:anywhere}.metric small{display:block;font-size:10px;margin-top:5px;color:var(--muted)}.metric .positive{color:var(--green)}.metric .negative{color:var(--red)}.section-link{display:block;text-decoration:none;color:inherit}.info{font-size:11px;line-height:1.6;color:var(--muted);margin:17px 0 0}.notice,.warning{background:#f5eddb;color:#775520;border-radius:12px;padding:12px;font-size:12px;line-height:1.6}.warning{margin-top:14px}.notice{margin-bottom:15px}.quality{margin-top:14px;border-top:1px solid var(--line);padding-top:12px;font-size:12px;color:var(--amber)}.quality summary{cursor:pointer;min-height:28px}.quality ul{line-height:1.7;padding-left:19px}.signal{padding:12px 0;border-bottom:1px solid var(--line)}.signal:last-child{border:0}.signal .task-title{font-size:13px}.signal p{margin:5px 0;font-size:12px;line-height:1.5}.signal small{color:var(--muted);font-size:10px;line-height:1.5;display:block}.signal-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#bc8c38;margin-right:6px}.markets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.market-mini{padding:14px 10px;border-radius:14px;min-width:0}.market-mini h3{font-size:12px;margin-bottom:12px}.market-price{font-size:16px;font-weight:650;letter-spacing:-.4px;overflow-wrap:anywhere}.market-mini .muted{font-size:10px;margin-bottom:0}.pill{font-size:9px;font-weight:700;letter-spacing:.5px;border-radius:6px;padding:4px 6px;background:#e7eedf;color:#3b6147}.pill.amber{background:#f5ead1;color:var(--amber)}.project{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}.project:last-child{border:0;padding-bottom:0}.project:first-child{padding-top:0}.project-name{font-size:14px;font-weight:600;overflow-wrap:anywhere}.dot{margin-top:5px;width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0;background:#368167}.dot.amber{background:#bc8c38}.dot.red{background:var(--red)}.project-meta{display:flex;flex-wrap:wrap;gap:5px 13px;font-size:11px;color:var(--muted);margin-top:8px}.empty{font-size:13px;color:var(--muted);line-height:1.6}.login{padding:26px}.login h2{font-family:Georgia,serif;font-weight:400;font-size:29px;margin:12px 0}.login p,.login label{font-size:13px;line-height:1.6}.login label{display:block;margin-top:22px}.login input{width:100%;padding:12px;border-radius:9px;border:1px solid var(--line);margin:7px 0 15px}.primary{background:#153e36;color:white;border:0;border-radius:10px;padding:13px 18px;width:100%;min-height:44px}#loginError{color:var(--red)}footer{display:flex;justify-content:space-between;align-items:center;margin-top:28px;font-size:11px;color:var(--muted)}footer a{color:var(--muted)}nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:#fbfcf8f5;backdrop-filter:blur(15px);border-top:1px solid var(--line);padding:8px max(10px,calc((100vw - 720px)/2)) calc(10px + env(safe-area-inset-bottom));z-index:10}nav button{flex:1;min-width:0;background:none;border:0;color:#7b857b;font-size:10px;padding:6px 2px;min-height:48px}nav button span{display:block;font-size:21px;margin-bottom:4px;line-height:1}nav button[aria-current=page]{color:#153e36;font-weight:750}.sparkline{width:100%;height:65px;color:var(--green);margin:16px 0 4px}.screen-title{font-family:Georgia,serif;font-weight:400;font-size:27px;margin:8px 0 18px}.market-details{display:flex;gap:25px;margin-top:15px}.market-details label{font-size:11px;color:var(--muted);display:block;margin-bottom:5px}.market-details strong{font-size:15px}.range{font-size:11px;color:var(--muted);margin-bottom:14px}@media(min-width:600px){.app{padding:35px 30px 125px}.metrics{grid-template-columns:repeat(3,1fr)}h1{font-size:37px}.market-mini{padding:17px}.market-price{font-size:21px}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s ease}}

/* Daily mobile dashboard: stable touch targets, dense content, safe bottom space. */
.app{padding:12px 14px calc(var(--nav-height,74px) + env(safe-area-inset-bottom) + 24px)}header{margin-bottom:10px}.brand{margin-bottom:8px;font-size:9px;gap:7px;letter-spacing:1.2px}.brand-icon{width:21px;height:21px;border-radius:6px;font-size:13px}.heading{gap:8px}h1{font-size:22px;letter-spacing:-.35px;line-height:1.15}h2{font-size:16px;letter-spacing:-.2px}h3{font-size:14px}.eyebrow{font-size:9px;margin-bottom:4px}.icon-button{width:38px;height:38px;font-size:23px}#updated{font-size:10px;margin:5px 0 0;line-height:1.3}.notice{font-size:10px;line-height:1.35;padding:7px 9px;border-radius:8px;margin-bottom:10px}.section{margin:16px 0}.section-head{margin-bottom:6px}.text-button{padding:8px;font-size:11px;min-height:36px}.card{padding:13px;border-radius:14px;margin-top:7px}.top3{padding:12px 13px}.top3 h2{font-family:inherit;font-size:16px;font-weight:650;margin:0 0 3px}.task{padding:9px 0;gap:9px;min-height:44px}.task input{width:22px;height:22px;min-width:22px;margin:2px 0 0}.task-body{min-width:0;flex:1}.task-heading{display:flex;gap:7px;align-items:baseline}.rank{font-size:10px;margin:0;min-width:9px;flex-shrink:0}.task-title{font-size:13px;line-height:1.35}.task-meta{font-size:10px;line-height:1.3;margin:3px 0 0}.top3 .task-meta{padding-left:16px}.signal-brief{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-align:left;width:100%;padding:9px 0;border:0;border-bottom:1px solid var(--line);background:none;color:var(--amber);font-size:12px;line-height:1.4;cursor:pointer}.signal-brief:last-child{border-bottom:0}.markets{gap:7px}.market-mini{padding:11px 8px;min-width:0;margin-top:0;border-radius:12px}.market-mini h3{font-size:11px;margin-bottom:8px}.market-price{white-space:nowrap;overflow-wrap:normal;word-break:normal;font-variant-numeric:tabular-nums;font-size:22px;letter-spacing:-.6px;margin:5px 0}.market-mini .market-price{font-size:clamp(15px,4.15vw,18px);letter-spacing:-.5px}.market-change{font-size:11px;margin:7px 0 0;color:var(--muted)}.market-unit{font-size:10px;color:var(--muted);margin:2px 0 0;line-height:1.3}.market-mini .market-unit{font-size:9px}.market-mini .pill{display:inline-block;margin-top:5px;font-size:8px;padding:2px 4px}.market-full{padding:13px 14px}.market-full h3{font-size:13px}.market-details{gap:26px;margin-top:10px}.market-details label{font-size:10px;margin-bottom:3px}.market-details strong{font-size:14px}.market-full .info{font-size:10px;line-height:1.35;margin:8px 0 0}.sparkline{height:36px;margin:8px 0 0}.project{padding:10px 0;gap:8px}.project-name{font-size:12px;line-height:1.4}.project-meta{margin-top:5px;font-size:10px;gap:4px 9px}.project-summary{font-size:12px;margin:0 0 9px;line-height:1.5}.range{font-size:10px;margin:3px 0 7px}.sensey-brief{padding:0 12px}.branch-brief{padding:11px 0;border-bottom:1px solid var(--line);position:relative}.branch-brief h3{font-size:13px;display:inline-block;margin-right:8px}.report-state{font-size:10px;color:var(--muted)}.missing{font-size:10px;color:var(--amber)}.brief-numbers{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-top:7px}.brief-numbers label{display:block;font-size:10px;color:var(--muted);margin-bottom:3px}.brief-numbers strong{font-size:18px;letter-spacing:-.5px;font-weight:650;overflow-wrap:anywhere}.brief-total{padding:10px 0 12px;font-size:12px;font-weight:600}.metrics{gap:13px 12px;margin-top:12px}.metric strong{font-size:21px}.metric label{font-size:10px;margin-bottom:3px}.metric small{font-size:9px;margin-top:3px}.location-detail .report-state{margin:10px 0 0}.diagnostics{margin-top:13px}.diagnostics .info{margin-top:9px}.screen-title{font-family:inherit;font-size:20px;margin:8px 0 12px}.periods{margin:9px 0 10px}.periods button{padding:7px 3px;min-height:36px}.login h2{font-size:24px}.login input{font-size:16px}footer{margin-top:18px;min-height:44px}nav{padding-top:5px;padding-bottom:calc(5px + env(safe-area-inset-bottom))}nav button{min-height:48px;padding:4px 2px;font-size:10px}nav button span{font-size:19px;margin-bottom:4px}@media(min-width:600px){.app{padding-left:24px;padding-right:24px}h1{font-size:25px}.market-mini .market-price{font-size:22px}.brief-numbers strong{font-size:22px}}

.location-links{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:6px 0 9px}.locations-count{font-size:10px;color:var(--muted);margin-right:2px}.location-link{font-size:11px;padding:8px 11px;min-height:36px;border-radius:20px;background:#e6ebe2;border:1px solid var(--line);color:var(--green)}.location-detail{scroll-margin-top:12px}.sensey-overview{margin-bottom:10px;background:#ecf1e7}.sensey-overview h3{font-size:12px}.planning-action{margin:6px 0 12px}.planning-open{background:none;border:0;padding:8px 0;min-height:40px;text-align:left;color:var(--green);font-size:13px;font-weight:600}.planning-status{display:block;font-size:11px;color:var(--muted);margin-bottom:7px}.planning-editor{padding:12px;background:white;border:1px solid var(--line);border-radius:12px}.planning-editor select{width:100%;max-width:100%;font-size:16px}.project-statuses{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.project-status{font-size:10px;padding:3px 6px;border-radius:5px}.project-status.active{background:#e5eedf;color:#375b42}.project-status.paused{background:#ececea;color:#626861}.project-status.attention,.project-status.waiting{background:#f5ead1;color:var(--amber)}.quote-freshness{display:block;font-size:9px;color:var(--muted);margin-top:7px;line-height:1.3}.market-mini .pill{font-size:8px;letter-spacing:0}
