/* Onli Infra — one quiet system (same kit as Onli Legal). Warm paper, ink text, one accent. */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap');
:root{--bg:#f6f5f2;--bg2:#fbfaf8;--fg:#17171a;--fg2:#4b4b52;--mute:#8a8a93;--line:#e6e3dc;--card:#ffffff;--soft:#f0eee8;--accent:#3b4ccf;--accent-soft:#e8ebfb;--ok:#2f8f5b;--warn:#b8641b;--shadow:0 1px 2px rgba(20,20,30,.05),0 6px 20px rgba(20,20,30,.05);--r:12px}
:root[data-theme=dark],@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111113;--bg2:#161618;--fg:#ededf0;--fg2:#b9b9c2;--mute:#7d7d88;--line:#26262b;--card:#1a1a1e;--soft:#202025;--accent:#8b96ff;--accent-soft:#232848;--shadow:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.35)}}
*{box-sizing:border-box}html,body{margin:0;height:100%}
body{background:var(--bg);color:var(--fg);font:14.5px/1.55 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--fg);border-radius:10px;padding:8px 12px;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;line-height:1.2;transition:background .15s,border-color .15s,transform .05s}
button:hover{background:var(--soft)}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:default;transform:none}
button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.primary:hover{filter:brightness(1.08)}
button.ghost{border-color:transparent;background:transparent;color:var(--fg2)}button.ghost:hover{background:var(--soft);color:var(--fg)}
button.icon{padding:8px;border-radius:9px}
input,textarea,select{font:inherit;color:var(--fg);background:var(--card);border:1px solid var(--line);border-radius:10px;padding:10px 12px;width:100%;outline:none;transition:border-color .15s,box-shadow .15s}
input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
svg.i{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
.mute{color:var(--mute)}.fg2{color:var(--fg2)}.small{font-size:12.5px}
.top{display:flex;align-items:center;gap:10px;padding:0 20px;height:56px;border-bottom:1px solid var(--line);background:var(--bg2)}
.brand{display:flex;align-items:center;gap:9px;font-weight:600;letter-spacing:-.01em}
.brand .mark{width:26px;height:26px;border-radius:8px;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:600}
.wrap{max-width:760px;margin:0 auto;padding:36px 20px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
pre{white-space:pre-wrap;font:inherit;margin:0}
.pill{font-size:11.5px;padding:2px 8px;border-radius:999px;background:var(--soft);color:var(--fg2);display:inline-flex;align-items:center;gap:5px}
.pill.ok{background:#e6f4ec;color:var(--ok)}.pill.warn{background:#fbeede;color:var(--warn)}.pill.accent{background:var(--accent-soft);color:var(--accent)}
@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}
@keyframes pulse{0%,100%{opacity:.35}50%{opacity:1}}.dots span{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--mute);margin-right:3px;animation:pulse 1.2s infinite}.dots span:nth-child(2){animation-delay:.2s}.dots span:nth-child(3){animation-delay:.4s}
