:root{--nav:#102a43;--nav2:#173f5f;--blue:#087ea4;--cyan:#16a3b6;--bg:#f3f7fa;--text:#17324d;--muted:#6b7f92;--line:#dce6ed;--white:#fff;--red:#c73535;--amber:#fff3cd;--shadow:0 8px 26px rgba(28,60,86,.08)}*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--text);background:var(--bg)}body{margin:0;font-size:15px}a{color:#08779c;text-decoration:none}button,.button{border:0;border-radius:8px;background:var(--blue);color:white;padding:.72rem 1rem;font:inherit;font-weight:700;cursor:pointer;display:inline-block}.ghost{background:white;color:var(--blue);border:1px solid #b8d3de}.icon{background:transparent;color:var(--text);font-size:1.7rem;padding:0}aside{position:fixed;inset:0 auto 0 0;width:230px;background:linear-gradient(180deg,var(--nav),var(--nav2));color:white;padding:22px 14px;display:flex;flex-direction:column;z-index:4}.logo{color:white;display:flex;gap:10px;align-items:center;padding:0 8px 24px}.logo span,.brand-mark{width:42px;height:42px;border-radius:10px;background:var(--cyan);display:grid;place-items:center;color:#fff;font-weight:900;letter-spacing:-1px}.logo b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}nav{display:grid;gap:5px}aside nav a{color:#d9e8f2;padding:11px 14px;border-radius:8px}aside nav a:hover,aside nav a.active{background:rgba(255,255,255,.12);color:#fff}.user{margin-top:auto;border-top:1px solid rgba(255,255,255,.15);padding:18px 10px 0}.user a{display:block;color:#9ed9e5;margin-top:5px}.app{margin-left:230px;min-height:100vh}.app>header{height:86px;padding:17px 30px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:15px}.app>header h1{font-size:1.35rem;margin:0}.app>header p{margin:4px 0;color:var(--muted)}main{padding:28px;max-width:1400px;margin:auto}.menu{display:none;padding:6px 10px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stats article{background:white;border:1px solid var(--line);border-radius:12px;padding:18px;box-shadow:var(--shadow)}.stats span{display:block;color:var(--muted);margin-bottom:8px}.stats strong{font-size:1.65rem}.panel{background:white;border:1px solid var(--line);border-radius:12px;padding:20px;box-shadow:var(--shadow);overflow:auto}.panel h2,.panel h3{margin-top:0}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 16px}.toolbar h2{font-size:1.15rem;margin:0}.search{display:flex;gap:8px;flex:1;max-width:560px}.search input{margin:0}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:13px 12px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}tr:last-child td{border-bottom:0}.empty{text-align:center;color:var(--muted);padding:35px}.badge{display:inline-block;background:#e2f4f7;color:#126373;padding:4px 8px;border-radius:99px;font-size:.78rem;font-weight:700}.badge.danger{background:#fde7e7;color:var(--red)}label{display:block;font-weight:650;margin-bottom:14px}input,select,textarea{display:block;width:100%;margin-top:6px;padding:.72rem;border:1px solid #bfcfd9;border-radius:7px;background:#fff;color:var(--text);font:inherit}textarea{resize:vertical;min-height:80px}form button{margin-top:3px}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid-form{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.grid-form .wide{grid-column:1/-1}.actions{text-align:right}.actions button{margin-left:8px}dialog{border:0;border-radius:14px;width:min(620px,calc(100% - 30px));padding:24px;color:var(--text);box-shadow:0 22px 65px rgba(10,35,55,.28)}dialog::backdrop{background:rgba(7,25,38,.55)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.dialog-head h2{margin:0}.alert{padding:13px 15px;border-radius:8px;background:#dcf5e8;color:#12623b;margin-bottom:18px}.alert.error{background:#fde5e5;color:#982525}.alert.warning{background:var(--amber);color:#74580d}.tabs{display:flex;gap:5px;overflow-x:auto;margin-bottom:20px}.tabs a{padding:9px 13px;border-radius:7px;background:white;border:1px solid var(--line);white-space:nowrap}.tabs a.active{background:var(--blue);color:#fff;border-color:var(--blue)}.patient-hero{background:linear-gradient(125deg,#0a7194,#0d9aaa);color:white;border-radius:14px;padding:25px;display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.patient-hero h2{font-size:1.7rem;margin:5px 0}.patient-hero p{margin:0}.patient-hero .button{background:white;color:#086c8c}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.muted{color:var(--muted)}.timeline{position:relative;margin-left:100px}.timeline:before{content:"";position:absolute;left:-25px;top:0;bottom:0;width:2px;background:#bad8e1}.timeline article{position:relative;background:white;border:1px solid var(--line);border-radius:10px;padding:18px;margin-bottom:14px}.timeline article:before{content:"";position:absolute;left:-32px;top:20px;width:12px;height:12px;border-radius:50%;background:var(--cyan);border:3px solid var(--bg)}.timeline time{position:absolute;right:calc(100% + 42px);width:100px;text-align:right;color:var(--muted);font-size:.8rem}.timeline h3{margin:0 0 8px}.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.cards .toolbar{border-bottom:1px solid var(--line);padding-bottom:10px}.odontogram{padding:25px 5px}.teeth{display:grid;grid-template-columns:repeat(16,1fr);gap:6px;margin:18px 0}.tooth{background:#f5fafc;color:var(--text);border:1px solid #c8dbe3;padding:8px 2px}.tooth span{display:block;font-size:1.6rem}.tooth.caries{background:#fee2e2;color:#a92929}.tooth.tratado{background:#dceeff;color:#126096}.tooth.ausente{opacity:.35;text-decoration:line-through}.legend{display:flex;gap:10px;flex-wrap:wrap}.legend span{padding:5px 10px;border-radius:6px;background:#f0f5f8}.legend .caries{background:#fee2e2}.legend .treated{background:#dceeff}.legend .missing{opacity:.5}.steps{padding-left:22px}.steps li{padding:8px}hr{border:0;border-top:1px solid var(--line);margin:25px 0}.login-body{min-height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,#1da9b7 0,transparent 32%),linear-gradient(140deg,#0d2740,#0b5975)}.login-card{width:min(410px,calc(100% - 30px));background:white;padding:35px;border-radius:18px;box-shadow:0 25px 65px rgba(0,0,0,.27)}.login-card .brand-mark{margin:auto;width:58px;height:58px;font-size:1.2rem}.login-card h1{text-align:center;margin:15px 0 4px}.login-card>p,.login-card>small{text-align:center;color:var(--muted);display:block}.login-card form{margin:25px 0 15px}
@media(max-width:900px){aside{transform:translateX(-100%);transition:.2s}.nav-open aside{transform:none}.app{margin-left:0}.menu{display:block}.stats{grid-template-columns:1fr 1fr}.grid-2,.cards{grid-template-columns:1fr}.teeth{grid-template-columns:repeat(8,1fr)}main{padding:18px}.patient-hero{align-items:flex-start;gap:18px;flex-direction:column}.timeline{margin-left:0}.timeline:before,.timeline article:before{display:none}.timeline time{position:static;display:block;width:auto;text-align:left;margin-bottom:6px}}
@media(max-width:560px){.stats{grid-template-columns:1fr}.toolbar{align-items:stretch;flex-direction:column}.search{width:100%}.grid-form,.row{grid-template-columns:1fr}.grid-form .wide{grid-column:auto}.app>header{padding:14px 18px}table{min-width:620px}.teeth{grid-template-columns:repeat(4,1fr)}}
.hero-actions{display:flex;gap:10px;align-items:center}.patient-hero .ghost{background:transparent;color:white;border-color:rgba(255,255,255,.7)}.inline-form{display:inline}.inline-form button{padding:0;background:transparent;color:#08779c}.nowrap{white-space:nowrap}.rx-row{display:grid;grid-template-columns:minmax(240px,2fr) 110px minmax(180px,1.3fr) auto;gap:10px;align-items:end;padding:10px 0;border-bottom:1px solid var(--line)}.rx-row label{margin:0}.danger-link{background:transparent;color:var(--red);padding:.7rem}
@media(max-width:560px){.hero-actions{align-items:stretch;flex-direction:column}.rx-row{grid-template-columns:1fr}}
