:root{
    --bg:var(--theme-primary-surface-1);--panel:#ffffff;--text:var(--clinic-primary-950);--muted:var(--clinic-primary);--line:var(--theme-primary-surface-2);
    --blue:var(--clinic-primary-800);--blue-2:var(--clinic-primary-800);--teal:var(--clinic-secondary-700);--teal-soft:var(--theme-secondary-surface-2);
    --red:#d64a4a;--green:#159a6a;--yellow:#c88900;--shadow:0 18px 45px rgba(var(--clinic-primary-rgb),.08);
}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,Arial,sans-serif}.app-shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh}.sidebar{background:#fff;border-right:1px solid var(--line);padding:24px;display:flex;flex-direction:column;gap:22px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px}.brand-logo{width:44px;height:44px;border-radius:16px;background:linear-gradient(135deg,var(--blue),var(--teal));display:grid;place-items:center;color:white;font-weight:900;font-size:24px;box-shadow:0 12px 30px rgba(var(--clinic-secondary-rgb),.25)}.brand strong{display:block;font-size:21px}.brand span{display:block;color:var(--muted);font-size:12px}.brand.big .brand-logo{width:58px;height:58px;font-size:30px}.brand.big strong{font-size:28px}.menu{display:grid;gap:6px}.menu a,.logout{color:var(--clinic-primary-950);text-decoration:none;padding:11px 12px;border-radius:13px;font-weight:700;font-size:14px}.menu a:hover{background:var(--theme-primary-surface-1);color:var(--blue)}.logout{margin-top:auto;background:var(--theme-primary-surface-1);text-align:center}.main{padding:28px;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.topbar h1{margin:0;font-size:32px}.topbar p{margin:6px 0 0;color:var(--muted)}.top-actions,.actions,.card-head{display:flex;gap:12px;align-items:center}.card-head{justify-content:space-between;margin-bottom:16px}.btn{border:0;text-decoration:none;border-radius:12px;padding:11px 15px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--clinic-primary-950)}.btn-primary{background:linear-gradient(135deg,var(--blue),var(--teal));color:white;box-shadow:0 10px 24px rgba(var(--clinic-primary-rgb),.18)}.btn-soft{background:var(--theme-primary-surface-2);color:var(--blue)}.btn-danger{background:#ffecec;color:#b52323}.btn-mini{padding:7px 10px;font-size:12px}.full{width:100%}.hero-panel{background:linear-gradient(135deg,var(--clinic-primary-800),var(--clinic-secondary-700));color:white;border-radius:26px;padding:28px;display:flex;justify-content:space-between;align-items:center;box-shadow:var(--shadow);margin-bottom:20px}.hero-panel h2{font-size:30px;margin:6px 0}.hero-panel p{color:var(--theme-secondary-surface-2)}.eyebrow{font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:900;color:var(--theme-secondary-surface-3)}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin-bottom:20px}.metric-grid.compact{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.metric,.card,.patient-header{background:var(--panel);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow)}.metric{padding:18px}.metric span{color:var(--muted);font-size:13px}.metric strong{display:block;margin-top:8px;font-size:27px;color:var(--blue)}.metric.success strong{color:var(--green)}.metric.danger strong{color:var(--red)}.metric.warning strong{color:var(--yellow)}.card{padding:22px;margin-bottom:20px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}table{width:100%;border-collapse:collapse}th,td{padding:14px 10px;border-bottom:1px solid var(--line);text-align:left;font-size:14px;vertical-align:middle}th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}td small{display:block;color:var(--muted);margin-top:4px}.pill{background:var(--teal-soft);color:var(--clinic-secondary-700);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:900;display:inline-block}.pill.danger{background:#ffecec;color:#b52323}.form{display:grid;gap:15px}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.item-line{grid-template-columns:2fr 1fr 1fr}.section-title{font-weight:900;color:var(--blue);margin-top:8px}label{font-weight:800;font-size:13px;color:var(--clinic-primary-950);display:grid;gap:7px}input,select,textarea{width:100%;border:1px solid var(--line);background:var(--theme-primary-surface-1);border-radius:12px;padding:12px;font:inherit;outline:none}input:focus,select:focus,textarea:focus{border-color:var(--teal);box-shadow:0 0 0 4px rgba(var(--clinic-secondary-rgb),.10)}textarea{min-height:95px}.check{display:flex;align-items:center;gap:10px}.check input{width:auto}.search-row{display:flex;gap:10px;align-items:center;width:100%}.search-row input,.search-row select{max-width:440px}.patient-header{padding:22px;display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;margin-bottom:18px}.avatar-lg{width:68px;height:68px;border-radius:22px;background:linear-gradient(135deg,var(--blue),var(--teal));display:grid;place-items:center;color:white;font-size:34px;font-weight:900}.patient-header h2{margin:0}.patient-header p{color:var(--muted)}.patient-actions{display:flex;gap:10px;flex-wrap:wrap}.tabs{display:flex;gap:8px;background:white;border:1px solid var(--line);border-radius:18px;padding:8px;margin-bottom:18px;box-shadow:var(--shadow);overflow:auto}.tabs a{padding:10px 13px;text-decoration:none;color:var(--clinic-primary-800);border-radius:12px;font-weight:900;font-size:14px;white-space:nowrap}.tabs a.active{background:linear-gradient(135deg,var(--blue),var(--teal));color:white}.details-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 18px}.timeline{border-left:4px solid var(--teal);background:var(--theme-primary-surface-1);padding:12px;border-radius:12px;margin-bottom:10px}.inline{display:inline-flex;gap:6px;align-items:center}.inline input,.inline select{width:80px;padding:7px}.inline button{border:0;border-radius:8px;background:var(--theme-primary-surface-2);color:var(--blue);font-weight:800;padding:7px}.status-row{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.status-row button{border:0;border-radius:10px;padding:10px 12px;background:var(--theme-primary-surface-2);color:var(--blue);font-weight:900}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.feature-grid span{background:var(--theme-primary-surface-1);border:1px solid var(--line);padding:14px;border-radius:14px;font-weight:800}.teeth-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:10px}.tooth{height:72px;background:var(--theme-primary-surface-1);border:1px solid var(--theme-primary-surface-3);border-radius:16px;display:grid;place-items:center;text-align:center}.tooth span{font-weight:900;color:var(--blue)}.tooth small{font-size:10px;color:var(--muted)}.tooth.marked{background:var(--teal-soft);border-color:var(--teal)}.print-doc{max-width:850px;margin:auto}.doc-body{white-space:pre-line;line-height:1.8}.dot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:7px}.green{background:#44c765}.blue{background:var(--clinic-primary)}.purple{background:#a465d2}.orange{background:#ff9a62}.teal{background:var(--clinic-secondary-700)}.cyan{background:var(--theme-secondary-mid)}.yellow{background:#b5b51d}.login-page{min-height:100vh;background:radial-gradient(circle at top left,var(--clinic-secondary-700) 0,var(--clinic-primary-800) 42%,var(--clinic-primary-950) 100%);display:grid;place-items:center}.login-hero{width:min(1050px,92vw);display:grid;grid-template-columns:1.2fr 420px;gap:34px;align-items:center}.login-copy{color:white}.login-copy h1{font-size:44px;line-height:1.05}.login-copy p{font-size:18px;color:var(--theme-secondary-surface-3)}.login-card{background:white;border-radius:26px;padding:30px;box-shadow:0 25px 80px rgba(0,0,0,.25);display:grid;gap:14px}.alert{background:#ffecec;color:#a51d1d;padding:10px;border-radius:12px;font-weight:700}
@media(max-width:1000px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.grid-2,.form-grid,.details-grid,.login-hero{grid-template-columns:1fr}.patient-header{grid-template-columns:1fr}.main{padding:18px}.topbar{display:block}.top-actions{margin-top:12px}.teeth-grid{grid-template-columns:repeat(4,1fr)}}@media print{.sidebar,.topbar,.no-print,.actions{display:none!important}.main{padding:0}.app-shell{display:block}.card{box-shadow:none;border:0}}

.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.alert-card{background:#fff2f2;color:#9f1d1d;border-color:#ffd3d3;font-weight:800}
.public-page{background:linear-gradient(135deg,var(--theme-primary-surface-1),var(--theme-secondary-surface-2));min-height:100vh;padding:34px}
.public-proposal{max-width:980px;margin:0 auto}
.accepted-box{background:#e8fbf0;color:#107448;padding:18px;border-radius:16px;font-weight:900;text-align:center;margin-top:16px}
.finance-hero{background:linear-gradient(135deg,var(--clinic-primary-950),var(--clinic-secondary-700))}
code{background:var(--theme-primary-surface-2);padding:6px 8px;border-radius:8px;color:var(--clinic-primary-800)}


/* Odontograma visual */
.soft-subtitle{color:var(--muted);margin:4px 0 0}
.odonto-toolbar{justify-content:space-between;align-items:end;flex-wrap:wrap}
.toolbar-actions{display:flex;gap:10px;flex-wrap:wrap}
.empty-hero{display:flex;gap:18px;align-items:center}
.empty-hero-icon{width:72px;height:72px;border-radius:24px;background:linear-gradient(135deg,var(--blue),var(--teal));display:grid;place-items:center;font-size:34px;color:#fff;box-shadow:var(--shadow)}
.odonto-grid-main{align-items:start}
.mouth-board{background:linear-gradient(180deg,#fff 0,var(--theme-primary-surface-1) 100%);border:1px solid var(--line);border-radius:28px;padding:20px;position:relative;overflow:hidden}
.mouth-board:before{content:'';position:absolute;inset:16px;pointer-events:none;border-radius:30px;background:radial-gradient(circle at center, rgba(var(--clinic-secondary-rgb),.04), transparent 60%)}
.jaw{position:relative;padding:10px 10px 14px;border-radius:24px}
.upper-jaw{background:linear-gradient(180deg,#fff7fb,var(--theme-primary-surface-1));border:1px solid #ebdff1}
.lower-jaw{background:linear-gradient(180deg,var(--theme-primary-surface-1),#fff8fb);border:1px solid var(--theme-primary-surface-2)}
.jaw-label{font-size:13px;font-weight:900;color:var(--muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:.06em}
.mouth-divider{display:flex;justify-content:center;align-items:center;margin:16px 0}
.mouth-divider span{font-size:12px;font-weight:900;color:var(--muted);background:#fff;padding:8px 14px;border-radius:999px;border:1px solid var(--line)}
.teeth-arch{display:grid;grid-template-columns:1fr 44px 1fr;gap:12px;align-items:start}
.arch-side{display:grid;grid-template-columns:repeat(8,minmax(44px,1fr));gap:10px}
.arch-gap{height:1px}
.tooth-card{position:relative;border:0;background:transparent;padding:0;cursor:pointer;display:grid;gap:7px;justify-items:center}
.tooth-number{font-size:11px;font-weight:900;color:var(--clinic-primary-800)}
.tooth-shape{width:100%;aspect-ratio:0.78;border:1px solid var(--theme-primary-surface-3);background:linear-gradient(180deg,#ffffff,var(--theme-primary-surface-1));box-shadow:0 10px 18px rgba(var(--clinic-primary-rgb),.08);position:relative;transition:.18s ease;border-radius:36% 36% 26% 26%/28% 28% 40% 40%;min-height:58px}
.tooth-card.top .tooth-shape{border-radius:40% 40% 24% 24%/24% 24% 42% 42%}
.tooth-card.bottom .tooth-shape{border-radius:24% 24% 40% 40%/42% 42% 24% 24%}
.tooth-card.has-record .tooth-shape{background:linear-gradient(180deg,#ffffff,var(--theme-secondary-surface-2));border-color:var(--theme-secondary-soft)}
.tooth-card:hover .tooth-shape{transform:translateY(-2px) scale(1.02);box-shadow:0 16px 26px rgba(var(--clinic-primary-rgb),.12);border-color:var(--teal)}
.tooth-markers{position:absolute;inset:20px 6px 18px;display:flex;flex-wrap:wrap;gap:4px;justify-content:center;align-content:center;pointer-events:none}
.tooth-marker{width:20px;height:20px;border-radius:999px;display:grid;place-items:center;font-size:12px;font-weight:900;color:#fff;box-shadow:0 6px 14px rgba(0,0,0,.12)}
.tooth-marker.planejado,.tooth-marker.em-andamento,.tooth-marker.realizado{outline:2px solid rgba(255,255,255,.85)}
.tooth-marker.planejado{box-shadow:0 0 0 2px rgba(255,255,255,.95),0 6px 14px rgba(0,0,0,.1)}
.tooth-marker.realizado{box-shadow:0 0 0 2px rgba(var(--clinic-secondary-rgb),.18),0 6px 14px rgba(0,0,0,.1)}
.tooth-marker.em-andamento{box-shadow:0 0 0 2px rgba(255,154,98,.18),0 6px 14px rgba(0,0,0,.1)}
.tooth-marker.carie{background:var(--clinic-primary-950)}.tooth-marker.restauracao{background:#20b274}.tooth-marker.canal{background:var(--theme-primary-mid)}.tooth-marker.extracao{background:#e24747}.tooth-marker.implante{background:#8c58d7}.tooth-marker.coroa{background:#d8a31c}.tooth-marker.protese{background:#de7b59}.tooth-marker.ausente{background:var(--theme-primary-mid)}.tooth-marker.limpeza{background:var(--clinic-secondary-700)}.tooth-marker.clareamento{background:#f0bf3e;color:#7d5600}.tooth-marker.fratura{background:#ff7b6b}.tooth-marker.avaliacao{background:var(--clinic-primary)}.tooth-marker.planejado{background:var(--clinic-primary)}.tooth-marker.realizado{background:#11a36f}.tooth-marker.padrao{background:var(--clinic-primary)}
.legend-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.legend-item{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:16px;background:var(--theme-primary-surface-1)}
.legend-item small{display:block;color:var(--muted);margin-top:2px}
.odonto-mini-panel{margin-top:14px;padding:14px;background:var(--theme-primary-surface-1);border:1px solid var(--line);border-radius:16px}
.odonto-mini-panel h4{margin:0 0 6px}
.mini-proc{display:inline-flex;gap:8px;align-items:center}
.hidden-select{position:absolute;left:-9999px;opacity:0}
.tooth-modal-card{width:min(560px,94vw);max-height:92vh;overflow:auto;background:#fff;border-radius:26px;padding:26px;box-shadow:0 30px 90px rgba(0,0,0,.30);position:relative}
.tooth-modal-highlight{background:linear-gradient(135deg,var(--theme-primary-surface-1),var(--theme-secondary-surface-2));border:1px solid var(--line);border-radius:18px;padding:14px;margin-bottom:14px;text-align:center}.tooth-modal-highlight span{display:block;font-size:12px;font-weight:900;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.tooth-modal-highlight strong{display:block;font-size:34px;color:var(--blue);margin-top:4px}
@media(max-width:1200px){.arch-side{grid-template-columns:repeat(8,minmax(36px,1fr));gap:8px}.tooth-shape{min-height:52px}.tooth-markers{inset:18px 4px 16px}.tooth-marker{width:18px;height:18px;font-size:11px}}
@media(max-width:1000px){.odonto-grid-main{grid-template-columns:1fr}.teeth-arch{grid-template-columns:1fr}.arch-gap{display:none}.legend-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.arch-side{grid-template-columns:repeat(4,minmax(44px,1fr))}}
@media(max-width:620px){.odonto-toolbar{display:grid}.toolbar-actions{width:100%}.mouth-board{padding:14px}.jaw{padding:8px}.arch-side{grid-template-columns:repeat(4,minmax(36px,1fr));gap:7px}.tooth-number{font-size:10px}.tooth-shape{min-height:46px}.tooth-marker{width:16px;height:16px;font-size:10px}.tooth-markers{inset:16px 4px 14px}}


/* Odontograma integrations / workbench */
.tooth-card.active .tooth-shape{transform:translateY(-3px) scale(1.04);border-color:var(--clinic-primary-800);box-shadow:0 16px 28px rgba(var(--clinic-primary-rgb),.18),0 0 0 4px rgba(var(--clinic-primary-rgb),.08)}
.tooth-workbench{scroll-margin-top:22px}
.tooth-workbench-grid{display:grid;grid-template-columns:380px 1fr;gap:18px;align-items:start}
.workbench-side,.workbench-main{display:grid;gap:16px}
.tooth-summary-box{padding:18px;border-radius:20px;background:linear-gradient(135deg,var(--clinic-primary-800),var(--clinic-secondary-700));color:#fff;box-shadow:var(--shadow)}
.tooth-summary-box span{font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;color:var(--theme-secondary-surface-3)}.tooth-summary-box strong{display:block;font-size:30px;margin:8px 0 4px}.tooth-summary-box small{color:var(--theme-secondary-surface-2)}
.sub-panel{border:1px solid var(--line);background:var(--theme-primary-surface-1);border-radius:18px;padding:16px}.sub-panel h4{margin:0 0 12px}
.quick-procedure-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.quick-proc-btn{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:#fff;border-radius:14px;padding:10px 12px;cursor:pointer;font-weight:800;color:var(--clinic-primary-950);text-align:left;transition:.15s}.quick-proc-btn:hover{border-color:var(--teal);background:var(--theme-secondary-surface-1);transform:translateY(-1px)}
.selected-tooth-records{display:grid;gap:10px;max-height:400px;overflow:auto}
.tooth-record-item{padding:12px;border-radius:14px;background:#fff;border:1px solid var(--line)}
.tooth-record-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:4px}.tooth-record-item p{margin:8px 0 0;color:var(--clinic-primary-800)}.empty-record-box{padding:16px;border:1px dashed var(--theme-primary-surface-3);background:var(--theme-primary-surface-1);border-radius:14px;color:var(--clinic-primary);text-align:center}
.integration-boxes{display:grid;grid-template-columns:1fr 1fr;gap:12px}.rich-check{align-items:flex-start;background:var(--theme-primary-surface-1);border:1px solid var(--line);border-radius:16px;padding:14px}.rich-check input{margin-top:3px}.rich-check strong{display:block}.rich-check small{display:block;color:var(--muted);margin-top:4px}
.compact-three{grid-template-columns:1fr 1fr}.smart-info-box{border-radius:16px;background:var(--theme-primary-surface-1);border:1px solid var(--theme-primary-surface-3);padding:14px;display:grid;align-content:center}.smart-info-box span{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--clinic-primary)}.smart-info-box strong{margin-top:6px;color:var(--clinic-primary-800);font-size:14px;line-height:1.45}
.wrap-actions{flex-wrap:wrap}.wrap-actions form{margin:0}
@media(max-width:1000px){.tooth-workbench-grid,.integration-boxes,.compact-three{grid-template-columns:1fr}.quick-procedure-menu{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.quick-procedure-menu{grid-template-columns:1fr}.tooth-summary-box strong{font-size:24px}}


/* Odontograma menu flutuante */
.floating-menu-context{
    position:relative;
    overflow:visible;
}
.tooth-card.active .tooth-shape{
    transform:translateY(-3px) scale(1.04);
    border-color:var(--clinic-primary-800);
    box-shadow:0 16px 28px rgba(var(--clinic-primary-rgb),.18),0 0 0 4px rgba(var(--clinic-primary-rgb),.08);
}
.floating-tooth-menu{
    position:absolute;
    width:390px;
    max-width:calc(100vw - 44px);
    background:#fff;
    border:1px solid var(--line);
    border-radius:22px;
    box-shadow:0 28px 80px rgba(var(--clinic-primary-rgb),.24);
    z-index:30;
    padding:14px;
    display:none;
    animation:floatingToothIn .16s ease-out;
}
.floating-tooth-menu.show{
    display:block;
}
@keyframes floatingToothIn{
    from{opacity:0;transform:translateY(8px) scale(.98)}
    to{opacity:1;transform:translateY(0) scale(1)}
}
.floating-menu-arrow{
    position:absolute;
    left:-9px;
    top:34px;
    width:18px;
    height:18px;
    background:#fff;
    border-left:1px solid var(--line);
    border-bottom:1px solid var(--line);
    transform:rotate(45deg);
}
.floating-tooth-menu.left-arrow .floating-menu-arrow{
    left:auto;
    right:-9px;
    border-left:0;
    border-bottom:0;
    border-right:1px solid var(--line);
    border-top:1px solid var(--line);
}
.floating-menu-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:4px 4px 12px;
    border-bottom:1px solid var(--line);
}
.floating-menu-head span{
    display:block;
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.07em;
    color:var(--muted);
    font-weight:900;
}
.floating-menu-head strong{
    display:block;
    font-size:24px;
    color:var(--blue);
    margin-top:2px;
}
.floating-menu-head button{
    width:34px;
    height:34px;
    border:0;
    border-radius:50%;
    background:var(--theme-primary-surface-1);
    color:var(--clinic-primary);
    font-size:22px;
    cursor:pointer;
}
.floating-menu-tabs{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:6px;
    background:var(--theme-primary-surface-1);
    padding:6px;
    border-radius:14px;
    margin:12px 0;
}
.floating-menu-tabs button{
    border:0;
    border-radius:10px;
    background:transparent;
    color:var(--clinic-primary-800);
    font-weight:900;
    font-size:12px;
    padding:9px 6px;
    cursor:pointer;
}
.floating-menu-tabs button.active{
    background:#fff;
    color:var(--blue);
    box-shadow:0 8px 20px rgba(var(--clinic-primary-rgb),.08);
}
.floating-tab-content.hidden{
    display:none!important;
}
.floating-procedure-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    max-height:280px;
    overflow:auto;
    padding-right:3px;
}
.floating-proc-btn{
    display:flex;
    align-items:center;
    gap:8px;
    border:1px solid var(--line);
    background:#fff;
    border-radius:13px;
    padding:9px;
    font-weight:800;
    color:var(--clinic-primary-950);
    cursor:pointer;
    text-align:left;
    transition:.15s;
}
.floating-proc-btn:hover{
    border-color:var(--teal);
    background:var(--theme-secondary-surface-1);
    transform:translateY(-1px);
}
.floating-tooth-form{
    display:grid;
    gap:10px;
}
.floating-tooth-form label{
    display:grid;
    gap:6px;
    font-size:12px;
    font-weight:900;
    color:var(--clinic-primary-950);
}
.floating-tooth-form input,
.floating-tooth-form select,
.floating-tooth-form textarea{
    width:100%;
    border:1px solid var(--line);
    background:var(--theme-primary-surface-1);
    border-radius:11px;
    padding:10px;
    font:inherit;
    outline:none;
}
.floating-tooth-form textarea{
    min-height:70px;
    resize:vertical;
}
.floating-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
}
.floating-integrations{
    display:grid;
    grid-template-columns:1fr;
    gap:7px;
}
.mini-check{
    display:flex!important;
    align-items:center;
    gap:8px!important;
    padding:9px;
    border:1px solid var(--line);
    border-radius:12px;
    background:var(--theme-primary-surface-1);
}
.mini-check input{
    width:auto!important;
}
.floating-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
}
.floating-history-list{
    display:grid;
    gap:9px;
    max-height:330px;
    overflow:auto;
}
.floating-history-item{
    padding:11px;
    border-radius:13px;
    border:1px solid var(--line);
    background:var(--theme-primary-surface-1);
}
.floating-history-item p{
    margin:7px 0 0;
    color:var(--clinic-primary-800);
}
@media(max-width:900px){
    .floating-tooth-menu{
        position:fixed!important;
        left:50%!important;
        top:50%!important;
        transform:translate(-50%,-50%);
        width:min(420px,92vw);
        max-height:88vh;
        overflow:auto;
    }
    .floating-menu-arrow{display:none}
}
@media(max-width:520px){
    .floating-grid,.floating-actions,.floating-procedure-grid{
        grid-template-columns:1fr;
    }
}


/* Cadastros auxiliares e negociação */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:start}
.mini-form{display:grid;gap:10px;margin-bottom:18px}
.mini-form textarea{min-height:70px}
.payment-box{background:var(--theme-primary-surface-1);border:1px solid var(--line);border-radius:18px;padding:16px;display:grid;gap:14px}
.payment-summary-card{background:var(--theme-primary-surface-1);border:1px solid var(--line);border-radius:18px;padding:16px;margin:16px 0}
.payment-summary-card h3{margin:0 0 12px;color:var(--blue)}
label small{color:var(--muted);font-weight:600}
@media(max-width:1200px){.grid-3{grid-template-columns:1fr}}


/* Pacote profissional */
.global-search-mini{
    display:flex;
    gap:8px;
    margin-bottom:18px;
    background:#fff;
    border:1px solid var(--line);
    border-radius:18px;
    padding:10px;
    box-shadow:var(--shadow);
}
.global-search-mini input{
    border:0;
    background:transparent;
    padding:8px 10px;
}
.global-search-mini button{
    border:0;
    border-radius:12px;
    background:linear-gradient(135deg,var(--blue),var(--teal));
    color:#fff;
    font-weight:900;
    padding:0 16px;
    cursor:pointer;
}
.search-page-form{
    display:grid;
    grid-template-columns:1fr auto;
    gap:10px;
}
.permission-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
    gap:10px;
}
.permission-card{
    background:var(--theme-primary-surface-1);
    border:1px solid var(--line);
    border-radius:14px;
    padding:12px;
}
.wrap-actions{flex-wrap:wrap}
@media(max-width:700px){
    .search-page-form,.global-search-mini{grid-template-columns:1fr;display:grid}
}


/* Vínculos clínicos entre odontograma, orçamento e ficha */
.budget-item-line{grid-template-columns:2fr .7fr .9fr .7fr .9fr}
@media(max-width:1000px){.budget-item-line{grid-template-columns:1fr}}


/* Negociação do orçamento */
.negotiation-options{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
    gap:12px;
    margin-bottom:18px;
}
.negotiation-option{
    border:1px solid var(--line);
    background:#fff;
    border-radius:18px;
    padding:16px;
    text-align:left;
    cursor:pointer;
    transition:.15s;
}
.negotiation-option:hover{
    border-color:var(--teal);
    background:var(--theme-secondary-surface-1);
    transform:translateY(-1px);
}
.negotiation-option strong{
    display:block;
    color:var(--blue);
    font-size:16px;
}
.negotiation-option span{
    display:block;
    color:var(--muted);
    margin-top:5px;
    font-size:13px;
}
.negotiation-preview{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
    gap:12px;
    margin-top:14px;
}
.negotiation-preview div{
    background:#fff;
    border:1px solid var(--line);
    border-radius:16px;
    padding:14px;
}
.negotiation-preview span{
    display:block;
    color:var(--muted);
    font-size:12px;
}
.negotiation-preview strong{
    display:block;
    color:var(--blue);
    font-size:22px;
    margin-top:6px;
}
.quick-payment-choices{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
    margin-bottom:8px;
}
.quick-payment-choices button{
    border:0;
    border-radius:999px;
    padding:10px 14px;
    background:var(--theme-primary-surface-2);
    color:var(--blue);
    font-weight:900;
    cursor:pointer;
}
.quick-payment-choices button:hover{
    background:linear-gradient(135deg,var(--blue),var(--teal));
    color:#fff;
}
.negotiation-highlight{
    border-color:var(--theme-secondary-soft);
    background:linear-gradient(180deg,var(--theme-secondary-surface-1),var(--theme-primary-surface-1));
}


/* Notificações do orçamento */
.notification-card{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    margin-bottom:18px;
    border-radius:18px;
}
.notification-card strong{
    display:block;
    font-size:18px;
    margin-bottom:4px;
}
.notification-card p{
    margin:0;
}
.success-card{
    background:#ecfff5;
    border:1px solid #b8efd1;
    color:#0f6b3d;
}
.success-card p{
    color:#0f6b3d;
}
.warning-card{
    background:#fff9e8;
    border:1px solid #ffe0a6;
    color:#7a5200;
}
.warning-card p{
    color:#7a5200;
}
@media(max-width:700px){
    .notification-card{
        display:grid;
    }
}


/* Toast flutuante */
.floating-toast{
    position:fixed;
    top:22px;
    right:22px;
    z-index:9999;
    width:min(420px, calc(100vw - 32px));
    display:none;
    grid-template-columns:42px 1fr 32px;
    gap:12px;
    align-items:center;
    padding:14px;
    border-radius:20px;
    box-shadow:0 24px 70px rgba(var(--clinic-primary-rgb),.24);
    animation:toastIn .22s ease-out;
}
.floating-toast.show{display:grid}
.floating-toast.success{background:#ecfff5;border:1px solid #afe9cb;color:#0b6a3d}
.floating-toast.warning{background:#fff9e8;border:1px solid #ffdfa3;color:#7b5200}
.floating-toast strong{display:block;font-size:15px}
.floating-toast span{display:block;font-size:13px;margin-top:2px}
.floating-toast button{
    border:0;background:rgba(255,255,255,.7);border-radius:50%;
    width:30px;height:30px;cursor:pointer;font-size:18px;color:inherit
}
.toast-icon{
    width:42px;height:42px;border-radius:50%;
    display:grid;place-items:center;
    background:rgba(255,255,255,.75);
    font-weight:900;font-size:20px
}
@keyframes toastIn{from{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}

/* Recibo */
.receipt-page{display:grid;place-items:start center}
.receipt-paper{
    width:min(980px,100%);
    background:#fff;
    border:1px solid var(--line);
    border-radius:26px;
    padding:28px;
    box-shadow:var(--shadow);
}
.receipt-header{
    display:flex;justify-content:space-between;gap:18px;
    border-bottom:1px solid var(--line);
    padding-bottom:20px;margin-bottom:20px;
}
.receipt-brand{
    display:inline-block;background:linear-gradient(135deg,var(--blue),var(--teal));
    color:#fff;border-radius:999px;padding:7px 12px;font-weight:900;margin-bottom:10px
}
.receipt-header h2{margin:0;color:var(--blue);font-size:30px}
.receipt-header p{margin:6px 0 0;color:var(--muted)}
.receipt-status{text-align:right}
.receipt-status span{
    display:inline-block;background:#ecfff5;color:#0b6a3d;
    border-radius:999px;padding:7px 12px;font-weight:900
}
.receipt-status strong{display:block;color:var(--blue);font-size:26px;margin-top:8px}
.receipt-grid{
    display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
    gap:12px;margin-bottom:22px;
}
.receipt-grid div,.receipt-note{
    background:var(--theme-primary-surface-1);border:1px solid var(--line);border-radius:18px;padding:14px
}
.receipt-grid small{display:block;color:var(--muted);font-weight:800}
.receipt-grid strong{display:block;color:var(--blue);font-size:17px;margin-top:4px}
.receipt-section{margin-top:22px}
.receipt-section h3{color:var(--blue);margin-bottom:10px}
.receipt-total{
    margin-top:18px;padding:18px;border-radius:20px;
    background:linear-gradient(135deg,var(--theme-primary-surface-2),#ecfff8);
    display:flex;justify-content:space-between;align-items:center
}
.receipt-total span{color:var(--muted);font-weight:900}
.receipt-total strong{font-size:28px;color:var(--blue)}
.receipt-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}

/* Menu lateral otimizado */
.menu-home{
    font-weight:900!important;
    background:linear-gradient(135deg,rgba(var(--clinic-primary-rgb),.1),rgba(var(--clinic-secondary-rgb),.1))!important;
}
.menu-group{
    border:1px solid rgba(255,255,255,.12);
    border-radius:16px;
    margin:8px 0;
    overflow:hidden;
}
.menu-group summary{
    cursor:pointer;
    list-style:none;
    padding:12px 14px;
    font-weight:900;
    color:inherit;
    opacity:.92;
}
.menu-group summary::-webkit-details-marker{display:none}
.menu-group summary:after{
    content:"›";
    float:right;
    transition:.15s;
}
.menu-group[open] summary:after{transform:rotate(90deg)}
.menu-group a{
    margin:0!important;
    border-radius:0!important;
    padding-left:22px!important;
    font-size:14px!important;
}
@media print{
    .sidebar,.topbar,.global-search-mini,.no-print,.floating-toast{display:none!important}
    .main{margin:0!important;padding:0!important}
    .receipt-paper{box-shadow:none;border:0;border-radius:0}
}
@media(max-width:700px){
    .floating-toast{top:12px;right:12px}
    .receipt-header{display:grid}
    .receipt-status{text-align:left}
}



/* Menu lateral premium didático */
.sidebar{
    width:292px;
    background:
        radial-gradient(circle at top left, rgba(var(--clinic-secondary-rgb),.28), transparent 34%),
        linear-gradient(180deg,var(--clinic-primary-950) 0%,var(--clinic-primary-950) 100%) !important;
    color:var(--theme-primary-surface-2);
    border-right:1px solid rgba(255,255,255,.08);
}
.premium-brand{
    padding:20px 18px 14px;
    border-bottom:1px solid rgba(255,255,255,.1);
    margin-bottom:10px;
}
.premium-brand .brand-logo{
    box-shadow:0 12px 32px rgba(var(--clinic-secondary-rgb),.35);
}
.premium-brand span{
    font-size:11px;
    opacity:.75;
}
.premium-side-menu{
    padding:8px 12px 18px;
    overflow:auto;
}
.menu-section-label{
    font-size:10px;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:rgba(var(--clinic-primary-rgb),.48);
    font-weight:900;
    margin:16px 10px 7px;
}
.premium-side-menu .menu-item{
    display:grid!important;
    grid-template-columns:34px 1fr;
    gap:10px;
    align-items:center;
    padding:10px 11px!important;
    border-radius:15px!important;
    text-decoration:none;
    color:var(--theme-primary-surface-2)!important;
    margin:4px 0!important;
    transition:.15s ease;
}
.premium-side-menu .menu-item:hover{
    background:rgba(255,255,255,.1)!important;
    transform:translateX(2px);
}
.premium-side-menu .menu-item b{
    display:block;
    font-size:13px;
    line-height:1.1;
}
.premium-side-menu .menu-item small{
    display:block;
    font-size:10.5px;
    color:rgba(var(--clinic-primary-rgb),.6);
    margin-top:2px;
}
.menu-ico{
    width:32px;height:32px;
    display:grid;place-items:center;
    border-radius:12px;
    background:rgba(255,255,255,.09);
    font-size:15px;
}
.menu-home{
    background:linear-gradient(135deg,rgba(var(--clinic-secondary-rgb),.26),rgba(var(--clinic-primary-rgb),.2))!important;
    border:1px solid rgba(255,255,255,.12);
}
.premium-group{
    border:1px solid rgba(255,255,255,.1)!important;
    border-radius:18px!important;
    margin:9px 0!important;
    overflow:hidden;
    background:rgba(255,255,255,.045);
}
.premium-group summary{
    display:grid;
    grid-template-columns:1fr 18px;
    gap:8px;
    padding:12px 12px!important;
    cursor:pointer;
    list-style:none;
    color:#fff!important;
}
.premium-group summary::-webkit-details-marker{display:none}
.premium-group summary span{
    font-weight:900;
    font-size:13px;
}
.premium-group summary small{
    display:block;
    color:rgba(var(--clinic-primary-rgb),.58);
    font-size:10.5px;
    margin-top:2px;
}
.premium-group summary:after{
    content:"›";
    display:grid;
    place-items:center;
    width:18px;height:18px;
    border-radius:50%;
    background:rgba(255,255,255,.08);
    transition:.18s;
}
.premium-group[open] summary:after{
    transform:rotate(90deg);
    background:rgba(var(--clinic-secondary-rgb),.25);
}
.premium-group .menu-item{
    border-radius:0!important;
    margin:0!important;
    padding-left:14px!important;
    background:transparent!important;
}
.premium-group .menu-item:hover{
    background:rgba(255,255,255,.08)!important;
}

/* Toast flutuante global corrigido */
.floating-toast{
    position:fixed;
    top:20px;
    right:22px;
    z-index:99999;
    width:min(410px, calc(100vw - 30px));
    display:grid;
    grid-template-columns:42px 1fr 30px;
    gap:12px;
    align-items:center;
    padding:14px;
    border-radius:20px;
    box-shadow:0 24px 70px rgba(var(--clinic-primary-rgb),.26);
    opacity:0;
    pointer-events:none;
    transform:translateY(-8px) scale(.98);
    transition:.2s ease;
}
.floating-toast.show{
    opacity:1;
    pointer-events:auto;
    transform:translateY(0) scale(1);
}
.floating-toast.success{background:#ecfff5;border:1px solid #afe9cb;color:#0b6a3d}
.floating-toast.warning{background:#fff9e8;border:1px solid #ffdfa3;color:#7b5200}
.floating-toast strong{display:block;font-size:15px}
.floating-toast span{display:block;font-size:13px;margin-top:2px}
.floating-toast button{
    border:0;background:rgba(255,255,255,.72);border-radius:50%;
    width:30px;height:30px;cursor:pointer;font-size:18px;color:inherit
}
.toast-icon{
    width:42px;height:42px;border-radius:50%;
    display:grid;place-items:center;
    background:rgba(255,255,255,.78);
    font-weight:900;font-size:20px
}

/* Recibo pequeno */
.mini-receipt-wrap{
    display:grid;
    place-items:start center;
}
.mini-receipt{
    width:min(470px, 100%);
    background:#fff;
    border:1px solid var(--line);
    border-radius:24px;
    padding:22px;
    box-shadow:0 22px 70px rgba(var(--clinic-primary-rgb),.12);
}
.mini-receipt-top{
    display:grid;
    grid-template-columns:44px 1fr auto;
    gap:12px;
    align-items:center;
    border-bottom:1px dashed var(--theme-primary-surface-3);
    padding-bottom:14px;
}
.mini-logo{
    width:44px;height:44px;
    display:grid;place-items:center;
    border-radius:15px;
    background:linear-gradient(135deg,var(--blue),var(--teal));
    color:#fff;
    font-weight:900;
}
.mini-receipt-top strong{display:block;color:var(--blue);font-size:18px}
.mini-receipt-top span{display:block;color:var(--muted);font-size:12px}
.mini-receipt-top em{font-style:normal;color:var(--muted);font-weight:900}
.mini-receipt-status{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin:14px 0;
}
.mini-receipt-status span{
    background:#ecfff5;color:#0b6a3d;
    border-radius:999px;
    padding:7px 11px;
    font-weight:900;
    font-size:12px;
}
.mini-receipt-status small{color:var(--muted)}
.mini-line{
    display:flex;
    justify-content:space-between;
    gap:12px;
    padding:10px 0;
    border-bottom:1px solid var(--theme-primary-surface-2);
}
.mini-line span{color:var(--muted);font-size:12px;font-weight:800}
.mini-line strong{text-align:right;color:var(--blue);font-size:13px}
.mini-values{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
    margin:12px 0;
}
.mini-values div{
    background:var(--theme-primary-surface-1);
    border:1px solid var(--line);
    border-radius:16px;
    padding:11px;
}
.mini-values span{display:block;color:var(--muted);font-size:11px;font-weight:800}
.mini-values strong{display:block;color:var(--blue);font-size:15px;margin-top:4px}
.mini-section{margin-top:14px}
.mini-section h3{
    color:var(--blue);
    font-size:14px;
    margin:0 0 8px;
}
.mini-installment{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:9px 0;
    border-bottom:1px dashed var(--theme-primary-surface-3);
}
.mini-installment strong{font-size:13px;color:var(--clinic-primary-950)}
.mini-installment span{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.mini-installment em{font-style:normal;font-weight:900;color:var(--blue)}
.mini-total{
    margin-top:14px;
    background:linear-gradient(135deg,var(--theme-primary-surface-2),#ecfff8);
    border-radius:18px;
    padding:14px;
    display:flex;
    justify-content:space-between;
    align-items:center;
}
.mini-total span{font-size:12px;color:var(--muted);font-weight:900}
.mini-total strong{font-size:22px;color:var(--blue)}
.mini-note{
    margin-top:12px;
    background:#fffaf0;
    border:1px solid #ffe0a6;
    border-radius:16px;
    padding:11px;
    color:#7a5200;
    font-size:12px;
}
.mini-actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    margin-top:14px;
}
.mini-actions .btn{padding:9px 12px!important;font-size:12px!important}
@media print{
    .sidebar,.topbar,.global-search-mini,.no-print,.floating-toast{display:none!important}
    .main{margin:0!important;padding:0!important}
    .mini-receipt{box-shadow:none;border:0;border-radius:0}
}
@media(max-width:700px){
    .floating-toast{top:12px;right:12px}
    .sidebar{width:100%}
    .mini-values{grid-template-columns:1fr}
}


/* ===== Sidebar profissional limpa ===== */
.app-shell{
    display:grid;
    grid-template-columns: 290px 1fr;
    min-height:100vh;
}

.sidebar{
    width:290px;
    min-height:100vh;
    background:linear-gradient(180deg,var(--clinic-primary-950) 0%, var(--clinic-primary-950) 100%);
    color:var(--theme-primary-surface-1);
    border-right:1px solid rgba(255,255,255,.08);
    position:sticky;
    top:0;
    overflow:auto;
}

.premium-brand{
    display:flex;
    align-items:center;
    gap:12px;
    padding:22px 18px 16px;
    border-bottom:1px solid rgba(255,255,255,.08);
    margin-bottom:8px;
}

.premium-brand .brand-logo{
    width:44px;
    height:44px;
    border-radius:16px;
    display:grid;
    place-items:center;
    font-size:24px;
    font-weight:900;
    color:#fff;
    background:linear-gradient(135deg,var(--clinic-secondary-700),var(--clinic-primary));
    box-shadow:0 10px 28px rgba(var(--clinic-secondary-rgb),.28);
    flex:0 0 auto;
}

.brand-copy{
    display:flex;
    flex-direction:column;
    min-width:0;
}

.brand-copy strong{
    font-size:28px;
    line-height:1.1;
    color:#fff;
}

.brand-copy span{
    font-size:12px;
    color:rgba(var(--clinic-primary-rgb),.72);
    margin-top:4px;
}

.clean-sidebar-menu{
    padding:12px;
}

.menu-section-title{
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.08em;
    font-weight:800;
    color:rgba(var(--clinic-primary-rgb),.45);
    margin:18px 8px 10px;
}

.clean-sidebar-menu .menu-item{
    display:flex !important;
    align-items:flex-start;
    gap:12px;
    width:100%;
    text-decoration:none;
    color:var(--theme-primary-surface-1);
    padding:12px 12px;
    border-radius:16px;
    margin:4px 0;
    transition:all .16s ease;
    box-sizing:border-box;
}

.clean-sidebar-menu .menu-item:hover{
    background:rgba(255,255,255,.08);
    transform:translateX(2px);
}

.clean-sidebar-menu .menu-item .menu-ico{
    width:34px;
    height:34px;
    min-width:34px;
    border-radius:12px;
    display:grid;
    place-items:center;
    background:rgba(255,255,255,.10);
    font-size:15px;
    line-height:1;
    flex:0 0 auto;
}

.clean-sidebar-menu .menu-copy{
    display:flex;
    flex-direction:column;
    min-width:0;
    line-height:1.2;
}

.clean-sidebar-menu .menu-copy b{
    font-size:14px;
    font-weight:800;
    color:#fff;
    display:block;
}

.clean-sidebar-menu .menu-copy small{
    font-size:11.5px;
    color:rgba(var(--clinic-primary-rgb),.64);
    margin-top:3px;
    display:block;
}

.menu-dashboard{
    background:linear-gradient(135deg,rgba(var(--clinic-secondary-rgb),.18),rgba(var(--clinic-primary-rgb),.14));
    border:1px solid rgba(255,255,255,.08);
    margin-bottom:10px !important;
}

.sidebar-group{
    border:1px solid rgba(255,255,255,.08);
    border-radius:18px;
    background:rgba(255,255,255,.03);
    margin-bottom:10px;
    overflow:hidden;
}

.sidebar-group summary{
    list-style:none;
    cursor:pointer;
    padding:12px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    transition:background .15s ease;
}

.sidebar-group summary:hover{
    background:rgba(255,255,255,.04);
}

.sidebar-group summary::-webkit-details-marker{
    display:none;
}

.summary-left{
    display:flex;
    align-items:flex-start;
    gap:12px;
    min-width:0;
}

.summary-left .menu-ico{
    width:34px;
    height:34px;
    min-width:34px;
    border-radius:12px;
    display:grid;
    place-items:center;
    background:rgba(255,255,255,.10);
    font-size:15px;
}

.sidebar-group summary::after{
    content:"▾";
    color:rgba(var(--clinic-primary-rgb),.62);
    font-size:13px;
    transition:transform .18s ease;
    margin-left:10px;
}

.sidebar-group:not([open]) summary::after{
    transform:rotate(-90deg);
}

.submenu{
    padding:0 8px 8px 8px;
}

.submenu .menu-item{
    padding-left:10px;
    background:transparent;
}

.submenu .menu-item .menu-ico{
    background:rgba(255,255,255,.07);
}

.main{
    min-width:0;
    padding:18px 20px 28px;
}

/* ajustes para telas menores */
@media (max-width: 980px){
    .app-shell{
        grid-template-columns:1fr;
    }
    .sidebar{
        width:100%;
        min-height:auto;
        position:relative;
    }
    .main{
        padding:16px;
    }
}

/* garante que estilos antigos não quebrem o layout */
.menu-group,
.premium-group,
.premium-side-menu,
.menu-home{
    all:unset;
}


/* ===== Menu lateral premium organizado ===== */
:root{
    --sidebar-bg-1:var(--clinic-primary-950);
    --sidebar-bg-2:var(--clinic-primary-950);
    --sidebar-border:rgba(255,255,255,.08);
    --sidebar-text:var(--theme-primary-surface-2);
    --sidebar-muted:rgba(var(--clinic-primary-rgb),.62);
    --sidebar-section:rgba(var(--clinic-primary-rgb),.38);
    --sidebar-hover:rgba(255,255,255,.08);
    --sidebar-active-1:var(--clinic-secondary);
    --sidebar-active-2:var(--clinic-primary);
}

.app-shell{
    display:grid;
    grid-template-columns:280px 1fr;
    min-height:100vh;
}

.sidebar{
    width:280px;
    min-height:100vh;
    background:
        radial-gradient(circle at top left, rgba(var(--clinic-secondary-rgb),.18), transparent 30%),
        linear-gradient(180deg,var(--sidebar-bg-1) 0%, var(--sidebar-bg-2) 100%);
    color:var(--sidebar-text);
    border-right:1px solid var(--sidebar-border);
    overflow:auto;
    position:sticky;
    top:0;
    transition:width .22s ease;
}

.sidebar-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:18px 16px 14px;
    border-bottom:1px solid var(--sidebar-border);
}

.sidebar-brand{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
    margin:0;
    padding:0;
    border:0;
}

.sidebar-brand .brand-logo{
    width:42px;
    height:42px;
    border-radius:14px;
    display:grid;
    place-items:center;
    background:linear-gradient(135deg,var(--sidebar-active-1),var(--sidebar-active-2));
    color:#fff;
    font-size:24px;
    font-weight:900;
    box-shadow:0 12px 24px rgba(var(--clinic-secondary-rgb),.18);
    flex:0 0 auto;
}

.sidebar-brand .brand-copy{
    display:flex;
    flex-direction:column;
    min-width:0;
}

.sidebar-brand .brand-copy strong{
    color:#fff;
    font-size:27px;
    line-height:1.05;
    font-weight:800;
}

.sidebar-brand .brand-copy span{
    color:var(--sidebar-muted);
    font-size:12px;
    margin-top:3px;
    line-height:1.25;
}

.sidebar-toggle{
    width:38px;
    height:38px;
    border-radius:12px;
    border:1px solid rgba(255,255,255,.08);
    background:rgba(255,255,255,.05);
    color:#fff;
    cursor:pointer;
    font-size:16px;
    flex:0 0 auto;
}
.sidebar-toggle:hover{
    background:rgba(255,255,255,.10);
}

.sidebar-nav{
    padding:14px 12px 18px;
}

.nav-section{
    font-size:10px;
    font-weight:800;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--sidebar-section);
    margin:16px 10px 8px;
}

.nav-group{
    border:1px solid rgba(255,255,255,.06);
    border-radius:16px;
    background:rgba(255,255,255,.03);
    margin-bottom:10px;
    overflow:hidden;
}

.nav-group summary{
    list-style:none;
    padding:11px 14px;
    cursor:pointer;
    color:#fff;
    font-size:13px;
    font-weight:700;
    display:flex;
    align-items:center;
    justify-content:space-between;
}
.nav-group summary::-webkit-details-marker{display:none}
.nav-group summary::after{
    content:"▾";
    color:var(--sidebar-muted);
    font-size:11px;
    transition:transform .15s ease;
}
.nav-group:not([open]) summary::after{transform:rotate(-90deg)}
.nav-group summary:hover{
    background:rgba(255,255,255,.03);
}

.nav-submenu{
    padding:0 8px 8px;
    display:grid;
    gap:3px;
}

.nav-item{
    display:flex;
    align-items:center;
    gap:10px;
    width:100%;
    text-decoration:none;
    color:var(--sidebar-text);
    padding:10px 12px;
    border-radius:14px;
    transition:all .16s ease;
    box-sizing:border-box;
}

.nav-item:hover{
    background:var(--sidebar-hover);
    color:#fff;
}

.nav-item.active{
    background:linear-gradient(135deg, rgba(var(--clinic-secondary-rgb),.22), rgba(var(--clinic-primary-rgb),.20));
    border:1px solid rgba(255,255,255,.08);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.03);
}

.nav-item-home{
    background:rgba(255,255,255,.04);
    border:1px solid rgba(255,255,255,.06);
    margin-bottom:10px;
}

.nav-icon{
    width:8px;
    min-width:8px;
    height:8px;
    border-radius:50%;
    background:rgba(var(--clinic-primary-rgb),.55);
    display:block;
    flex:0 0 auto;
    font-size:0;
    margin-left:2px;
}

.nav-item.active .nav-icon{
    background:var(--theme-secondary-mid);
    box-shadow:0 0 0 5px rgba(var(--clinic-secondary-rgb),.08);
}

.nav-label{
    display:block;
    font-size:14px;
    font-weight:600;
    line-height:1.2;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.sidebar.collapsed{
    width:82px;
}
.app-shell:has(.sidebar.collapsed){
    grid-template-columns:82px 1fr;
}

.sidebar.collapsed .brand-copy,
.sidebar.collapsed .nav-section,
.sidebar.collapsed .nav-label,
.sidebar.collapsed .nav-group summary::after{
    display:none;
}

.sidebar.collapsed .sidebar-top{
    flex-direction:column;
    align-items:center;
    padding:16px 10px 14px;
}

.sidebar.collapsed .sidebar-brand{
    justify-content:center;
}

.sidebar.collapsed .sidebar-toggle{
    width:36px;
    height:36px;
}

.sidebar.collapsed .sidebar-nav{
    padding:12px 8px 16px;
}

.sidebar.collapsed .nav-item{
    justify-content:center;
    padding:11px 10px;
}

.sidebar.collapsed .nav-item .nav-icon{
    width:10px;
    min-width:10px;
    height:10px;
    margin:0;
}

.sidebar.collapsed .nav-group{
    background:transparent;
    border:0;
}

.sidebar.collapsed .nav-group summary{
    justify-content:center;
    padding:10px 8px 6px;
}

.sidebar.collapsed .nav-group summary{
    font-size:0;
}
.sidebar.collapsed .nav-group summary::before{
    content:"•";
    font-size:20px;
    color:rgba(var(--clinic-primary-rgb),.8);
}

.sidebar.collapsed .nav-submenu{
    padding:0;
}

.main{
    min-width:0;
    padding:18px 20px 28px;
}

@media (max-width:980px){
    .app-shell{
        grid-template-columns:1fr;
    }
    .sidebar,
    .sidebar.collapsed{
        width:100%;
        min-height:auto;
        position:relative;
    }
    .sidebar.collapsed .brand-copy,
    .sidebar.collapsed .nav-section,
    .sidebar.collapsed .nav-label,
    .sidebar.collapsed .nav-group summary::after{
        display:block;
    }
    .sidebar.collapsed .sidebar-top{
        flex-direction:row;
        align-items:center;
        padding:18px 16px 14px;
    }
    .sidebar.collapsed .nav-group summary{
        font-size:13px;
    }
    .sidebar.collapsed .nav-group summary::before{
        content:none;
    }
    .sidebar.collapsed .nav-item{
        justify-content:flex-start;
    }
    .main{
        padding:16px;
    }
}


/* ===== Visual premium com cores, cards e animações ===== */
:root{
    --brand-1:var(--clinic-primary);
    --brand-2:var(--clinic-secondary);
    --brand-3:var(--clinic-primary-950);
    --soft-blue:var(--theme-primary-surface-1);
    --soft-teal:var(--theme-secondary-surface-2);
    --card-shadow:0 14px 40px rgba(var(--clinic-primary-rgb),.08);
    --card-shadow-hover:0 20px 50px rgba(var(--clinic-primary-rgb),.12);
    --radius-xl:24px;
    --radius-lg:18px;
    --radius-md:14px;
}

body{
    background:
        radial-gradient(circle at top right, rgba(var(--clinic-primary-rgb),.07), transparent 22%),
        radial-gradient(circle at left top, rgba(var(--clinic-secondary-rgb),.06), transparent 18%),
        linear-gradient(180deg,var(--theme-primary-surface-1) 0%, var(--theme-primary-surface-1) 100%);
}

/* conteúdo principal */
.main{
    padding:22px 24px 32px;
}

/* cards gerais */
.card,
.hero-panel,
.metric,
.mini-receipt,
.receipt-paper,
.form,
.modal-card,
.payment-summary-card{
    border-radius:var(--radius-xl) !important;
    border:1px solid rgba(var(--clinic-primary-rgb),.06) !important;
    box-shadow:var(--card-shadow) !important;
    background:rgba(255,255,255,.96) !important;
    backdrop-filter:blur(10px);
    position:relative;
    overflow:hidden;
}

.card::before,
.metric::before,
.form::before,
.mini-receipt::before,
.payment-summary-card::before{
    content:"";
    position:absolute;
    inset:0 auto auto 0;
    width:100%;
    height:4px;
    background:linear-gradient(90deg,var(--brand-1),var(--brand-2));
    opacity:.95;
}

.card,
.metric,
.hero-panel,
.form{
    animation:cardRise .42s ease both;
}

.card:hover,
.metric:hover,
.form:hover,
.payment-summary-card:hover,
.mini-receipt:hover{
    transform:translateY(-2px);
    box-shadow:var(--card-shadow-hover) !important;
    transition:all .18s ease;
}

@keyframes cardRise{
    from{opacity:0;transform:translateY(8px)}
    to{opacity:1;transform:translateY(0)}
}

/* cabeçalhos de card */
.card-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:14px;
}
.card-head h3{
    font-size:18px;
    color:var(--brand-3);
    margin:0;
}
.card-head a{
    color:var(--brand-1);
    text-decoration:none;
    font-weight:700;
}
.card-head a:hover{
    color:var(--brand-2);
}

/* hero / topo dashboard */
.hero-panel{
    background:
        radial-gradient(circle at right top, rgba(255,255,255,.14), transparent 26%),
        linear-gradient(135deg,var(--clinic-primary-950) 0%, var(--clinic-primary) 52%, var(--clinic-secondary) 100%) !important;
    color:#fff !important;
    padding:26px !important;
    margin-bottom:20px;
}
.hero-panel::before{
    display:none;
}
.hero-panel h2{
    margin:8px 0;
    font-size:34px;
    line-height:1.1;
}
.hero-panel p{
    color:rgba(255,255,255,.82) !important;
    max-width:720px;
}
.eyebrow{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:6px 11px;
    border-radius:999px;
    background:rgba(255,255,255,.12);
    border:1px solid rgba(255,255,255,.14);
    color:#fff !important;
    font-size:11px;
    font-weight:800;
    letter-spacing:.08em;
}

/* métricas */
.metric-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
    gap:14px;
    margin-bottom:18px;
}
.metric{
    padding:18px;
    min-height:118px;
    background:
        linear-gradient(180deg,rgba(255,255,255,.96),rgba(var(--clinic-primary-rgb),.98)) !important;
}
.metric span{
    font-size:12px;
    font-weight:800;
    letter-spacing:.03em;
    color:var(--muted);
    text-transform:uppercase;
}
.metric strong{
    display:block;
    margin-top:12px;
    font-size:30px;
    line-height:1;
    color:var(--brand-3);
}
.metric small{
    display:block;
    margin-top:8px;
    color:var(--muted);
    font-size:12px;
}
.metric.success::before{background:linear-gradient(90deg,#16a34a,#22c55e)}
.metric.warning::before{background:linear-gradient(90deg,#d97706,#f59e0b)}
.metric.info::before{background:linear-gradient(90deg,var(--clinic-primary),var(--clinic-secondary))}
.metric.danger::before{background:linear-gradient(90deg,#dc2626,#ef4444)}

/* botões */
.btn{
    border-radius:14px !important;
    padding:11px 16px !important;
    font-weight:800;
    letter-spacing:.01em;
    transition:all .16s ease;
    box-shadow:none;
}
.btn-primary{
    background:linear-gradient(135deg,var(--brand-1),var(--brand-2)) !important;
    color:#fff !important;
    border:0 !important;
}
.btn-primary:hover{
    transform:translateY(-1px);
    box-shadow:0 14px 28px rgba(var(--clinic-primary-rgb),.22);
}
.btn-soft{
    background:linear-gradient(180deg,#ffffff,var(--theme-primary-surface-1)) !important;
    color:var(--brand-1) !important;
    border:1px solid rgba(var(--clinic-primary-rgb),.12) !important;
}
.btn-soft:hover{
    background:linear-gradient(180deg,var(--theme-primary-surface-1),var(--theme-primary-surface-1)) !important;
    transform:translateY(-1px);
}

/* formulários */
form.card,
.form{
    padding:22px !important;
}
label{
    font-weight:700;
    color:var(--brand-3);
    font-size:13px;
}
input, select, textarea{
    width:100%;
    border:1px solid var(--theme-primary-surface-3) !important;
    background:var(--theme-primary-surface-1) !important;
    color:var(--text);
    border-radius:14px !important;
    padding:12px 13px !important;
    outline:none;
    transition:all .16s ease;
}
input:focus, select:focus, textarea:focus{
    border-color:rgba(var(--clinic-primary-rgb),.45) !important;
    box-shadow:0 0 0 4px rgba(var(--clinic-primary-rgb),.08);
    background:#fff !important;
}
textarea{min-height:110px}
.form-grid{
    gap:14px !important;
}
small, .soft-subtitle{
    color:var(--muted);
}

/* tabelas */
table{
    width:100%;
    border-collapse:separate;
    border-spacing:0;
}
thead th{
    background:var(--theme-primary-surface-1);
    color:var(--brand-3);
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.04em;
    font-weight:800;
    padding:13px 12px !important;
    border-bottom:1px solid var(--theme-primary-surface-2);
}
thead th:first-child{border-top-left-radius:14px}
thead th:last-child{border-top-right-radius:14px}
tbody td{
    padding:13px 12px !important;
    border-bottom:1px solid var(--theme-primary-surface-2);
    vertical-align:top;
}
tbody tr:hover{
    background:var(--theme-primary-surface-1);
}
td strong{
    color:var(--brand-3);
    display:block;
}
td small{
    display:block;
    margin-top:4px;
}

/* pills */
.pill{
    display:inline-flex;
    align-items:center;
    border-radius:999px;
    padding:6px 10px;
    font-size:11px;
    font-weight:800;
    background:var(--theme-primary-surface-1);
    color:var(--brand-1);
    border:1px solid rgba(var(--clinic-primary-rgb),.12);
}

/* menu lateral com mais cor e efeito */
.sidebar{
    background:
        radial-gradient(circle at top left, rgba(var(--clinic-secondary-rgb),.20), transparent 30%),
        linear-gradient(180deg,var(--clinic-primary-950) 0%, var(--clinic-primary-950) 100%) !important;
}
.sidebar-top{
    background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,0));
}
.sidebar-brand .brand-logo{
    box-shadow:0 14px 28px rgba(var(--clinic-secondary-rgb),.24) !important;
}
.nav-section{
    position:relative;
    padding-left:10px;
}
.nav-section::before{
    content:"";
    position:absolute;
    left:0;
    top:50%;
    width:4px;
    height:4px;
    border-radius:50%;
    background:rgba(var(--clinic-primary-rgb),.5);
    transform:translateY(-50%);
}
.nav-group{
    background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.03)) !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.03);
}
.nav-group summary{
    transition:all .16s ease;
}
.nav-group[open] summary{
    background:rgba(255,255,255,.03);
}
.nav-item{
    position:relative;
}
.nav-item::after{
    content:"";
    position:absolute;
    left:0;
    top:8px;
    bottom:8px;
    width:0;
    border-radius:0 8px 8px 0;
    background:linear-gradient(180deg,var(--brand-1),var(--brand-2));
    transition:width .16s ease;
}
.nav-item:hover::after,
.nav-item.active::after{
    width:4px;
}
.nav-item.active{
    color:#fff;
}
.nav-item.active .nav-label{
    color:#fff;
}
.nav-icon{
    background:rgba(var(--clinic-primary-rgb),.5) !important;
}
.nav-item.active .nav-icon{
    background:var(--theme-secondary-mid) !important;
}

/* notificações e modais */
.floating-toast{
    box-shadow:0 20px 50px rgba(var(--clinic-primary-rgb),.18) !important;
}
.modal-card{
    animation:modalPop .2s ease;
}
@keyframes modalPop{
    from{opacity:0;transform:translateY(8px) scale(.98)}
    to{opacity:1;transform:translateY(0) scale(1)}
}

/* recibo pequeno mais refinado */
.mini-receipt{
    background:
        linear-gradient(180deg,rgba(255,255,255,.98),rgba(var(--clinic-primary-rgb),.98)) !important;
}
.mini-total{
    background:linear-gradient(135deg,var(--theme-primary-surface-1),var(--theme-secondary-surface-2)) !important;
}
.mini-note{
    background:#fffaf0 !important;
}

/* melhorias visuais gerais */
section, .grid-2, .grid-3{
    animation:fadeInContent .35s ease both;
}
@keyframes fadeInContent{
    from{opacity:0}
    to{opacity:1}
}

@media (max-width:980px){
    .main{
        padding:16px;
    }
}


/* ===== CORREÇÃO FINAL: força visual premium do menu e evita cache/estilo padrão ===== */
html body .app-shell{
    display:grid !important;
    grid-template-columns:280px 1fr !important;
    min-height:100vh !important;
}

html body .sidebar#sidebar{
    width:280px !important;
    min-height:100vh !important;
    height:100vh !important;
    position:sticky !important;
    top:0 !important;
    padding:0 !important;
    overflow:auto !important;
    background:
        radial-gradient(circle at 0% 0%, rgba(var(--clinic-secondary-rgb),.28), transparent 28%),
        linear-gradient(180deg,var(--clinic-primary-950) 0%,var(--clinic-primary-950) 100%) !important;
    border-right:1px solid rgba(255,255,255,.10) !important;
    color:var(--theme-primary-surface-2) !important;
    box-shadow:8px 0 30px rgba(var(--clinic-primary-rgb),.08) !important;
}

html body .sidebar#sidebar .sidebar-top{
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    gap:10px !important;
    padding:18px 16px !important;
    border-bottom:1px solid rgba(255,255,255,.10) !important;
    background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,0)) !important;
}

html body .sidebar#sidebar .sidebar-brand{
    display:flex !important;
    align-items:center !important;
    gap:12px !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    min-width:0 !important;
}

html body .sidebar#sidebar .brand-logo{
    width:44px !important;
    height:44px !important;
    min-width:44px !important;
    border-radius:15px !important;
    display:grid !important;
    place-items:center !important;
    background:linear-gradient(135deg,var(--clinic-primary),var(--clinic-secondary)) !important;
    color:#fff !important;
    font-size:24px !important;
    font-weight:900 !important;
    box-shadow:0 14px 30px rgba(var(--clinic-secondary-rgb),.25) !important;
}

html body .sidebar#sidebar .brand-copy{
    display:flex !important;
    flex-direction:column !important;
    min-width:0 !important;
}

html body .sidebar#sidebar .brand-copy strong{
    display:block !important;
    color:#fff !important;
    font-size:21px !important;
    line-height:1.05 !important;
    font-weight:900 !important;
}

html body .sidebar#sidebar .brand-copy span{
    display:block !important;
    color:rgba(var(--clinic-primary-rgb),.70) !important;
    font-size:12px !important;
    line-height:1.25 !important;
    margin-top:3px !important;
}

html body .sidebar#sidebar .sidebar-toggle{
    width:38px !important;
    height:38px !important;
    border-radius:12px !important;
    border:1px solid rgba(255,255,255,.12) !important;
    background:rgba(255,255,255,.08) !important;
    color:#fff !important;
    cursor:pointer !important;
    font-size:16px !important;
    display:grid !important;
    place-items:center !important;
}

html body .sidebar#sidebar .sidebar-nav{
    display:block !important;
    padding:14px 12px 20px !important;
}

html body .sidebar#sidebar .nav-section{
    display:block !important;
    font-size:10px !important;
    font-weight:900 !important;
    letter-spacing:.12em !important;
    text-transform:uppercase !important;
    color:rgba(var(--clinic-primary-rgb),.45) !important;
    margin:18px 10px 8px !important;
    padding:0 !important;
}

html body .sidebar#sidebar .nav-group{
    display:block !important;
    border:1px solid rgba(255,255,255,.08) !important;
    border-radius:16px !important;
    background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.028)) !important;
    margin:0 0 10px !important;
    padding:0 !important;
    overflow:hidden !important;
}

html body .sidebar#sidebar .nav-group summary{
    list-style:none !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    padding:12px 14px !important;
    color:#fff !important;
    font-size:13px !important;
    font-weight:800 !important;
    cursor:pointer !important;
    text-decoration:none !important;
}

html body .sidebar#sidebar .nav-group summary::-webkit-details-marker{
    display:none !important;
}

html body .sidebar#sidebar .nav-group summary::after{
    content:"▾" !important;
    display:block !important;
    color:rgba(var(--clinic-primary-rgb),.62) !important;
    font-size:11px !important;
    transform:rotate(0deg) !important;
    transition:transform .18s ease !important;
}

html body .sidebar#sidebar .nav-group:not([open]) summary::after{
    transform:rotate(-90deg) !important;
}

html body .sidebar#sidebar .nav-submenu{
    display:grid !important;
    gap:3px !important;
    padding:0 8px 9px !important;
}

html body .sidebar#sidebar a.nav-item,
html body .sidebar#sidebar a.nav-item:visited,
html body .sidebar#sidebar a.nav-item:link{
    display:flex !important;
    align-items:center !important;
    gap:11px !important;
    width:100% !important;
    padding:10px 12px !important;
    margin:0 !important;
    border-radius:14px !important;
    box-sizing:border-box !important;
    color:var(--theme-primary-surface-2) !important;
    text-decoration:none !important;
    background:transparent !important;
    border:1px solid transparent !important;
    font-size:14px !important;
    font-weight:700 !important;
    line-height:1.2 !important;
    position:relative !important;
    transition:background .16s ease, transform .16s ease, border-color .16s ease !important;
}

html body .sidebar#sidebar a.nav-item:hover{
    color:#fff !important;
    background:rgba(255,255,255,.09) !important;
    transform:translateX(2px) !important;
}

html body .sidebar#sidebar a.nav-item.active{
    color:#fff !important;
    background:linear-gradient(135deg,rgba(var(--clinic-primary-rgb),.34),rgba(var(--clinic-secondary-rgb),.25)) !important;
    border-color:rgba(255,255,255,.12) !important;
    box-shadow:inset 4px 0 0 var(--clinic-secondary) !important;
}

html body .sidebar#sidebar .nav-icon{
    display:block !important;
    width:8px !important;
    min-width:8px !important;
    height:8px !important;
    border-radius:999px !important;
    background:rgba(var(--clinic-primary-rgb),.55) !important;
    font-size:0 !important;
    line-height:0 !important;
    margin:0 !important;
}

html body .sidebar#sidebar a.nav-item.active .nav-icon{
    background:var(--theme-secondary-mid) !important;
    box-shadow:0 0 0 5px rgba(var(--clinic-secondary-rgb),.10) !important;
}

html body .sidebar#sidebar .nav-label{
    display:block !important;
    color:inherit !important;
    font-size:14px !important;
    font-weight:700 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
}

html body .sidebar#sidebar.collapsed{
    width:82px !important;
}

html body .app-shell:has(.sidebar.collapsed){
    grid-template-columns:82px 1fr !important;
}

html body .sidebar#sidebar.collapsed .brand-copy,
html body .sidebar#sidebar.collapsed .nav-section,
html body .sidebar#sidebar.collapsed .nav-label,
html body .sidebar#sidebar.collapsed .nav-group summary{
    display:none !important;
}

html body .sidebar#sidebar.collapsed .sidebar-top{
    flex-direction:column !important;
    align-items:center !important;
    padding:16px 8px !important;
}

html body .sidebar#sidebar.collapsed .sidebar-nav{
    padding:12px 8px !important;
}

html body .sidebar#sidebar.collapsed a.nav-item{
    justify-content:center !important;
    padding:12px 8px !important;
}

html body .main{
    min-width:0 !important;
    padding:22px 24px 32px !important;
}

@media(max-width:980px){
    html body .app-shell{
        grid-template-columns:1fr !important;
    }
    html body .sidebar#sidebar{
        width:100% !important;
        min-height:auto !important;
        height:auto !important;
        position:relative !important;
    }
    html body .sidebar#sidebar.collapsed{
        width:100% !important;
    }
    html body .sidebar#sidebar.collapsed .brand-copy,
    html body .sidebar#sidebar.collapsed .nav-section,
    html body .sidebar#sidebar.collapsed .nav-label,
    html body .sidebar#sidebar.collapsed .nav-group summary{
        display:block !important;
    }
}


/* Categorias financeiras */
.cadastros-grid{
    align-items:start;
}
.finance-filter{
    flex-wrap:wrap;
}
.finance-filter select{
    min-width:190px;
}
.mini-form select{
    width:100%;
}


/* =========================================================
   ESTÉTICA GERAL PREMIUM — NexoOdonto
   Padronização visual para dashboard, cards, tabelas,
   formulários, ficha, orçamento, financeiro, cadastros e relatórios.
   ========================================================= */
:root{
    --brand-blue:var(--clinic-primary);
    --brand-blue-dark:var(--clinic-primary-950);
    --brand-teal:var(--clinic-secondary);
    --brand-cyan:var(--clinic-secondary);
    --surface:#ffffff;
    --surface-soft:var(--theme-primary-surface-1);
    --surface-teal:var(--theme-secondary-surface-2);
    --ink:var(--clinic-primary-950);
    --ink-soft:var(--clinic-primary);
    --border-soft:var(--theme-primary-surface-2);
    --shadow-soft:0 12px 34px rgba(var(--clinic-primary-rgb),.075);
    --shadow-hover:0 22px 48px rgba(var(--clinic-primary-rgb),.12);
    --radius-card:24px;
    --radius-control:14px;
}

.nexo-body{
    background:
        radial-gradient(circle at top right, rgba(var(--clinic-primary-rgb),.08), transparent 26%),
        radial-gradient(circle at top left, rgba(var(--clinic-secondary-rgb),.08), transparent 23%),
        linear-gradient(180deg,var(--theme-primary-surface-1) 0%,var(--theme-primary-surface-1) 100%) !important;
    color:var(--ink);
}

.page-content{
    animation:pageFade .28s ease both;
}

@keyframes pageFade{
    from{opacity:0;transform:translateY(5px)}
    to{opacity:1;transform:translateY(0)}
}

/* Topo e busca */
.global-search-mini{
    background:rgba(255,255,255,.88) !important;
    border:1px solid rgba(var(--clinic-primary-rgb),.10) !important;
    border-radius:22px !important;
    box-shadow:var(--shadow-soft) !important;
    padding:10px !important;
    backdrop-filter:blur(10px);
}
.global-search-mini input{
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
}
.global-search-mini button{
    border-radius:16px !important;
    background:linear-gradient(135deg,var(--brand-blue),var(--brand-teal)) !important;
    box-shadow:0 12px 24px rgba(var(--clinic-primary-rgb),.18);
}

.topbar{
    background:transparent;
    padding:4px 0 2px;
}
.topbar h1{
    color:var(--brand-blue-dark);
    font-size:34px;
    letter-spacing:-.03em;
}
.topbar p{
    color:var(--ink-soft);
}

/* Cards e painéis */
.card,
.metric,
.patient-header,
form.card,
.payment-summary-card,
.mini-receipt{
    background:rgba(255,255,255,.96) !important;
    border:1px solid rgba(var(--clinic-primary-rgb),.065) !important;
    border-radius:var(--radius-card) !important;
    box-shadow:var(--shadow-soft) !important;
    position:relative;
    overflow:hidden;
    backdrop-filter:blur(10px);
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.card:hover,
.metric:hover,
.patient-header:hover,
form.card:hover{
    transform:translateY(-2px);
    box-shadow:var(--shadow-hover) !important;
    border-color:rgba(var(--clinic-primary-rgb),.14) !important;
}
.card::before,
.metric::before,
.patient-header::before,
form.card::before,
.payment-summary-card::before{
    content:"";
    position:absolute;
    inset:0 auto auto 0;
    height:4px;
    width:100%;
    background:linear-gradient(90deg,var(--brand-blue),var(--brand-teal));
    opacity:.95;
}
.panel-card{
    padding:22px !important;
}
.card h3{
    color:var(--brand-blue-dark);
    margin-top:0;
}
.soft-subtitle{
    color:var(--ink-soft);
    margin:5px 0 0;
}

/* Hero */
.hero-premium,
.hero-panel{
    background:
        radial-gradient(circle at right top, rgba(255,255,255,.16), transparent 28%),
        linear-gradient(135deg,var(--clinic-primary-950) 0%,var(--clinic-primary) 54%,var(--clinic-secondary) 100%) !important;
    color:#fff !important;
    border:0 !important;
    box-shadow:0 22px 60px rgba(var(--clinic-primary-rgb),.18) !important;
}
.hero-panel::before{display:none}
.hero-panel h2{
    font-size:36px !important;
    letter-spacing:-.04em;
}
.hero-panel p{
    color:rgba(255,255,255,.82) !important;
}
.eyebrow{
    display:inline-flex;
    padding:7px 12px;
    border-radius:999px;
    background:rgba(255,255,255,.13);
    border:1px solid rgba(255,255,255,.16);
    color:#fff !important;
}
.hero-actions .btn-soft{
    background:rgba(255,255,255,.16) !important;
    color:#fff !important;
    border:1px solid rgba(255,255,255,.20) !important;
}

/* Métricas */
.premium-metrics{
    grid-template-columns:repeat(auto-fit,minmax(205px,1fr)) !important;
}
.metric{
    min-height:122px;
    padding:18px 18px 16px !important;
}
.metric i{
    width:38px;
    height:38px;
    display:grid;
    place-items:center;
    border-radius:15px;
    background:linear-gradient(135deg,var(--theme-primary-surface-1),var(--theme-secondary-surface-2));
    font-style:normal;
    margin-bottom:12px;
}
.metric span{
    text-transform:uppercase;
    letter-spacing:.04em;
    font-size:11px !important;
    font-weight:900;
    color:var(--ink-soft) !important;
}
.metric strong{
    color:var(--brand-blue-dark) !important;
    font-size:30px !important;
}
.metric.success::before{background:linear-gradient(90deg,#16a34a,#22c55e)}
.metric.warning::before{background:linear-gradient(90deg,#f59e0b,#fbbf24)}
.metric.danger::before{background:linear-gradient(90deg,#dc2626,#fb7185)}
.metric.info::before{background:linear-gradient(90deg,var(--brand-blue),var(--brand-teal))}

/* Botões */
.btn{
    border-radius:15px !important;
    font-weight:900 !important;
    transition:transform .16s ease, box-shadow .16s ease, background .16s ease !important;
}
.btn:hover{
    transform:translateY(-1px);
}
.btn-primary{
    background:linear-gradient(135deg,var(--brand-blue),var(--brand-teal)) !important;
    color:#fff !important;
    border:0 !important;
    box-shadow:0 12px 24px rgba(var(--clinic-primary-rgb),.20) !important;
}
.btn-soft{
    background:linear-gradient(180deg,#fff,var(--theme-primary-surface-1)) !important;
    color:var(--brand-blue) !important;
    border:1px solid rgba(var(--clinic-primary-rgb),.12) !important;
}
.btn-danger{
    border:1px solid rgba(220,38,38,.12) !important;
}

/* Tabelas */
.clean-table,
table{
    border-collapse:separate !important;
    border-spacing:0 !important;
}
thead th{
    background:var(--theme-primary-surface-1) !important;
    color:var(--brand-blue-dark) !important;
    font-weight:900 !important;
    border-bottom:1px solid var(--border-soft) !important;
}
thead th:first-child{border-top-left-radius:16px}
thead th:last-child{border-top-right-radius:16px}
tbody tr{
    transition:background .15s ease;
}
tbody tr:hover{
    background:var(--theme-primary-surface-1);
}
td strong{
    color:var(--brand-blue-dark);
}
.table-action,
td a{
    color:var(--brand-blue);
    font-weight:800;
    text-decoration:none;
}
.table-action:hover,
td a:hover{
    color:var(--brand-teal);
}

/* Formulários */
label{
    color:var(--brand-blue-dark) !important;
    font-weight:800 !important;
}
input,select,textarea{
    border:1px solid var(--theme-primary-surface-3) !important;
    border-radius:var(--radius-control) !important;
    background:var(--theme-primary-surface-1) !important;
    transition:border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
input:focus,select:focus,textarea:focus{
    border-color:rgba(var(--clinic-primary-rgb),.48) !important;
    box-shadow:0 0 0 4px rgba(var(--clinic-primary-rgb),.09) !important;
    background:#fff !important;
}
.section-title{
    color:var(--brand-blue-dark) !important;
    font-size:16px;
}

/* Abas da ficha do paciente */
.tabs{
    background:rgba(255,255,255,.90);
    border:1px solid rgba(var(--clinic-primary-rgb),.06);
    box-shadow:var(--shadow-soft);
    border-radius:20px;
    padding:8px;
    display:flex;
    gap:6px;
    flex-wrap:wrap;
    margin:18px 0;
}
.tabs a{
    color:var(--ink-soft);
    text-decoration:none;
    padding:10px 13px;
    border-radius:14px;
    font-weight:800;
}
.tabs a.active,
.tabs a:hover{
    color:#fff;
    background:linear-gradient(135deg,var(--brand-blue),var(--brand-teal));
}

/* Avatares e ficha */
.avatar-lg{
    background:linear-gradient(135deg,var(--brand-blue),var(--brand-teal)) !important;
    color:#fff !important;
    box-shadow:0 12px 26px rgba(var(--clinic-primary-rgb),.18);
}
.patient-header{
    align-items:center;
}

/* Pills */
.pill{
    background:var(--theme-primary-surface-1) !important;
    color:var(--brand-blue) !important;
    border:1px solid rgba(var(--clinic-primary-rgb),.12);
    border-radius:999px !important;
}
.pill.danger{
    background:#fff1f2 !important;
    color:#be123c !important;
    border-color:rgba(190,18,60,.12);
}

/* Features */
.premium-feature-grid,
.feature-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
    gap:12px;
}
.premium-feature-grid span,
.feature-grid span{
    background:linear-gradient(180deg,#fff,var(--theme-primary-surface-1));
    border:1px solid var(--border-soft);
    border-radius:16px;
    padding:14px;
    color:var(--brand-blue-dark);
    font-weight:800;
}

/* Recibo pequeno */
.mini-receipt{
    max-width:480px;
}
.mini-total{
    background:linear-gradient(135deg,var(--theme-primary-surface-1),var(--theme-secondary-surface-2)) !important;
}

/* Grades */
.grid-2,.grid-3,.premium-dashboard-grid{
    gap:18px !important;
}

/* Responsivo */
@media(max-width:980px){
    .topbar{
        display:grid;
        gap:12px;
    }
    .hero-panel{
        display:grid !important;
        gap:16px;
    }
}


/* Correção: rolagem interna no menu flutuante do odontograma */
.floating-tooth-menu{
    max-height:min(76vh, 720px) !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    overscroll-behavior:contain;
    scrollbar-width:thin;
    scrollbar-color:rgba(var(--clinic-primary-rgb),.45) rgba(var(--clinic-primary-rgb),.55);
}
.floating-tooth-menu::-webkit-scrollbar{
    width:9px;
}
.floating-tooth-menu::-webkit-scrollbar-track{
    background:rgba(var(--clinic-primary-rgb),.65);
    border-radius:999px;
}
.floating-tooth-menu::-webkit-scrollbar-thumb{
    background:linear-gradient(180deg,var(--clinic-primary),var(--clinic-secondary));
    border-radius:999px;
    border:2px solid rgba(255,255,255,.85);
}
.floating-menu-head{
    position:sticky;
    top:-14px;
    z-index:5;
    background:#fff;
    padding-top:14px !important;
}
.floating-menu-tabs{
    position:sticky;
    top:70px;
    z-index:4;
    background:var(--theme-primary-surface-1);
}
.floating-tab-content{
    max-height:calc(76vh - 155px);
    overflow-y:auto;
    overflow-x:hidden;
    padding-right:4px;
    scrollbar-width:thin;
    scrollbar-color:rgba(var(--clinic-primary-rgb),.45) rgba(var(--clinic-primary-rgb),.55);
}
.floating-tab-content::-webkit-scrollbar{
    width:8px;
}
.floating-tab-content::-webkit-scrollbar-track{
    background:rgba(var(--clinic-primary-rgb),.55);
    border-radius:999px;
}
.floating-tab-content::-webkit-scrollbar-thumb{
    background:linear-gradient(180deg,var(--clinic-primary),var(--clinic-secondary));
    border-radius:999px;
}
.floating-procedure-grid,
.floating-history-list{
    max-height:none !important;
    overflow:visible !important;
}
.floating-tooth-form{
    padding-bottom:6px;
}
@media(max-width:900px){
    .floating-tooth-menu{
        max-height:88vh !important;
        overflow-y:auto !important;
    }
    .floating-menu-head{
        top:-14px;
    }
    .floating-menu-tabs{
        top:70px;
    }
    .floating-tab-content{
        max-height:calc(88vh - 155px);
    }
}
@media(max-height:720px){
    .floating-tooth-menu{
        max-height:86vh !important;
    }
    .floating-tab-content{
        max-height:calc(86vh - 155px);
    }
}


/* Odontograma: remover legenda, ampliar boca e manter confirmar visível */
.odonto-grid-single{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:20px !important;
}
.odonto-grid-single > .card{
    width:100%;
}
.odonto-grid-single .mouth-board{
    min-height:370px;
}
.odonto-grid-single .jaw{
    max-width:100%;
}
.floating-tooth-menu{
    padding-bottom:12px !important;
}
.floating-tooth-form{
    display:grid;
    gap:10px;
}
.floating-actions{
    position:sticky;
    bottom:-6px;
    z-index:6;
    background:linear-gradient(180deg,rgba(255,255,255,.88),#fff 35%);
    padding-top:10px;
    margin-top:4px;
    border-top:1px solid var(--theme-primary-surface-2);
}
.floating-confirm-btn{
    background:linear-gradient(135deg,var(--clinic-primary),var(--clinic-secondary)) !important;
    color:#fff !important;
    box-shadow:0 12px 24px rgba(var(--clinic-primary-rgb),.18);
}
@media(max-width:900px){
    .odonto-grid-single .mouth-board{
        min-height:330px;
    }
}


/* Odontograma: botão Confirmar fixo e sempre visível no menu */
.floating-tooth-menu{
    display:none;
    grid-template-rows:auto auto minmax(0,1fr) auto;
}
.floating-tooth-menu.show{
    display:grid !important;
}
.floating-tab-content{
    min-height:0;
}
.floating-fixed-footer{
    display:none;
    grid-template-columns:1fr 1fr;
    gap:8px;
    position:sticky;
    bottom:-14px;
    z-index:20;
    background:linear-gradient(180deg,rgba(255,255,255,.86),#fff 42%);
    padding:12px 0 2px;
    margin-top:8px;
    border-top:1px solid var(--theme-primary-surface-2);
}
.floating-confirm-btn{
    min-height:42px;
    font-size:14px;
    font-weight:900;
}
@media(max-width:520px){
    .floating-fixed-footer{
        grid-template-columns:1fr;
    }
}


/* =========================================================
   RESPONSIVIDADE GERAL E ODONTOGRAMA
   Corrige páginas para não depender de zoom do navegador.
   ========================================================= */

/* Base */
html, body{
    max-width:100%;
    overflow-x:hidden;
}
.main,
.page-content{
    min-width:0;
}
img, svg, canvas{
    max-width:100%;
    height:auto;
}
.card, .panel-card, .form, .patient-header, .hero-panel{
    min-width:0;
}
.grid-2, .grid-3, .metric-grid, .premium-dashboard-grid, .feature-grid, .premium-feature-grid{
    min-width:0;
}
table{
    width:100%;
}
.card table, .panel-card table{
    display:block;
    overflow-x:auto;
    white-space:nowrap;
}
.card table thead, .card table tbody, .card table tr{
    width:max-content;
    min-width:100%;
}

/* Cabeçalhos e áreas superiores */
.topbar,
.hero-panel,
.patient-header{
    display:flex;
    gap:16px;
    align-items:flex-start;
    justify-content:space-between;
    flex-wrap:wrap;
}
.global-search-mini{
    width:100%;
    max-width:100%;
}
.hero-actions{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}
.search-row,
.finance-filter{
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}
.search-row > *,
.finance-filter > *{
    flex:1 1 180px;
    min-width:160px;
}

/* Ficha / abas */
.tabs{
    overflow:auto;
    scrollbar-width:thin;
}
.tabs a{
    white-space:nowrap;
}
.patient-header{
    grid-template-columns:unset !important;
}

/* Odontograma – layout principal */
.odonto-grid-main,
.odonto-grid-single{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:18px !important;
}
.mouth-board{
    width:100%;
    overflow:hidden;
}
.jaw{
    width:100%;
    min-width:0;
}
.teeth-arch{
    display:grid;
    grid-template-columns:1fr 24px 1fr;
    gap:8px;
    align-items:start;
}
.arch-side{
    display:grid;
    grid-template-columns:repeat(8, minmax(34px, 1fr));
    gap:8px;
}
.tooth-card{
    min-width:0;
}
.tooth-number{
    font-size:11px;
}
.tooth-shape{
    min-height:54px;
}

/* Menu flutuante do odontograma */
html body .floating-tooth-menu{
    width:min(370px, calc(100vw - 32px)) !important;
    max-width:min(370px, calc(100vw - 32px)) !important;
    max-height:min(78vh, 680px) !important;
    display:none;
    grid-template-rows:auto auto minmax(0,1fr) auto !important;
    overflow:hidden !important;
    padding:14px !important;
}
html body .floating-tooth-menu.show{
    display:grid !important;
}
html body .floating-menu-head{
    position:relative;
    padding-bottom:8px;
}
html body .floating-menu-tabs{
    position:relative;
    top:auto;
    margin-bottom:8px;
}
html body .floating-tab-content{
    min-height:0 !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    padding-right:4px;
    max-height:none !important;
}
html body .floating-procedure-grid,
html body .floating-history-list{
    max-height:none !important;
    overflow:visible !important;
}
html body .floating-tooth-form{
    display:grid !important;
    gap:10px !important;
}
html body .floating-tooth-form textarea{
    min-height:54px !important;
    max-height:100px !important;
}
html body .floating-fixed-footer{
    display:grid !important;
    grid-template-columns:1fr 1fr;
    gap:8px;
    position:relative !important;
    bottom:auto !important;
    padding-top:10px !important;
    margin-top:10px !important;
    background:linear-gradient(180deg, rgba(255,255,255,.92), #fff 38%) !important;
    border-top:1px solid var(--theme-primary-surface-2) !important;
    z-index:5 !important;
}
html body .floating-confirm-btn{
    min-height:44px !important;
}
#floatingFixedFooter{
    display:none;
}
#floatingDetails:not(.hidden) ~ #floatingFixedFooter{
    display:grid !important;
}

/* Sidebar e shell */
@media (max-width: 1366px){
    .app-shell{
        grid-template-columns:250px 1fr !important;
    }
    .sidebar{
        width:250px !important;
    }
    .main{
        padding:16px 18px 24px !important;
    }
}

@media (max-width: 1200px){
    .app-shell{
        grid-template-columns:1fr !important;
    }
    .sidebar,
    .sidebar.collapsed{
        width:100% !important;
        min-height:auto !important;
        height:auto !important;
        position:relative !important;
    }
    .sidebar-top{
        position:sticky;
        top:0;
        z-index:10;
    }
    .main{
        padding:16px !important;
    }
    .grid-2,
    .grid-3,
    .premium-dashboard-grid{
        grid-template-columns:1fr !important;
    }
    .metric-grid{
        grid-template-columns:repeat(2, minmax(0,1fr)) !important;
    }

    /* Odontograma em notebook/telas médias */
    html body .floating-tooth-menu{
        position:fixed !important;
        right:16px !important;
        top:96px !important;
        left:auto !important;
        max-height:calc(100vh - 120px) !important;
        z-index:60 !important;
    }
    .teeth-arch{
        grid-template-columns:1fr 14px 1fr;
        gap:6px;
    }
    .arch-side{
        grid-template-columns:repeat(8, minmax(28px, 1fr));
        gap:6px;
    }
    .tooth-shape{
        min-height:48px;
    }
}

@media (max-width: 900px){
    .metric-grid{
        grid-template-columns:1fr !important;
    }
    .hero-panel h2{
        font-size:28px !important;
    }
    .topbar h1{
        font-size:28px !important;
    }
    .patient-header{
        padding:18px !important;
    }
    .tabs{
        padding:6px;
    }
    .tabs a{
        padding:9px 11px;
        font-size:13px;
    }

    /* Odontograma em tablet e celular */
    .mouth-board{
        padding:14px !important;
    }
    .jaw{
        padding:10px !important;
    }
    .jaw-label{
        font-size:12px !important;
    }
    .arch-side{
        grid-template-columns:repeat(8, minmax(24px, 1fr));
        gap:5px;
    }
    .tooth-number{
        font-size:10px;
    }
    .tooth-shape{
        min-height:42px;
        border-radius:32% 32% 24% 24% / 26% 26% 40% 40%;
    }

    html body .floating-tooth-menu{
        width:min(96vw, 380px) !important;
        max-width:min(96vw, 380px) !important;
        max-height:calc(100vh - 90px) !important;
        top:74px !important;
        right:8px !important;
        left:8px !important;
        margin:auto !important;
    }
    html body .floating-fixed-footer{
        grid-template-columns:1fr !important;
    }
}

@media (max-width: 640px){
    .main{
        padding:12px !important;
    }
    .card, .panel-card, .form, .hero-panel, .patient-header{
        border-radius:18px !important;
    }
    .hero-actions,
    .search-row,
    .finance-filter{
        display:grid !important;
        grid-template-columns:1fr !important;
    }
    .search-row > *,
    .finance-filter > *{
        min-width:0 !important;
    }

    /* tabelas mais adaptadas */
    .card table, .panel-card table{
        font-size:12px;
    }

    /* Odontograma ultra compacto */
    .teeth-arch{
        grid-template-columns:1fr 10px 1fr;
        gap:4px;
    }
    .arch-side{
        grid-template-columns:repeat(8, minmax(20px, 1fr));
        gap:4px;
    }
    .tooth-shape{
        min-height:36px;
    }
    .mouth-divider{
        margin:10px 0 !important;
    }
    html body .floating-tooth-menu{
        top:66px !important;
        width:calc(100vw - 16px) !important;
        max-width:calc(100vw - 16px) !important;
        max-height:calc(100vh - 78px) !important;
        left:8px !important;
        right:8px !important;
        border-radius:18px !important;
        padding:12px !important;
    }
    html body .floating-menu-tabs button{
        font-size:12px !important;
        padding:8px 10px !important;
    }
    html body .floating-tooth-form input,
    html body .floating-tooth-form select,
    html body .floating-tooth-form textarea{
        font-size:13px !important;
        padding:10px 11px !important;
    }
}

/* Garante que qualquer tabela ou grid não cause estouro horizontal */
.card, .panel-card, .main, .page-content, .grid-2, .grid-3{
    max-width:100%;
}


/* =========================================================
   CORREÇÃO DEFINITIVA — MENU DO ODONTOGRAMA
   O menu não fica mais preso/cortado dentro da boca.
   Confirmar sempre visível.
   ========================================================= */

.mouth-board{
    overflow:visible !important;
}

html body .floating-tooth-menu{
    position:fixed !important;
    z-index:9999 !important;
    display:none !important;
    grid-template-rows:auto auto minmax(0,1fr) auto !important;
    width:360px !important;
    max-width:calc(100vw - 28px) !important;
    max-height:calc(100vh - 28px) !important;
    overflow:hidden !important;
    padding:12px !important;
    border-radius:20px !important;
    background:#fff !important;
    box-shadow:0 28px 90px rgba(var(--clinic-primary-rgb),.30) !important;
}

html body .floating-tooth-menu.show{
    display:grid !important;
}

html body .floating-menu-arrow{
    display:none !important;
}

html body .floating-menu-head{
    position:relative !important;
    top:auto !important;
    padding:2px 2px 10px !important;
    background:#fff !important;
    z-index:3 !important;
}

html body .floating-menu-head strong{
    font-size:21px !important;
}

html body .floating-menu-tabs{
    position:relative !important;
    top:auto !important;
    margin:8px 0 !important;
    z-index:3 !important;
    background:var(--theme-primary-surface-1) !important;
}

html body .floating-tab-content{
    min-height:0 !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    max-height:none !important;
    padding-right:4px !important;
    scrollbar-width:thin !important;
    scrollbar-color:rgba(var(--clinic-primary-rgb),.55) rgba(var(--clinic-primary-rgb),.70) !important;
}

html body .floating-tab-content::-webkit-scrollbar{
    width:8px !important;
}

html body .floating-tab-content::-webkit-scrollbar-track{
    background:rgba(var(--clinic-primary-rgb),.70) !important;
    border-radius:999px !important;
}

html body .floating-tab-content::-webkit-scrollbar-thumb{
    background:linear-gradient(180deg,var(--clinic-primary),var(--clinic-secondary)) !important;
    border-radius:999px !important;
}

html body .floating-procedure-grid,
html body .floating-history-list{
    max-height:none !important;
    overflow:visible !important;
}

html body .floating-tooth-form{
    display:grid !important;
    gap:8px !important;
}

html body .floating-tooth-form label{
    gap:5px !important;
}

html body .floating-tooth-form input,
html body .floating-tooth-form select,
html body .floating-tooth-form textarea{
    padding:9px 10px !important;
    font-size:13px !important;
    border-radius:11px !important;
}

html body .floating-tooth-form textarea{
    min-height:52px !important;
    max-height:82px !important;
    resize:vertical !important;
}

html body .floating-grid{
    gap:8px !important;
}

html body .floating-integrations{
    gap:6px !important;
}

html body .mini-check{
    padding:7px 9px !important;
}

html body .floating-fixed-footer,
html body #floatingFixedFooter{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
    position:relative !important;
    bottom:auto !important;
    z-index:50 !important;
    background:#fff !important;
    padding:10px 0 0 !important;
    margin-top:10px !important;
    border-top:1px solid var(--theme-primary-surface-2) !important;
}

html body .floating-confirm-btn{
    min-height:42px !important;
    font-size:14px !important;
    font-weight:900 !important;
    border-radius:12px !important;
}

@media(max-width:900px){
    html body .floating-tooth-menu{
        left:12px !important;
        right:12px !important;
        top:12px !important;
        width:auto !important;
        max-width:none !important;
        max-height:calc(100vh - 24px) !important;
    }
}

@media(max-width:520px){
    html body .floating-fixed-footer,
    html body #floatingFixedFooter{
        grid-template-columns:1fr !important;
    }
}


/* =========================================================
   CORREÇÃO FINAL ABSOLUTA — CONFIRMAR SEM ROLAGEM
   Botão Confirmar no topo + menu inteiro com barra de rolagem.
   ========================================================= */

html body #floatingToothMenu.floating-tooth-menu{
    position:fixed !important;
    top:84px !important;
    right:18px !important;
    bottom:18px !important;
    left:auto !important;
    width:360px !important;
    max-width:calc(100vw - 36px) !important;
    height:auto !important;
    max-height:none !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    display:none !important;
    padding:12px !important;
    z-index:999999 !important;
    background:#fff !important;
    border:1px solid var(--theme-primary-surface-3) !important;
    border-radius:20px !important;
    box-shadow:0 30px 90px rgba(var(--clinic-primary-rgb),.32) !important;
    scrollbar-width:thin !important;
    scrollbar-color:var(--clinic-primary) var(--theme-primary-surface-2) !important;
}

html body #floatingToothMenu.floating-tooth-menu.show{
    display:block !important;
}

html body #floatingToothMenu::-webkit-scrollbar{
    width:10px !important;
}

html body #floatingToothMenu::-webkit-scrollbar-track{
    background:var(--theme-primary-surface-2) !important;
    border-radius:999px !important;
}

html body #floatingToothMenu::-webkit-scrollbar-thumb{
    background:linear-gradient(180deg,var(--clinic-primary),var(--clinic-secondary)) !important;
    border-radius:999px !important;
    border:2px solid var(--theme-primary-surface-2) !important;
}

html body #floatingToothMenu .floating-menu-head{
    position:sticky !important;
    top:-12px !important;
    z-index:100 !important;
    background:#fff !important;
    padding:10px 2px 10px !important;
    border-bottom:1px solid var(--theme-primary-surface-2) !important;
}

html body .floating-head-actions{
    display:flex !important;
    align-items:center !important;
    gap:8px !important;
}

html body .floating-top-confirm{
    border:0 !important;
    border-radius:12px !important;
    padding:9px 12px !important;
    background:linear-gradient(135deg,var(--clinic-primary),var(--clinic-secondary)) !important;
    color:#fff !important;
    font-weight:900 !important;
    cursor:pointer !important;
    box-shadow:0 10px 20px rgba(var(--clinic-primary-rgb),.16) !important;
}

html body .floating-close-btn{
    width:34px !important;
    height:34px !important;
    border:0 !important;
    border-radius:50% !important;
    background:var(--theme-primary-surface-1) !important;
    color:var(--clinic-primary) !important;
    font-size:22px !important;
    cursor:pointer !important;
}

html body #floatingToothMenu .floating-menu-tabs{
    position:sticky !important;
    top:62px !important;
    z-index:90 !important;
    background:var(--theme-primary-surface-1) !important;
}

html body #floatingToothMenu .floating-tab-content{
    overflow:visible !important;
    max-height:none !important;
    min-height:0 !important;
    padding-right:0 !important;
}

html body #floatingToothMenu .floating-procedure-grid,
html body #floatingToothMenu .floating-history-list{
    max-height:none !important;
    overflow:visible !important;
}

html body #floatingToothMenu .floating-fixed-footer,
html body #floatingToothMenu #floatingFixedFooter{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
    position:sticky !important;
    bottom:-12px !important;
    z-index:100 !important;
    background:#fff !important;
    padding:10px 0 12px !important;
    margin-top:10px !important;
    border-top:1px solid var(--theme-primary-surface-2) !important;
}

html body #floatingToothMenu .floating-confirm-btn{
    min-height:42px !important;
    font-weight:900 !important;
}

html body #floatingToothMenu .floating-tooth-form textarea{
    min-height:52px !important;
    max-height:90px !important;
}

@media(max-width:900px){
    html body #floatingToothMenu.floating-tooth-menu{
        top:12px !important;
        right:12px !important;
        left:12px !important;
        bottom:12px !important;
        width:auto !important;
        max-width:none !important;
    }
}

@media(max-width:520px){
    html body #floatingToothMenu .floating-fixed-footer,
    html body #floatingToothMenu #floatingFixedFooter{
        grid-template-columns:1fr !important;
    }
}


/* =========================================================
   ODONTOGRAMA FINAL — BOTÃO EMBAIXO + SCROLL ATÉ O FIM
   Remove confirmar do topo. O menu inteiro rola até Confirmar.
   ========================================================= */

html body #floatingToothMenu.floating-tooth-menu{
    position:fixed !important;
    top:16px !important;
    bottom:16px !important;
    left:auto;
    right:auto;
    width:360px !important;
    max-width:calc(100vw - 32px) !important;
    height:auto !important;
    max-height:none !important;
    display:none !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    padding:14px !important;
    padding-bottom:18px !important;
    background:#fff !important;
    border:1px solid var(--theme-primary-surface-3) !important;
    border-radius:20px !important;
    box-shadow:0 30px 90px rgba(var(--clinic-primary-rgb),.30) !important;
    z-index:999999 !important;
    scrollbar-width:thin !important;
    scrollbar-color:var(--clinic-primary) var(--theme-primary-surface-2) !important;
}

html body #floatingToothMenu.floating-tooth-menu.show{
    display:block !important;
}

html body #floatingToothMenu::-webkit-scrollbar{
    width:10px !important;
}

html body #floatingToothMenu::-webkit-scrollbar-track{
    background:var(--theme-primary-surface-2) !important;
    border-radius:999px !important;
}

html body #floatingToothMenu::-webkit-scrollbar-thumb{
    background:linear-gradient(180deg,var(--clinic-primary),var(--clinic-secondary)) !important;
    border-radius:999px !important;
    border:2px solid var(--theme-primary-surface-2) !important;
}

/* Cabeçalho e abas ficam bonitos, mas não bloqueiam o scroll até o botão */
html body #floatingToothMenu .floating-menu-head{
    position:sticky !important;
    top:-14px !important;
    z-index:20 !important;
    background:#fff !important;
    padding:10px 2px 10px !important;
    border-bottom:1px solid var(--theme-primary-surface-2) !important;
}

html body #floatingToothMenu .floating-menu-tabs{
    position:sticky !important;
    top:58px !important;
    z-index:19 !important;
    background:var(--theme-primary-surface-1) !important;
    margin:10px 0 !important;
}

/* Área de conteúdo NÃO tem scroll próprio; quem rola é o menu inteiro */
html body #floatingToothMenu .floating-tab-content{
    overflow:visible !important;
    max-height:none !important;
    min-height:0 !important;
    padding-right:0 !important;
}

html body #floatingToothMenu .floating-procedure-grid,
html body #floatingToothMenu .floating-history-list{
    max-height:none !important;
    overflow:visible !important;
}

html body #floatingToothMenu .floating-tooth-form{
    display:grid !important;
    gap:9px !important;
}

html body #floatingToothMenu .floating-tooth-form input,
html body #floatingToothMenu .floating-tooth-form select,
html body #floatingToothMenu .floating-tooth-form textarea{
    padding:9px 10px !important;
    font-size:13px !important;
    border-radius:11px !important;
}

html body #floatingToothMenu .floating-tooth-form textarea{
    min-height:54px !important;
    max-height:90px !important;
    resize:vertical !important;
}

html body #floatingToothMenu .floating-grid{
    gap:8px !important;
}

html body #floatingToothMenu .floating-integrations{
    gap:6px !important;
}

html body #floatingToothMenu .mini-check{
    padding:7px 9px !important;
}

/* Rodapé fica SOMENTE embaixo e faz parte da rolagem até o final */
html body #floatingToothMenu .floating-fixed-footer,
html body #floatingToothMenu #floatingFixedFooter{
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:8px !important;
    position:relative !important;
    bottom:auto !important;
    z-index:1 !important;
    background:#fff !important;
    padding:12px 0 0 !important;
    margin-top:12px !important;
    border-top:1px solid var(--theme-primary-surface-2) !important;
}

html body #floatingToothMenu .floating-confirm-btn{
    min-height:42px !important;
    font-size:14px !important;
    font-weight:900 !important;
    border-radius:12px !important;
}

/* Remove qualquer botão confirmar do topo, caso tenha ficado no HTML antigo em cache */
html body #floatingToothMenu .floating-top-confirm,
html body #floatingToothMenu .floating-head-actions{
    display:none !important;
}

html body #floatingToothMenu .floating-menu-arrow{
    display:none !important;
}

@media(max-width:900px){
    html body #floatingToothMenu.floating-tooth-menu{
        left:12px !important;
        right:12px !important;
        top:12px !important;
        bottom:12px !important;
        width:auto !important;
        max-width:none !important;
    }
}

@media(max-width:520px){
    html body #floatingToothMenu .floating-fixed-footer,
    html body #floatingToothMenu #floatingFixedFooter{
        grid-template-columns:1fr !important;
    }
}

/* =========================================================
   NEXOODONTO 1.2.7 — MENU DO ODONTOGRAMA COM CONFIRMAR VISÍVEL
   O cabeçalho, as abas e o rodapé permanecem visíveis. Somente
   o conteúdo central rola, evitando que Confirmar seja escondido.
   ========================================================= */
html body #floatingToothMenu.floating-tooth-menu{
    position:fixed !important;
    top:16px !important;
    bottom:16px !important;
    left:auto;
    right:auto;
    width:min(390px,calc(100vw - 32px)) !important;
    max-width:calc(100vw - 32px) !important;
    height:auto !important;
    max-height:none !important;
    min-height:0 !important;
    display:none !important;
    grid-template-rows:auto auto minmax(0,1fr) auto !important;
    overflow:hidden !important;
    padding:14px !important;
    background:#fff !important;
    border:1px solid var(--theme-primary-surface-3) !important;
    border-radius:20px !important;
    box-shadow:0 30px 90px rgba(var(--clinic-primary-rgb),.30) !important;
    z-index:999999 !important;
}

html body #floatingToothMenu.floating-tooth-menu.show{
    display:grid !important;
}

html body #floatingToothMenu .floating-menu-arrow{
    display:none !important;
}

html body #floatingToothMenu .floating-menu-head{
    position:relative !important;
    top:auto !important;
    z-index:3 !important;
    flex:0 0 auto;
    background:#fff !important;
    padding:0 0 10px !important;
    border-bottom:1px solid var(--theme-primary-surface-2) !important;
}

html body #floatingToothMenu .floating-menu-tabs{
    position:relative !important;
    top:auto !important;
    z-index:3 !important;
    flex:0 0 auto;
    margin:10px 0 8px !important;
    background:var(--theme-primary-surface-1) !important;
}

html body #floatingToothMenu .floating-tab-content{
    min-height:0 !important;
    max-height:none !important;
    overflow-y:auto !important;
    overflow-x:hidden !important;
    overscroll-behavior:contain;
    padding:2px 5px 6px 0 !important;
    scrollbar-width:thin !important;
    scrollbar-color:var(--clinic-primary) var(--theme-primary-surface-2) !important;
}

html body #floatingToothMenu .floating-tab-content::-webkit-scrollbar{
    width:9px !important;
}

html body #floatingToothMenu .floating-tab-content::-webkit-scrollbar-track{
    background:var(--theme-primary-surface-2) !important;
    border-radius:999px !important;
}

html body #floatingToothMenu .floating-tab-content::-webkit-scrollbar-thumb{
    background:linear-gradient(180deg,var(--clinic-primary),var(--clinic-secondary)) !important;
    border-radius:999px !important;
    border:2px solid var(--theme-primary-surface-2) !important;
}

html body #floatingToothMenu .floating-procedure-grid,
html body #floatingToothMenu .floating-history-list{
    max-height:none !important;
    overflow:visible !important;
}

html body #floatingToothMenu .floating-tooth-form{
    display:grid !important;
    gap:9px !important;
    padding-bottom:2px !important;
}

html body #floatingToothMenu .floating-tooth-form input,
html body #floatingToothMenu .floating-tooth-form select,
html body #floatingToothMenu .floating-tooth-form textarea{
    padding:9px 10px !important;
    font-size:13px !important;
    border-radius:11px !important;
}

html body #floatingToothMenu .floating-tooth-form textarea{
    min-height:54px !important;
    max-height:90px !important;
    resize:vertical !important;
}

html body #floatingToothMenu .floating-fixed-footer,
html body #floatingToothMenu #floatingFixedFooter{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
    gap:8px !important;
    position:relative !important;
    bottom:auto !important;
    z-index:5 !important;
    flex:0 0 auto;
    background:#fff !important;
    padding:11px 0 0 !important;
    margin:8px 0 0 !important;
    border-top:1px solid var(--theme-primary-surface-2) !important;
    box-shadow:0 -8px 18px rgba(var(--clinic-primary-rgb),.035) !important;
}

html body #floatingToothMenu .floating-confirm-btn{
    min-height:44px !important;
    font-size:14px !important;
    font-weight:900 !important;
    border-radius:12px !important;
    background:linear-gradient(135deg,var(--clinic-primary),var(--clinic-secondary)) !important;
    color:#fff !important;
    box-shadow:0 10px 20px rgba(var(--clinic-primary-rgb),.16) !important;
}

html body #floatingToothMenu .floating-confirm-btn:disabled{
    opacity:.55 !important;
    cursor:not-allowed !important;
    box-shadow:none !important;
    filter:saturate(.55) !important;
}

html body #floatingToothMenu .floating-top-confirm,
html body #floatingToothMenu .floating-head-actions{
    display:none !important;
}

@media(max-height:690px){
    html body #floatingToothMenu.floating-tooth-menu{
        top:8px !important;
        bottom:8px !important;
        padding:10px !important;
    }
    html body #floatingToothMenu .floating-menu-head{
        padding-bottom:7px !important;
    }
    html body #floatingToothMenu .floating-menu-tabs{
        margin:7px 0 6px !important;
    }
    html body #floatingToothMenu .floating-fixed-footer,
    html body #floatingToothMenu #floatingFixedFooter{
        padding-top:8px !important;
        margin-top:6px !important;
    }
}

@media(max-width:900px){
    html body #floatingToothMenu.floating-tooth-menu{
        left:12px !important;
        right:12px !important;
        top:12px !important;
        bottom:12px !important;
        width:auto !important;
        max-width:none !important;
    }
}

@media(max-width:520px){
    html body #floatingToothMenu .floating-fixed-footer,
    html body #floatingToothMenu #floatingFixedFooter{
        grid-template-columns:1fr 1fr !important;
    }
    html body #floatingToothMenu .floating-confirm-btn,
    html body #floatingToothMenu .floating-fixed-footer .btn{
        min-height:42px !important;
        padding-left:8px !important;
        padding-right:8px !important;
    }
}

/* O menu é levado ao body pelo JavaScript; remove deslocamentos da animação. */
html body #floatingToothMenu.floating-tooth-menu,
html body #floatingToothMenu.floating-tooth-menu.show{
    transform:none !important;
    animation:none !important;
}

/* Abas do menu devem aparecer imediatamente, sem herdar animação genérica de sections. */
html body #floatingToothMenu .floating-tab-content{
    animation:none !important;
    opacity:1 !important;
    transform:none !important;
}
