.app-layout{max-width:1000px;margin:auto;padding:20px 0 32px;color:#173b36}
.app-layout *{box-sizing:border-box}.app-layout h1{font-size:26px;margin:0 0 20px}.app-layout h2{font-size:19px;margin:0 0 10px}
.app-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.app-heading h1{margin:0}
.app-heading button,.app-button{font-size:14px;padding:10px 16px;min-height:44px;border-radius:12px;text-decoration:none}.app-button{background:#007e75;color:white;display:inline-flex;align-items:center;justify-content:center}
.app-auth{max-width:380px;margin:28px auto;text-align:center}.app-logo{width:88px;height:88px;border-radius:22px;display:block;margin:0 auto 12px}.app-wordmark{font-size:24px;font-weight:750;margin:0 0 30px;letter-spacing:-.5px}.app-auth h1{font-size:24px}.app-auth form{text-align:left}.app-auth label{display:block;margin:18px 0;font-size:14px;font-weight:550}.app-auth input{width:100%;margin-top:8px;background:white;border:1px solid #c8d9d4;border-radius:12px;min-height:52px;font-size:16px}.app-auth button{width:100%;margin-top:10px;min-height:52px;background:#007e75;border-radius:12px}.app-auth-link{display:inline-block;padding:20px;color:#006d65}.app-error{color:#9e2831;background:#fff0f1;border-radius:12px;padding:12px}
.app-dashboard{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding-bottom:24px}.app-metric{position:relative;min-width:0;background:white;border:1px solid #dce7e3;border-radius:18px;padding:16px;box-shadow:0 3px 12px #173b3606;margin:0}.app-metric .sensor-label{font-size:12px;color:#58716b;overflow-wrap:anywhere;padding-right:36px;min-height:16px}.app-metric h2{font-size:15px;margin:12px 0 8px;overflow-wrap:anywhere}.app-metric strong{font-size:32px;font-variant-numeric:tabular-nums;letter-spacing:-1px;font-weight:650}.app-metric .metric-unit{font-size:15px;color:#58716b;margin-left:5px}.app-metric .metric-time{font-size:11px;color:#71837e;margin:12px 0 0}.app-metric.stale{background:#f8faf9}.app-metric.warning{border-color:#d8a42d}.app-metric.critical{border-color:#b44748;background:#fff8f8}
.drag-handle{position:absolute;right:4px;top:4px;width:44px;height:44px;min-height:44px;min-width:44px;padding:8px;background:transparent;color:#7b918a;border:0;cursor:grab;touch-action:none;font-size:23px;user-select:none;-webkit-user-select:none}.drag-handle:active{cursor:grabbing}.app-metric.dragging{opacity:.3;border:2px dashed #007e75}.drag-ghost{position:fixed;z-index:1000;pointer-events:none;box-shadow:0 12px 34px #173b3630;transform:scale(1.03);opacity:.97}.card-order-controls{display:none;gap:8px;margin-top:12px}.app-dashboard.editing .card-order-controls{display:flex}.card-order-controls button{padding:6px 12px;min-height:40px;background:#e9f2ee;color:#24564a;font-size:18px;flex:1}.app-dashboard.editing .app-metric{outline:1px solid #b9d6cb}
.app-empty{padding:30px 16px;text-align:center;color:#60766f;grid-column:1/-1}.app-empty a{display:inline-block;margin-top:16px}
.app-sensor{padding:18px;margin:0 0 16px;border:1px solid #dce7e3;background:white;border-radius:18px}.app-sensor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.app-sensor h2{margin-bottom:5px}.app-sensor .model{margin:0;color:#617970;font-size:13px}.app-sensor .last-seen{font-size:12px;color:#617970;margin:12px 0}.sensor-values{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.sensor-values span{border-radius:8px;background:#f0f6f3;padding:8px 10px;font-size:13px}.dashboard-toggle{border-top:1px solid #edf2ef;padding-top:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:14px;margin:14px 0 0}.dashboard-toggle input{appearance:none;-webkit-appearance:none;flex:none;width:48px;height:28px;min-height:28px;border:0;border-radius:20px;background:#bdccc6;position:relative;padding:0;margin:0;transition:background .15s}.dashboard-toggle input:checked{background:#00877d}.dashboard-toggle input::after{content:'';position:absolute;width:22px;height:22px;top:3px;left:3px;border-radius:50%;background:white;box-shadow:0 1px 3px #0002;transition:transform .15s}.dashboard-toggle input:checked::after{transform:translateX(20px)}.dashboard-toggle input:focus-visible{outline:3px solid #005f57;outline-offset:3px}.dashboard-toggle input:disabled{opacity:.5}
.app-sensor details{margin-top:14px}.app-sensor summary{font-size:14px;padding:8px 0;cursor:pointer}.app-sensor dl{display:grid;grid-template-columns:100px minmax(0,1fr);font-size:13px;gap:8px}.app-sensor dd{margin:0;overflow-wrap:anywhere}.app-sensor dt{color:#60766f}.app-sensor-links{display:flex;gap:16px;flex-wrap:wrap;font-size:14px;margin-top:16px}.app-account{padding:22px;border:1px solid #dce7e3;background:white;border-radius:18px}.app-account p{overflow-wrap:anywhere;margin-bottom:0;color:#60766f}.app-account-links{background:white;border:1px solid #dce7e3;border-radius:18px;margin:20px 0;overflow:hidden}.app-account-links a{display:flex;justify-content:space-between;padding:18px;color:#173b36;text-decoration:none;border-bottom:1px solid #edf2ef}.app-account-links a:last-child{border:0}.app-account-links span{font-size:22px}.app-signout{width:100%;background:transparent;color:#a03939;border:1px solid #e4caca;border-radius:12px}
.native-app .app-layout{padding-top:8px}.native-app .app-heading h1,.native-app .app-layout>h1{display:none}.native-app .app-heading{justify-content:flex-end}.native-app .app-auth{margin-top:32px}.native-app #sensor-form{padding:0;border:0;box-shadow:none;background:transparent}.native-app .app-layout #sensor-form h2{font-size:22px}
@media(min-width:750px){.app-dashboard{grid-template-columns:repeat(3,minmax(0,1fr))}.app-layout{padding-left:24px;padding-right:24px}}@media(max-width:360px){.app-metric{padding:12px}.app-metric strong{font-size:27px}.app-metric .metric-unit{font-size:13px}.app-sensor dl{grid-template-columns:85px minmax(0,1fr)}}

.sensor-detail-link{font-size:19px;font-weight:650;text-decoration:none;color:inherit}.sensor-values span{font-size:20px;font-weight:600;flex:1}.sensor-values small{display:block;font-size:11px;font-weight:400;margin-bottom:5px}.app-sensor form{display:flex;gap:8px;margin-top:16px}.app-sensor form input{min-width:0;flex:1}.metric-choices{border:0;padding:16px 0}.metric-choices label{display:flex;gap:12px;align-items:center;padding:8px 0}.metric-choices input{width:22px;height:22px;min-height:22px}.sensor-search{display:block;margin-bottom:20px}.sensor-search input{display:block;width:100%;margin-top:6px}.app-metric .sensor-label{display:block;text-decoration:none}.card-order-controls{flex-wrap:wrap}.app-sensor-links{margin-bottom:18px}.native-app .app-layout[data-app-view="sensor"]>h1{display:block}
.share-choice{display:flex;align-items:center;gap:10px;margin:16px 0}.share-choice input{width:22px;height:22px;min-height:22px}.app-layout[data-app-view="share"] input[readonly],.app-layout[data-app-view="share"] textarea{width:100%}
.metric-history{display:block;width:100%;height:90px;margin:16px 0 6px}.metric-history polyline{fill:none;stroke:#007e75;stroke-width:2;vector-effect:non-scaling-stroke}.app-metric>small{display:block;color:#60766f;font-size:11px;margin:6px 0}
.app-sensor{padding:16px;margin-bottom:12px}.app-sensor>.sensor-values{margin:10px 0}.app-sensor>.last-seen{margin:6px 0}.app-sensor>details{margin-top:4px}.app-sensor>details>summary{padding:8px 0 0}.app-sensor>.sensor-values span{font-size:18px;white-space:nowrap}
.app-tabs{display:flex;gap:20px;flex-wrap:wrap;margin-bottom:24px;border-bottom:1px solid #dce7e3;padding-bottom:14px}.app-tabs a{font-weight:600;text-decoration:none}.native-app .app-tabs{display:none}

.sensor-state{display:block;font-size:.78rem;margin:-.2rem 0 .5rem}.sensor-state.warning{color:#785000}.sensor-state.critical{color:#a12020}.metric-state{display:block;margin:.4rem 0}

.app-metric{padding-bottom:52px}.metric-remove{position:absolute;bottom:4px;right:4px;width:44px;height:44px;min-height:44px;padding:0;background:transparent;color:#617970;font-size:24px;border:0}.metric-remove:hover{background:#eef4f1}.distance-notice{font-size:12px;line-height:1.5;color:#735523}.metric-remove:focus-visible{outline:2px solid #007e75;outline-offset:-3px}

.app-language{margin-top:16px}.app-language h2{font-size:16px}.app-language form{display:flex;gap:8px;margin-top:12px}.app-language button{flex:1;min-height:48px;border:1px solid #bdd1ca;border-radius:10px;background:#f0f5f3;color:#244b40}.app-language button[aria-pressed="true"]{background:#007e75;border-color:#007e75;color:#fff}.app-language button:focus-visible{outline:3px solid #173b36;outline-offset:3px}

.app-sensor>.sensor-values{gap:8px}.app-sensor>.sensor-values>span{min-width:max-content;padding:8px;flex:1}.app-sensor>.sensor-values small{font-size:10px;line-height:1.3;white-space:nowrap}
