:root{--bg: #f6f7f9;--card: #fff;--ink: #1c2733;--muted: #6b7a8c;--accent: #0b6e6e;--accent-ink: #fff;--danger: #b3261e;--line: #dde3ea;font-family:system-ui,Segoe UI,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}.hidden{display:none!important}#main-nav{display:flex;gap:.5rem;align-items:center;padding:.5rem .75rem;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0}#main-nav .brand{font-weight:700;color:var(--accent);margin-right:.5rem}#main-nav button{border:0;background:none;padding:.5rem .75rem;cursor:pointer;border-radius:8px;color:var(--muted)}#main-nav button.active{background:var(--accent);color:var(--accent-ink)}main{padding:1rem;max-width:900px;margin:0 auto}.auth-gate{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:var(--bg)}.auth-card{background:var(--card);padding:2rem;border-radius:12px;border:1px solid var(--line);display:flex;flex-direction:column;gap:.75rem;width:min(320px,90vw)}.auth-card input,.auth-card button{padding:.6rem;border-radius:8px;border:1px solid var(--line);font-size:1rem}.auth-card button{background:var(--accent);color:var(--accent-ink);border:0;cursor:pointer}.error{color:var(--danger);min-height:1em;margin:0;font-size:.85rem}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1rem;margin-bottom:1rem}.row{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.field{display:flex;flex-direction:column;gap:.25rem;margin-bottom:.6rem}.field label{font-size:.8rem;color:var(--muted)}.field input,.field select,.field textarea{padding:.5rem;border:1px solid var(--line);border-radius:8px;font-size:1rem}.chip,.tooth{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:.35rem .7rem;margin:.15rem;cursor:pointer}.chip.on,.tooth.on,.seg button.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.tooth{border-radius:6px;padding:.3rem .45rem;font-size:.8rem}.tooth-row{display:flex;flex-wrap:wrap}.chip-group-name{display:block;font-size:.75rem;color:var(--muted);margin-top:.5rem}.seg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.seg button{border:0;background:none;padding:.4rem .8rem;cursor:pointer}.toast{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);background:var(--ink);color:#fff;padding:.6rem 1rem;border-radius:8px;z-index:50}.toast.err{background:var(--danger)}.overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:40}.dialog{background:var(--card);border-radius:12px;padding:1.25rem;width:min(420px,92vw)}.btn-primary{background:var(--accent);color:var(--accent-ink);border:0;padding:.7rem 1.4rem;border-radius:8px;font-size:1rem;cursor:pointer}.btn-secondary{background:var(--card);border:1px solid var(--line);padding:.5rem 1rem;border-radius:8px;cursor:pointer}.btn-danger{background:var(--danger);color:#fff;border:0;padding:.5rem 1rem;border-radius:8px;cursor:pointer}.result{padding:.5rem;border-bottom:1px solid var(--line);cursor:pointer}.result:hover{background:var(--bg)}.muted{color:var(--muted);font-size:.85rem}.warn{color:var(--danger);font-weight:600}.link{border:0;background:none;color:var(--accent);cursor:pointer;text-decoration:underline}#icd-results:not(:empty){max-height:16rem;overflow-y:auto;border:1px solid var(--line);border-radius:8px;background:var(--card)}.conn-pill{position:fixed;bottom:1rem;right:1rem;z-index:60;padding:.4rem .9rem;border-radius:999px;font-size:.8rem;font-weight:600;color:#fff;box-shadow:0 2px 8px #0003;cursor:default}.conn-pill.ok{background:#1a7f37}.conn-pill.down{background:var(--danger)}.proc-line{align-items:center;gap:.5rem;padding:.3rem 0}.conn-wrap{position:fixed;top:3.6rem;right:1rem;z-index:60;display:flex;flex-direction:column;gap:.5rem;align-items:flex-end}.conn-wrap .conn-pill{font-size:1.05rem;padding:.65rem 1.3rem}@keyframes conn-pulse{0%,to{opacity:1}50%{opacity:.55}}@keyframes conn-alarm{0%,to{opacity:1}50%{opacity:.25}}.conn-pill.ok{animation:conn-pulse 2.5s ease-in-out infinite}.conn-pill.down{animation:conn-alarm .8s ease-in-out infinite}.conn-wrap .conn-pill{position:static}.conn-pill.na{background:var(--muted)}@media (max-width: 640px){main{padding:.6rem}#main-nav{overflow-x:auto}#main-nav button{padding:.55rem .6rem}.field input,.field select,.field textarea{font-size:16px}.row .field{flex:1 1 100%}.seg button{padding:.75rem .9rem}.chip{padding:.55rem .95rem;margin:.2rem}.result{padding:.85rem .5rem}.btn-primary{width:100%;padding:.95rem}.proc-line .p-note{flex:1 1 55%}.proc-line .p-teeth{flex:1 1 35%;width:auto!important}.conn-wrap{top:auto;bottom:.6rem;right:.6rem;flex-direction:row;gap:.35rem}.conn-wrap .conn-pill{font-size:.75rem;padding:.4rem .75rem}}
