@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--navy:#102b46;--blue:#2563eb;--teal:#0b9389;--mint:#e9f6f3;--text:#1d354a;--muted:#718293;--line:#e5ebef;--bg:#f6f8fa;--shadow:0 12px 40px #102b4610}*{box-sizing:border-box}body{margin:0;font:14px 'DM Sans',system-ui,sans-serif;color:var(--text);background:var(--bg)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer}button{border:0}a{color:inherit;text-decoration:none}.shell{display:grid;grid-template-columns:224px minmax(0,1fr);min-height:100vh}.sidebar{background:#fff;border-right:1px solid var(--line);position:fixed;inset:0 auto 0 0;width:224px;display:flex;flex-direction:column;padding:30px 18px;z-index:20}.brand{display:flex;align-items:center;gap:10px;font:800 27px 'Manrope',sans-serif;letter-spacing:-1px;padding:0 12px 35px;color:var(--navy)}.brand-mark{display:grid;grid-template-columns:repeat(2,9px);gap:3px;transform:rotate(-8deg)}.brand-mark i{height:12px;border-radius:3px;background:var(--teal)}.brand-mark i:nth-child(2){background:#102b46}.brand-mark i:nth-child(3){background:#14b8a6}.brand-mark i:nth-child(4){background:#2563eb}.nav-label{font-size:10px;letter-spacing:1.8px;text-transform:uppercase;color:#91a0ac;padding:12px 16px}.nav{display:flex;align-items:center;gap:12px;text-align:left;width:100%;padding:12px 15px;background:none;color:#718190;border-radius:9px;margin:3px 0;font-weight:550}.nav svg{width:19px;height:19px}.nav:hover{background:#f4f8fa}.nav.active{background:var(--mint);color:#087c75}.nav .count{margin-left:auto;background:#d2eee7;color:#087c75;padding:1px 6px;border-radius:5px;font-size:11px}.sidebar-bottom{margin-top:auto}.clinic-card{border:1px solid var(--line);border-radius:11px;padding:13px 11px;margin-top:20px;display:flex;gap:9px;align-items:center}.clinic-card strong{display:block;font-size:11px}.clinic-card small{color:var(--muted);font-size:10px}.main{grid-column:2;min-width:0}.topbar{height:76px;padding:0 36px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);background:#ffffffeb;gap:20px}.global-search{width:min(360px,40vw);display:flex;align-items:center;gap:10px;color:var(--muted)}.global-search input{border:0;background:transparent;width:100%;font-size:12px}.key{border:1px solid var(--line);border-radius:4px;padding:2px 6px;font-size:10px;color:#8a98a5}.top-right{display:flex;gap:14px;align-items:center}.env{font-size:10px;font-weight:600;background:#fff7e8;color:#96702c;border:1px solid #f2e4c4;padding:6px 9px;border-radius:6px;white-space:nowrap}.avatar{width:34px;height:34px;border-radius:50%;background:#e4eff2;color:var(--navy);display:grid;place-items:center;font-size:11px;font-weight:700}.icon-btn{background:#fff;border:1px solid var(--line);border-radius:7px;padding:7px;display:inline-flex;align-items:center;justify-content:center;color:var(--muted)}svg.icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.content{padding:31px 36px 45px;max-width:1600px;margin:auto}.eyebrow{font-size:10px;letter-spacing:1.6px;text-transform:uppercase;font-weight:700;color:var(--teal);margin-bottom:8px}.page-heading{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:27px}h1,h2,h3,p{margin:0}h1{font:750 28px 'Manrope',sans-serif;letter-spacing:-1px;color:var(--navy)}h2{font:750 17px 'Manrope',sans-serif;letter-spacing:-.4px}h3{font-size:14px}.subtitle{color:var(--muted);font-size:12px;margin-top:7px;line-height:1.6}.btn{background:var(--teal);color:#fff;padding:11px 16px;border-radius:7px;font-weight:600;font-size:12px;display:inline-flex;gap:8px;align-items:center;justify-content:center;white-space:nowrap}.btn:hover{filter:brightness(.96)}.btn.secondary{background:#fff;color:var(--text);border:1px solid var(--line)}.btn.quiet{color:var(--teal);background:var(--mint)}.btn.danger{background:#fff0ef;color:#b14c44}.btn.small{padding:7px 10px;font-size:11px}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat{border:1px solid var(--line);background:#fff;border-radius:11px;padding:18px 20px;display:flex;justify-content:space-between;align-items:flex-start}.stat-label{font-size:11px;color:var(--muted)}.stat-number{font:750 27px 'Manrope';margin:9px 0 4px;color:var(--navy)}.stat-foot{font-size:10px;color:var(--muted)}.stat-icon{padding:9px;background:#f1f7f8;border-radius:9px;color:var(--teal)}.panel{background:#fff;border:1px solid var(--line);border-radius:11px;overflow:hidden}.panel-head{padding:20px 23px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px}.panel-head p{font-size:11px;color:var(--muted);margin-top:5px}.panel-body{padding:22px}.date-controls{display:flex;align-items:center;gap:8px}.date-controls input{border:1px solid var(--line);border-radius:6px;padding:7px;color:var(--text);background:white;font-size:11px}.schedule{overflow:auto;max-height:670px}.schedule-head{display:grid;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:3}.professional{padding:15px 12px;display:flex;gap:8px;align-items:center;border-left:1px solid var(--line)}.professional strong{font-size:11px;display:block}.professional small{font-size:9px;color:var(--muted);display:block;margin-top:3px}.prof-avatar{width:29px;height:29px;border-radius:8px;display:grid;place-items:center;background:var(--mint);color:var(--teal);font-size:9px}.prof-avatar.blue{background:#edf2fe;color:#4e72bc}.prof-avatar.purple{background:#f1edfa;color:#8867a8}.schedule-grid{display:grid;height:720px;background:repeating-linear-gradient(to bottom,transparent 0,transparent 29px,#f1f4f6 30px,transparent 31px,transparent 59px,#e9eef2 60px)}.time-column{position:relative;color:#8898a6;font-size:9px}.time-column span{position:absolute;right:10px;transform:translateY(-5px)}.day-column{position:relative;border-left:1px solid var(--line)}.appointment{position:absolute;left:7px;right:7px;border-left:3px solid var(--teal);background:#eaf6f2;border-radius:6px;padding:9px;text-align:left;overflow:hidden;color:#326052;transition:box-shadow .2s}.appointment:hover{box-shadow:0 4px 16px #102b4620;z-index:2}.appointment.blue{background:#eef3fe;border-color:#7394dc;color:#465f8d}.appointment.purple{background:#f2eef9;border-color:#a185be;color:#785b94}.appointment .when{font-size:9px;display:flex;justify-content:space-between;gap:5px}.appointment strong{font-size:11px;display:block;margin-top:7px}.appointment p{font-size:10px;margin-top:4px}.appointment small{font-size:9px;display:block;margin-top:7px;opacity:.8}.right-stack{display:flex;flex-direction:column;gap:18px}.date-tile{background:var(--navy);padding:23px;color:#fff;border-radius:11px;position:relative;overflow:hidden}.date-tile:after{content:'';width:160px;height:160px;border:1px solid #ffffff13;border-radius:50%;position:absolute;right:-60px;top:30px;box-shadow:0 0 0 26px #ffffff05,0 0 0 55px #ffffff03}.date-tile .day{font:600 43px 'Manrope';margin:7px 0;letter-spacing:-2px}.date-tile .month{font-size:11px;color:#acc4d5}.date-tile .tagline{font-size:11px;line-height:1.6;margin-top:18px;position:relative;z-index:1;color:#cfdee8}.mini-list{padding:0 19px}.mini-item{padding:16px 0;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;gap:10px}.mini-item:last-child{border:0}.mini-item strong{font-size:11px;display:block}.mini-item p{font-size:10px;color:var(--muted);line-height:1.6;margin:4px 0 8px}.dot{width:7px;height:7px;border-radius:50%;background:#e6ba62;flex-shrink:0;margin-top:4px}.note-block{border:1px solid #dcece8;background:#f0f8f5;border-radius:10px;padding:17px;color:#53786e;font-size:11px;line-height:1.8}.note-block strong{display:block;color:#286253;margin-bottom:4px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}th{font-size:10px;color:var(--muted);font-weight:600;letter-spacing:.3px;background:#fafcfd;padding:14px 20px;border-bottom:1px solid var(--line)}td{padding:16px 20px;border-bottom:1px solid #eef2f5}tr:last-child td{border-bottom:0}.person{display:flex;align-items:center;gap:11px}.person strong{display:block;font-size:12px}.person small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.badge{display:inline-flex;padding:4px 8px;border-radius:5px;font-size:10px;background:#f0f3f6;color:#667e91}.badge.teal{background:var(--mint);color:var(--teal)}.badge.amber{background:#fff6e8;color:#b58a46}.badge.red{background:#fff0ec;color:#bb6c56}.search-box{padding:9px 12px;border:1px solid var(--line);border-radius:7px;background:#fff;display:flex;align-items:center;gap:8px}.search-box input{border:0;min-width:150px;width:100%;font-size:12px}.patient-banner{display:flex;gap:17px;align-items:center;margin-bottom:22px}.patient-banner .avatar{width:58px;height:58px;border-radius:13px;font-size:18px}.patient-banner h1{font-size:25px}.patient-banner .actions{margin-left:auto}.tabs{display:flex;gap:23px;border-bottom:1px solid var(--line);margin-bottom:24px;overflow:auto}.tab{background:none;padding:13px 2px;color:var(--muted);font-size:12px;white-space:nowrap;border-bottom:2px solid transparent}.tab.active{color:var(--teal);border-color:var(--teal);font-weight:700}.clinical-grid{display:grid;grid-template-columns:minmax(0,1fr) 286px;gap:20px}.alert{padding:11px 15px;border:1px solid #f3d9c5;border-radius:7px;background:#fff8ef;color:#9c6b36;font-size:11px;margin-bottom:20px;display:flex;gap:8px;align-items:center}.tooth-tools{display:flex;gap:7px;flex-wrap:wrap;padding:14px 20px;border-bottom:1px solid var(--line)}.tool{border:1px solid var(--line);background:#fff;border-radius:5px;font-size:10px;padding:7px 10px;color:var(--muted)}.tool.active{background:var(--navy);color:white;border-color:var(--navy)}.arch{display:grid;grid-template-columns:repeat(16,minmax(30px,1fr));gap:4px;padding:16px 20px}.tooth{background:none;padding:0;color:#b8c7d0;display:flex;flex-direction:column;align-items:center;gap:7px;position:relative;border-radius:7px}.tooth:hover{background:#f0f7f8}.tooth svg{width:100%;max-width:35px;height:48px}.tooth span{font-size:9px;color:#7a8e9e}.tooth[data-state="Caries"]{color:#dc8f7f}.tooth[data-state="Restauración"]{color:#71a3ca}.tooth[data-state="Ausente"]{opacity:.35}.arch-label{color:#93a3ae;font-size:9px;letter-spacing:1.2px;text-align:center;text-transform:uppercase}.legend{display:flex;gap:14px;justify-content:center;padding:15px;font-size:9px;color:var(--muted);border-top:1px solid var(--line)}.legend i{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:4px}.divider{border:0;border-top:1px solid var(--line);margin:20px 0}.details-list{display:grid;gap:16px}.details-list label{font-size:10px;color:var(--muted);display:block;margin-bottom:5px}.details-list p{font-size:12px;line-height:1.6}.note-entry{padding:17px 0;border-bottom:1px solid var(--line)}.note-entry small{font-size:10px;color:var(--muted)}.note-entry p{font-size:12px;line-height:1.8;margin-top:8px;white-space:pre-wrap}.empty{text-align:center;padding:36px 20px;color:var(--muted);font-size:12px;line-height:1.8}.empty .icon{width:28px;height:28px;margin-bottom:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field label{font-size:11px;font-weight:600;color:#536b7e}.field input,.field select,.field textarea{border:1px solid #dce4e9;border-radius:6px;padding:10px 11px;color:var(--text);background:#fff;width:100%;font-size:12px}.field textarea{resize:vertical;min-height:100px}.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid #9ed4cd;border-color:var(--teal)}.modal-backdrop{position:fixed;inset:0;z-index:100;background:#10263c55;backdrop-filter:blur(3px);display:grid;place-items:center;padding:20px}.modal{width:min(540px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:13px;box-shadow:0 22px 90px #102b4640}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:22px 25px;border-bottom:1px solid var(--line)}.modal-body{padding:24px 25px}.modal-footer{display:flex;justify-content:flex-end;gap:9px;margin-top:24px}.form-error{font-size:12px;color:#b84f44;margin:14px 0 0;line-height:1.6}.status-select{border:1px solid var(--line);border-radius:5px;padding:5px;background:#fff;font-size:10px;color:var(--text)}.perio-toolbar{display:flex;gap:8px;flex-wrap:wrap;padding:18px 20px}.perio-chart{height:150px;width:100%;display:block}.perio-table{min-width:640px;table-layout:fixed}.perio-table th,.perio-table td{text-align:center;padding:10px 3px;font-size:9px}.perio-table th:first-child,.perio-table td:first-child{width:95px;text-align:left;padding-left:14px}.perio-cell{display:flex;gap:2px;justify-content:center}.perio-cell input{width:22px;height:30px;border:1px solid var(--line);border-radius:3px;text-align:center;font-size:10px;padding:0;color:var(--text);appearance:textfield}.perio-cell input::-webkit-inner-spin-button{appearance:none}.perio-cell input.deep{color:#c66856;background:#fff3ee}.perio-cell input[type=checkbox]{width:15px;height:15px;accent-color:var(--teal)}.perio-explain{font-size:10px;color:var(--muted);line-height:1.7;padding:13px 20px;background:#fafcfd;border-top:1px solid var(--line)}.follow-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.follow-card{border:1px solid var(--line);background:#fff;border-radius:10px;padding:22px}.follow-card .follow-top{display:flex;justify-content:space-between;gap:10px;margin-bottom:18px}.follow-card p{font-size:12px;color:var(--muted);line-height:1.6;margin:12px 0 18px}.follow-card textarea{width:100%;height:110px;border:1px solid var(--line);border-radius:6px;padding:10px;font-size:12px;line-height:1.7;margin-bottom:12px;resize:vertical}.total-row{display:flex;align-items:center;justify-content:space-between;padding:22px;background:#f7fafb;border-top:1px solid var(--line)}.total-row strong{font:750 24px Manrope}.breadcrumb{background:none;color:var(--muted);font-size:11px;padding:0;margin-bottom:20px;display:flex;align-items:center;gap:6px}.footer-note{font-size:10px;color:#98a5af;margin-top:22px;line-height:1.6}.progress-line{height:5px;background:#eaf0f3;border-radius:5px;overflow:hidden;margin-top:13px}.progress-line span{height:100%;display:block;background:var(--teal)}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--navy);color:white;padding:12px 22px;border-radius:8px;box-shadow:var(--shadow);z-index:200;opacity:0;pointer-events:none;transition:opacity .2s;font-size:12px;max-width:90vw}#toast.show{opacity:1}.mobile-brand{display:none}.settings-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:20px}.status-row{padding:15px 0;display:flex;justify-content:space-between;border-bottom:1px solid var(--line);font-size:12px}.dashboard-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:20px}.welcome{background:var(--navy);color:white;border-radius:12px;padding:28px;margin-bottom:23px;display:flex;justify-content:space-between;align-items:center}.welcome h2{font-size:23px;color:#fff}.welcome p{color:#b4c7d5;font-size:12px;margin-top:10px;line-height:1.8}.ring{width:95px;height:95px;border:9px solid #ffffff15;border-top-color:#14b8a6;border-right-color:#14b8a6;border-radius:50%;display:grid;place-items:center;font-size:25px;font-weight:700}.menu-toggle{display:none}.budget-summary{display:flex;gap:15px;align-items:center;padding:14px 20px;background:#fafcfd;font-size:11px;color:var(--muted)}@media(min-width:1600px){.content{padding-top:40px}}@media(max-width:1250px){.right-stack{display:grid;grid-template-columns:1fr 1fr}.right-stack>.note-block{display:none}.clinical-grid{grid-template-columns:minmax(0,1fr)}.clinical-grid>aside{display:grid;grid-template-columns:1fr 1fr;gap:20px}.arch{gap:2px;padding:16px 12px}.content{padding:25px}.topbar{padding:0 25px}.stat{padding:16px}.stat-icon{display:none}}@media(max-width:850px){.shell{grid-template-columns:76px minmax(0,1fr)}.sidebar{width:76px;padding:24px 9px}.brand{font-size:0;padding:0 14px 25px}.nav{justify-content:center;padding:13px 8px}.nav>span,.nav-label,.clinic-card,.nav .count{display:none}.nav svg{width:21px;height:21px}.stats{gap:10px}.stat{padding:14px 12px}.stat-number{font-size:22px}.stat-foot{display:none}.clinical-grid>aside{grid-template-columns:1fr}.topbar{height:64px}.env{font-size:9px}.top-right>.profile-name{display:none}.page-heading h1{font-size:25px}.follow-grid{grid-template-columns:1fr}.settings-grid,.dashboard-grid{grid-template-columns:1fr}.patient-banner{flex-wrap:wrap}.patient-banner .actions{width:100%;margin-left:0}.arch{min-width:540px}.odontogram-scroll{overflow:auto}}@media(max-width:560px){.shell{grid-template-columns:1fr}.main{grid-column:1}.sidebar{transform:translateX(-100%);transition:transform .2s;width:220px}.sidebar.open{transform:translateX(0);box-shadow:0 0 0 100vmax #102b4655}.sidebar.open .nav>span,.sidebar.open .nav-label,.sidebar.open .clinic-card{display:block}.sidebar.open .nav{justify-content:flex-start}.sidebar.open .brand{font-size:26px}.topbar{padding:0 16px;gap:8px}.menu-toggle{display:inline-flex}.global-search{width:100%}.global-search .key{display:none}.top-right{gap:7px}.top-right>.avatar{display:none}.content{padding:23px 16px}.stats{grid-template-columns:repeat(2,1fr);gap:10px}.page-heading{align-items:flex-start;flex-wrap:wrap;margin-bottom:20px}.page-heading .actions{width:100%}.page-heading .btn{flex:1}.right-stack{grid-template-columns:1fr}.right-stack>.date-tile{display:none}.panel-head{padding:16px;flex-wrap:wrap}h1{font-size:25px}.subtitle{font-size:11px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.form-grid .field{grid-column:1}.tabs{gap:19px}.patient-banner h1{font-size:23px}.stat-number{font-size:24px}.panel-body{padding:17px}.modal-body{padding:20px}.welcome{padding:22px}.welcome .ring{display:none}.env{padding:6px}.professional{padding:12px 8px}.footer-note{font-size:9px}}
.schedule-grid{height:938px;background:repeating-linear-gradient(to bottom,transparent 0,transparent 36px,#f1f4f6 37px,transparent 38px,transparent 74px,#e9eef2 75px)}.appointment.compact{padding:6px 8px}.appointment.compact .when{display:none}.appointment.compact strong{margin:0;font-size:10px}.appointment.compact:after{content:'Control · 30 min';font-size:8px;display:block;margin-top:3px}
.appointment.compact:after{content:none}
@media print{body>*{display:none!important}#modal-root{display:block!important}.modal-backdrop{position:static;background:white;padding:0}.modal{box-shadow:none;width:100%;max-height:none}.modal-head,.modal-footer{display:none!important}.modal-body{padding:0}}

/* Construction 02: compact agenda, touch targets and progressive disclosure. */
.agenda-views{display:flex;gap:8px;padding:12px 20px;border-bottom:1px solid var(--border)}.view-hidden{display:none!important}.appointment-row{display:flex;gap:18px;padding:20px;border-bottom:1px solid #e7edf2}.appointment-hour{min-width:54px;font-weight:750;color:var(--navy)}.appointment-hour small{display:block;font-weight:400;font-size:11px;margin-top:5px;color:var(--muted)}.appointment-detail{min-width:0;flex:1}.appointment-detail p{font-size:12px;margin:6px 0}.appointment-detail small{font-size:11px;color:var(--muted)}.appointment-detail .badge{margin:10px 0}.follow-context{font-size:11px!important;color:var(--muted)}.follow-history{font-size:11px;margin-top:12px;color:var(--muted)}.follow-history summary{cursor:pointer;padding:8px 0}.follow-history p{font-size:11px}.release-list{line-height:1.9;padding-left:20px}.release-list li{margin:12px 0}.btn:focus-visible,button:focus-visible{outline:3px solid #2563eb;outline-offset:3px}.follow-card .actions{flex-wrap:wrap}
@media(max-width:700px){.page-heading,.patient-banner,.panel-head{flex-wrap:wrap}.date-controls{flex-wrap:wrap;gap:6px}.modal{width:calc(100vw - 24px);max-height:90dvh;overflow:auto}.modal input,.modal select,.modal textarea,.follow-card textarea{font-size:16px}.modal .form-grid{grid-template-columns:1fr}.btn{min-height:40px}.follow-top{flex-wrap:wrap;gap:8px}.content{padding:20px 14px}.appointment-detail strong{overflow-wrap:anywhere}.topbar{gap:8px}.env{font-size:9px}.release-list{font-size:13px}}
/* Connected pilot: credentials remain on the API, not in browser storage. */
#cloud-status{position:fixed;bottom:10px;right:12px;z-index:40;background:#102b46;color:white;padding:10px 16px;border-radius:10px;font-size:12px;box-shadow:0 2px 10px #102b4633}.login-screen{max-width:520px;margin:10vh auto;padding:20px}.login-screen .field{margin:18px 0}.login-screen h1{font-size:30px}.sync-error{position:fixed;z-index:2000;left:5vw;right:5vw;top:15vh;background:white;padding:28px;border:2px solid #b95038;border-radius:14px;box-shadow:0 0 0 100vmax #102b4677}.sync-error small{display:block;margin-top:16px}.sync-error p{margin:16px 0}.cloud-actions{display:flex;gap:6px}

/* Access forms remain usable on narrow screens; secrets never enter storage. */
#access-panel textarea{width:100%;box-sizing:border-box;overflow-wrap:anywhere;min-height:90px}
.access-user{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 0;border-bottom:1px solid var(--line)}
.access-user>div{flex:1;min-width:200px;overflow-wrap:anywhere}.access-user p{font-size:12px}
.access-user form{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.access-user input[type=checkbox]{width:auto}
#access-panel .field{min-width:0}#access-panel input,#access-panel select{max-width:100%;box-sizing:border-box}
#recover-access{margin-top:16px}#access-result{overflow-wrap:anywhere;margin-top:18px}
@media(max-width:600px){.access-user{align-items:stretch}.access-user>div,.access-user form{width:100%}.access-user form label{flex:1}.access-user form button{width:100%}#access-panel{padding:18px}.login-screen{padding:16px}.login-screen .panel{min-width:0;width:100%}}

/* Construction 07 — Direction B / Dental Intelligence, interim visual identity. */
:root{--navy:#102b46;--blue:#2563eb;--teal:#087f78;--brand-teal:#14b8a6;--slate:#94a3b8;--mist:#e5e7eb;--text:#18334c;--muted:#64748b;--line:#e3eaf2;--border:var(--line);--bg:#f4f7fb;--mint:#e8f8f5;--shadow:0 5px 24px #102b4609}
body{font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
button:disabled{cursor:not-allowed;opacity:.55}button:focus-visible,a:focus-visible{outline:3px solid #60a5fa;outline-offset:3px}
.brand{padding:0 13px 33px;letter-spacing:normal;color:inherit;font:inherit}.brand-lockup{display:inline-flex;flex-direction:column;align-items:flex-start;max-width:100%}.brand-word{display:flex;align-items:center;font:600 27px 'Manrope',system-ui,sans-serif;letter-spacing:1.4px;line-height:1;white-space:nowrap}.brand-symbol{width:29px;height:34px;flex-shrink:0;margin:0 1px}.brand-tagline{font-size:7px;letter-spacing:1.2px;text-transform:uppercase;margin-top:12px;white-space:nowrap;font-weight:500;opacity:.72}
.shell{grid-template-columns:240px minmax(0,1fr)}.sidebar{width:240px;background:linear-gradient(165deg,#102b46,#0a2035);border:0;color:#fff;padding:30px 16px 18px;overflow-y:auto;overscroll-behavior:contain}.nav-label{color:#90a8bf;font-size:9px;letter-spacing:1.6px;padding-top:13px}.nav{color:#c7d6e5;padding:12px 14px;border-radius:7px;font-size:13px;font-weight:500;min-height:45px}.nav:hover{background:#ffffff0d;color:#fff}.nav.active{background:#24518a;color:#fff;box-shadow:inset 3px 0 #14b8a6}.nav svg{width:18px;height:18px}.nav .count{background:#ffffff20;color:#fff}.sidebar-bottom{padding-top:22px}.clinic-card{background:#ffffff06;border-color:#ffffff16;border-radius:8px;margin-top:18px}.clinic-card strong{color:#e6eff7}.clinic-card small{color:#93adc3}.clinic-card .prof-avatar{background:#ffffff12;color:#57d9c9}.nav-scrim{display:none}
.topbar{position:sticky;top:0;z-index:15;height:76px;background:#ffffffef;backdrop-filter:blur(12px);padding:0 30px}.global-search{border:1px solid var(--line);border-radius:7px;padding:8px 11px;width:min(400px,34vw);background:#fbfcfe}.global-search input{font-size:12px;outline:none;color:var(--text)}.global-search:focus-within{outline:2px solid #93b4f5;outline-offset:2px}.global-search .icon{width:15px}.top-right{gap:12px}.env{background:#f1f6fd;color:#4b627d;border-color:#dce7f4;font-weight:500}.profile-avatar{background:#e8eff9;color:#214f86;flex-shrink:0}.content{padding:30px;max-width:1740px}.page-heading{margin-bottom:25px}h1{font-size:28px;font-weight:750;letter-spacing:-.9px}h2{font-size:16px}.eyebrow{color:var(--teal);font-size:9px;letter-spacing:1.8px}.subtitle{font-size:12px;color:var(--muted)}
.btn{background:var(--blue);border-radius:7px;min-height:39px;padding:10px 15px;font-weight:650}.btn:hover{filter:brightness(.95);box-shadow:0 3px 9px #102b4610}.btn.secondary{background:#fff;color:#29445f;border-color:#dce5ef}.btn.quiet{background:var(--mint);color:var(--teal)}.btn.small{min-height:31px}.panel{border-color:var(--line);border-radius:10px;box-shadow:var(--shadow)}.panel-head{padding:19px 21px}.panel-body{padding:22px}.stats{gap:15px;margin-bottom:22px}.stat{padding:18px 20px;border-radius:10px;position:relative;box-shadow:var(--shadow)}.stat-label{color:#5c7088;font-size:12px}.stat-number{margin:6px 0 3px;font-size:29px}.stat-icon{background:#eef4ff;color:var(--blue);border-radius:8px}.stat:nth-child(3) .stat-icon{background:var(--mint);color:var(--teal)}.stat:nth-child(4) .stat-icon{background:#fff5e9;color:#b8731d}.stat-foot{font-size:10px}
.tab.active{color:var(--blue);border-color:var(--blue)}.tab{font-size:12px}.badge{background:#edf3fc;color:#3761a0;border-radius:5px}.badge.teal{background:var(--mint);color:#08786f}.badge.amber{background:#fff5e6;color:#966015}.badge.red{background:#fff0ef;color:#a53b35}.prof-avatar{background:var(--mint)}.field input,.field select,.field textarea,.search-box,.date-controls input{border-color:#dce5ef;border-radius:6px;min-height:41px}.field input:focus,.field textarea:focus,.field select:focus{outline:2px solid #9abbfa;border-color:var(--blue)}.field label{color:#3c536e;font-size:12px}.field{min-width:0}.table-wrap{overscroll-behavior:contain}th{background:#f8fafd;color:#64748b}td{font-size:12px}.modal{border-radius:12px}.modal-head{background:#fafcff}.modal-footer{gap:10px}.access-user select{padding:8px;border:1px solid var(--line);border-radius:6px;color:var(--text);background:white}#access-panel>p:first-child{max-width:950px;line-height:1.8;color:#536982;margin-bottom:22px}#invite-user{padding:22px;background:#f8fafd;border:1px solid var(--line);border-radius:8px;margin:18px 0}#invite-user>.field:last-child{justify-content:flex-end}#recovery-codes{max-width:480px;margin-top:24px}#recovery-codes .btn{margin-top:16px}.access-user{gap:18px;padding:22px 0}.access-user strong{font-size:13px}.access-user p{color:var(--muted);margin-top:5px}#access-result textarea{border:1px solid #b6d8d1;border-radius:7px;padding:14px;background:#f7fcfa;color:var(--text);margin-top:12px}
.date-tile{background:linear-gradient(135deg,#102b46,#174b64);border-radius:10px}.note-block{background:#f0f9f7;border-color:#dbece7}.progress-line span{background:var(--brand-teal)}.total-row{background:#f2f6fc}.total-row strong{color:var(--navy)}.follow-card{border-radius:10px;box-shadow:var(--shadow)}.document-brand{color:var(--navy);margin-bottom:24px}.footer-note{color:#728399;font-size:10px;padding-bottom:20px}#cloud-status{font-size:10px;background:#fff;color:#365f5a;border:1px solid #d8e9e4;box-shadow:0 3px 16px #102b4610;padding:8px 12px;border-radius:7px}#cloud-status:before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:#14b8a6;margin-right:7px}.sync-error{max-height:80vh;overflow:auto}
.dashboard-board{display:grid;grid-template-columns:minmax(240px,.95fr) minmax(340px,1.35fr) minmax(220px,.75fr);gap:18px;align-items:start}.dashboard-center{display:grid;gap:18px;min-width:0}.day-list{padding:0 18px}.day-appointment{display:flex;gap:13px;align-items:flex-start;width:100%;text-align:left;background:white;padding:22px 0;border-bottom:1px solid var(--line);color:var(--text)}.day-appointment:last-child{border:0}.day-appointment:hover .day-person strong{color:var(--blue)}.day-appointment>.icon{width:14px;flex-shrink:0;color:#8c9caf;margin-top:5px}.day-time{font-size:13px;font-weight:700;min-width:42px}.day-time small{display:block;color:var(--muted);font-size:9px;font-weight:400;margin-top:6px}.day-person{min-width:0;flex:1}.day-person strong{display:block;font-size:12px;overflow-wrap:anywhere}.day-person small{display:block;font-size:10px;color:var(--muted);margin:6px 0 10px}.dashboard-chart{padding:18px;overflow:auto}.chart-label{font-size:10px;color:#607895;margin-bottom:20px}.preview-arch{display:grid;grid-template-columns:repeat(16,minmax(13px,1fr));gap:3px;margin:17px 0;min-width:310px}.preview-arch .tooth{gap:5px}.preview-arch .tooth svg{height:34px;max-width:23px}.preview-arch .tooth span{font-size:8px}.preview-arch .tooth[data-state="Restauración"]{color:#2563eb}.chart-caption{font-size:10px;color:var(--muted);margin-top:18px}.treatment-preview{display:flex;align-items:center;gap:11px;padding:18px 0;border-bottom:1px solid var(--line)}.treatment-preview:last-child{border:0}.step-number{width:26px;height:26px;display:grid;place-items:center;background:#f0f4fa;border-radius:50%;font-size:11px;flex-shrink:0}.treatment-preview>div{flex:1;min-width:0}.treatment-preview strong{font-size:11px;display:block;overflow-wrap:anywhere}.treatment-preview small{font-size:9px;display:block;color:var(--muted);margin-top:5px}.treatment-preview .badge{font-size:9px}.overview-avatar{width:56px;height:56px;background:#e7f2f4;color:#2e6974;font-size:17px;margin-bottom:17px}.patient-overview h3{line-height:1.6;overflow-wrap:anywhere}.patient-overview .details-list label{font-size:10px}.patient-overview .alert{margin:0;align-items:flex-start;line-height:1.7}.overview-open{margin-top:25px;width:100%}.continuity-banner{margin-top:23px;padding:24px 28px;border:1px solid #dce7f0;border-radius:10px;background:linear-gradient(110deg,#eaf1fc,#effaf7);display:flex;justify-content:space-between;align-items:center;gap:20px}.continuity-banner .eyebrow{display:block;font-size:8px;margin-bottom:6px}.continuity-banner h2{font-size:19px}.continuity-banner p{font-size:12px;color:#58728b;margin-top:7px}
.login-screen{max-width:1080px;width:calc(100% - 64px);margin:7vh auto;padding:0;display:grid;grid-template-columns:44% 56%;min-height:680px;border:1px solid #dbe5ee;border-radius:15px;overflow:hidden;box-shadow:0 20px 70px #102b4610;background:white}.auth-story{background:#102b46 url('/brand-flow.svg') center/cover no-repeat;position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:44px 38px;color:white;isolation:isolate;overflow:hidden}.auth-story:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#071a2eb3,transparent);z-index:-1}.auth-story .brand-word{font-size:29px;letter-spacing:1.8px}.auth-story .brand-symbol{width:31px;height:36px}.auth-story-copy{padding:70px 0 48px}.auth-kicker{font-size:9px;text-transform:uppercase;letter-spacing:2px;color:#a9c3d7}.auth-story h2{font:500 38px/1.25 'Manrope',system-ui,sans-serif;letter-spacing:-1px;margin-top:24px;color:white}.auth-story-copy p{font-size:13px;line-height:1.9;max-width:265px;color:#c5d8e7;margin-top:21px}.brand-accent{display:block;height:3px;width:39px;background:linear-gradient(90deg,#14b8a6,#2563eb);margin-top:27px}.auth-story-foot{font-size:8px;letter-spacing:2px;line-height:2;color:#a8c2d6}.login-screen .auth-panel{box-shadow:none;border:0;border-radius:0;align-self:center;padding:48px;min-width:0}.login-screen .auth-panel>.panel-body{padding:0}.login-screen h1{font-size:27px;letter-spacing:-.8px;line-height:1.3}.login-screen .subtitle{font-size:12px;line-height:1.9;margin-top:12px}.login-screen form{margin-top:26px}.login-screen .field{margin:20px 0}.login-screen input{min-height:45px}.login-screen .btn{width:100%;min-height:44px;background:var(--navy);margin-top:9px}.login-screen .btn.secondary{background:white;border:1px solid var(--line);color:#536b86}.login-screen .field small{font-size:10px;color:#6b7f96}.login-screen .form-error:empty{display:none}
@media(min-width:1700px){.content{padding:38px 42px}.dashboard-board{gap:23px}.dashboard-center{gap:23px}}
@media(max-width:1250px){.dashboard-board{grid-template-columns:minmax(240px,1fr) minmax(340px,1.3fr)}.patient-overview{grid-column:1/-1}.patient-overview .panel-body{display:grid;grid-template-columns:60px 1fr 1.4fr auto;align-items:center;gap:15px}.patient-overview .overview-avatar{margin:0;grid-row:1/3}.patient-overview h3{grid-column:2}.patient-overview .subtitle{grid-column:2;grid-row:2}.patient-overview .divider{display:none}.patient-overview .details-list{grid-column:3;grid-row:1/3;grid-template-columns:1fr 1fr}.patient-overview .overview-open{grid-column:4;grid-row:1/3;margin:0}.stat-icon{display:none}.content{padding:25px}.topbar{padding:0 25px}.global-search{width:min(320px,30vw)}}
@media(max-width:1000px){.shell{grid-template-columns:80px minmax(0,1fr)}.sidebar{width:80px;padding:24px 10px}.sidebar .brand{padding:0 12px 24px}.sidebar .brand-word{font-size:0;letter-spacing:0}.sidebar .brand-symbol{width:30px;height:35px;margin:0}.sidebar .brand-tagline,.sidebar .nav>span,.sidebar .nav-label,.sidebar .clinic-card{display:none}.sidebar .nav{justify-content:center;padding:13px 8px}.top-right>.profile-name{display:none}.sidebar-bottom{margin-top:30px}.dashboard-board{grid-template-columns:minmax(230px,1fr) minmax(320px,1.2fr)}.global-search{width:32vw}.login-screen{width:calc(100% - 40px);grid-template-columns:42% 58%;min-height:620px}.auth-story{padding:34px 27px}.auth-story h2{font-size:31px}.login-screen .auth-panel{padding:35px}}
@media(max-width:760px){.dashboard-board{grid-template-columns:1fr}.patient-overview{grid-column:auto}.patient-overview .panel-body{display:block}.patient-overview .overview-avatar{margin-bottom:16px}.patient-overview .divider{display:block}.patient-overview .details-list{display:grid;grid-template-columns:1fr 1fr}.patient-overview .overview-open{margin-top:20px}.day-list{max-height:360px;overflow:auto}.continuity-banner{padding:22px;flex-wrap:wrap}.topbar{padding:0 17px}.top-right .env{display:none}.global-search{width:100%;min-width:0}.top-right{flex-shrink:0}.login-screen{grid-template-columns:1fr;width:calc(100% - 32px);margin:24px auto;min-height:0;max-width:540px}.auth-story{min-height:180px;padding:24px;background-position:center 35%}.auth-story-copy{padding:20px 0 0}.auth-story h2{font-size:23px;margin-top:0}.auth-story h2 br{display:none}.auth-story h2 br:after{content:' '}.auth-story-copy p,.auth-story-foot,.auth-kicker,.auth-story .brand-tagline,.brand-accent{display:none}.auth-story .brand-word{font-size:24px}.auth-story .brand-symbol{height:29px;width:26px}.login-screen .auth-panel{padding:28px}.login-screen h1{font-size:25px}.login-screen .field{margin:18px 0}}
@media(max-width:560px){.shell{grid-template-columns:1fr}.sidebar{width:250px;padding:28px 16px;z-index:30;transform:translateX(-100%)}.sidebar.open{box-shadow:10px 0 50px #06152640}.sidebar.open .brand-word{font-size:27px;letter-spacing:1.4px}.sidebar.open .brand-tagline{display:block}.sidebar.open .brand{padding:0 13px 30px}.sidebar.open .nav{justify-content:flex-start}.sidebar.open .nav>span,.sidebar.open .nav-label{display:block}.sidebar.open .clinic-card{display:flex}.sidebar-bottom{margin-top:auto}.nav-scrim{display:none;position:fixed;inset:0;z-index:25;background:#071a2e75;backdrop-filter:blur(2px)}.sidebar.open+.nav-scrim{display:block}.main{grid-column:1}.topbar{height:auto;min-height:68px;padding:12px 14px;flex-wrap:wrap;gap:10px}.menu-toggle{min-height:40px;min-width:40px}.global-search{flex:1;width:auto;padding:8px;min-width:100px}.top-right{gap:5px}.cloud-actions{gap:4px}.cloud-actions .btn{min-height:38px;padding:7px 8px;font-size:10px}.top-right>.avatar{display:none}.content{padding:23px 15px 48px}.page-heading h1{font-size:25px}.page-heading .actions{gap:8px}.btn{min-height:42px}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.stat{padding:15px}.stat-number{font-size:27px}.stat-label{font-size:11px}.stat-foot{display:block;font-size:9px}.panel-head{padding:17px}.panel-body{padding:18px}.date-controls{flex-wrap:wrap}.form-grid{grid-template-columns:1fr}.patient-banner .avatar{width:48px;height:48px}.patient-banner .actions .btn{flex:1}.tabs{gap:17px}.tab{min-height:45px}.tooth-tools .tool{min-height:36px}#invite-user{padding:16px}#access-panel{padding:18px}.access-user>div{min-width:0}.continuity-banner h2{font-size:18px}.continuity-banner .btn{width:100%}.modal-backdrop{padding:12px}.modal{max-height:90dvh}.modal-head{padding:18px}.modal-body{padding:18px}.auth-story{min-height:160px}.login-screen{margin:16px auto}.login-screen .auth-panel{padding:25px 21px}#cloud-status{bottom:7px;right:8px;font-size:9px;max-width:calc(100vw - 16px)}.sync-error{padding:20px}.sync-error .btn{white-space:normal;margin-top:8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
@media print{.document-brand .brand-word{font-size:26px}.document-brand .brand-symbol{width:27px;height:32px}.nav-scrim,#cloud-status{display:none!important}}

/* Keep save feedback in the header, never over patient records or actions. */
.sync-status-slot{display:flex;align-items:center;flex-shrink:0;margin-left:auto}#cloud-status{position:static;box-shadow:none;border:0;background:transparent;padding:0;max-width:180px;font-size:10px;line-height:1.5;color:#496d68}.topbar{gap:16px}.topbar .global-search{flex-shrink:1}.mobile-brand{display:none}
@media(max-width:1250px){.top-right .env{display:none}.topbar{gap:12px}.sync-status-slot{max-width:155px}}
@media(max-width:560px){.sync-status-slot{order:5;flex:0 0 100%;max-width:none;justify-content:space-between;margin:0;padding-top:3px}.mobile-brand{display:inline-flex;color:var(--navy)}.mobile-brand .brand-word{font-size:12px;letter-spacing:1px}.mobile-brand .brand-symbol{width:14px;height:17px;margin:0}.mobile-brand .brand-tagline{display:none}#cloud-status{font-size:9px;max-width:220px}.topbar{gap:8px}.auth-story h2{font-size:22px}}

.payment-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.payment-totals>div{padding:18px;background:#eef8f7;border-radius:12px}.payment-totals small,.payment-totals strong{display:block}.payment-totals strong{font-size:24px;color:#102b46;margin-top:8px}@media(max-width:600px){.payment-totals{grid-template-columns:1fr}.payment-totals>div{display:flex;align-items:center;justify-content:space-between}.payment-totals strong{font-size:22px;margin:0}}
/* Clinic setup: keyboard and mobile friendly, independent from the clinical charts. */
.setup-steps{display:grid;gap:10px}.setup-step{display:flex;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid #e1eaee}.setup-step>div{flex:1}.setup-step small{display:block;color:#627788;margin-top:5px}.setup-check{display:inline-flex;align-items:center;gap:8px;margin:8px 16px 8px 0}.setup-check input{width:auto}#setup-operations fieldset{border:1px solid #dbe6eb;border-radius:10px;padding:12px;margin:16px 0}.clinic-logo-preview{max-width:180px;max-height:80px;object-fit:contain}.clinic-logo-small{width:32px;height:32px;object-fit:contain}#setup-links form{margin-bottom:12px}#setup-links select{width:100%;margin-top:8px}@media(max-width:600px){.setup-step{flex-wrap:wrap}.setup-step>div{min-width:160px}.setup-step .btn{margin-left:42px}}

/* Recovery copies keep records legible and write controls visibly unavailable. */
[aria-disabled="true"]{cursor:not-allowed!important}
button[aria-disabled="true"],g[aria-disabled="true"]{opacity:.5}
input[aria-disabled="true"],select[aria-disabled="true"],textarea[aria-disabled="true"]{color:var(--text,#102b46);-webkit-text-fill-color:var(--text,#102b46);opacity:1;background:#f1f5f9}

/* iOS: prevent focus zoom at login and while charting, without disabling pinch zoom. */
@media(max-width:760px),(any-pointer:coarse){
 .login-screen input,.field input,.field select,.field textarea,.global-search input,.date-controls input,.perio-workspace input,.perio-workspace select,.perio-workspace textarea,.dental-inspector select,.dental-inspector textarea{font-size:16px}
}

/* Patient history: stable reading order and spacious keyboard/touch controls. */
.patient-record>h3{margin-top:24px;margin-bottom:14px}.patient-record>p{margin:10px 0 16px;line-height:1.6}.record-history{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}.record-history>p{margin:10px 0 16px;line-height:1.6}.record-history details{margin-top:10px;border:1px solid var(--line);border-radius:10px;background:#f8fbfc}.record-history summary{min-height:44px;padding:14px 16px;cursor:pointer;line-height:1.6;overflow-wrap:anywhere}.record-history details>p,.record-history dl{margin:12px 16px;line-height:1.6}.record-history dt{margin-top:12px}.record-history dd{margin:4px 0 14px}.record-history summary:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

.pilot-operations{margin-top:20px}.pilot-operations p{margin:10px 0;line-height:1.6;white-space:pre-wrap;overflow-wrap:anywhere}.pilot-operations form{display:grid;gap:12px;margin:20px 0;max-width:800px}.pilot-operations .setup-check{margin:4px 0;line-height:1.5}.pilot-run{margin-top:24px;padding-top:20px;border-top:1px solid var(--line)}.pilot-issue{padding:16px;margin:12px 0;background:#f5f9fb;border:1px solid var(--line);border-radius:10px}.pilot-operations summary{min-height:44px;padding:12px 0;cursor:pointer}.pilot-operations .btn{white-space:normal;min-height:44px}.pilot-operations li{line-height:1.6;overflow-wrap:anywhere}

/* Subscription management shares the clinical layout but has its own commercial ledger. */
#subscription-root form{margin:20px 0;padding:18px;border:1px solid var(--line,#dbe5ec);border-radius:12px}
#subscription-root form .btn{min-height:44px;margin-top:14px}
#subscription-root textarea{width:100%;min-height:90px}
#subscription-root label{display:block;margin:10px 0}
#subscription-root .setup-check{display:flex;gap:10px;align-items:flex-start}
#subscription-root .setup-check input{width:auto;flex:none}
.subscription-offer,.subscription-report{margin:16px 0;padding:18px;background:#f4f8fb;border-radius:12px;overflow-wrap:anywhere}
.subscription-text{white-space:pre-wrap}
.subscription-operator{margin-top:24px}
#billing-clinic{max-width:100%;width:100%;min-height:44px}
#subscription-root details{margin-top:18px}

/* QA40: state, next action and secondary controls have separate visual hierarchy. */
.subscription-view{font-size:14px;line-height:1.65;max-width:1060px;margin:auto}
.subscription-view p{margin:8px 0}.subscription-view h2{font-size:26px;line-height:1.3;margin:8px 0 18px}.subscription-view h3{font-size:17px;line-height:1.4}
.subscription-environment{border:1px solid #d9e8ee;border-radius:10px;padding:14px 18px;background:#f5f9fc;color:#496275;margin-bottom:22px}.subscription-environment strong{color:var(--navy)}
.subscription-summary{padding:22px;border:1px solid #cce9e3;border-radius:14px;background:#f1faf7}.subscription-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:14px 0}.subscription-facts dt{font-size:12px;color:#536b7e}.subscription-facts dd{margin:4px 0 0;font-size:15px;font-weight:650;overflow-wrap:anywhere}
.subscription-next{padding:18px 22px;margin:18px 0 24px;border-left:4px solid var(--teal);background:#eff7fb;border-radius:0 10px 10px 0}
.subscription-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.subscription-badge{display:inline-block;font-size:12px;font-weight:650;border-radius:20px;padding:5px 11px;background:#dff3eb;color:#175c49}.subscription-badge.pending{background:#fff1d6;color:#725014}.subscription-badge.rejected{background:#ffebe8;color:#9c342e}
.subscription-view .subscription-price{font-size:27px;font-weight:750;margin:14px 0 8px}.subscription-price span{display:block;font-size:13px;font-weight:400;color:#536b7e}.subscription-view .subscription-secondary{border-top:1px solid var(--line);padding:10px 0}.subscription-secondary>summary{cursor:pointer;min-height:44px;padding:9px 0;font-size:14px;font-weight:600}.subscription-secondary[open]>summary{margin-bottom:12px}.subscription-secondary summary:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.subscription-view .subscription-payments{margin:26px 0}.subscription-empty,.subscription-footnote{color:#536b7e}.subscription-footnote{font-size:12px;margin-top:24px!important}
#subscription-root .subscription-view .field label{font-size:14px}#subscription-root .subscription-view input:not([type=checkbox]),#subscription-root .subscription-view select,#subscription-root .subscription-view textarea{font-size:16px;min-height:44px}#subscription-root .subscription-view .setup-check{font-size:14px;line-height:1.6}#subscription-root .subscription-view .setup-check input{margin-top:5px;min-width:18px;min-height:18px}
@media(max-width:600px){.subscription-view{font-size:15px}.subscription-summary{padding:17px}.subscription-view h2{font-size:23px}.subscription-facts{grid-template-columns:1fr;gap:12px}.subscription-view .subscription-offer,.subscription-view .subscription-report{padding:16px}.subscription-next{padding:16px}#subscription-root .subscription-view form{padding:14px}#subscription-root .subscription-view .btn{white-space:normal;width:100%;font-size:14px}}

/* Subscription prices are informational, never editable amounts. */
.subscription-view [data-catalog-price]{display:block;margin-top:8px;font-size:1.35rem;font-weight:700;color:var(--navy,#102b46);line-height:1.5;overflow-wrap:anywhere}
.subscription-view .field>strong{display:block;margin-top:8px;font-size:1.1rem}

.attachments{padding:24px}.attachments .form-grid{margin:24px 0}.attachment-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:16px}.attachment-card{border:1px solid var(--line,#dce6ec);border-radius:16px;padding:20px;min-width:0;overflow-wrap:anywhere}.attachment-card h3{margin:0 0 12px}.attachment-card .actions{flex-wrap:wrap;margin-top:16px}.attachment-preview{display:grid;gap:16px;margin-top:24px}.attachment-preview img{max-width:100%;max-height:75vh;object-fit:contain}.attachments input[type=file]{max-width:100%;min-width:0}.attachments textarea{min-height:80px}@media(max-width:600px){.attachments{padding:16px}.attachment-card .btn{flex:1}}

.clinical-documents{padding:28px}.document-context{display:flex;flex-wrap:wrap;gap:8px 20px;padding:18px;background:var(--pale,#f0f8f8);border-left:3px solid #0c827c;border-radius:12px;margin:20px 0}.document-context strong{flex-basis:100%;font-size:20px}.document-alerts{padding:16px;border:1px solid #d5e7e4;border-radius:12px;margin-bottom:20px}.document-alerts p{white-space:pre-wrap;overflow-wrap:anywhere}.document-profile{padding:18px;border:1px solid #dce6ec;border-radius:14px;margin:20px 0}.document-profile .form-grid{margin-top:16px}.document-row{min-width:0;border:1px solid #dce6ec;border-radius:16px;padding:20px;margin:24px 0}.document-row legend{padding:0 8px;font-weight:700;color:#087e79}.clinical-documents label{display:block}.clinical-documents textarea{min-height:90px;resize:vertical}.clinical-documents .actions{flex-wrap:wrap;gap:10px;margin:20px 0}.document-check{display:flex!important;gap:12px;align-items:flex-start;margin:20px 0;line-height:1.6}.document-check input{width:20px;min-width:20px;height:20px;margin-top:3px}.document-history{display:grid;gap:16px}.document-card{padding:20px;border:1px solid #dce6ec;border-radius:16px;overflow-wrap:anywhere}.document-card-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.document-card h4{margin:0;font-size:17px}.document-quick{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.document-quick>span{flex-basis:100%;font-size:13px;color:var(--muted)}.document-study-picker{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.document-study-picker label{flex:1;min-width:200px}.document-teeth{margin-top:15px}.tooth-arch{margin:12px 0}.tooth-arch>span{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}.tooth-arch>div{display:flex;gap:4px;flex-wrap:wrap}.tooth-arch label{position:relative;display:inline-flex!important}.tooth-arch input{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer;margin:0}.tooth-arch label span{display:grid;place-items:center;width:39px;height:42px;border:1px solid #c9d9df;border-radius:8px;background:white;color:#102b46}.tooth-arch input:checked+span{background:#087e79;color:white;border-color:#087e79}.tooth-arch input:focus-visible+span{outline:3px solid #2563eb;outline-offset:2px}@media(max-width:600px){.clinical-documents{padding:16px}.document-row{padding:14px}.clinical-documents .form-grid{grid-template-columns:1fr}.clinical-documents .actions .btn{width:100%}.tooth-arch label span{width:34px;height:40px}.document-profile{padding:12px}}
/* QA45-B: compact clinical documents and one-time inline identity. */
.document-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.document-heading h2{font-size:22px}.document-author{color:var(--muted);font-size:13px;margin-bottom:16px}.document-required{border-left:3px solid #bd892b;background:#fff9ed;padding:12px 16px;margin:14px 0}.document-required span{font-weight:600}.clinical-documents #document-status:empty,.clinical-documents #document-error:empty{display:none}.clinical-documents .document-alerts{background:#f6faf9;padding:12px 16px}.document-alerts p+p{margin-top:5px}.document-empty{color:var(--muted);padding:20px 0}.document-help{margin-top:24px;color:var(--muted);font-size:12px}.document-help summary{cursor:pointer}.document-help p{margin-top:10px;max-width:720px;line-height:1.6}.clinical-documents #document-setup-form .field{margin-top:16px}.clinical-documents #document-editor:not(:empty){margin:22px 0 30px}.clinical-documents #document-editor:not(:empty)+h3{border-top:1px solid var(--line);padding-top:24px}@media(max-width:600px){.document-heading{align-items:flex-start}.document-heading h2{font-size:20px}.document-heading .btn{padding:10px 12px;white-space:normal}}
/* QA45-C: visual exam picker, original vector anatomy and compact selections. */
.rx-group{margin:24px 0}.rx-group h4{display:flex;gap:9px;align-items:center;font-size:16px;margin:0 0 14px}.rx-group h4>span{font-size:11px;background:#e3f3f1;color:#087f78;padding:5px 8px;border-radius:6px;letter-spacing:.6px}.rx-exam-grid,.rx-zone-grid,.rx-analysis-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:10px}.rx-tile{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:132px;padding:13px 12px;background:#fff;border:1.5px solid #dce6eb;border-radius:14px;color:#244257;text-align:center;font-size:13px;font-weight:650;transition:border-color .15s,background .15s}.rx-tile>svg{width:67px;height:67px}.rx-tile:hover{border-color:#43a99e;background:#f4fbfa}.rx-tile[aria-pressed=true]{border:2px solid #087f78;background:#eaf8f5;color:#075f5c}.rx-tick{display:none;position:absolute;right:8px;top:7px;border-radius:50%;width:19px;height:19px;background:#087f78;color:#fff;align-items:center;justify-content:center;font-size:12px}.rx-tile[aria-pressed=true] .rx-tick{display:flex}.rx-complements{border:1px solid #dce6eb;border-radius:12px;padding:14px;margin:20px 0}.rx-complements summary{cursor:pointer;font-weight:650}.rx-analysis-grid{margin-top:15px}.rx-analysis-grid .rx-tile{min-height:90px}.rx-analysis-grid .rx-tile svg{width:40px;height:40px}.rx-selected-head{display:flex;align-items:center;margin:24px 0 12px}.rx-selected-head h4{margin:0;font-size:14px}.rx-selected-head span{display:inline-flex;justify-content:center;background:#e3f3f1;color:#087f78;border-radius:20px;min-width:23px;padding:3px 6px;font-size:12px;margin-left:6px}.rx-selection{border:1px solid #cbdedc;border-left:3px solid #087f78;border-radius:12px;padding:15px;margin-bottom:12px;background:#fcfefe;min-width:0}.rx-selection-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.rx-selection-title strong{font-size:14px}.rx-remove{background:transparent;color:#637786;font-size:25px;width:36px;height:36px;border-radius:8px;line-height:1}.rx-remove:hover{background:#eef3f4;color:#9b322d}.rx-zone-field{margin:10px 0}.rx-teeth-optional,.rx-specifications{margin-top:12px;font-size:12px;color:#607580}.rx-specifications textarea{margin-top:8px}.rx-teeth-optional summary,.rx-specifications summary,.rx-dentition summary{cursor:pointer}.rx-arches{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;margin:14px 0}.rx-quadrant>span{display:block;font-size:10px;letter-spacing:.4px;color:#748794;margin-bottom:8px}.rx-quadrant>div{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:3px}.rx-primary .rx-quadrant>div{grid-template-columns:repeat(5,minmax(0,1fr));max-width:220px}.rx-tooth{position:relative;min-width:0}.rx-tooth input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;margin:0;z-index:1}.rx-tooth>span{display:flex;flex-direction:column;align-items:center;gap:2px;padding:5px 1px;border:1px solid #d9e3e8;border-radius:7px;background:#fff}.rx-tooth svg{width:22px;height:29px;fill:#edf3f6;stroke:#647e8e;stroke-width:1.5}.rx-tooth b{font-size:11px;font-weight:600;color:#456075}.rx-tooth input:checked+span{background:#dbf4ed;border-color:#087f78}.rx-tooth input:checked+span svg{fill:#14b8a6;stroke:#086861}.rx-tooth input:checked+span b{color:#075f5c}.rx-tooth input:focus-visible+span{outline:3px solid #2563eb;outline-offset:2px}.rx-dentition>details{font-size:12px;color:#607580}.rx-indication{margin:22px 0}.rx-indication>label{font-weight:600}.clinical-documents .rx-indication textarea{margin-top:8px;min-height:65px}.rx-objectives{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.rx-objective{font-size:11px;border:1px solid #d7e4e6;background:#fff;color:#587180;border-radius:20px;padding:7px 11px}.rx-objective[aria-pressed=true]{background:#e0f5ee;border-color:#087f78;color:#075f5c}.rx-delivery{margin:18px 0}.rx-general-notes{margin:18px 0;color:#607580;font-size:12px}.rx-general-notes summary{cursor:pointer}.rx-general-notes .field{margin-top:10px}.rx-general-notes .field>label{font-size:0}.rx-general-notes textarea{font-size:14px}@media(max-width:700px){.rx-exam-grid,.rx-zone-grid,.rx-analysis-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rx-tile{min-height:118px;padding:11px 8px}.rx-tile>svg{width:58px;height:58px}.rx-arches{grid-template-columns:1fr;gap:12px}.rx-quadrant>div{gap:3px}.rx-tooth>span{min-height:48px}.rx-selection{padding:12px}.rx-selection-title strong{font-size:13px}}
/* QA46: clinical consent actions and decision history. */
.consent-form [hidden]{display:none!important}.consent-form{margin:24px 0}.consent-state{color:#087e79;margin:12px 0}.document-decision{padding:12px 0;border-top:1px solid var(--line,#dce6ec)}.document-decision p{white-space:pre-wrap}.document-card details{margin:12px 0}
/* Procedure catalogue: short issuance form, optional case adjustments. */
.consent-picker{padding:20px;background:#f0f8f8;border:1px solid #d5e7e4;border-radius:14px}.consent-selection{display:flex;gap:12px;justify-content:space-between;flex-wrap:wrap;margin:20px 0}.consent-selection strong{font-size:18px;color:var(--navy)}.consent-selection span{color:var(--muted);font-size:12px}.consent-customization,.consent-base-text{border:1px solid var(--line);border-radius:12px;padding:16px;margin:16px 0}.consent-form summary{cursor:pointer;font-weight:600}.consent-form details .field{margin-top:16px}
@media(min-width:769px){.patient-tabs{flex-wrap:wrap;overflow:visible;gap:4px 15px}.patient-tabs .tab{min-height:44px;padding:11px 2px;font-size:12px}}

/* Explicit contact choices remain separate from saving the appointment. */
.contact-choice{border:1px solid #cbd5e1;border-radius:12px;padding:12px;margin:16px 0}.contact-choice legend{font-weight:600;padding:0 6px}.contact-choice .actions{display:flex;flex-wrap:wrap;gap:8px}.contact-choice button{min-height:44px}#modal-root button[aria-pressed="true"]{background:#102B46;color:#fff;border-color:#102B46;box-shadow:0 0 0 2px #14B8A6}#appointment-draft{min-height:130px;width:100%;box-sizing:border-box}

.stat[data-day-card]{cursor:pointer}.stat[data-day-card]:hover{border-color:#2563eb;box-shadow:0 4px 16px #102b4614}.stat[data-day-card]:focus-visible{outline:3px solid #2563eb;outline-offset:3px}

/* Keep the hour gutter, professional headers and appointments on the same tracks. */
.content.agenda-content { max-width: none; }
.agenda-panel { min-width: 0; }
.schedule-inner {
  --hour-width: 54px;
  --professional-width: 154px;
  --agenda-tracks: var(--hour-width) repeat(var(--professional-count), minmax(0, 1fr));
  min-width: calc(var(--hour-width) + var(--professional-count) * var(--professional-width));
}
.schedule-head, .schedule-grid { grid-template-columns: var(--agenda-tracks); }
.schedule-head .professional { min-width: 0; overflow-wrap: anywhere; }
.schedule-head .prof-avatar { flex-shrink: 0; }
.schedule-head strong { font-size: 13px; }
.schedule-head small { font-size: 11px; }
.schedule-hour-heading, .time-column {
  position: sticky;
  left: 0;
  z-index: 1;
  background-color: #fff;
  box-shadow: 1px 0 var(--line);
  color: var(--muted);
  font-size: 11px;
}
.schedule-hour-heading { display: grid; place-items: center; }
.schedule-hint { display: none; }
.agenda-views [aria-pressed="true"] { background: var(--navy); color: #fff; }
@media (max-width: 700px) {
  .agenda-content .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-bottom: 12px; }
  .agenda-content .stat { padding: 8px 12px; }
  .agenda-content .stat > div:first-child { display: flex; align-items: center; justify-content: space-between; width: 100%; gap: 6px; }
  .agenda-content .stat-number { font-size: 20px; margin: 0; }
  .agenda-content .stat-foot, .agenda-content .stat-icon { display: none; }
  .schedule-inner { --hour-width: 46px; --professional-width: 148px; }
  .schedule-hint { display: block; margin: 0; padding: 8px 16px; font-size: 12px; color: var(--muted); }
  .agenda-panel .date-controls > *, .agenda-panel .agenda-views button { min-height: 44px; }
  .agenda-panel .date-controls button { min-width: 44px; }
  .schedule { max-height: min(670px, 68dvh); }
}
