:root{--wine:#7f1528;--wine-dark:#550c1e;--accent:#7f1528;--accent-dark:#550c1e;--rose:#e5a393;--rose-light:#f4ae9d;--pink-soft:#ffeaea;--bg:#fdf9f8;--card:#fff;--ink:#542b21;--muted:#9c7d74;--line:#efe2df}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);margin:0;padding:0;font-family:Segoe UI,Roboto,system-ui,sans-serif;font-size:15px}a{color:inherit;text-decoration:none}button{font-family:inherit}.topbar{z-index:50;background:var(--wine);color:#fff;align-items:center;gap:1rem;height:52px;padding:0 1rem;display:flex;position:sticky;top:0}.topbar .brand{letter-spacing:.02em;white-space:nowrap;font-weight:600}.topbar form.search{flex:1;justify-content:center;display:flex}.topbar input[type=search]{background:#f1f1f3;border:none;border-radius:4px;width:min(480px,100%);padding:.45rem .8rem;font-size:.9rem}.topbar .user{white-space:nowrap;font-weight:500}.hamburger{color:#fff;cursor:pointer;background:#ffffff1f;border:none;border-radius:4px;padding:.35rem .6rem;font-size:1.2rem}.drawer{border-right:1px solid var(--line);z-index:40;background:#fff;width:240px;padding:.5rem 0;position:fixed;top:52px;bottom:0;left:0;overflow-y:auto;box-shadow:2px 0 12px #00000014}.drawer a,.drawer span.soon{color:var(--ink);padding:.55rem 1.2rem;font-size:.92rem;display:block}.drawer a:hover{background:var(--pink-soft)}.drawer span.soon{color:#b6bcc6;cursor:default}.drawer .sect{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:.8rem 1.2rem .3rem;font-size:.7rem}.page{max-width:1400px;margin:0 auto;padding:1.2rem 1.4rem 3rem}.page-title{margin:0 0 .2rem;font-size:1.35rem;font-weight:600}.page-sub{color:var(--muted);margin:0 0 1.2rem;font-size:.92rem}.btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:.5rem 1rem;font-size:.9rem;font-weight:600;display:inline-block}.btn:hover{background:var(--accent-dark)}.btn.ghost{color:var(--accent);border:1px solid var(--accent);background:#fff}.btn.ghost:hover{background:var(--pink-soft)}.btn.small{padding:.25rem .6rem;font-size:.8rem}.btn.danger{color:#b03a3a;background:#fff;border:1px solid #b03a3a}.module-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin-top:1.5rem;display:grid}.module-card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:1.2rem;transition:box-shadow .15s}.module-card:hover{box-shadow:0 4px 16px #8a1e301f}.module-card .ico{background:var(--pink-soft);width:42px;height:42px;color:var(--wine);border-radius:8px;justify-content:center;align-items:center;margin-bottom:.7rem;font-size:1.3rem;display:flex}.module-card h3{margin:0 0 .3rem;font-size:1.05rem}.module-card p{color:var(--muted);margin:0;font-size:.86rem}.module-card.disabled{opacity:.45}.tbl{border-collapse:collapse;border:1px solid var(--line);background:#fff;border-radius:8px;width:100%;overflow:hidden}.tbl th{background:var(--wine);color:#fff;text-align:left;padding:.6rem .8rem;font-size:.8rem;font-weight:600}.tbl td{border-bottom:1px solid var(--line);padding:.55rem .8rem;font-size:.9rem}.tbl tr:hover td{background:var(--pink-soft)}.form-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.9rem 1.2rem;max-width:980px;display:grid}.field{flex-direction:column;gap:.25rem;display:flex}.field label{color:var(--muted);font-size:.78rem;font-weight:600}.field input,.field select,.field textarea{background:#fff;border:1px solid #cfd4dc;border-radius:4px;padding:.45rem .6rem;font-family:inherit;font-size:.9rem}.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent)}.field.wide{grid-column:1/-1}.panel{background:var(--card);border:1px solid var(--line);border-radius:8px;margin-bottom:1.2rem;padding:1.1rem 1.2rem}.panel h3{margin:0 0 .8rem;font-size:1rem}.patient-head{align-items:center;gap:1rem;padding:1rem 0 .6rem;display:flex}.avatar{color:#9aa1ad;background:#e2e5ea;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;font-size:1.6rem;font-weight:600;display:flex}.patient-head h1{margin:0;font-size:1.3rem}.patient-head .meta{color:var(--muted);font-size:.85rem}.badge{color:#2e7d32;vertical-align:middle;background:#e6f4ea;border-radius:999px;margin-left:.5rem;padding:.1rem .6rem;font-size:.75rem;font-weight:600;display:inline-block}.badge.off{color:#b03a3a;background:#fdecea}.tabs{border-bottom:1px solid var(--line);gap:.2rem;margin-bottom:1.2rem;display:flex;overflow-x:auto}.tabs a{white-space:nowrap;color:var(--ink);border-bottom:3px solid #0000;padding:.6rem .9rem;font-size:.9rem}.tabs a.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.agenda-bar{flex-wrap:wrap;align-items:center;gap:.8rem;margin-bottom:1rem;display:flex}.agenda-bar .week-label{font-size:1.05rem;font-weight:600}.navbtn{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:4px;padding:.3rem .6rem;font-size:.9rem}.chip-today{background:var(--accent);color:#fff;border-radius:999px;padding:.2rem .7rem;font-size:.8rem;font-weight:600}.agenda-wrap{align-items:flex-start;gap:1rem;display:flex}.agenda-side{flex-shrink:0;width:230px}.agenda-main{flex:1;overflow-x:auto}.cal{border:1px solid var(--line);background:#fff;border-radius:8px;grid-template-columns:52px repeat(7,minmax(120px,1fr));min-width:900px;display:grid;overflow:hidden}.cal .head{text-align:center;border-bottom:2px solid #e88;border-left:1px solid var(--line);padding:.5rem .4rem;font-size:.85rem}.cal .head .cnt{color:var(--muted);font-size:.72rem}.cal .head.today{color:var(--accent);font-weight:700}.cal .hour{color:var(--muted);text-align:right;border-top:1px solid var(--line);height:34px;padding:2px 6px 0 0;font-size:.72rem}.cal .slotcol{border-left:1px solid var(--line);background:var(--pink-soft);position:relative}.cal .slotcol .gridline{border-top:1px solid #f0e2e5;height:34px}.appt{border:1px solid var(--line);border-left:4px solid var(--wine);background:#fff;border-radius:5px;padding:2px 5px;font-size:.76rem;position:absolute;left:3px;right:3px;overflow:hidden;box-shadow:0 1px 3px #0000001f}.appt summary{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;font-weight:600;list-style:none;overflow:hidden}.appt summary::-webkit-details-marker{display:none}.appt .time{color:var(--muted);font-weight:400}.appt[open]{z-index:20;min-height:120px;overflow:visible}.appt .pop{border:1px solid var(--line);z-index:30;background:#fff;border-radius:6px;width:220px;padding:.6rem;position:absolute;top:100%;left:0;box-shadow:0 6px 20px #0000002e}.pop .row{flex-wrap:wrap;gap:.3rem;margin-top:.4rem;display:flex}.status-pill{color:#fff;border-radius:999px;padding:.05rem .5rem;font-size:.7rem;font-weight:600;display:inline-block}.side-card{border:1px solid var(--line);background:#fff;border-radius:8px;margin-bottom:.9rem;padding:.8rem .9rem}.side-card h4{margin:0 0 .5rem;font-size:.85rem}.side-card .item{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:.4rem;padding:.25rem 0;font-size:.82rem;display:flex}.side-card .item:last-child{border-bottom:none}.prof-check{align-items:center;gap:.45rem;padding:.2rem 0;font-size:.85rem;display:flex}.prof-dot{border-radius:3px;width:10px;height:10px;display:inline-block}.odo-wrap{flex-wrap:wrap;align-items:flex-start;gap:1.4rem;display:flex}.odo-chart{flex:1;min-width:480px}.odo-side{flex-shrink:0;width:380px}.odo-legend{align-items:center;gap:1rem;margin-bottom:.8rem;font-size:.82rem;display:flex}.odo-legend .sw{vertical-align:-2px;border-radius:3px;width:14px;height:14px;margin-right:.3rem;display:inline-block}.tooth-row{flex-wrap:nowrap;justify-content:center;gap:4px;margin:4px 0;display:flex}.tooth{cursor:pointer;text-align:center;width:40px;color:var(--muted);background:#fff;border:1px solid #cfd4dc;border-radius:6px;padding:3px 0 5px;font-size:.72rem}.tooth svg{margin:0 auto 2px;display:block}.tooth.sel{outline:2px solid var(--accent)}.tooth:hover{border-color:var(--accent)}.odo-divider{border-top:2px dashed #d9c3c8;margin:10px 0}.empty{color:var(--muted);text-align:center;padding:2.5rem 0}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}details.reveal>summary{cursor:pointer;list-style:none;display:inline-block}details.reveal>summary::-webkit-details-marker{display:none}
