@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600&display=swap";:root{--bg-base: #0c0c0c;--bg-panel: #141417;--bg-card: #19191d;--bg-input: #111114;--bg-hover: #1f1f24;--terminal-bg: #0a0a0a;--border: #2a2a2e;--border-focus: #4ecdc4;--text-primary: #c8c8c8;--text-secondary: #707070;--text-tertiary: #4a4a4a;--accent: #4ecdc4;--accent-dim: #2a8a84;--accent-pink: #c678dd;--accent-green: #4aff7a;--accent-green-dim: #1a4a1a;--accent-red: #ff6b6b;--font-mono: "JetBrains Mono", "Fira Code", "SF Mono", "Consolas", "Liberation Mono", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-mono);font-size:12px;color:var(--text-primary);background:var(--bg-base);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit;color:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}a{color:var(--accent);text-decoration:none}h2,h3{font-size:12px;font-weight:600}.app{min-height:100%;display:flex;flex-direction:column}.top-bar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;height:36px;padding:0 10px;padding-top:env(safe-area-inset-top);background:var(--bg-panel);border-bottom:1px solid var(--border)}.top-bar-right{display:flex;align-items:center;gap:8px}.brand{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;letter-spacing:2px;color:var(--accent)}.content{width:100%;max-width:720px;margin:0 auto;padding:12px 12px calc(32px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:20px}.panel{display:flex;flex-direction:column;gap:10px}.panel.status{background:var(--bg-card);border:1px solid var(--border);padding:12px;gap:12px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:28px}.section-head h2{display:flex;align-items:center;gap:6px;text-transform:uppercase;letter-spacing:1px;font-size:10px;color:var(--text-secondary)}.section-head .count{color:var(--accent)}.section-title{display:flex;flex-direction:column;gap:2px;text-align:left;min-width:0}.section-sub{font-size:10px;color:var(--text-tertiary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.section-toggle{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px;background:none;border:0;padding:4px 0;cursor:pointer;color:var(--text-secondary)}.section-toggle:hover h2{color:var(--text-primary)}.empty{color:var(--text-tertiary);font-size:11px;padding:10px 12px;border:1px dashed var(--border)}.loading{color:var(--text-tertiary);padding:20px;text-align:center}.small{font-size:10px}.center{text-align:center;justify-content:center}.text-accent{color:var(--accent)}.text-red{color:var(--accent-red)}.text-green{color:var(--accent-green)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.spacer{flex:1}.grow{flex:1;min-width:0}.row{display:flex;align-items:center;gap:6px}.icon{display:inline-block;vertical-align:-2px;flex-shrink:0}.btn{font-size:11px;padding:4px 10px;min-height:28px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:border-color .15s}.btn:hover{border-color:var(--accent-dim);color:var(--accent)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.small{padding:2px 8px;min-height:24px;font-size:10px}.btn-primary{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-dim)}.btn-primary:hover{background:var(--accent);color:var(--bg-base)}.btn-danger{color:var(--accent-red);border-color:transparent}.btn-danger:hover{border-color:var(--accent-red);color:var(--accent-red)}.btn-ghost{border-color:transparent}.btn-icon{padding:4px;min-width:28px;justify-content:center}.check{background:none;border:0;cursor:pointer;padding:4px;margin:-4px;display:inline-flex;color:var(--text-secondary)}.check:hover{color:var(--accent)}.chip{display:inline-flex;align-items:center;gap:4px;font-size:10px;padding:1px 6px;border:1px solid var(--border);color:var(--text-secondary);background:transparent;cursor:pointer}.chip.active{color:var(--accent);border-color:var(--accent-dim)}.chip.dep{max-width:100%;overflow:hidden}.chip.dep span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip.dep.waiting{color:#e5c07b;border-color:#5a4a2a}.chip.dep.decided{color:var(--accent-green);border-color:#2a5a2a}.form-group{display:flex;flex-direction:column;gap:4px}.form-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary)}.form-input,.form-select,.form-textarea{font-size:12px;padding:6px 10px;background:var(--bg-input);border:1px solid var(--border);color:var(--text-primary);outline:none;transition:border-color .15s;width:100%;min-height:32px}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent-dim)}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-tertiary)}.form-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.form-select.narrow{width:64px;flex-shrink:0;padding:6px}.form-textarea{resize:vertical}.error-box{color:var(--accent-red);font-size:11px;padding:6px 10px;border:1px solid var(--accent-red)}.login-wrap{min-height:100%;display:flex;align-items:center;justify-content:center;padding:16px}.login-card{background:var(--bg-card);border:1px solid var(--border);padding:24px;width:340px;max-width:100%;display:flex;flex-direction:column;gap:14px}.login-card .brand{justify-content:center;font-size:12px}.status-main{display:flex;flex-direction:column;gap:8px}.status-reading{display:flex;align-items:baseline;gap:6px}.status-reading .big{font-size:28px;font-weight:600;line-height:1}.status-reading .unit{font-size:14px;color:var(--text-secondary)}.status-meta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:10px;color:var(--text-secondary)}.chart{display:block;width:100%;height:118px;background:var(--terminal-bg);border:1px solid var(--border);touch-action:pan-y;-webkit-user-select:none;user-select:none}.chart-empty{display:flex;align-items:center;justify-content:center;color:var(--text-tertiary);font-size:10px}.chart svg{display:block}.chart text{font-family:var(--font-mono)}.chart-line{fill:none;stroke:var(--accent);stroke-width:1.5}.chart-area{fill:var(--accent);opacity:.08}.chart-above{fill:var(--accent-red);opacity:.05}.chart-band{fill:var(--accent-red);opacity:.14}.chart-grid,.chart-axis{stroke:var(--border);stroke-width:1}.chart-target{stroke:var(--text-secondary);stroke-width:1;stroke-dasharray:3 3}.chart-dot{fill:var(--accent)}.chart-tick{fill:var(--text-tertiary);font-size:9px}.chart-legend{fill:var(--accent-red);opacity:.7}.chart-end{fill:var(--accent);font-size:10px;font-weight:600}.chart-cross{stroke:var(--text-secondary);stroke-width:1}.chart-tip{fill:var(--bg-panel);stroke:var(--border)}.chart-tip-text{fill:var(--text-primary);font-size:9px}.range-toggle{display:inline-flex;gap:2px;margin-right:4px}.status-meta{align-items:center}.status-rows{list-style:none;display:flex;flex-direction:column}.status-rows li{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--border);color:var(--text-secondary)}.status-rows li:last-child{padding-bottom:0}.status-rows .row-label{width:92px;flex-shrink:0;font-size:10px;text-transform:uppercase;letter-spacing:1px}.status-rows .row-value{flex:1;color:var(--text-primary)}.status-rows .row-good .icon,.status-rows .row-good .row-value{color:var(--accent-green)}.status-rows .row-bad .icon,.status-rows .row-bad .row-value{color:var(--accent-red)}.card{background:var(--bg-card);border:1px solid var(--border);padding:12px;display:flex;flex-direction:column;gap:10px}.card-head{display:flex;align-items:flex-start;gap:8px}.card-head .icon{margin-top:1px}.card-head h3{line-height:1.4}.card-head h3{flex:1;min-width:0;overflow-wrap:anywhere}.card .details{font-size:11px;color:var(--text-secondary);display:flex;flex-direction:column;gap:6px;align-items:flex-start}.card-foot{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;border-top:1px solid var(--border);padding-top:8px;min-height:32px}.card-foot .btn-icon{margin-left:auto}.card.settled,.card.todo.done{opacity:.75}.card.todo.done h3{color:var(--text-secondary);text-decoration:line-through}.options{list-style:none;display:flex;flex-direction:column;gap:6px}.option{width:100%;display:flex;align-items:center;gap:8px;padding:8px;min-height:36px;text-align:left;background:var(--bg-input);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;transition:border-color .15s}.option:hover{border-color:var(--accent-dim)}.option.mine{border-color:var(--accent)}.option.mine .option-check{color:var(--accent)}.option-check{color:var(--text-secondary);display:inline-flex}.option-label{flex:1;min-width:0;overflow-wrap:anywhere}.option-votes{display:flex;align-items:center;gap:3px}.pip{width:8px;height:8px;border:1px solid var(--text-tertiary)}.pip.on{background:var(--accent-dim);border-color:var(--accent)}.voters{padding:3px 0 0 33px}.outcome{font-size:12px;padding:6px 8px;border:1px solid var(--accent-green-dim);background:var(--bg-input)}.outcome strong{color:var(--accent-green)}.steps{list-style:none;display:flex;flex-direction:column;border-top:1px solid var(--border)}.steps li{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;padding:8px 0;border-bottom:1px solid var(--border);color:var(--text-secondary);min-height:36px}.steps li .chip{flex:0 0 calc(100% - 22px);max-width:calc(100% - 22px);margin-left:22px}.steps li:last-child{border-bottom:0;padding-bottom:0}.steps li.next{color:var(--text-primary)}.steps li.next .check{color:var(--accent)}.steps li.done .step-label{text-decoration:line-through;color:var(--text-tertiary)}.step-label{flex:1;min-width:0;overflow-wrap:anywhere}.plan-card{gap:8px}.plan{display:block;max-width:100%}.plan-empty{display:flex;align-items:center;justify-content:center;height:80px;color:var(--text-tertiary);font-size:10px;border:1px dashed var(--border)}.plan text{font-family:var(--font-mono)}.plan-room{fill:var(--bg-input);stroke:var(--text-primary);stroke-width:1.5}.plan-dim{fill:var(--text-secondary);font-size:9px}.plan-label{fill:var(--text-primary);font-size:9px}.plan-zone{fill:var(--accent);fill-opacity:.08;stroke:var(--accent-dim);stroke-dasharray:3 3}.plan-marker{fill:var(--accent)}.plan-opening{stroke-width:5;stroke:var(--accent)}.plan-opening.window{stroke:#61afef}.plan-opening.sleeve,.plan-opening.hole{stroke:#e5c07b}.plan-preview{display:flex;justify-content:center;background:var(--bg-input);border:1px solid var(--border);padding:6px;overflow-x:auto}.facts{gap:0;padding:0}.facts-group{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--accent);padding:8px 12px 6px;border-bottom:1px solid var(--border)}.fact{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border-bottom:1px solid var(--border)}.fact:last-child{border-bottom:0}.fact-label{font-size:10px;color:var(--text-secondary)}.fact-value{background:none;border:0;text-align:left;padding:0;color:var(--text-primary);font-size:12px;line-height:1.45;cursor:pointer;white-space:pre-wrap;overflow-wrap:anywhere}.fact-value:hover{color:var(--accent)}.fact.missing .fact-label{color:#e5c07b}.fact-edit{display:flex;flex-direction:column;gap:6px}.row.wrap{flex-wrap:wrap}.form-input.num{width:64px;flex:0 0 64px;padding:6px}@media (min-width: 600px){.modal.wide{max-width:640px}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:flex-end;justify-content:center;z-index:1000}.modal{background:var(--bg-panel);border:1px solid var(--border);width:100%;max-width:480px;max-height:92vh;display:flex;flex-direction:column}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:6px 6px 6px 14px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid var(--border)}.modal-body{padding:14px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.modal-footer{padding:10px 14px calc(10px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:8px;border-top:1px solid var(--border)}@media (min-width: 600px){.modal-overlay{align-items:center}.modal{max-height:90vh}}
