:root{font-family:SF Pro Text,SF Pro Display,Helvetica Neue,sans-serif;color:#211d18;background:#f5f1ea;line-height:1.45;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--bg: #f5f1ea;--panel: #fffdf9;--panel-border: #d9d1c5;--text: #211d18;--muted: #6d6357;--accent: #8a5a38;--accent-dark: #714526;--danger: #b1493d;--success: #2f6b48}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--bg);color:var(--text)}button,input,select{font:inherit}button{cursor:pointer}select{padding:10px 12px;border:1px solid #c9c0b2;border-radius:8px;background:#fff;color:var(--text)}#root{min-height:100vh}.screen{min-height:100vh;padding:24px 24px 100px}.app-shell{width:min(100%,920px);margin:0 auto}.toolbar,.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:10px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px;margin-bottom:16px}.toolbar-actions,.row{display:flex;align-items:center}.toolbar-actions{gap:8px;flex-wrap:wrap}.content-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.panel{padding:22px}.panel-copy{display:grid;gap:6px}.app-name,.section-title{margin:0;font-size:1rem;font-weight:600}.toolbar-note,.section-copy,.app-note,dt{margin:0;color:var(--muted)}.stack{display:grid;gap:16px}.field{display:grid;gap:8px}.field span{font-size:.95rem;font-weight:500}.field input,.field select{width:100%;padding:11px 12px;border:1px solid #c9c0b2;border-radius:8px;background:#fff;color:var(--text)}.field input:focus,.field select:focus,.slider:focus{outline:2px solid rgba(138,90,56,.2);outline-offset:1px}.primary-button,.secondary-button,.nav-button,.stimulus-button{border-radius:8px;border:1px solid transparent;transition:background-color .14s ease,border-color .14s ease,color .14s ease}.primary-button{padding:11px 14px;background:var(--accent);color:#fff}.primary-button:hover:not(:disabled){background:var(--accent-dark)}.secondary-button,.nav-button,.stimulus-button{padding:10px 12px;background:#fff;border-color:#cfc6b8;color:var(--text)}.nav-button.active{border-color:var(--accent);color:var(--accent-dark)}.danger{color:var(--danger);border-color:#ddb8b2}.primary-button:disabled,.secondary-button:disabled,.nav-button:disabled,.stimulus-button:disabled{opacity:.6;cursor:default}.spread{justify-content:space-between}.gap{gap:10px;flex-wrap:wrap}.detail-list{display:grid;gap:14px;margin:18px 0 0}.detail-list div{display:flex;justify-content:space-between;gap:16px;padding-top:14px;border-top:1px solid #ebe4da}.detail-list.compact{gap:8px;margin:12px 0 0}.detail-list.compact div{padding-top:8px}dd{margin:0;font-weight:500}.slider{width:100%;margin:18px 0 8px;accent-color:var(--accent)}.stimulus-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}.notice{margin:0;padding:10px 12px;border-radius:8px;border:1px solid}.notice.error{color:#7b2d24;border-color:#e6c0bb;background:#fff5f4}.notice.success{color:#204b33;border-color:#bfd7c6;background:#f4fbf6}.notice.warning{color:#735629;border-color:#e5d2aa;background:#fff9ee}.notice.neutral{color:var(--muted);border-color:#ddd4c7;background:#faf7f1}.status{display:inline-flex;align-items:center;min-height:32px;padding:0 10px;border:1px solid #d3c9bc;border-radius:8px;font-size:.92rem;white-space:nowrap}.status.success{color:var(--success);border-color:#b7d2c1}.status.muted{color:var(--muted)}.status.overdue{color:var(--danger);border-color:#ddb8b2}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:0;background:var(--panel);border-top:1px solid var(--panel-border);padding:6px 0;padding-bottom:max(6px,env(safe-area-inset-bottom));z-index:100}.bottom-nav-item{flex:1;max-width:100px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 4px 4px;background:none;border:none;color:var(--muted);font-size:.72rem;transition:color .14s ease}.bottom-nav-item.active{color:var(--accent)}.bottom-nav-icon{font-size:1.3rem;line-height:1}.bottom-nav-label{font-weight:500}.view-content{min-height:60vh}.task-card{transition:border-color .14s ease}.task-overdue{border-color:#ddb8b2}.preset-card{padding:12px 0;border-bottom:1px solid #ebe4da}.preset-card:last-child{border-bottom:none}.escalation-steps{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.escalation-step{display:flex;align-items:center;gap:6px;padding:5px 10px;border-radius:6px;background:#f5f1ea;font-size:.85rem}.step-type{font-weight:600;text-transform:uppercase;font-size:.75rem;padding:2px 6px;border-radius:4px;color:#fff}.step-zap{background:var(--danger)}.step-vibe{background:var(--accent)}.step-beep{background:var(--success)}.step-delay{color:var(--muted);font-size:.8rem}.interval-preview{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}.interval-chip{display:flex;align-items:center;gap:6px;padding:5px 10px;border-radius:6px;border-left:4px solid var(--accent);background:#f5f1ea;font-size:.85rem}.interval-stimulus{color:var(--muted);font-size:.8rem}.interval-form-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.interval-form-row input,.interval-form-row select{padding:8px 10px;border:1px solid #c9c0b2;border-radius:6px;background:#fff;color:var(--text)}.active-timer{border-radius:16px;padding:60px 24px;text-align:center;color:#fff;transition:background-color .4s ease}.timer-label{margin:0;font-size:1.1rem;font-weight:500;opacity:.9}.timer-countdown{margin:16px 0;font-size:5rem;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-2px;line-height:1}.timer-meta{margin:0;font-size:.9rem;opacity:.8}.log-table-wrapper{overflow-x:auto;padding:0}.log-table{width:100%;border-collapse:collapse;font-size:.88rem}.log-table th{text-align:left;padding:12px 16px;font-weight:600;color:var(--muted);border-bottom:1px solid var(--panel-border);white-space:nowrap}.log-table td{padding:10px 16px;border-bottom:1px solid #f0ebe3}.log-table tbody tr:last-child td{border-bottom:none}.capitalize{text-transform:capitalize}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.status-dot.success{background:var(--success)}.status-dot.error{background:var(--danger)}.control-page{max-width:480px;margin:0 auto}.control-connection{display:flex;align-items:center;gap:8px;padding:10px 16px;background:var(--panel);border:1px solid var(--panel-border);border-radius:10px;margin-bottom:20px}.conn-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.conn-ble{background:var(--success)}.conn-cloud{background:var(--accent)}.conn-off{background:#c9c0b2}.conn-label{flex:1;font-size:.88rem;color:var(--muted)}.conn-button{padding:5px 12px;font-size:.82rem;background:#fff;border:1px solid #cfc6b8;border-radius:6px;color:var(--text);cursor:pointer}.intensity-section{margin-bottom:24px}.intensity-presets{display:flex;gap:6px;margin-bottom:12px}.preset-button{flex:1;padding:12px 0;background:var(--panel);border:2px solid var(--panel-border);border-radius:10px;font-size:1rem;font-weight:600;color:var(--text);transition:all .12s ease}.preset-button:hover{border-color:var(--accent)}.preset-active{background:var(--accent);border-color:var(--accent);color:#fff}.intensity-slider-row{display:flex;align-items:center;gap:12px}.intensity-slider-row .slider{flex:1;margin:0}.intensity-value{font-size:1.1rem;font-weight:700;font-variant-numeric:tabular-nums;min-width:42px;text-align:right;color:var(--accent-dark)}.stimulus-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.stim-btn{padding:20px 0;border:none;border-radius:12px;font-size:1.05rem;font-weight:600;color:#fff;cursor:pointer;transition:opacity .12s ease,transform 80ms ease}.stim-btn:active:not(:disabled){transform:scale(.97)}.stim-btn:disabled{opacity:.6;cursor:default}.stim-vibe{background:var(--accent)}.stim-beep{background:var(--success)}.stim-zap{background:var(--danger)}.confirm-banner{text-align:center;padding:20px;background:#fff5f4;border:1px solid #e6c0bb;border-radius:12px}.confirm-text{margin:0 0 14px;font-size:1.05rem;font-weight:600}.stim-status{margin:14px 0 0;text-align:center;font-size:.9rem;color:var(--muted)}.scan-results{margin-top:8px}.scan-service{margin:8px 0;padding:10px 12px;background:#f5f1ea;border-radius:8px}.scan-uuid{margin:0 0 6px;font-family:monospace;font-size:.82rem;font-weight:600;word-break:break-all}.scan-char{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:4px 0;border-top:1px solid #e8e1d7}.scan-char code{font-size:.75rem;color:var(--muted);word-break:break-all}.scan-props{font-size:.75rem;color:var(--accent);white-space:nowrap}.led-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}.led-button{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;background:#fff;border:1px solid #cfc6b8;border-radius:8px;font-size:.8rem;cursor:pointer;transition:border-color .14s ease}.led-button:hover:not(:disabled){border-color:var(--accent)}.led-button:disabled{opacity:.6;cursor:default}.led-swatch{display:block;width:24px;height:24px;border-radius:50%;background-color:var(--led-color, #333);border:1px solid rgba(0,0,0,.15)}@media(max-width:760px){.screen{padding:16px 16px 100px}.toolbar,.content-grid{grid-template-columns:1fr}.toolbar{align-items:flex-start;flex-direction:column}.stimulus-grid{grid-template-columns:1fr}.timer-countdown{font-size:3.5rem}}
