:root{color-scheme:light dark;--bg: #0b1020;--surface: #141b31;--surface-2: #1c2542;--border: #2a3559;--text: #eef1fb;--muted: #9aa6c7;--accent: #5b8cff;--accent-contrast: #0b1020;--danger: #ff6b6b;--ok: #4ade80;--radius: 14px;--shadow: 0 10px 30px rgba(0, 0, 0, .35);font-family:system-ui,-apple-system,Segoe UI,Roboto,Apple SD Gothic Neo,Noto Sans KR,sans-serif}@media(prefers-color-scheme:light){:root{--bg: #f4f6fb;--surface: #ffffff;--surface-2: #eef1f8;--border: #d7deee;--text: #141b31;--muted: #5a6488;--accent: #2f66e0;--accent-contrast: #ffffff;--danger: #d6336c;--ok: #16a34a;--shadow: 0 10px 30px rgba(20, 27, 49, .12)}}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text)}body{min-height:100dvh;-webkit-font-smoothing:antialiased}#app{max-width:720px;margin:0 auto;padding:20px 16px calc(28px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:16px}.app-header{display:flex;align-items:center;gap:12px;padding:4px 2px}.app-header img{width:40px;height:40px;border-radius:10px}.app-header h1{font-size:1.25rem;margin:0}.app-header p{margin:2px 0 0;color:var(--muted);font-size:.85rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px}.card>h2{font-size:1rem;margin:0}.card>.hint{margin:-4px 0 0;color:var(--muted);font-size:.82rem;line-height:1.5}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.row+.row{border-top:1px solid var(--border);padding-top:12px}.row .label{display:flex;flex-direction:column;gap:2px}.row .label .title{font-size:.92rem}.row .label .sub{color:var(--muted);font-size:.78rem}button{font:inherit;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:10px;padding:9px 14px;cursor:pointer;transition:filter .12s ease,transform .04s ease}button:active{transform:translateY(1px)}button:disabled{opacity:.55;cursor:not-allowed}button.primary{background:var(--accent);color:var(--accent-contrast);border-color:transparent}button.danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,transparent)}button:hover:not(:disabled){filter:brightness(1.06)}select,input[type=time]{font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:7px 10px}.switch{position:relative;width:46px;height:26px;flex:0 0 auto}.switch input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.switch .track{position:absolute;inset:0;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;transition:background .15s ease}.switch .track:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--muted);transition:transform .15s ease,background .15s ease}.switch input:checked+.track{background:color-mix(in srgb,var(--accent) 30%,var(--surface-2))}.switch input:checked+.track:after{transform:translate(20px);background:var(--accent)}.status-pill{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;padding:4px 10px;border-radius:999px;border:1px solid var(--border);color:var(--muted)}.status-pill .dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.status-pill.ok .dot{background:var(--ok)}.status-pill.warn .dot{background:var(--danger)}.device-list,.failure-list{display:flex;flex-direction:column;gap:10px}.device,.failure{border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:var(--surface-2);display:flex;align-items:center;justify-content:space-between;gap:10px}.device .meta,.failure .meta{display:flex;flex-direction:column;gap:2px;min-width:0}.device .meta .title{font-size:.9rem}.device .meta .sub,.failure .meta .sub{color:var(--muted);font-size:.76rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.failure .meta .sub{color:var(--danger)}.empty{color:var(--muted);font-size:.85rem;padding:6px 2px}.banner{border-radius:10px;padding:10px 12px;font-size:.85rem;border:1px solid var(--border);background:var(--surface-2)}.banner.error{border-color:color-mix(in srgb,var(--danger) 50%,transparent);color:var(--danger)}.banner.ok{border-color:color-mix(in srgb,var(--ok) 50%,transparent)}.actions{display:flex;flex-wrap:wrap;gap:10px}.field-group{display:flex;flex-direction:column;gap:6px}.field-group .field-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.field-group label{font-size:.82rem;color:var(--muted)}footer.note{color:var(--muted);font-size:.75rem;text-align:center;line-height:1.5}
