:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#173633;background:#f3f7f6}*{box-sizing:border-box}body{margin:0;min-width:320px;background:#f3f7f6}button,input,textarea{font:inherit}a{color:#08736c;text-decoration:none}a:hover{text-decoration:underline}.staff-header{position:sticky;top:0;z-index:10;border-bottom:1px solid #dbe8e6;background:#fffffff2;backdrop-filter:blur(12px)}.staff-header__inner{width:min(1400px,calc(100% - 32px));min-height:72px;margin:auto;display:flex;align-items:center;gap:24px}.staff-brand{display:flex;align-items:center;gap:10px;color:#153f3c;line-height:1.1;white-space:nowrap}.staff-brand:hover{text-decoration:none}.staff-brand strong{display:block;font-size:1rem}.staff-brand small{display:block;margin-top:3px;color:#6c8380;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.staff-brand__mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#0b6e69;color:#fff;font-size:1.35rem;font-weight:800;box-shadow:0 6px 16px #0b6e6926}.staff-nav{display:flex;align-items:center;gap:4px;margin-right:auto}.staff-nav__link{padding:9px 11px;border-radius:9px;color:#52706d;font-size:.92rem;font-weight:750}.staff-nav__link:hover,.staff-nav__link.is-active{background:#e5f2f0;color:#075e59;text-decoration:none}.staff-user{display:flex;align-items:center;gap:10px}.staff-user__role{display:none;padding:5px 8px;border-radius:99px;background:#e8f5f3;color:#0b6e69;font-size:.72rem;font-weight:800}.staff-user__name{max-width:180px;overflow:hidden;color:#46635f;font-size:.85rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.staff-user form{margin:0}.staff-main{width:min(1400px,calc(100% - 32px));margin:0 auto;padding:32px 0 48px}.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:0 0 24px}.eyebrow{margin:0 0 5px;color:#43817b;font-size:.75rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.page-heading h1{margin:0;color:#153f3c;font-size:clamp(1.65rem,3vw,2.2rem);letter-spacing:-.035em}.page-heading__meta{margin:8px 0 0;color:#627a77;font-size:.94rem}.card{min-width:0;padding:22px;border:1px solid #dce9e7;border-radius:18px;background:#fff;box-shadow:0 7px 24px #0b6e690d}.card h2,.card h3{margin:0;color:#193b37}.card h2{font-size:1.12rem}.card h3{font-size:1rem}.card__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.grid{display:grid;gap:20px}.grid--two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.grid--dashboard{grid-template-columns:minmax(0,1.4fr) minmax(320px,.8fr)}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.summary-card{padding:18px;border:1px solid #dce9e7;border-radius:15px;background:#fff;box-shadow:0 5px 16px #0b6e690a}.summary-card__label{display:block;color:#66807d;font-size:.78rem;font-weight:800;letter-spacing:.055em;text-transform:uppercase}.summary-card__value{display:block;margin-top:6px;color:#123f3a;font-size:1.7rem;font-weight:850;letter-spacing:-.04em}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-grid--three{grid-template-columns:2fr 1fr auto}.field{display:grid;gap:6px;color:#345550;font-size:.88rem;font-weight:750}.field--full{grid-column:1/-1}input,textarea{width:100%;border:1px solid #b7ceca;border-radius:10px;background:#fff;color:#173633;padding:11px 12px;outline:none}textarea{min-height:90px;resize:vertical}input:focus,textarea:focus{border-color:#078176;box-shadow:0 0 0 3px #0b6e6926}.form-actions{display:flex;flex-wrap:wrap;align-items:end;gap:10px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;border:0;border-radius:10px;background:#0b6e69;color:#fff;cursor:pointer;padding:10px 15px;font-weight:800;line-height:1.1}.btn:hover{background:#075a55;text-decoration:none}.btn:focus-visible,.staff-nav__link:focus-visible,a:focus-visible{outline:3px solid #f3b535;outline-offset:3px}.btn--secondary{background:#e3f0ee;color:#155651}.btn--secondary:hover{background:#d3e4e1}.btn--danger{background:#b8443f}.btn--danger:hover{background:#943632}.btn--quiet{min-height:auto;background:transparent;color:#39716d;padding:8px 10px}.btn--quiet:hover{background:#edf4f3}.btn--large{min-height:50px;padding:13px 20px;font-size:1rem}.btn--small{min-height:34px;padding:7px 10px;font-size:.82rem}.alert{margin:0 0 18px;padding:12px 14px;border-radius:11px;border:1px solid #baddd8;background:#e9f6f4;color:#145c56;font-weight:650}.alert--warning{border-color:#f0d391;background:#fff7e5;color:#795811}.alert--error{border-color:#efbeb9;background:#fdf0ee;color:#913c35}.table-wrap{overflow-x:auto;border:1px solid #e1ecea;border-radius:13px}.data-table{width:100%;min-width:700px;border-collapse:collapse;background:#fff}.data-table th,.data-table td{padding:13px 14px;border-bottom:1px solid #e6efed;text-align:left;vertical-align:middle}.data-table th{background:#f5f9f8;color:#58736f;font-size:.75rem;font-weight:850;letter-spacing:.055em;text-transform:uppercase}.data-table tr:last-child td{border-bottom:0}.data-table td{color:#294944;font-size:.93rem}.data-table__actions{display:flex;flex-wrap:wrap;gap:7px}.data-table__actions form{margin:0}.serial{display:inline-grid;place-items:center;min-width:37px;height:37px;border-radius:10px;background:#e3f2ef;color:#096b64;font-weight:900;font-variant-numeric:tabular-nums}.status-badge,.source-badge{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:99px;font-size:.73rem;font-weight:850;letter-spacing:.025em;white-space:nowrap}.status-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.status--scheduled{background:#eee9fb;color:#614eb4}.status--waiting{background:#e6f3fb;color:#216d96}.status--called{background:#fff2d9;color:#a46400}.status--in_consultation{background:#e3f4ee;color:#087050}.status--completed{background:#e7f2eb;color:#39704d}.status--cancelled,.status--no_show{background:#f8e8e7;color:#98433f}.source-badge{background:#f1f5f4;color:#54716c}.source--dentist_appointment{background:#f0ebfb;color:#6750ad}.current-patient{display:grid;gap:12px;padding:21px;border:1px solid #bfe2dc;border-radius:16px;background:linear-gradient(135deg,#effaf8,#e0f2ef)}.current-patient__token{font-size:2.5rem;font-weight:900;letter-spacing:-.07em;color:#08746c}.current-patient__name{font-size:1.2rem;font-weight:850}.empty-state{padding:18px;border-radius:12px;background:#f3f8f7;color:#5b7571}.selected-patient{padding:14px;border-radius:12px;background:#edf7f5}.selected-patient strong{display:block;font-size:1.04rem}.muted{color:#66807d}.patient-code{display:inline-block;padding:6px 9px;border-radius:9px;background:#e7f3f1;color:#13645e;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.82rem;font-weight:750}.login-page{display:grid;min-height:100vh;place-items:center;padding:24px;background:radial-gradient(circle at top left,#d9f2ee,transparent 35%),#f3f7f6}.login-card{width:min(100%,440px);padding:32px;border:1px solid #d9e8e5;border-radius:22px;background:#fff;box-shadow:0 16px 45px #0b6e6921}.login-card .staff-brand{margin-bottom:28px}.login-card h1{margin:0;color:#153f3c;font-size:1.8rem;letter-spacing:-.035em}.login-card p{color:#627a77}.login-form{display:grid;gap:16px;margin-top:24px}.login-form .btn{width:100%;margin-top:4px}@media (max-width:900px){.grid--dashboard{grid-template-columns:1fr}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.staff-header__inner{gap:12px}.staff-user__name{display:none}.staff-user__role{display:inline-flex}}@media (max-width:640px){.staff-header__inner,.staff-main{width:min(100% - 24px,1400px)}.staff-header__inner{min-height:64px}.staff-brand small{display:none}.staff-brand__mark{width:34px;height:34px}.staff-brand strong{font-size:.9rem}.staff-nav{gap:0}.staff-nav__link{padding:8px;font-size:.8rem}.staff-user__role{display:none}.staff-main{padding-top:22px}.page-heading{display:block}.summary-grid,.form-grid,.form-grid--three{grid-template-columns:1fr}.card{padding:17px}.data-table{min-width:620px}.data-table th,.data-table td{padding:11px}.btn{min-height:44px}.data-table__actions .btn{min-height:36px}.login-card{padding:25px 20px}}
.staff-brand__logo{display:grid;place-items:center;width:46px;height:46px;flex:0 0 46px;padding:4px;border:1px solid #0b6e6926;border-radius:50%;background:#fff;box-shadow:0 3px 10px #0b6e6914;overflow:hidden}.staff-brand__image{display:block;width:100%;height:100%;object-fit:contain}
.staff-header{background:#00695f;border-bottom-color:#00554d;backdrop-filter:none}.staff-header__inner{display:grid;grid-template-columns:minmax(0,1fr);gap:0;padding:10px 0}.staff-header__top{display:flex;align-items:center;justify-content:space-between;gap:20px;min-width:0}.staff-brand{min-width:0;color:#fff}.staff-brand strong,.staff-brand small{color:#fff}.staff-brand small{opacity:.78}.staff-brand__logo{border-color:#fff;background:#fff}.staff-nav{min-width:0;margin:10px 0 0;display:flex;flex-wrap:wrap;gap:5px}.staff-nav__link{color:#fff}.staff-nav__link:hover,.staff-nav__link.is-active{background:#c9eee8;color:#00554d}.staff-user{flex:none;min-width:0;color:#fff}.staff-user__role{display:inline-flex;background:#c9eee8;color:#00554d}.staff-user__name{max-width:none;overflow:visible;color:#fff;white-space:normal;text-align:right}.staff-user .btn--quiet{color:#fff}.staff-user .btn--quiet:hover{background:#00554d}@media(min-width:1500px){.staff-header__inner{display:flex;align-items:center;gap:24px;min-height:72px;padding:0}.staff-header__top{display:contents}.staff-brand{order:0}.staff-nav{order:1;margin:0 auto 0 0;flex-wrap:nowrap}.staff-user{order:2}.staff-user__name{white-space:nowrap}}@media(max-width:640px){.staff-header__top{align-items:flex-start;gap:10px}.staff-user{display:grid;justify-items:end;gap:3px}.staff-user__name{font-size:.78rem}.staff-user form{margin:0}.staff-nav{margin-top:8px}.staff-nav__link{padding:8px 9px;font-size:.8rem}}
.staff-header__inner{display:grid;grid-template-columns:minmax(0,1fr);gap:0;padding:0}.staff-header__daily-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;min-width:0;padding:10px 0}.staff-header__daily-nav,.staff-header__reports-nav{display:flex;flex-wrap:wrap;gap:5px;min-width:0}.staff-header__daily-nav{justify-content:flex-start}.staff-header__daily-nav .staff-nav__link,.staff-header__reports-nav .staff-nav__link{padding:9px 11px;border-radius:9px;color:#fff;font-size:.92rem;font-weight:750}.staff-header__daily-nav .staff-nav__link:hover,.staff-header__daily-nav .staff-nav__link.is-active,.staff-header__reports-nav .staff-nav__link:hover,.staff-header__reports-nav .staff-nav__link.is-active{background:#c9eee8;color:#00554d;text-decoration:none}.staff-header__reports-row{display:flex;align-items:flex-start;gap:14px;min-width:0;padding:8px 0 10px;border-top:1px solid rgba(255,255,255,.2);background:#005f56}.staff-header__reports-label{flex:none;padding:9px 0;color:rgba(255,255,255,.72);font-size:.68rem;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.staff-user{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-width:0}.staff-user__name{max-width:280px;overflow-wrap:anywhere;white-space:normal}.staff-user__role{display:none}@media(min-width:1500px){.staff-header__inner{display:grid;grid-template-columns:minmax(0,1fr);min-height:0;padding:0}.staff-header__daily-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto}.staff-brand,.staff-user{order:initial}.staff-header__daily-nav{margin:0;flex-wrap:wrap}.staff-user__name{white-space:normal}}@media(max-width:1100px){.staff-header__daily-row{gap:12px}.staff-header__daily-nav .staff-nav__link,.staff-header__reports-nav .staff-nav__link{padding:8px 9px;font-size:.86rem}.staff-user__name{max-width:220px}}@media(max-width:640px){.staff-header__daily-row{grid-template-columns:1fr;gap:9px;padding:10px 0}.staff-header__daily-nav{order:2}.staff-user{order:1;justify-content:space-between}.staff-user__name{max-width:none;text-align:left}.staff-header__reports-row{display:grid;gap:3px;padding:8px 0 10px}.staff-header__reports-nav{order:2}.staff-header__daily-nav .staff-nav__link,.staff-header__reports-nav .staff-nav__link{min-height:40px;display:inline-flex;align-items:center}}
.branding-preview{width:76px;height:76px;flex:none;border:1px solid #cfe1de;border-radius:16px;background:#f5f9f8;object-fit:contain}
.clinic-settings-toggle>span:last-child{display:inline-flex;align-items:center;gap:8px;font-weight:600}.clinic-settings-toggle input[type="checkbox"]{width:16px;height:16px;margin:0;padding:0;flex:0 0 16px;accent-color:#0b6e69}
.staff-developer-footer{width:min(1400px,calc(100% - 32px));margin:0 auto;padding:0 0 32px;text-align:center;color:#6b827f;font-size:.76rem;line-height:1.45}.staff-developer-footer p{margin:2px 0}.login-card .staff-developer-footer{width:100%;margin:28px 0 0;padding:18px 0 0;border-top:1px solid #e0ecea}@media(max-width:640px){.staff-brand__logo{width:40px;height:40px;flex-basis:40px;padding:3px}}
.clinical-images{margin-top:1rem}.clinical-image-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin:1rem 0 1.5rem}.clinical-image-card{border:1px solid var(--border,#d8e2e5);border-radius:.75rem;padding:.75rem;overflow-wrap:anywhere;background:#fff}.clinical-image-card img{display:block;width:100%;height:180px;object-fit:contain;background:#f2f7f7;border-radius:.5rem;margin-bottom:.65rem}.clinical-image-card form{margin-top:.65rem}.clinical-image-card .btn{min-height:44px;margin:.2rem .2rem .2rem 0}@media(max-width:640px){.clinical-image-grid{grid-template-columns:1fr}.clinical-image-card img{height:220px}.clinical-images .form-grid{grid-template-columns:1fr}.clinical-images .btn{width:100%;min-height:46px}}
.clinical-images{display:grid;gap:20px}.clinical-images__head h3,.clinical-image-section h4{margin:0}.clinical-images__head p{margin:6px 0 0}.clinical-image-upload{padding:18px;border:1px solid #cde2df;border-radius:15px;background:#f8fcfb}.clinical-image-dropzone{display:grid;gap:5px;padding:18px;border:2px dashed #8fc9c2;border-radius:13px;background:#fff;color:#245b56;cursor:pointer;text-align:center}.clinical-image-dropzone:hover{border-color:#0b7c73;background:#f1faf8}.clinical-image-dropzone__title{font-weight:850}.clinical-image-dropzone__hint,.clinical-image-dropzone__filename{color:#66807d;font-size:.83rem;font-weight:650}.clinical-image-dropzone input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.clinical-image-section{display:grid;gap:8px}.clinical-image-grid{grid-template-columns:repeat(auto-fill,minmax(280px,320px));justify-content:start;align-items:start;margin:0}.clinical-image-card{display:flex;flex-direction:column;width:100%;max-width:320px;padding:0;overflow:hidden;border-color:#d9e8e6;border-radius:14px;box-shadow:0 5px 16px #0b6e690a}.clinical-image-thumb{display:block;width:100%;padding:0;border:0;background:#edf5f4;cursor:pointer}.clinical-image-card img{width:100%;height:190px;margin:0;border-radius:0;transition:transform .18s ease}.clinical-image-thumb:hover img,.clinical-image-thumb:focus-visible img{transform:scale(1.02)}.clinical-image-thumb:focus-visible{outline:3px solid #f3b535;outline-offset:-3px}.clinical-image-meta{display:grid;gap:5px;padding:13px 13px 0;color:#5c7773;font-size:.87rem}.clinical-image-meta strong{color:#1b4944;font-size:.98rem}.clinical-image-meta p{margin:3px 0 0;color:#345550;white-space:pre-wrap}.clinical-image-card__actions{display:flex;flex-wrap:wrap;gap:7px;padding:13px}.clinical-image-card__actions form{margin:0}.clinical-image-history{padding-top:4px}.clinical-image-history__group{display:grid;gap:8px;padding-top:10px;border-top:1px solid #e1ecea}.clinical-image-history__group h5{margin:0;color:#4d706b}.clinical-image-modal[hidden]{display:none}.clinical-image-modal{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:24px}.clinical-image-modal__backdrop{position:absolute;inset:0;background:#082522cc}.clinical-image-modal__dialog{position:relative;z-index:1;width:min(100%,980px);max-height:calc(100vh - 48px);padding:18px;border-radius:16px;background:#fff;box-shadow:0 18px 60px #001c18aa}.clinical-image-modal__dialog img{display:block;width:100%;max-height:calc(100vh - 190px);object-fit:contain;background:#102927;border-radius:10px}.clinical-image-modal__close{position:absolute;top:26px;right:26px;display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:50%;background:#fff;color:#17423e;font-size:1.7rem;line-height:1;cursor:pointer}.clinical-image-modal__meta{display:grid;gap:4px;padding:12px 4px 0;color:#58736f}.clinical-image-modal__meta strong{color:#1b4944}.clinical-image-modal__meta p{margin:2px 0 0;white-space:pre-wrap}@media(max-width:640px){.clinical-image-grid{grid-template-columns:1fr}.clinical-image-card{max-width:none}.clinical-image-modal{padding:12px}.clinical-image-modal__dialog{padding:12px;max-height:calc(100vh - 24px)}.clinical-image-modal__dialog img{max-height:calc(100vh - 150px)}.clinical-image-modal__close{top:18px;right:18px}.clinical-image-card__actions .btn{width:auto}.clinical-image-dropzone{min-height:120px;align-content:center}}
.clinical-images{display:grid;gap:20px}.clinical-images__head h3,.clinical-image-section h4{margin:0}.clinical-images__head p{margin:6px 0 0}.clinical-image-upload{padding:18px;border:1px solid #cde2df;border-radius:15px;background:#f8fcfb}.clinical-image-dropzone{display:grid;gap:5px;padding:18px;border:2px dashed #8fc9c2;border-radius:13px;background:#fff;color:#245b56;cursor:pointer;text-align:center}.clinical-image-dropzone:hover{border-color:#0b7c73;background:#f1faf8}.clinical-image-dropzone__title{font-weight:850}.clinical-image-dropzone__hint,.clinical-image-dropzone__filename{color:#66807d;font-size:.83rem;font-weight:650}.clinical-image-dropzone input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.clinical-image-section{display:grid;gap:8px}.clinical-image-grid{grid-template-columns:repeat(auto-fill,minmax(280px,320px));justify-content:start;align-items:start;margin:0}.clinical-image-card{display:flex;flex-direction:column;width:100%;max-width:320px;padding:0;overflow:hidden;border-color:#d9e8e6;border-radius:14px;box-shadow:0 5px 16px #0b6e690a}.clinical-image-thumb{display:block;width:100%;padding:0;border:0;background:#edf5f4;cursor:pointer}.clinical-image-card img{width:100%;height:190px;margin:0;border-radius:0;transition:transform .18s ease}.clinical-image-thumb:hover img,.clinical-image-thumb:focus-visible img{transform:scale(1.02)}.clinical-image-thumb:focus-visible{outline:3px solid #f3b535;outline-offset:-3px}.clinical-image-meta{display:grid;gap:5px;padding:13px 13px 0;color:#5c7773;font-size:.87rem}.clinical-image-meta strong{color:#1b4944;font-size:.98rem}.clinical-image-meta p{margin:3px 0 0;color:#345550;white-space:pre-wrap}.clinical-image-card__actions{display:flex;flex-wrap:wrap;gap:7px;padding:13px}.clinical-image-card__actions form{margin:0}.clinical-image-history{padding-top:4px}.clinical-image-history__group{display:grid;gap:8px;padding-top:10px;border-top:1px solid #e1ecea}.clinical-image-history__group h5{margin:0;color:#4d706b}.clinical-image-modal[hidden]{display:none}.clinical-image-modal{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:24px}.clinical-image-modal__backdrop{position:absolute;inset:0;background:#082522cc}.clinical-image-modal__dialog{position:relative;z-index:1;width:min(100%,980px);max-height:calc(100vh - 48px);padding:18px;border-radius:16px;background:#fff;box-shadow:0 18px 60px #001c18aa}.clinical-image-modal__dialog img{display:block;width:100%;max-height:calc(100vh - 190px);object-fit:contain;background:#102927;border-radius:10px}.clinical-image-modal__close{position:absolute;top:26px;right:26px;display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:50%;background:#fff;color:#17423e;font-size:1.7rem;line-height:1;cursor:pointer}.clinical-image-modal__meta{display:grid;gap:4px;padding:12px 4px 0;color:#58736f}.clinical-image-modal__meta strong{color:#1b4944}.clinical-image-modal__meta p{margin:2px 0 0;white-space:pre-wrap}.clinical-image-comparison{display:grid;gap:16px;margin-top:20px;padding:18px;border:1px solid #cde2df;border-radius:15px;background:#f8fcfb}.clinical-image-comparison header h4,.clinical-image-comparison header p,.clinical-image-timeline h5{margin:0}.clinical-image-comparison header p{margin-top:5px}.clinical-image-comparison__selectors,.clinical-image-comparison__panels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.clinical-image-comparison__matches{display:flex;flex-wrap:wrap;gap:8px;min-height:0}.clinical-image-comparison__matches span{padding:5px 9px;border-radius:99px;background:#dff1ee;color:#11655d;font-size:.78rem;font-weight:800}.clinical-image-comparison__panel{display:grid;gap:10px;padding:14px;border:1px solid #d9e8e6;border-radius:13px;background:#fff}.clinical-image-comparison__panel h5{margin:0;color:#245b56}.clinical-image-comparison__panel img{width:100%;height:310px;object-fit:contain;background:#102927;border-radius:9px}.clinical-image-comparison__panel div{display:grid;gap:4px;color:#5b7571;font-size:.88rem}.clinical-image-comparison__panel p{margin:2px 0 0;white-space:pre-wrap}.clinical-image-timeline{display:grid;gap:9px}.clinical-image-timeline>div{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px}.clinical-image-timeline button{display:grid;grid-template-columns:72px minmax(150px,1fr);align-items:center;gap:9px;min-width:245px;padding:8px;border:1px solid #d9e8e6;border-radius:10px;background:#fff;color:#355852;text-align:left;cursor:pointer}.clinical-image-timeline button:hover,.clinical-image-timeline button:focus-visible{border-color:#0b7c73;background:#f1faf8}.clinical-image-timeline img{width:72px;height:58px;object-fit:contain;background:#edf5f4;border-radius:7px}.clinical-image-timeline span{font-size:.79rem;font-weight:700;line-height:1.35}@media(max-width:640px){.clinical-image-grid{grid-template-columns:1fr}.clinical-image-card{max-width:none}.clinical-image-modal{padding:12px}.clinical-image-modal__dialog{padding:12px;max-height:calc(100vh - 24px)}.clinical-image-modal__dialog img{max-height:calc(100vh - 150px)}.clinical-image-modal__close{top:18px;right:18px}.clinical-image-card__actions .btn{width:auto}.clinical-image-dropzone{min-height:120px;align-content:center}.clinical-image-comparison__selectors,.clinical-image-comparison__panels{grid-template-columns:1fr}.clinical-image-comparison__panel img{height:250px}}
.clinical-billing{display:grid;gap:18px}.billing-card,.billing-section{padding:16px;border:1px solid #dce9e7;border-radius:14px;background:#fff}.billing-card--empty{display:grid;gap:12px}.billing-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;background:linear-gradient(135deg,#f7fcfb,#edf7f5)}.billing-header-main,.billing-status{min-width:0}.billing-number{margin:0;color:#173f3a;font-size:1.2rem;font-variant-numeric:tabular-nums}.billing-status{text-align:right}.billing-status p{margin:0}.status--draft{background:#e7f2f8;color:#216d96}.billing-section{display:grid;gap:13px}.billing-section-title{margin:0;color:#28514c;font-size:.94rem}.billing-items{margin:0}.billing-item-main{font-weight:780}.billing-item-meta{color:#66807d;font-size:.86rem}.billing-item-amount{font-weight:850;font-variant-numeric:tabular-nums;white-space:nowrap}.billing-totals{width:min(100%,390px);margin-left:auto;background:#f8fcfb}.billing-totals dl{display:grid;gap:8px;margin:0}.billing-total-row{display:flex;justify-content:space-between;gap:18px;color:#54716c}.billing-total-row dt,.billing-total-row dd{margin:0}.billing-total-row dd{font-variant-numeric:tabular-nums}.billing-grand-total{margin-top:4px;padding-top:12px;border-top:1px solid #cfe2df;color:#173f3a;font-size:1.08rem;font-weight:900}.billing-actions{display:grid;gap:14px}.billing-form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end;gap:12px}.billing-form-row .form-actions{align-self:end}.billing-form-row form{margin:0}.billing-history-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.billing-history-item{display:grid;grid-template-columns:1fr auto;align-items:center;gap:7px;padding:12px;border:1px solid #dfecea;border-radius:11px;background:#f9fcfb}.billing-history-item>span:nth-child(2){color:#66807d;font-size:.86rem}.billing-history-item .status-badge{justify-self:start}@media(max-width:640px){.billing-header{display:grid}.billing-status{text-align:left}.billing-totals{width:100%;margin-left:0}.billing-form-row{grid-template-columns:1fr}.billing-form-row .btn{width:100%}.billing-history-list{grid-template-columns:1fr}.billing-history-item{grid-template-columns:1fr auto}.billing-items .data-table{min-width:560px}}
.payment-summary{display:grid;gap:10px}.payment-summary h4{margin:0 0 4px}.payment-summary-row{display:flex;align-items:center;justify-content:space-between;gap:16px;color:#54716c}.payment-summary-row strong{color:#1d4944;font-variant-numeric:tabular-nums}.payment-summary-row--balance{margin-top:2px;padding-top:10px;border-top:1px solid #cfe2df;color:#153f3c;font-size:1.05rem;font-weight:850}.payment-status--unpaid{background:#f4f0e4;color:#8b6600}.payment-status--partial{background:#e5f2f8;color:#216d96}.payment-status--paid{background:#e3f4ee;color:#087050}.payment-entry-card{background:#f8fcfb}.payment-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.payment-history{display:grid;gap:12px}.payment-history-list{display:grid;gap:10px}.payment-history-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:start;gap:10px;padding:13px;border:1px solid #dfecea;border-radius:11px;background:#f9fcfb}.payment-history-item>div{display:grid;gap:4px}.payment-history-item>div span{color:#66807d;font-size:.84rem}.payment-history-item>strong{font-variant-numeric:tabular-nums}.status--posted{background:#e3f4ee;color:#087050}.status--reversed{background:#f8e8e7;color:#98433f}.payment-reversed{border-color:#ecc5c1;background:#fdf5f4}.payment-reversal-form{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;margin-top:4px;padding-top:10px;border-top:1px solid #ead4d1}@media(max-width:640px){.payment-form{grid-template-columns:1fr}.payment-history-item{grid-template-columns:1fr auto}.payment-history-item>.status-badge{justify-self:start}.payment-reversal-form{grid-template-columns:1fr}.payment-reversal-form .btn{width:100%}}
.collection-report{display:grid;gap:18px}.collection-report-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}.collection-report-tabs a{padding:9px 13px;border:1px solid #cfe2df;border-radius:9px;background:#fff;color:#39716d;font-weight:800}.collection-report-tabs a:hover,.collection-report-tabs a.is-active{background:#e5f2f0;border-color:#b8dcd7;color:#075e59;text-decoration:none}.collection-filter{display:flex;flex-wrap:wrap;align-items:end;gap:12px;padding:14px;border:1px solid #dce9e7;border-radius:13px;background:#f8fcfb}.collection-filter .field{min-width:150px}.collection-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.collection-report h3{margin:4px 0 -4px}.collection-table td:last-child{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}.collection-empty{margin:0}@media(max-width:640px){.collection-report-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.collection-report-tabs a{text-align:center}.collection-filter{display:grid;grid-template-columns:1fr}.collection-filter .field{min-width:0}.collection-filter .btn{width:100%}.collection-summary-grid{grid-template-columns:1fr}}
.collection-report-actions{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 16px}.collection-print{background:#fff;color:#173633;font-family:Arial,sans-serif}.collection-print__main{width:min(100% - 40px,980px);margin:28px auto}.collection-print-header{border-bottom:2px solid #0b6e69;margin-bottom:18px;padding-bottom:12px}.collection-print-header h1,.collection-print-header h2{margin:0 0 6px}.collection-print-actions{display:flex;gap:10px;margin:0 0 18px}.collection-print-actions button,.collection-print-actions a{padding:9px 13px;border:1px solid #0b6e69;border-radius:8px;background:#fff;color:#075e59;font:inherit;font-weight:700;text-decoration:none}.collection-print table{width:100%;margin:10px 0 20px;border-collapse:collapse}.collection-print th,.collection-print td{padding:8px;border-bottom:1px solid #dce9e7;text-align:left}.collection-print th{background:#eff7f5}@media print{.staff-header,.collection-report-tabs,.collection-filter,.collection-report-actions,.collection-print-actions,.staff-footer{display:none!important}.collection-print__main{width:auto;margin:0}.collection-print table{font-size:9pt}.collection-print tr{break-inside:avoid}}
.patient-report{display:grid;gap:18px}.patient-report-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}.patient-report-tabs a{padding:9px 13px;border:1px solid #cfe2df;border-radius:9px;background:#fff;color:#39716d;font-weight:800}.patient-report-tabs a:hover,.patient-report-tabs a.is-active{background:#e5f2f0;border-color:#b8dcd7;color:#075e59;text-decoration:none}.patient-report-filter{display:flex;flex-wrap:wrap;align-items:end;gap:12px;padding:14px;border:1px solid #dce9e7;border-radius:13px;background:#f8fcfb}.patient-report-filter .field{min-width:150px}.patient-report-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.patient-report-table td:last-child{white-space:nowrap}@media(max-width:640px){.patient-report-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.patient-report-tabs a{text-align:center}.patient-report-filter{display:grid;grid-template-columns:1fr}.patient-report-filter .field{min-width:0}.patient-report-filter .btn{width:100%}.patient-report-summary{grid-template-columns:1fr}.patient-report-table{min-width:760px}}@media print{.patient-report-tabs,.patient-report-filter{display:none!important}}
.appointment-report{display:grid;gap:18px}.appointment-report-periods{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}.appointment-report-periods a{padding:9px 13px;border:1px solid #cfe2df;border-radius:9px;background:#fff;color:#39716d;font-weight:800}.appointment-report-periods a:hover,.appointment-report-periods a.is-active{background:#e5f2f0;border-color:#b8dcd7;color:#075e59;text-decoration:none}.appointment-report-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px;padding:14px;border:1px solid #dce9e7;border-radius:13px;background:#f8fcfb}.appointment-report-filters .field{min-width:150px}.appointment-report-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.appointment-report-table td:last-child{white-space:nowrap}.appointment-report-status{white-space:nowrap}@media(max-width:640px){.appointment-report-periods{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.appointment-report-periods a{text-align:center}.appointment-report-filters{display:grid;grid-template-columns:1fr}.appointment-report-filters .field{min-width:0}.appointment-report-filters .btn{width:100%}.appointment-report-summary{grid-template-columns:1fr}.appointment-report-table{min-width:900px}}
.treatment-report{display:grid;gap:18px}.treatment-report-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}.treatment-report-tabs a{padding:9px 13px;border:1px solid #cfe2df;border-radius:9px;background:#fff;color:#39716d;font-weight:800}.treatment-report-tabs a:hover,.treatment-report-tabs a.is-active{background:#e5f2f0;border-color:#b8dcd7;color:#075e59;text-decoration:none}.treatment-report-filter{display:flex;flex-wrap:wrap;align-items:end;gap:12px;padding:14px;border:1px solid #dce9e7;border-radius:13px;background:#f8fcfb}.treatment-report-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}@media(max-width:640px){.treatment-report-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.treatment-report-tabs a{text-align:center}.treatment-report-filter{display:grid;grid-template-columns:1fr}.treatment-report-filter .btn{width:100%}.treatment-report-summary{grid-template-columns:1fr}.treatment-report-table{min-width:840px}}@media print{.treatment-report-tabs,.treatment-report-filter{display:none!important}}
.pending-treatment-report{display:grid;gap:18px}.pending-treatment-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px;padding:14px;border:1px solid #dce9e7;border-radius:13px;background:#f8fcfb}.pending-treatment-filters .field{min-width:170px}.pending-treatment-filters select{width:100%;border:1px solid #b7ceca;border-radius:10px;background:#fff;color:#173633;padding:11px 12px;outline:none}.pending-treatment-filters select:focus{border-color:#078176;box-shadow:0 0 0 3px #0b6e6926}.pending-treatment-summary,.pending-treatment-aging{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.pending-treatment-aging .summary-card{display:grid;gap:4px}.pending-treatment-table{min-width:940px}.pending-treatment-table td:last-child{white-space:nowrap}@media(max-width:640px){.pending-treatment-filters{display:grid;grid-template-columns:1fr}.pending-treatment-filters .field{min-width:0}.pending-treatment-filters .btn,.pending-treatment-filters a{width:100%}.pending-treatment-summary,.pending-treatment-aging{grid-template-columns:1fr}}
.outstanding-payment-report{display:grid;gap:18px}.outstanding-payment-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px;padding:14px;border:1px solid #dce9e7;border-radius:13px;background:#f8fcfb}.outstanding-payment-filters .field{min-width:170px}.outstanding-payment-filters select{width:100%;border:1px solid #b7ceca;border-radius:10px;background:#fff;color:#173633;padding:11px 12px;outline:none}.outstanding-payment-filters select:focus{border-color:#078176;box-shadow:0 0 0 3px #0b6e6926}.outstanding-payment-summary,.outstanding-payment-aging{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.outstanding-payment-aging .summary-card{display:grid;gap:4px}.outstanding-payment-bills{min-width:1240px}.outstanding-payment-patients{min-width:900px}.outstanding-payment-status{display:inline-flex;padding:4px 8px;border-radius:999px;font-size:.78rem;font-weight:700}.outstanding-payment-status--unpaid{background:#fee8e7;color:#a33128}.outstanding-payment-status--partially_paid{background:#fff4d6;color:#79560a}@media(max-width:640px){.outstanding-payment-filters{display:grid;grid-template-columns:1fr}.outstanding-payment-filters .field{min-width:0}.outstanding-payment-filters .btn,.outstanding-payment-filters a{width:100%}.outstanding-payment-summary,.outstanding-payment-aging{grid-template-columns:1fr}}
/* Shared Staff Portal header: clinic branding, navigation, and account actions. */
.staff-header{border-bottom-color:#00544d;background:#00695f;backdrop-filter:none}
.staff-header__inner{gap:18px}
.staff-brand,.staff-brand strong{color:#fff}
.staff-brand small{color:rgb(255 255 255 / .76)}
.staff-nav{gap:3px}
.staff-nav__link{color:#fff;white-space:nowrap}
.staff-nav__link:hover{background:rgb(255 255 255 / .14);color:#fff;text-decoration:none}
.staff-nav__link.is-active{background:#e5f3f1;color:#075e59;font-weight:850;text-decoration:none}
.staff-user{gap:8px;color:#fff}
.staff-user__name{max-width:none;overflow:visible;color:#fff;text-overflow:clip;white-space:nowrap}
.staff-user form{padding-left:8px;border-left:1px solid rgb(255 255 255 / .3)}
.staff-user .btn--quiet{color:#fff}
.staff-user .btn--quiet:hover{background:rgb(255 255 255 / .14);color:#fff}
@media (max-width:1180px){.staff-header__inner{min-height:unset;flex-wrap:wrap;gap:10px 14px;padding:10px 0}.staff-nav{order:3;flex-basis:100%;flex-wrap:wrap;margin-right:0}.staff-user{margin-left:auto}}
@media (max-width:640px){.staff-header__inner{padding:8px 0}.staff-nav__link{padding:8px}.staff-user form{padding-left:5px}}
/* Login-only clinic logo sizing: preserve the uploaded logo's aspect ratio without letting it fill the card. */
.login-card .staff-brand{flex-direction:column;gap:12px;margin-bottom:24px;text-align:center;white-space:normal}
.login-card .staff-brand__image{width:min(160px,55vw);height:auto;max-width:100%;flex:none;object-fit:contain}
@media (max-width:640px){.login-card .staff-brand{margin-bottom:20px}.login-card .staff-brand__image{width:min(150px,55vw)}}
/* Explicit final login-logo boundary: only the direct login image may size itself. */
.login-page .login-card .staff-brand{width:auto;height:auto;min-width:0;min-height:0;flex:0 0 auto;align-self:center}
.login-page .login-card .staff-brand>img.staff-brand__image{display:block;width:160px!important;min-width:0!important;max-width:100%!important;height:auto!important;max-height:none!important;flex:0 0 auto!important;align-self:center;object-fit:contain}
@media (max-width:640px){.login-page .login-card .staff-brand>img.staff-brand__image{width:min(150px,100%)!important}}

/* Staff login: compact, clinic-branded split card. These selectors do not affect the shared staff header. */
.login-page{padding:24px;background:radial-gradient(circle at top left,#d9f2ee,transparent 35%),#f3f7f6}
.login-shell{width:min(820px,100%)}
.login-card{width:100%;display:grid;grid-template-columns:minmax(0,42%) minmax(0,58%);padding:0;overflow:hidden;border-radius:20px;border:1px solid #cfe2df;box-shadow:0 18px 42px #0b6e6926}
.login-brand-panel{display:grid;align-content:center;justify-items:center;gap:19px;min-height:396px;padding:38px 34px;background:#00695f;color:#fff;text-align:center}
.login-brand-panel__logo{display:grid;place-items:center;width:132px;height:132px;padding:10px;border-radius:22px;background:#fff;box-shadow:0 10px 24px #003d37a6}
.login-brand-panel .staff-brand__image{display:block;width:100%!important;height:100%!important;max-width:100%!important;object-fit:contain}
.login-brand-panel strong{display:block;color:#fff;font-size:1.45rem;letter-spacing:-.025em;line-height:1.15}
.login-brand-panel p{margin:0}
.login-brand-panel p.login-brand-panel__eyebrow{margin-top:9px!important;color:#fff;font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:1}
.login-brand-panel p.login-brand-panel__support{margin-top:14px!important;color:rgb(255 255 255 / .88);font-size:.82rem;font-weight:400;line-height:1.45;opacity:1}
.login-form-panel{display:grid;align-content:center;padding:38px 46px;background:#fff}
.login-form-panel h1{margin:0;color:#153f3c;font-size:1.8rem;letter-spacing:-.035em}
.login-form-panel>p{margin:8px 0 0;color:#627a77;line-height:1.5}
.login-form-panel .alert{margin-top:20px;margin-bottom:0}
.login-form{gap:14px;margin-top:22px}
.login-remember{display:inline-flex;align-items:center;justify-content:flex-start;align-self:start;gap:8px;width:auto;color:#46635f;font-size:.88rem;font-weight:650;cursor:pointer}.login-remember input[type="checkbox"]{display:block;width:16px!important;min-width:16px;height:16px!important;padding:0!important;margin:0;flex:0 0 16px;accent-color:#0b6e69}.login-remember span{white-space:nowrap}
.login-form .btn{width:100%;margin-top:4px}
.login-shell .staff-developer-footer{width:100%;margin:14px 0 0;padding:0;border:0}
@media (max-width:680px){.login-page{place-items:start center;padding:18px 12px}.login-shell{width:min(100%,520px)}.login-card{grid-template-columns:1fr}.login-brand-panel{min-height:0;padding:28px 24px;gap:14px}.login-brand-panel__logo{width:104px;height:104px;padding:8px;border-radius:18px}.login-brand-panel strong{font-size:1.3rem}.login-form-panel{padding:28px 24px}.login-shell .staff-developer-footer{margin-top:16px;padding-bottom:env(safe-area-inset-bottom)}}

/* Shared staff notifications: source alerts remain readable without JavaScript; staff.js promotes them into this fixed toast stack. */
.staff-toast-region{position:fixed;top:128px;right:24px;z-index:120;display:grid;gap:10px;width:min(420px,calc(100vw - 48px));pointer-events:none}
.staff-toast{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;margin:0;padding:14px 12px 14px 16px;border:1px solid transparent;border-radius:14px;box-shadow:0 14px 32px #0825223d;color:#fff;font-weight:700;line-height:1.45;pointer-events:auto;animation:staff-toast-in .22s ease-out both}
.staff-toast--success{background:#08746c;border-color:#0c8c82}
.staff-toast--error{background:#b8443f;border-color:#d85d56}
.staff-toast--warning{background:#e89b22;border-color:#f0b752;color:#332200}
.staff-toast--info{background:#216d96;border-color:#398bb7}
.staff-toast__close{display:grid;place-items:center;width:32px;height:32px;margin:-3px -3px -3px 0;padding:0;border:0;border-radius:8px;background:transparent;color:currentColor;font:inherit;font-size:1.45rem;line-height:1;cursor:pointer}
.staff-toast__close:hover{background:rgb(255 255 255 / .16)}
.staff-toast__close:focus-visible{outline:3px solid #fff;outline-offset:2px}
.staff-toast.is-dismissing{animation:staff-toast-out .18s ease-in both}
@keyframes staff-toast-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
@keyframes staff-toast-out{to{opacity:0;transform:translateX(16px)}}
@media (max-width:640px){.staff-toast-region{right:12px;left:12px;width:auto}.staff-toast{padding:13px 10px 13px 14px}}
@media (prefers-reduced-motion:reduce){.staff-toast,.staff-toast.is-dismissing{animation:none}}
.dentist-dashboard-summary-grid>.summary-card{background:linear-gradient(135deg,#effaf8,#e0f2ef)}
