*{box-sizing:border-box}body{color:#1a1a1a;background:#f4f5f7;margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif}.page{flex-direction:column;min-height:100vh;display:flex}main{flex:1;width:100%;max-width:480px;margin:0 auto;padding:1rem 1rem 5rem}h1{margin:.5rem 0 1rem;font-size:1.4rem}.error{color:#b3261e}.group-section{margin-bottom:1.5rem}.group-bar{background:#e4e7ee;border-radius:10px;margin-bottom:.5rem;padding:.75rem}.group-label{margin-bottom:.5rem;font-weight:600;display:block}.card{background:#fff;border-radius:10px;margin-bottom:.5rem;padding:.75rem;box-shadow:0 1px 3px #00000014}.card-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.card-title{font-weight:600}.badge{background:#ddd;border-radius:999px;padding:.15rem .5rem;font-size:.75rem}.badge-open{color:#1e6b1e;background:#d8f0d8}.badge-closed{color:#8a1e1e;background:#f0d8d8}.badge-shaded{color:#8a5e1e;background:#f0e7d8}.badge-unknown{color:#555;background:#e2e2e2}.button-row{flex-wrap:wrap;gap:.4rem;display:flex}button{color:#fff;cursor:pointer;background:#2b5fd9;border:none;border-radius:8px;flex:1;min-width:4.5rem;padding:.6rem .5rem;font-size:.9rem}button:disabled{cursor:default;background:#a9b6d9}.toggle-row{background:#fff;border-radius:10px;justify-content:space-between;align-items:center;margin-bottom:.5rem;padding:.85rem;display:flex;box-shadow:0 1px 3px #00000014}.toggle-title{font-weight:600}.toggle-subtitle{color:#666;margin-top:.2rem;font-size:.75rem}.toggle-row input[type=checkbox]{width:2.4rem;height:1.4rem}.navbar{background:#fff;border-top:1px solid #ddd;gap:.4rem;padding:.4rem;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-link{text-align:center;color:#333;cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;padding:.6rem;font-size:.85rem;text-decoration:none}.nav-link.active{background:#e4e7ee;font-weight:600}.nav-link.logout{color:#b3261e}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-form{background:#fff;border-radius:12px;flex-direction:column;gap:.75rem;width:100%;max-width:320px;padding:1.5rem;display:flex;box-shadow:0 2px 10px #0000001a}.login-form h1{text-align:center;margin:0 0 .5rem}.settings-section{background:#fff;border-radius:10px;margin-bottom:1rem;padding:.85rem;box-shadow:0 1px 3px #00000014}.settings-section h2{margin:0 0 .5rem;font-size:1.05rem}.sun-path-chart{width:100%;height:auto;margin-bottom:.5rem}.chart-horizon{stroke:#ccc;stroke-width:1px}.chart-curve{stroke:#e8a33d;stroke-width:2px}.chart-threshold-line{stroke:#2b5fd9;stroke-width:1px;stroke-dasharray:4 3}.chart-now-line{stroke:#b3261e;stroke-width:1px}.chart-axis-label{fill:#888;font-size:8px}.chart-marker-label{fill:#2b5fd9;font-size:8px}.threshold-slider{margin-bottom:.6rem;display:block}.threshold-slider-header{justify-content:space-between;margin-bottom:.2rem;font-size:.85rem;display:flex}.threshold-slider-value{font-weight:600}.threshold-slider input[type=range]{width:100%}.time-field{justify-content:space-between;align-items:center;margin-bottom:.6rem;font-size:.85rem;display:flex}.time-field input[type=time]{border:1px solid #ccc;border-radius:6px;padding:.3rem}.login-form input{border:1px solid #ccc;border-radius:8px;padding:.7rem;font-size:1rem}
