:root{--color-primary: #2563eb;--color-primary-bg: #eff6ff;--color-success: #15803d;--color-success-bg: #f0fdf4;--color-warning: #b45309;--color-warning-bg: #fffbeb;--color-danger: #b91c1c;--color-danger-bg: #fef2f2;--color-surface: #ffffff;--color-surface-sunken: #f8fafc;--color-border: #e2e8f0;--color-text: #0f172a;--color-text-muted: #64748b;--radius: 10px;color-scheme:light}*{box-sizing:border-box}body{margin:0;font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--color-text);background:var(--color-surface-sunken)}h1,h2,h3{margin:0 0 .5rem;line-height:1.25}h1{font-size:1.4rem}h2{font-size:1.15rem}h3{font-size:1rem}button{font:inherit;cursor:pointer;border-radius:8px;border:1px solid var(--color-border);background:var(--color-surface);padding:.45rem .8rem}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}button.on-present{background:var(--color-success-bg);border-color:var(--color-success);color:var(--color-success);font-weight:600}button.on-absent{background:var(--color-danger-bg);border-color:var(--color-danger);color:var(--color-danger);font-weight:600}input,select,textarea{font:inherit;padding:.4rem .55rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);color:inherit;width:100%}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:1rem;overflow:hidden}.card>header{padding:.7rem 1rem;border-bottom:1px solid var(--color-border);display:flex;gap:.75rem;align-items:baseline;flex-wrap:wrap}.card>.body{padding:1rem}.muted{color:var(--color-text-muted)}.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.grow{flex:1 1 auto;min-width:0}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:.45rem .5rem;border-bottom:1px solid var(--color-border);vertical-align:top}th{font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-muted)}.note{padding:.6rem .8rem;border-radius:8px;margin:.5rem 0}.note.warn{background:var(--color-warning-bg);color:var(--color-warning)}.note.bad{background:var(--color-danger-bg);color:var(--color-danger)}.note.good{background:var(--color-success-bg);color:var(--color-success)}.note.info{background:var(--color-primary-bg);color:var(--color-primary)}.tag{font-size:.75rem;padding:.1rem .45rem;border-radius:999px;background:var(--color-surface-sunken);border:1px solid var(--color-border);color:var(--color-text-muted)}.wrap{max-width:1000px;margin:0 auto;padding:1rem}
