/* Soy Dentaria: local brand assets, adapted for a working application. */
@font-face{font-family:ZonaPro;src:url('./brand/ZonaPro-Thin.woff2') format('woff2');font-style:normal;font-weight:300;font-display:swap}
@font-face{font-family:ZonaPro;src:url('./brand/ZonaPro-Bold.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:Inter;src:url('./brand/Inter-Regular-Latin.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
:root{
  --brand:#16ab88;--brand-dark:#0e8a6e;--brand-light:#e8f8f4;
  --ink:#1a2332;--text:#39465a;--muted:#526176;--link:#08775f;
  --line:#e2e8f0;--paper:#f8fafb;--white:#fff;--radius:16px;
  --font:ZonaPro,Inter,system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--text);font:400 15px/1.65 Inter,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--link);text-underline-offset:4px}
a:hover{color:var(--ink)}
button,input,select,textarea{font:inherit}
h1,h2,h3,button,.button,label,nav a,.metrics span,.metrics strong{font-family:var(--font)}
strong,b,th{font-weight:700}
button,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:11px 22px;border:1px solid var(--brand);border-radius:50px;background:var(--brand);color:var(--ink);font-weight:700;font-size:14px;text-decoration:none;cursor:pointer;transition:background .18s,color .18s,box-shadow .18s}
button:hover,.button:hover{background:var(--link);border-color:var(--link);color:var(--white);box-shadow:0 4px 14px #16ab8825}
button.secondary{background:var(--white);border-color:#9acabb;color:var(--link)}
button.secondary:hover{background:var(--brand-light);color:var(--ink)}
/* TEC-F1-019/TEC-VIS-F1-047: close action in the soft «Prioridad alta» tone. */
button.danger{border-color:#f3c7cd;background:#fcebee;color:#8a232b}
button.danger:hover{border-color:#e8aab3;background:#f6d5da;color:#6e1b22;box-shadow:none}
/* TEC-F1-024: reopen in the soft blue of «Prioridad media». */
button.info{border-color:#c4d6f0;background:#e5eefb;color:#1d4a85}
button.info:hover{border-color:#a9c2e6;background:#d3e2f7;color:#163a69;box-shadow:none}
.incident-row .row-action.info{background:#e5eefb;color:#1d4a85}
.incident-row .row-action.info:hover{background:#d3e2f7;color:#163a69}
.reopen-tag{margin-bottom:8px;background:#e5eefb;color:#1d4a85}
button:disabled{cursor:default}
input,select,textarea{width:100%;min-width:0;padding:11px 14px;border:1px solid #a0aebb;border-radius:8px;background:var(--white);color:var(--ink);line-height:1.5}
input::placeholder,textarea::placeholder{color:#667487;opacity:1}
input[type=checkbox]{width:18px;height:18px;accent-color:var(--link);vertical-align:middle}
input[type=file]{padding:10px;font-size:13px}
input[type=file]::file-selector-button{margin-right:12px;padding:7px 12px;border:0;border-radius:6px;background:var(--brand-light);color:var(--ink);font:700 12px var(--font);cursor:pointer}
select{max-width:100%}
textarea{resize:vertical}
label{display:block;margin:18px 0 7px;color:var(--ink);font-size:14px;font-weight:700}
form>button{margin-top:20px}
.form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:20px}
.form-actions .button.secondary{border-color:#9acabb;background:var(--white);color:var(--link);cursor:pointer}
.form-actions .button.secondary:hover{background:var(--brand-light);color:var(--ink);box-shadow:none}
.form-actions label{margin:0}
.check{display:flex;align-items:center;gap:8px;font-weight:400}
/* TEC-VIS-F1-040: each area has its own text box. */
.area-form{padding-top:16px;margin-top:20px;border-top:1px solid var(--line)}
.area-form label{margin-top:0}
.attachment-list{margin:14px 0 0;padding-left:20px;color:var(--ink);font-size:14px}
.attachment-list:empty{display:none}
small,.muted{color:var(--muted);font-size:13px}
small{display:block}
h1,h2,h3{color:var(--ink);font-weight:700;line-height:1.25;letter-spacing:-.025em}
h1{margin:9px 0 14px;font-size:clamp(29px,3vw,40px)}
h2{margin:6px 0 14px;font-size:21px}
h3{margin:5px 0;font-size:17px}
p{margin:10px 0 18px}
header{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:98px;padding:20px 72px;border-bottom:1px solid var(--line);background:var(--white)}
header>.inner{display:flex;align-items:center;justify-content:space-between;gap:24px}
/* TEC-VIS-F1-019: signed-in header and band follow the .layout/main grid, so the logo and avatar line up with the content edges. */
.shell{display:grid;grid-template-columns:248px minmax(0,1fr)}
.shell>.inner{grid-column:2;grid-row:1;width:100%;max-width:1540px;margin:0 auto;padding:0 40px;min-width:0}
/* TEC-VIS-F1-020/021: signed-in logo sits over the menu column; the avatar stays at the content's right edge. */
header.shell{display:grid;padding:20px 0;gap:0}
.shell>.brand{grid-column:1;grid-row:1;padding-left:24px}
.shell .brand-logo{width:240px;max-width:none}
.brand{display:flex;align-items:center;gap:24px;min-width:0;color:var(--ink);text-decoration:none}
.brand-logo{display:block;width:220px;height:auto}
.avatar{display:inline-flex;flex:none;margin-left:auto;color:var(--brand-dark)}
.avatar svg{display:block}
.avatar-bg{fill:var(--brand-light);stroke:#9acabb;stroke-width:1.2}
.demo{padding:7px 0;background:var(--ink);color:#f2f6fa;font-size:10px;font-weight:700;letter-spacing:.08em}
.demo>.inner{padding:0 72px}
.demo>.inner::before{display:inline-block;width:6px;height:6px;margin-right:8px;border-radius:50%;background:#7ee8cf;content:''}
.demo span{color:#d1dce7;font-weight:400;letter-spacing:.02em}
.layout{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:calc(100vh - 190px)}
nav{padding:28px 18px;border-right:1px solid var(--line);background:var(--white)}
nav a{position:relative;display:block;padding:13px 15px;margin-bottom:5px;border-radius:9px;color:var(--text);font-size:14px;font-weight:700;line-height:1.5;text-decoration:none}
nav a:hover,nav a[aria-current=page]{background:var(--brand-light);color:#076b55}
nav a[aria-current=page]::before{position:absolute;top:12px;bottom:12px;left:0;width:3px;border-radius:5px;background:var(--brand);content:''}
.nav-label{display:block;padding:12px 15px;color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.1em}
.text-button{padding-left:15px;border-color:transparent;background:transparent;color:var(--link);font-size:13px}
.text-button:hover{border-color:transparent;background:var(--brand-light);color:var(--link);box-shadow:none}
nav .text-button{display:flex;justify-content:flex-start;width:100%;min-height:0;padding:13px 15px;margin:0 0 5px;border:0;border-radius:9px;font-size:14px;line-height:1.5;text-align:left}
nav .text-button:hover{background:var(--brand-light);color:#076b55}
main{width:100%;max-width:1540px;margin:0 auto;padding:38px 40px 48px;min-width:0}
.public{display:block}
.public main{max-width:1140px}
.eyebrow{margin:0;color:var(--link);font-size:10px;font-weight:700;letter-spacing:.13em}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:26px}
/* TEC-VIS-F1-023: content starts at the same height as the first menu item (nav padding-top 28px). */
.layout:not(.public) main{padding-top:28px}
.page-heading h1{margin-top:0}
.page-heading p{max-width:750px;color:var(--muted)}
.page-heading .button{flex-shrink:0}
.panel{padding:26px;margin-bottom:24px;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);box-shadow:0 2px 10px #1a233204;min-width:0}
.narrow{max-width:760px}
.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:0 0 24px}
.metrics>div{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:26px 20px;border:1px solid var(--line);border-top:3px solid var(--brand);border-radius:var(--radius);background:var(--white);box-shadow:0 2px 10px #1a233204;text-align:center}
.metrics span{display:block;color:var(--ink);font-size:17px;font-weight:700;line-height:1.3}
.metrics strong{display:block;color:var(--link);font-size:46px;line-height:1}
.filters{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(4,minmax(0,1fr));align-items:end;gap:12px}
.filters .errorlist{grid-column:1/-1;margin:0}
.filters>div{min-width:0}
.filters label{margin-top:0;font-size:12px}
.filters input,.filters select{font-size:14px}
.filters button{width:fit-content;margin-top:0}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}
.section-heading h2{margin-bottom:6px}
.tag{display:inline-block;padding:5px 10px;border-radius:50px;background:var(--brand-light);color:#08614d;font-size:10px;font-weight:700;line-height:1.5}
.records{padding-bottom:8px}
.incident-row{display:flex;align-items:center;gap:20px;padding:23px 28px;margin-bottom:10px;border:1px solid var(--line);border-radius:12px;color:var(--ink);text-decoration:none;transition:background .18s,border-color .18s}
.incident-row:hover{border-color:#bfddd3;background:#f3fbf8;color:var(--ink)}
.row-main{flex:1;min-width:0}
.row-main h3{overflow-wrap:anywhere}
.row-main .eyebrow{font-size:9px;letter-spacing:.07em}
.row-main span:last-child{color:var(--muted);font-size:12px}
.date{min-width:78px}
.date strong{font-size:15px}
.date small{font-size:12px}
.state{white-space:nowrap}
.priority{max-width:165px;border-radius:7px;white-space:normal}
.priority.P1{background:#fcebee;color:#8a232b}
.priority.P2{background:#e5eefb;color:#1d4a85}
.priority.P3{background:#e4f2e6;color:#1d603f}
.empty{padding:44px 20px;text-align:center}
.empty>span{color:var(--brand-dark);font-size:36px}
.empty p{color:var(--muted);font-size:14px}
.notice{padding:16px 20px;margin:20px 0;border:1px solid #bfddd3;border-left:3px solid var(--brand);border-radius:10px;background:#edf8f3;color:#285c4e;font-size:13px}
.message{padding:14px 18px;margin-bottom:20px;border:1px solid #c2e5d8;border-radius:10px;background:var(--brand-light);color:#205742;font-size:14px}
.message.error{border-color:#edc3bc;background:#fcf0ed;color:#8b3325}
.welcome{position:relative;padding:38px 42px;margin:0 0 28px;border-radius:20px;background:linear-gradient(125deg,#1a2332,#243447 70%,#1b3b35);overflow:hidden}
.welcome::after{position:absolute;top:-120px;right:-85px;width:430px;height:430px;border:1px solid #7ee8cf20;border-radius:50%;box-shadow:0 0 0 45px #16ab8806,0 0 0 95px #16ab8804;content:'';pointer-events:none}
.welcome .eyebrow{position:relative;z-index:1;color:#8de2cd}
.welcome h1{position:relative;z-index:1;margin:17px 0 18px;color:var(--white);font-size:clamp(32px,3.6vw,44px);line-height:1.16}
.welcome h1 span{color:#64d3b7}
.welcome>p:last-child{position:relative;z-index:1;margin-bottom:0;color:#e1e8ee;font-size:15px}
.access-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:24px;max-width:980px;margin:0 auto}
.access-grid .welcome{display:flex;flex-direction:column;justify-content:center;margin:0}
.access-grid+.notice{max-width:980px;margin-right:auto;margin-left:auto}
.access-grid .panel{padding:30px 32px;margin:0;border-top:3px solid var(--brand)}
.access-grid .tag{margin-bottom:12px;padding:5px 12px;letter-spacing:.07em}
.access-grid h2{font-size:23px}
.access-grid p{color:var(--muted);font-size:14px}
.access-grid section>a{display:inline-block;margin-top:20px;font-size:13px}
.password{display:flex;gap:8px}
.password input{flex:1}
.password button{flex-shrink:0;padding:10px 14px;margin:0;border-radius:8px;font-size:12px}
.separated{padding-top:12px;margin-top:25px;border-top:1px solid var(--line)}
.helptext{display:block;margin-top:6px;color:var(--muted);font-size:12px}
.errorlist{padding-left:18px;color:#963326;font-size:13px}
.existing{display:block;margin:10px 0}
.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 290px;align-items:start;gap:24px}
.chronology{position:sticky;top:20px}
.chronology ol{padding-left:12px;list-style:none}
.chronology li{position:relative;padding:0 0 25px 18px;border-left:2px solid #d9e4e8;font-size:12px;overflow-wrap:anywhere}
.chronology li::before{position:absolute;top:6px;left:-5px;width:8px;height:8px;border-radius:50%;background:var(--brand);content:''}
.chronology li strong{display:block;color:var(--ink);font-size:13px}
.chronology time,.chronology span{display:block;color:var(--muted)}
.chronology small{font-size:12px}
/* TEC-VIS-F1-041/044: horizontal timeline on top, shared and internal areas side by side for the lab. */
.case-layout{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"chrono chrono" "shared internal" "solution solution"}
.case-layout .solution-area{grid-area:solution}
.solution-tag{margin-bottom:8px;background:#fdecea;color:#8a1f17}
.incident-row{position:relative}
.row-link{color:inherit;text-decoration:none}
.row-link::after{position:absolute;inset:0;border-radius:12px;content:''}
/* TEC-VIS-F1-046: the close pill in the list matches the «Prioridad alta» tag in tone and size. */
.incident-row .row-action{position:relative;z-index:1;min-height:0;padding:5px 10px;border:0;border-radius:7px;background:#fcebee;color:#8a232b;font-size:10px;line-height:1.5}
.incident-row .row-action:hover{background:#f6d5da;color:#6e1b22;box-shadow:none}
.modal{width:min(640px,calc(100% - 32px));padding:28px;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 20px 50px #1a233233}
.modal::backdrop{background:#1a233266}
.modal h2{margin-top:0}
.case-layout>div{display:contents}
.case-layout .panel{margin-bottom:0}
/* TEC-VIS-F1-042: equal-height area boxes with the text box at the bottom; green border on the internal one. */
.case-layout{align-items:stretch}
.case-layout .shared-area,.case-layout .internal-area{display:flex;flex-direction:column}
.case-layout .area-form{margin-top:auto}
.case-layout .internal-area{border:1px solid var(--line);background:#f0f3f7}
.case-layout .internal-area .eyebrow{color:var(--link)}
.case-layout .shared-area{grid-area:shared}
.case-layout .internal-area{grid-area:internal}
.case-layout .chronology{grid-area:chrono;position:static}
.case-layout .chronology ol{display:flex;gap:0;margin:0;padding:6px 0 4px;overflow-x:auto}
.case-layout .chronology li{flex:0 0 210px;padding:20px 20px 0 0;border-top:2px solid #d9e4e8;border-left:0}
.case-layout .chronology li::before{top:-5px;left:0}
/* TEC-F1-025: the clinic has only the shared area, full width. */
.case-layout.single{grid-template-columns:minmax(0,1fr);grid-template-areas:"chrono" "shared"}
.internal{border-color:#cbd5e1;border-left:3px solid var(--ink);background:#f0f3f7}
.internal .eyebrow{color:#39465a}
.contribution{padding-top:14px;margin-top:20px;border-top:1px solid var(--line)}
/* TEC-VIS-F1-054: the notes list scrolls inside a fixed-height box, newest at the bottom and in view. */
/* TEC-VIS-F1-055: fixed height, so the area box keeps its size whatever the number of notes. */
.notes-scroll{height:300px;overflow-y:auto;padding-right:8px;scrollbar-gutter:stable}
.notes-scroll>.contribution:first-child{padding-top:0;margin-top:0;border-top:0}
.notes-scroll .contribution{padding-top:10px;margin-top:10px}
.notes-scroll .version{padding-bottom:4px;margin:4px 0;border-bottom:0}
.notes-scroll .preserve{margin:4px 0}
.notes-scroll .actions:empty{display:none}
.contribution .author{display:block;color:var(--ink);font-size:14px}
.contribution .author .muted{font-weight:400}
.version{padding-bottom:14px;margin:14px 0;border-bottom:1px dashed #c9d6df}
.preserve{white-space:pre-wrap;overflow-wrap:anywhere}
.actions{display:flex;align-items:center;gap:15px;font-size:13px}
.actions form>button{margin:0}
.files{padding:0;list-style:none}
.files li{padding:18px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}
.files a{display:inline-block;margin-top:8px}
.files:empty{display:none}
details{margin-top:20px}
summary{color:var(--link);font-size:14px;font-weight:700;cursor:pointer}
/* TEC-VIS-F1-024: operator declaration in a single row. */
.operator{display:flex;align-items:center;justify-content:center;gap:14px;padding:14px 25px}
.operator label{flex:none;margin:0;color:var(--link)}
.operator input{flex:1 1 220px;max-width:340px}
.operator button{flex:none;margin:0}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}
td,th{padding:13px 10px;border-bottom:1px solid var(--line)}
th{color:var(--muted);font-size:10px;letter-spacing:.07em;text-transform:uppercase}
.opaque{font-size:11px;overflow-wrap:anywhere}
.session-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid var(--line)}
.session-row button{margin:0}
code{font-size:12px;overflow-wrap:anywhere}
.mfa{display:block;padding:16px;background:var(--brand-light)}
.back{display:inline-block;margin-bottom:20px;font-size:13px}
.skip{position:absolute;top:-100px;left:20px;z-index:4;padding:10px;background:var(--white)}
.skip:focus{top:5px}
:focus-visible{outline:3px solid #08775f;outline-offset:3px}
/* TEC-VIS-F1-037: no focus ring on the registration fields; a border tint keeps keyboard focus visible. */
#incident-form :is(input,select,textarea):focus-visible{outline:none;border-color:var(--brand)}
@media(max-width:1100px){
  main{padding:28px}
  .layout,.shell{grid-template-columns:220px minmax(0,1fr)}.shell>.inner{padding:0 28px}.shell .brand-logo{width:200px}
  .brand{gap:18px}.brand-logo{width:195px}
  .detail-grid{grid-template-columns:minmax(0,1fr)}.chronology{position:static}
  .case-layout{grid-template-areas:"chrono" "shared" "internal" "solution"}
  .notes-scroll{height:240px}
  .filters{grid-template-columns:repeat(3,minmax(0,1fr))}
  .metrics>div{padding:22px 16px}.metrics span{font-size:15px}
  .incident-row{flex-wrap:wrap}.row-main{min-width:calc(100% - 105px)}
}
@media(max-width:720px){
  .operator{flex-wrap:wrap;padding:14px 16px}.operator input{max-width:none}
  header{min-height:88px;padding:22px 32px;gap:15px}.demo>.inner{padding:0 32px}
  .shell{display:block}.shell>.inner{padding:0 16px}
  header.shell{display:flex;gap:12px;padding:18px 16px}header.shell>.inner{flex:1;padding:0}.shell>.brand{padding-left:0}
  .shell .brand-logo{width:150px}
  .brand{gap:15px}.brand-logo{width:174px;max-width:100%}
  .demo{padding:8px 0;font-size:9px}.demo span{display:block;margin-top:2px;font-size:10px}
  .layout{display:block}
  nav{display:flex;flex-wrap:wrap;gap:5px;padding:12px;border-right:0;border-bottom:1px solid var(--line)}
  nav a{padding:10px;margin:0;font-size:11px}nav a[aria-current=page]::before{display:none}
  .nav-label{display:none}nav .text-button{width:auto;min-height:38px;padding:10px;margin:0;font-size:11px}
  main{padding:26px 16px 34px}
  .page-heading{display:block;margin-bottom:22px}.page-heading .button{margin:0 0 8px}
  .metrics{grid-template-columns:minmax(0,1fr)}
  .metrics{gap:12px}.metrics>div{padding:18px 16px}.metrics strong{font-size:38px}
  .panel{padding:22px}
  .welcome{padding:30px 24px;margin-bottom:23px;border-radius:16px}
  .welcome h1{font-size:clamp(29px,7.7vw,39px)}.welcome .eyebrow{font-size:9px;letter-spacing:.08em}
  .welcome>p:last-child{font-size:14px}.welcome::after{top:-80px;right:-240px}
  .access-grid{grid-template-columns:minmax(0,1fr);gap:20px}
  .access-grid .panel{padding:26px 23px}.access-grid h2{font-size:22px}
  .incident-row{gap:12px;flex-wrap:wrap;padding:20px 14px}.row-main{min-width:calc(100% - 90px)}.date{min-width:65px}
  .filters{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 10px}
  .filters>div:first-of-type{grid-column:1/-1}
  .filters input,.filters select{padding:10px;font-size:13px}
  .actions{flex-wrap:wrap}.detail-grid{gap:0}.section-heading{gap:10px}.section-heading .tag{flex-shrink:0}
  select{font-size:14px}
  .session-row{flex-direction:column;align-items:flex-start}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
/* Microsoft sign-in button: white pill with the four-square logo (TEC-F1-032). */
button.ms-button{gap:12px;min-height:50px;padding:12px 28px;border-color:var(--line);background:var(--white);color:var(--ink);font-size:16px;box-shadow:0 1px 3px #1a233214}
button.ms-button:hover{border-color:#cbd5e1;background:var(--paper);color:var(--ink);box-shadow:0 2px 8px #1a23321f}
.ms-logo{flex-shrink:0}
