:root { color-scheme: dark; /* Everforest dark (medium) — the fallback palette. theme.js overrides these with the browser theme's colors when Firefox/Zen exposes them. */ --bg: #2d353b; --panel: #343f44; --border: #475258; --text: #d3c6aa; --muted: #859289; --accent: #7fbbb3; --error: #e67e80; } * { box-sizing: border-box; } body { margin: 0; padding: 12px; font: 13px/1.45 system-ui, -apple-system, sans-serif; background: var(--bg); color: var(--text); } h1 { font-size: 15px; margin: 0; letter-spacing: 0.04em; } header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; } section { background: var(--panel); border: 1px solid var(--border); border-radius: 8px; padding: 10px; margin-bottom: 10px; } .rule-title { display: flex; align-items: center; gap: 6px; font-weight: 600; margin-bottom: 8px; } .row { display: flex; align-items: center; gap: 6px; margin-top: 4px; } .clause { display: flex; align-items: center; gap: 6px; margin-top: 6px; } .clause.off { opacity: 0.5; } /* Example rules stack their parts vertically inside the flex row. */ .clause.e { flex-wrap: wrap; align-items: flex-start; border-top: 1px solid var(--border); padding-top: 6px; } .clause.e .ehead { display: flex; align-items: center; gap: 6px; width: 100%; } .clause.e .examples { display: flex; flex-wrap: wrap; gap: 4px; width: 100%; margin: 6px 0 2px; } .chip { display: inline-flex; align-items: center; gap: 4px; background: var(--bg); border: 1px solid var(--border); border-radius: 10px; padding: 2px 6px; font-size: 12px; max-width: 100%; } .chip .chiptext { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 220px; color: var(--muted); } button.chiprm { background: none; border: none; color: var(--muted); padding: 0; font-size: 13px; line-height: 1; } button.chiprm:hover { color: var(--error); } .clause.e .eadd { display: flex; gap: 6px; width: 100%; margin-top: 4px; } button.exadd { background: var(--bg); border: 1px solid var(--border); color: var(--muted); padding: 4px 10px; font-size: 13px; flex: 0 0 auto; } button.exadd:hover { color: var(--accent); border-color: var(--accent); } .clause.e .ectl { display: flex; align-items: center; gap: 6px; width: 100%; margin-top: 6px; } .clause.e .ctl-label { color: var(--muted); font-size: 11px; flex: 0 0 auto; } .clause.e input.strict { flex: 1; min-width: 0; } .clause.e .hidepct { color: var(--muted); font-size: 11px; flex: 0 0 auto; min-width: 0; } .jevbadge { flex: 0 0 auto; background: rgba(230, 126, 128, 0.15); border: 1px solid var(--error); border-radius: 8px; color: var(--error); font-size: 10px; padding: 1px 6px; white-space: nowrap; } .clause .on { flex: 0 0 auto; } .clause select.dir { flex: 0 0 auto; } button.add { margin-top: 8px; background: var(--bg); border: 1px solid var(--border); color: var(--muted); padding: 4px 8px; font-size: 12px; } button.rm { background: none; border: none; color: var(--muted); padding: 0 4px; font-size: 16px; line-height: 1; flex: 0 0 auto; } button.rm:hover { color: var(--error); } .vs { color: var(--muted); } input[type="text"], input[type="password"], input:not([type]), select { flex: 1; min-width: 0; background: var(--bg); border: 1px solid var(--border); border-radius: 6px; color: var(--text); padding: 6px 8px; font: inherit; } input:focus, select:focus { outline: 1px solid var(--accent); } button { background: var(--accent); border: none; border-radius: 6px; color: #fff; padding: 6px 10px; font: inherit; cursor: pointer; } button:disabled { opacity: 0.5; cursor: default; } .master { display: flex; align-items: center; gap: 6px; font-weight: 600; color: var(--muted); } .master input:checked + span { color: var(--accent); } label { display: block; margin-bottom: 4px; } label.mode { display: flex; gap: 6px; align-items: baseline; color: var(--muted); font-size: 12px; margin-bottom: 6px; cursor: pointer; } label.mode input { flex: 0 0 auto; } label.mode b { color: var(--text); font-weight: 600; } label.mode span { flex: 1; } .hint { min-height: 1em; margin: 6px 0 0; color: var(--error); font-size: 12px; } .hint.ok { color: #4caf7d; } footer { color: var(--muted); } footer b { color: var(--text); } .error { color: var(--error); min-height: 1em; margin: 4px 0; } .note { font-size: 12px; }