:root{
  --pink:#e94c82; --pink-2:#ffd6e4; --pink-3:#fff4f8; --ink:#343436; --muted:#70727a;
  --line:#e8e8ec; --surface:#ffffff; --bg:#fafafa; --shadow:0 20px 50px rgba(35,25,35,.08);
}
*{box-sizing:border-box} body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial;background:var(--bg);color:var(--ink)}
button{font:inherit} .app-shell{display:grid;grid-template-columns:88px 1fr;min-height:100vh}.sidebar{background:#fff;border-right:1px solid var(--line);padding:18px 14px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:10px;margin-bottom:28px}.brand-mark{width:34px;height:34px;border-radius:12px;background:linear-gradient(145deg,var(--pink),#f77ca5);color:#fff;display:grid;place-items:center;font-weight:900}.brand-text{display:none;color:var(--pink);font-weight:900;line-height:1}.brand-text span{font-size:12px}.nav{display:flex;flex-direction:column;gap:10px}.nav-item{height:54px;border:1px solid var(--line);background:#fff;border-radius:16px;display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer}.nav-item strong{display:none}.nav-item.active{border-color:var(--pink);background:var(--pink-2);color:#9b1240}.workspace{padding:22px 28px 0;overflow:hidden}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.eyebrow{color:var(--muted);font-size:14px}.topbar h1{font-size:32px;line-height:1;margin:0 0 6px}.topbar p{margin:0;color:var(--muted)}.top-actions{display:flex;gap:8px;align-items:center}.status-pill,.ghost-button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:10px 14px}.ghost-button{cursor:pointer}.tool-ribbon{display:flex;gap:8px;flex-wrap:wrap;background:#fff;border:1px solid var(--line);border-radius:18px;padding:10px;margin-bottom:14px;box-shadow:0 6px 22px rgba(0,0,0,.03)}.tool{border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 13px;display:flex;align-items:center;gap:8px;cursor:pointer;transition:.16s}.tool span:first-child{width:15px;height:15px;border-radius:50%;background:var(--c);border:1px solid rgba(0,0,0,.12);display:inline-block}.tool .xmark{background:transparent!important;border:none!important;color:#d11;font-weight:900;font-size:21px;line-height:12px}.tool.active{border-color:var(--pink);background:var(--pink-2);color:#9b1240;box-shadow:0 8px 18px rgba(233,76,130,.14)}.content-grid{display:grid;grid-template-columns:minmax(760px,1fr) 280px;gap:16px}.canvas-card,.inspector{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.canvas-card{min-height:620px}.canvas-header{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:18px 18px 12px}.canvas-header h2,.inspector h2{font-size:16px;margin:0 0 4px}.canvas-header p{margin:0;color:var(--muted)}.canvas-actions{display:flex;align-items:center;gap:6px}.seg,.icon-btn{border:1px solid var(--line);background:#fff;border-radius:14px;padding:10px 14px;cursor:pointer}.seg.active{background:var(--pink-2);border-color:var(--pink);color:#9b1240}.divider{height:28px;width:1px;background:var(--line);margin:0 4px}.icon-btn{width:38px;height:38px;padding:0}.zoom-label{min-width:48px;text-align:center;color:var(--muted)}.canvas-viewport{margin:0 18px 18px;border:1px dashed #f1c2d2;border-radius:18px;background:linear-gradient(180deg,#fff,#fff8fb);min-height:540px;overflow:auto;display:flex;align-items:flex-start;justify-content:center}.odontogram{transform-origin:top center;transition:transform .18s ease;padding:28px 20px 60px;min-width:980px}.arch-label{text-align:center;color:var(--pink);font-weight:900;margin:10px 0 14px}.tooth-row{display:flex;justify-content:center;gap:13px;margin-bottom:22px}.tooth-wrap{display:flex;flex-direction:column;align-items:center;gap:7px;transition:.16s}.tooth-wrap.selected{transform:translateY(-3px) scale(1.045);filter:drop-shadow(0 12px 14px rgba(233,76,130,.25))}.badge{background:var(--pink);color:#fff;border-radius:999px;min-width:34px;padding:2px 7px;font-size:12px;font-weight:800;text-align:center}.tooth{width:47px;height:47px;overflow:visible}.surface{fill:#fff;stroke:var(--pink);stroke-width:1.7;cursor:pointer;transition:fill .12s,stroke .12s,opacity .12s}.surface:hover{stroke:#b31452;stroke-width:2.4}.tooth-wrap.dim{opacity:.42}.surface[data-state="caries"]{fill:#d92d2d}.surface[data-state="fractura"]{fill:#ff8a00}.surface[data-state="resina"]{fill:#1267d8}.surface[data-state="amalgama"]{fill:#8e8e93}.surface[data-state="corona"]{fill:#d6a21d}.surface[data-state="endodoncia"]{fill:#1f1f24}.surface[data-state="implante"]{fill:#9b51e0}.surface[data-state="extraccion"]{fill:#ffffff}.surface[data-state="ausente"]{fill:#c8c8c8}.surface[data-state="sano"]{fill:#fff}.surface.extraction-mark+text{display:block}.inspector{padding:18px;height:max-content}.selected-card{display:flex;gap:12px;align-items:center;border:1px solid var(--line);border-radius:16px;padding:12px;margin:14px 0}.selected-number{width:56px;height:56px;border-radius:18px;background:var(--pink-2);color:#9b1240;display:grid;place-items:center;font-size:28px;font-weight:900}.selected-card p{margin:2px 0 0;color:var(--muted);font-size:13px}.mini-tooth{height:84px;display:grid;place-items:center;border-bottom:1px solid var(--line);margin-bottom:12px}.mini-tooth svg{width:74px;height:74px}.info-row{display:flex;justify-content:space-between;gap:8px;padding:12px 0;border-bottom:1px solid var(--line)}.info-row span{color:var(--muted)}.notes-label{display:block;margin:14px 0 8px;font-weight:800}textarea{width:100%;min-height:105px;border:1px solid var(--line);border-radius:14px;padding:12px;resize:vertical;font:inherit}.inspector h3{font-size:16px;margin:18px 0 8px}.history{margin:0;padding-left:18px;color:var(--muted);font-size:13px}.statusbar{margin-top:12px;background:#fff;border-top:1px solid var(--line);height:40px;display:flex;align-items:center;gap:18px;padding:0 8px;color:var(--muted);font-size:13px;position:sticky;bottom:0}.statusbar strong{color:var(--ink)}dialog{width:min(900px,90vw);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);padding:0}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line)}.dialog-header button{border:0;background:transparent;font-size:28px;cursor:pointer}pre{margin:0;padding:18px;max-height:65vh;overflow:auto;background:#111;color:#e7e7e7;font-size:12px}
@media (max-width:1100px){.content-grid{grid-template-columns:1fr}.inspector{order:2}.app-shell{grid-template-columns:74px 1fr}.workspace{padding:18px}.topbar{flex-direction:column}.canvas-card{min-height:560px}}
