:root{font-family:Arial,sans-serif;color:#16354d;background:#f2f6f9}*{box-sizing:border-box}body{margin:0}header{padding:24px 5%;background:#fff;border-bottom:1px solid #d6e4ec;display:flex;align-items:center;gap:24px}header strong{color:#067caa;letter-spacing:2px}header button{margin-left:auto}main{max-width:1100px;margin:28px auto;padding:0 24px}h1{font-size:30px}h2{font-size:21px}section,article{background:white;border-radius:16px;padding:28px;margin:20px 0}section section{padding:0}label{display:block;margin:14px 0}input,textarea,select{display:block;width:100%;padding:12px;border:1px solid #b8cbd7;border-radius:7px;font:inherit;margin-top:7px}button,a.button{background:#087eac;color:white;border:0;border-radius:8px;padding:12px 18px;cursor:pointer;font:inherit;margin:5px 8px 5px 0;text-decoration:none;display:inline-block}button:disabled{opacity:.45;cursor:not-allowed}.notice{padding:16px;background:#e2eff5;border-left:4px solid #087eac;line-height:1.5}.heading,.case-row{display:flex;justify-content:space-between;align-items:center;gap:16px}.case-row{border-bottom:1px solid #dce7ed;padding:12px 0}.tag{background:#e4f3ed;color:#196648;padding:6px 12px;border-radius:20px}.history{border-top:1px solid #dce7ed;padding-top:12px;color:#536b7c;font-size:14px}.error{color:#a42020}#feedback{white-space:pre-wrap;padding:8px}#login{max-width:500px}#new-case{background:#f3f8fa;padding:20px;border-radius:12px}[hidden]{display:none!important}pre{white-space:pre-wrap;font:inherit}small{color:#506b7c}@media(max-width:650px){.heading,.case-row,header{align-items:flex-start;flex-direction:column}section,article{padding:16px}header button{margin-left:0}}
fieldset{border:1px solid #cddde6;border-radius:10px;margin:20px 0;padding:18px}legend{font-weight:bold;padding:0 8px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.choice{display:flex;align-items:center;gap:10px}.choice input{width:auto;margin:0}.positions{display:grid;grid-template-columns:repeat(8,1fr)}@media(max-width:650px){.form-grid{grid-template-columns:1fr}.positions{grid-template-columns:repeat(4,1fr)}}

.implant-placement{padding:16px;background:#fff;border:1px solid #cddde6;border-radius:12px}.implant-placement summary{font-weight:bold;cursor:pointer}.implant-sides{display:flex;justify-content:space-between;font-size:12px}.tooth-filter{position:absolute}.original-odontogram{position:relative;width:100%;line-height:0;margin:18px auto}.odontogram-base{display:block;width:100%;height:auto}.original-tooth-hit{position:absolute;display:block;margin:0;padding:0;cursor:pointer}.original-tooth-hit input{position:absolute;inset:0;margin:0;padding:0;width:100%;height:100%;opacity:0;cursor:pointer;z-index:2}.original-tooth-hit svg{display:none;position:absolute;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none}.original-tooth-hit input:checked+svg{display:block}.original-tooth-hit:focus-within{outline:2px solid #087eac}.implant-placement output{display:block;padding:12px;text-align:center;background:#e2eff5;border-radius:8px}.tooth-18{left:0.9765625%;top:8.784773060029282%;width:6.73828125%;height:33.52855051244509%}.tooth-17{left:7.71484375%;top:8.784773060029282%;width:6.787109375%;height:33.52855051244509%}.tooth-16{left:14.501953125%;top:8.784773060029282%;width:6.494140625%;height:33.52855051244509%}.tooth-15{left:20.99609375%;top:8.784773060029282%;width:5.859375%;height:33.52855051244509%}.tooth-14{left:26.85546875%;top:8.784773060029282%;width:5.37109375%;height:33.52855051244509%}.tooth-13{left:32.2265625%;top:8.784773060029282%;width:5.56640625%;height:33.52855051244509%}.tooth-12{left:37.79296875%;top:8.784773060029282%;width:5.2734375%;height:33.52855051244509%}.tooth-11{left:43.06640625%;top:8.784773060029282%;width:6.73828125%;height:33.52855051244509%}.tooth-21{left:49.8046875%;top:8.784773060029282%;width:6.8359375%;height:33.52855051244509%}.tooth-22{left:56.640625%;top:8.784773060029282%;width:5.6640625%;height:33.52855051244509%}.tooth-23{left:62.3046875%;top:8.784773060029282%;width:5.46875%;height:33.52855051244509%}.tooth-24{left:67.7734375%;top:8.784773060029282%;width:5.46875%;height:33.52855051244509%}.tooth-25{left:73.2421875%;top:8.784773060029282%;width:5.37109375%;height:33.52855051244509%}.tooth-26{left:78.61328125%;top:8.784773060029282%;width:6.54296875%;height:33.52855051244509%}.tooth-27{left:85.15625%;top:8.784773060029282%;width:6.640625%;height:33.52855051244509%}.tooth-28{left:91.796875%;top:8.784773060029282%;width:7.32421875%;height:33.52855051244509%}.tooth-48{left:0.9765625%;top:58.27232796486091%;width:6.73828125%;height:32.210834553440705%}.tooth-47{left:7.71484375%;top:58.27232796486091%;width:6.787109375%;height:32.210834553440705%}.tooth-46{left:14.501953125%;top:58.27232796486091%;width:6.494140625%;height:32.210834553440705%}.tooth-45{left:20.99609375%;top:58.27232796486091%;width:5.859375%;height:32.210834553440705%}.tooth-44{left:26.85546875%;top:58.27232796486091%;width:5.37109375%;height:32.210834553440705%}.tooth-43{left:32.2265625%;top:58.27232796486091%;width:5.56640625%;height:32.210834553440705%}.tooth-42{left:37.79296875%;top:58.27232796486091%;width:5.2734375%;height:32.210834553440705%}.tooth-41{left:43.06640625%;top:58.27232796486091%;width:6.73828125%;height:32.210834553440705%}.tooth-31{left:49.8046875%;top:58.27232796486091%;width:6.8359375%;height:32.210834553440705%}.tooth-32{left:56.640625%;top:58.27232796486091%;width:5.6640625%;height:32.210834553440705%}.tooth-33{left:62.3046875%;top:58.27232796486091%;width:5.46875%;height:32.210834553440705%}.tooth-34{left:67.7734375%;top:58.27232796486091%;width:5.46875%;height:32.210834553440705%}.tooth-35{left:73.2421875%;top:58.27232796486091%;width:5.37109375%;height:32.210834553440705%}.tooth-36{left:78.61328125%;top:58.27232796486091%;width:6.54296875%;height:32.210834553440705%}.tooth-37{left:85.15625%;top:58.27232796486091%;width:6.640625%;height:32.210834553440705%}.tooth-38{left:91.796875%;top:58.27232796486091%;width:7.32421875%;height:32.210834553440705%}
.download-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid #dce7ed}.download-row>div{min-width:0;overflow-wrap:anywhere}.download-row a.button{flex-shrink:0}.download-row a.button:focus-visible{outline:3px solid #16354d;outline-offset:3px}@media(max-width:550px){.download-row{align-items:flex-start;flex-direction:column;gap:6px}}

.file-sent{color:#506b7c;background:#eef3f6;border-radius:8px;padding:10px 16px}.received-files{background:#eaf6ee;border:1px solid #b8ddc5;padding:18px!important}.received-files h4{color:#215c39}.received-files a.button{background:#237a45}.received-files .download-row{border-color:#bfdcc9}

.upload-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.upload-card{margin:0;padding:16px;background:#f3f8fa;border:1px solid #cddde6;border-radius:10px;font-weight:bold}.upload-card input{font-weight:normal;font-size:13px;background:white}

.upload-card{position:relative;cursor:pointer;min-height:72px;justify-content:center}
.upload-card input[type=file]{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer}
.upload-card:focus-within{outline:2px solid #087fa2;outline-offset:2px}
.upload-filenames{display:block;font-size:13px;font-weight:400;overflow-wrap:anywhere;pointer-events:none}
.upload-filenames:empty{display:none}

.upload-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:8px;min-height:88px;padding:18px 14px;font-size:17px;font-weight:600;line-height:1.35;letter-spacing:.15px;border-radius:12px;transition:border-color .15s,background .15s}
.upload-card:hover{background:#e8f3f7;border-color:#75b3c5}
.upload-card>span:first-child{color:#17465a}
.upload-filenames{max-width:100%;font-size:13px;letter-spacing:normal;color:#406271}

.validation-pending{color:#b42318;background:#fff0ed;padding:4px 10px;border-radius:6px;font-weight:600}
.validation-ok{color:#176338;background:#e7f5ec;padding:4px 10px;border-radius:6px;font-weight:600}
.validation-status{line-height:2.2}

.validation-status button[data-act="dentist_ok"]{background:#237a45;margin-left:8px}.validation-status .refuse-proposal{background:#b42318;margin-left:8px}

.technical-incoming,.technical-outgoing{padding:20px;border-radius:14px;margin:20px 0;border:1px solid}.technical-incoming{background:#edf6fc;border-color:#b9d9ee}.technical-outgoing{background:#eaf6ee;border-color:#bfdfca}.technical-outgoing .button,.technical-outgoing #upload-send{background:#237a45}.technical-outgoing .upload-card{background:#f7fcf8;border-color:#bfdfca}

.technical-review{padding:20px;border-radius:14px;margin:20px 0;border:1px solid #d5bee8;background:#f5effb}.technical-review button{background:#7950a1}.technical-review .upload-card{background:#fcf9ff;border-color:#d5bee8}.technical-review textarea{background:#fff}.technical-outgoing button:disabled{opacity:.55;cursor:not-allowed}

.technical-outgoing [data-send]{background:#237a45}.recipient-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px}.recipient-heading h4{margin:0}.recipient-status{min-width:150px;text-align:center;padding:12px 16px;border-radius:12px;border:1px solid;display:flex;flex-direction:column;gap:5px}.recipient-status small{font-size:12px}.recipient-status.is-pending{background:#fff0ee;color:#a33226;border-color:#ebc2bb}.recipient-status.is-approved{background:#e4f5e9;color:#216b3d;border-color:#a9d3b7}.recipient-status.is-correction{background:#fff3dd;color:#87580a;border-color:#e7c88e}@media(max-width:600px){.recipient-heading{align-items:flex-start;flex-wrap:wrap}}

.implant-team-files,.implant-source-files{padding:20px;border-radius:14px;margin:20px 0;border:1px solid}.implant-team-files{background:#f5effb;border-color:#d5bee8}.implant-team-files .button{background:#7950a1}.implant-source-files{background:#eaf6ee;border-color:#bfdfca}.implant-source-files .button{background:#237a45}

.email-preview{background:#fff;border:1px solid #cbdde3;border-radius:14px;padding:24px;margin:18px 0;box-shadow:0 3px 12px #16344a08}.email-preview pre{white-space:pre-wrap;font:inherit;line-height:1.7}.email-draft{float:right;background:#fff0cc;color:#785600;padding:6px 12px;border-radius:20px;font-size:13px}
