:root{--p:#6b2d8f;--p2:#54206f;--g:#86a83f;--ink:#211c27;--muted:#736b7c;--bg:#f7f5f9;--card:#fff;--line:#e9e4ed;--red:#c43b3b;--orange:#b96b1f;--green:#2e8b57;--shadow:0 12px 32px rgba(54,28,66,.08)}*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}body{margin:0;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}.hidden{display:none!important}.auth{min-height:100dvh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at top right,#edf5df,transparent 35%),radial-gradient(circle at bottom left,#eee4f4,transparent 40%),#faf9fb}.login-card{width:min(420px,100%);background:#fff;border:1px solid var(--line);border-radius:28px;padding:30px;box-shadow:var(--shadow);text-align:center}.login-logo{width:112px;height:112px;object-fit:contain;border-radius:24px;background:#000}.login-card h1{margin:16px 0 5px}.login-card p,.login-card small{color:var(--muted)}.stack{display:grid;gap:13px;margin-top:22px;text-align:left}label{display:grid;gap:6px;font-size:.88rem;font-weight:700}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:13px;padding:11px 12px;background:#fff;color:var(--ink)}textarea{min-height:90px;resize:vertical}input:focus,select:focus,textarea:focus{outline:3px solid rgba(107,45,143,.1);border-color:var(--p)}.btn{border:0;border-radius:13px;padding:10px 14px;font-weight:750;cursor:pointer}.primary{background:var(--p);color:#fff}.primary:hover{background:var(--p2)}.secondary{background:#eef5e4;color:#315b1f}.ghost{background:#fff;color:var(--p);border:1px solid var(--line)}.danger{background:#fff0f0;color:var(--red)}.shell{min-height:100dvh;display:grid;grid-template-columns:252px 1fr;grid-template-rows:72px 1fr;grid-template-areas:"top top" "side main"}.top{grid-area:top;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 20px;position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:12px}.brand img{width:42px;height:42px;border-radius:12px;background:#000;object-fit:contain}.brand div{display:grid}.brand small{color:var(--muted);font-size:.76rem}.user{display:flex;align-items:center;gap:10px}.sidebar{grid-area:side;background:#fff;border-right:1px solid var(--line);padding:16px 10px;position:sticky;top:72px;height:calc(100dvh - 72px);overflow:auto}.nav-title{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:#9b91a4;font-weight:800;padding:12px 11px 5px}.nav{width:100%;border:0;background:transparent;text-align:left;border-radius:13px;padding:10px 11px;margin:2px 0;font-weight:650;color:var(--ink);cursor:pointer}.nav:hover,.nav.active{background:#f2ebf6;color:var(--p)}.main{grid-area:main;padding:24px;min-width:0}.main footer{text-align:center;color:var(--muted);font-size:.75rem;padding:34px 0 80px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:18px}.page-head h1{font-size:1.85rem;margin:0 0 5px}.sub{color:var(--muted);font-size:.86rem}.actions,.toolbar,.chips{display:flex;gap:9px;flex-wrap:wrap}.toolbar{background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px;margin-bottom:14px}.toolbar>*{flex:1;min-width:150px}.cards{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:13px}.card{background:#fff;border:1px solid var(--line);border-radius:19px;padding:17px;box-shadow:0 4px 16px rgba(50,25,61,.035)}.metric{min-height:118px;display:grid;align-content:space-between}.metric strong{font-size:2rem}.metric span{color:var(--muted);font-size:.88rem}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.section{margin-top:16px}.section h2{font-size:1.08rem;margin:0 0 10px}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:17px}.table{border-collapse:collapse;width:100%;min-width:760px}.table th,.table td{padding:12px 13px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.table th{font-size:.72rem;text-transform:uppercase;color:var(--muted);background:#fcfbfd}.table tbody tr:hover{background:#fcfbfd}.badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:#f0edf2;font-size:.75rem;font-weight:750}.badge.good{background:#e8f6ee;color:#26724a}.badge.warn{background:#fff4df;color:#8f5a16}.badge.bad{background:#fde9e9;color:#a32e2e}.patient-link{font-weight:800;color:var(--p);cursor:pointer}.whats{display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:#1f7a46;font-weight:750}.empty{text-align:center;color:var(--muted);padding:35px}.agenda-grid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:10px;overflow:auto}.day{background:#fff;border:1px solid var(--line);border-radius:16px;min-height:280px;padding:10px}.day h3{font-size:.88rem;margin:0 0 9px}.appt{border-left:4px solid var(--p);background:#f8f4fb;border-radius:11px;padding:9px;margin-bottom:8px;cursor:pointer}.appt strong{display:block;font-size:.85rem}.appt small{color:var(--muted)}.tabs{display:flex;gap:6px;overflow:auto;margin-bottom:14px}.tab{white-space:nowrap;border:1px solid var(--line);background:#fff;border-radius:999px;padding:9px 12px;font-weight:700;cursor:pointer}.tab.active{background:var(--p);color:#fff;border-color:var(--p)}.patient-hero{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.patient-hero h1{margin:0}.odonto{display:grid;grid-template-columns:repeat(8,1fr);gap:8px}.tooth{padding:12px 5px;border:1px solid var(--line);background:#fff;border-radius:12px;text-align:center;cursor:pointer;font-weight:750}.tooth.has{background:#fff4df;border-color:#efd5a5}.kanban{display:grid;grid-template-columns:repeat(6,minmax(230px,1fr));gap:12px;overflow:auto}.column{background:#f1eef3;border-radius:16px;padding:10px;min-height:380px}.column h3{font-size:.86rem;margin:3px 3px 10px}.lead{background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:9px}.lead strong{display:block}.lead small{color:var(--muted)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.money{font-variant-numeric:tabular-nums}.mobile-nav{display:none}.toast{position:fixed;right:18px;bottom:18px;background:#211c27;color:#fff;padding:12px 15px;border-radius:13px;z-index:99;box-shadow:var(--shadow)}.toast.error{background:#8e2929}dialog{border:0;border-radius:22px;width:min(700px,calc(100vw - 24px));padding:0;box-shadow:0 24px 80px rgba(0,0,0,.28)}dialog::backdrop{background:rgba(22,14,26,.45)}#dialogBody{padding:24px}.x{position:absolute;right:10px;top:8px;background:transparent;border:0;font-size:1.7rem;cursor:pointer}.list{display:grid;gap:9px}.list-item{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff}.small{font-size:.78rem;color:var(--muted)}pre.doc{white-space:pre-wrap;font:inherit;background:#fbfafc;padding:14px;border-radius:13px;border:1px solid var(--line)}
@media(max-width:1200px){.cards{grid-template-columns:repeat(3,1fr)}.grid3{grid-template-columns:1fr 1fr}}
@media(max-width:900px){.shell{display:block;padding-bottom:72px}.top{height:64px}.sidebar{display:none}.main{padding:14px}.user #userName{display:none}.cards{grid-template-columns:1fr 1fr}.grid2,.grid3,.form-row{grid-template-columns:1fr}.mobile-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;background:rgba(255,255,255,.96);border-top:1px solid var(--line);padding:7px max(7px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(7px,env(safe-area-inset-left));z-index:30}.mnav{border:0;background:transparent;color:var(--muted);padding:7px 3px;font-size:.7rem;font-weight:750}.mnav span{display:block;font-size:1.2rem;margin-bottom:2px}.mnav.active{color:var(--p)}.agenda-grid{display:block}.day{min-height:unset;margin-bottom:10px}.page-head{align-items:flex-start}.page-head h1{font-size:1.5rem}.patient-hero{display:block}.patient-hero .actions{margin-top:10px}.odonto{grid-template-columns:repeat(4,1fr)}.kanban{grid-template-columns:repeat(6,82vw)}}
@media(max-width:520px){.cards{grid-template-columns:1fr 1fr}.metric{min-height:100px}.metric strong{font-size:1.6rem}.toolbar>*{min-width:100%}.main{padding:11px}.card{padding:14px}.login-card{padding:22px}.actions .btn{flex:1}.odonto{grid-template-columns:repeat(4,1fr)}}
