:root{--color-bg:#f8f9fa;--color-surface:#fff;--color-text:#1f2937;--color-text-muted:#6b7280;--color-border:#e5e7eb;--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-danger:#dc2626;--alarm-expired-bg:#7f1d1d;--alarm-expired-text:#fff;--alarm-red-bg:#fee2e2;--alarm-red-text:#991b1b;--alarm-orange-bg:#ffedd5;--alarm-orange-text:#9a3412;--alarm-yellow-bg:#fef9c3;--alarm-yellow-text:#854d0e;--alarm-green-bg:#dcfce7;--alarm-green-text:#166534}*{box-sizing:border-box}html{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Malgun Gothic,맑은 고딕,Roboto,sans-serif}body{margin:0;background:var(--color-bg);color:var(--color-text);line-height:1.5}h1{font-size:1.375rem;margin:0 0 1rem}h1,h2{font-weight:600}h2{font-size:1.125rem;margin:1.5rem 0 .75rem}p{margin:0 0 .75rem}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}body>div{max-width:1100px;margin:0 auto;padding:1.5rem}nav{display:flex;gap:1.25rem;align-items:center;padding:0 0 1rem;margin-bottom:1.5rem;border-bottom:1px solid var(--color-border);font-size:.9rem}nav a{color:var(--color-text);font-weight:500}nav a:hover{color:var(--color-primary);text-decoration:none}table{width:100%;border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px;overflow:hidden;margin:0 0 1.5rem}thead th{background:#f1f5f9;color:var(--color-text-muted);font-size:.8rem;font-weight:600;text-align:left}tbody td,thead th{padding:.6rem .9rem;border-bottom:1px solid var(--color-border)}tbody td{font-size:.9rem}tbody tr:last-child td{border-bottom:none}tbody tr:hover{background:#f8fafc}td[data-alarm=expired]{background:var(--alarm-expired-bg);color:var(--alarm-expired-text);font-weight:600}td[data-alarm=red]{background:var(--alarm-red-bg);color:var(--alarm-red-text);font-weight:600}td[data-alarm=orange]{background:var(--alarm-orange-bg);color:var(--alarm-orange-text);font-weight:600}td[data-alarm=yellow]{background:var(--alarm-yellow-bg);color:var(--alarm-yellow-text)}td[data-alarm=green]{background:var(--alarm-green-bg);color:var(--alarm-green-text)}td[data-alarm=none]{color:var(--color-text-muted)}form{background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;padding:1.25rem;max-width:640px}form label{display:block;font-size:.85rem;font-weight:500;color:var(--color-text-muted);margin:.9rem 0 .3rem}form label:first-of-type{margin-top:0}fieldset{border:1px solid var(--color-border);border-radius:6px;padding:1rem;margin:0 0 1rem}legend{font-weight:600;font-size:.9rem;padding:0 .4rem}input,select,textarea{width:100%;padding:.5rem .65rem;font-size:.9rem;font-family:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:6px}input:focus,select:focus,textarea:focus{outline:2px solid var(--color-primary);outline-offset:-1px}textarea{min-height:4.5rem;resize:vertical}button{font-family:inherit;font-size:.9rem;font-weight:500;padding:.55rem 1.1rem;margin-top:1rem;color:#fff;background:var(--color-primary);border:none;border-radius:6px;cursor:pointer}button:hover{background:var(--color-primary-hover)}button:disabled{background:#cbd5e1;cursor:not-allowed}button[type=button]{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}button[type=button]:hover{background:#f1f5f9}[role=alert]{color:var(--color-danger);font-size:.85rem;margin:.5rem 0}body>div>* table,body>div>table{display:block;overflow-x:auto}