:root{--bg:#f6f5f2;--surface:#fff;--ink:#1b1a17;--muted:#6b675e;--line:#e2ded5;--accent:#1f5f4f;--accent-soft:#e8f1ee;--danger:#9b2c2c;--warn:#8a5a00;--radius:10px;--shadow:0 1px 2px #1b1a170f, 0 8px 24px #1b1a170d}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:Segoe UI,Noto Naskh Arabic,Amiri,system-ui,sans-serif;font-size:15px;line-height:1.7}a{color:var(--accent)}button{font:inherit;cursor:pointer;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:.5rem 1rem}button.primary{background:var(--accent);border-color:var(--accent);color:#fff}button:disabled{opacity:.55;cursor:not-allowed}input,textarea,select{font:inherit;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:100%;color:var(--ink);padding:.55rem .7rem}textarea{resize:vertical;min-height:9rem;line-height:1.9}header.app{background:var(--surface);border-bottom:1px solid var(--line);z-index:10;align-items:center;gap:1.25rem;padding:.85rem 1.5rem;display:flex;position:sticky;top:0}header.app .brand{font-size:1.05rem;font-weight:700}header.app nav{align-items:center;gap:.5rem;margin-inline-start:auto;display:flex}header.app nav .who{color:var(--muted);font-size:.85rem}main{max-width:62rem;margin:0 auto;padding:1.75rem 1.5rem 4rem}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1.25rem;padding:1.25rem}h1{margin:0 0 1rem;font-size:1.4rem}h2{margin:0 0 .75rem;font-size:1.05rem}.muted{color:var(--muted);font-size:.88rem}.row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.stack>*+*{margin-top:.85rem}.badge{border:1px solid var(--line);background:var(--bg);color:var(--muted);border-radius:999px;padding:.1rem .55rem;font-size:.78rem;display:inline-block}.badge.ok{background:var(--accent-soft);color:var(--accent);border-color:#0000}.badge.failed{color:var(--danger);background:#fbeaea;border-color:#0000}.badge.running{color:var(--warn);background:#fff6e5;border-color:#0000}.badge.human{color:#2c4a9b;background:#eef2fb;border-color:#0000}.error{color:var(--danger);border-radius:var(--radius);background:#fbeaea;border:1px solid #f0cccc;padding:.7rem .9rem}.notice{background:var(--accent-soft);border-radius:var(--radius);border:1px solid #cfe3dd;padding:.7rem .9rem;font-size:.9rem}.book-row{border-bottom:1px solid var(--line);color:inherit;padding:.9rem 0;text-decoration:none;display:block}.book-row:last-child{border-bottom:none}.book-row:hover .title{color:var(--accent)}.book-row .title{font-weight:600}.book-row .preview{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:.2rem;font-size:.88rem;display:-webkit-box;overflow:hidden}.coverage{flex-wrap:wrap;gap:1.5rem;display:flex}.coverage .metric .value{font-size:1.3rem;font-weight:600}.coverage .metric .label{color:var(--muted);font-size:.8rem}.meter{background:var(--line);border-radius:999px;height:8px;margin-top:.5rem;overflow:hidden}.meter>span{background:var(--accent);height:100%;display:block}.login-wrap{place-items:center;min-height:100vh;padding:1.5rem;display:grid}.login-wrap .card{width:min(24rem,100%);margin:0}.chunk-table{border-collapse:collapse;width:100%;font-size:.88rem}.chunk-table th,.chunk-table td{text-align:start;border-bottom:1px solid var(--line);padding:.45rem .6rem}.chunk-table th{color:var(--muted);font-weight:600}.field-value{white-space:pre-wrap}.tag-list{flex-wrap:wrap;gap:.4rem;display:flex}
