:root{--accent:#0865f5;--navy:#082541;--bg:#eaf5fd;--surface:#fff;--text:#142448;--muted:#58708c;--border:#d5e6f3;--head:#e5f3ff;--font:15px;--pad:11px;--danger:#c62b37;--green:#008856;--purple:#6435df}*{box-sizing:border-box}body{margin:0;font:var(--font)/1.45 'Segoe UI',Arial,sans-serif;color:var(--text);background:var(--bg)}button,input,select,textarea{font:inherit}button,.button{cursor:pointer;border:1px solid var(--border);border-radius:7px;padding:8px 13px;color:var(--accent);background:var(--surface);text-decoration:none;display:inline-flex;gap:6px;align-items:center;justify-content:center}button:hover{filter:brightness(.95);border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);color:white;border-color:var(--accent)}button.purple{background:var(--purple);color:#fff}button.success{background:var(--green);color:#fff}button.danger{color:var(--danger)}button.icon{padding:3px 7px;border:0;background:transparent}.copy{font-size:14px;margin-left:3px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #50baff;outline-offset:2px}a{color:var(--accent);text-underline-offset:3px}aside#sidebar{position:fixed;inset:0 auto 0 0;width:226px;background:var(--navy);color:white;display:flex;flex-direction:column;z-index:10}.brand{height:145px;background:white;padding:19px 23px;color:#143863}.brand img{width:180px;height:65px;object-fit:contain}.second-brand{font-size:15px;margin-top:8px;line-height:1.05}.second-brand strong{font-size:22px;display:block;letter-spacing:1px}.second-brand sup{float:right;margin-top:-18px}nav{padding:10px;overflow:auto}nav a{display:flex;gap:12px;color:#eef6ff;text-decoration:none;padding:11px 13px;border-radius:7px;margin:2px 0}nav a.active{background:#085eac;border-left:4px solid #00d2e9;padding-left:9px}.sidebar-bottom{font-size:11px;color:#bfd1e3;padding:12px 22px;margin-top:auto}.workspace{margin-left:226px}.topbar{height:58px;padding:0 26px;display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--border);background:var(--surface)}.spacer{flex:1}.profile-label{display:flex;align-items:center;gap:8px;font-size:12px}.profile-label select{max-width:205px}.demo-banner{padding:6px 25px;background:#fff0ca;color:#654b00;font-size:12px}#mobile-menu{display:none}main{padding:22px 25px;max-width:2200px;margin:auto}.title{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:17px}.title h1{font-size:30px;line-height:1.15;margin:0;letter-spacing:-.6px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px;margin:13px 0}.card h2{font-size:17px;color:var(--accent);margin:-4px -4px 13px;padding:5px 7px;background:var(--head);border-radius:5px}.toolbar{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-bottom:14px}.toolbar>label{flex:0 1 160px}.toolbar .search{flex:1 1 250px}.toolbar input,.toolbar select{width:100%}input,select,textarea{min-width:0;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);padding:8px 10px;max-width:100%}textarea{width:100%;resize:vertical;min-height:85px}input[type=color]{height:40px;width:75px;padding:4px}input[type=checkbox]{width:auto;margin-right:7px}label{display:block;font-size:13px;color:var(--muted)}label>input,label>select,label>textarea{display:block;margin-top:4px;width:100%}label.inline{display:flex;align-items:center;gap:5px}.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:12px}.col3{grid-column:span 3}.col4{grid-column:span 4}.col6{grid-column:span 6}.col8{grid-column:span 8}.col12{grid-column:span 12}.table-wrap{overflow:auto;max-height:62vh;border:1px solid var(--border);border-radius:6px}table{border-collapse:collapse;width:100%;font-size:14px;text-align:left}th{position:sticky;top:0;background:var(--head);z-index:1;font-weight:500;color:var(--accent)}td,th{padding:var(--pad) 10px;border-bottom:1px solid var(--border);white-space:nowrap}tbody tr:hover{background:var(--head)}.tag{font-size:12px;border-radius:20px;padding:5px 11px;background:var(--head);color:var(--accent);white-space:nowrap}.tag.green{background:#d7f6e9;color:#006b44}.tag.red{background:#ffe4e5;color:#a61829}.tag.amber{background:#fff0c7;color:#7d5300}.overdue{color:var(--danger);font-weight:700}.avatar{display:inline-flex;width:32px;height:32px;border-radius:50%;align-items:center;justify-content:center;color:white;font-size:12px;font-weight:700;vertical-align:middle}.tabs{display:flex;gap:7px;flex-wrap:wrap;margin:13px 0}.tabs .active{background:var(--accent);color:white}.muted{color:var(--muted);font-size:13px}.notice{background:var(--head);padding:11px 14px;border-radius:6px;margin:12px 0}.audit-btn{border:0;background:transparent;font-size:18px;padding:2px 7px}.linked{display:flex;align-items:center;gap:12px;overflow:auto;white-space:nowrap;padding:3px}.linked>span+span{border-left:1px solid var(--border);padding-left:12px}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:16px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:18px}.stat strong{display:block;font-size:31px;color:var(--accent)}.stat small{color:var(--muted)}.timeline{max-height:285px;overflow:auto}.activity{display:flex;gap:11px;align-items:start;padding:12px 4px;border-bottom:1px solid var(--border)}.activity .body{flex:1;white-space:pre-wrap}.repeat-row{display:flex;gap:8px;align-items:center;margin:8px 0}.repeat-row input{flex:1}.repeat-row .short{max-width:85px}.repeat-row button{flex-shrink:0}.split{display:grid;grid-template-columns:1.5fr 1fr;gap:16px}.tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}.tool-grid .card{margin:0}.tool-grid h3{margin:5px 0;font-size:16px}.tool-grid p{font-size:13px;color:var(--muted)}#save-state{padding:10px 26px;font-size:12px;color:var(--green)}dialog{border:1px solid var(--border);border-radius:12px;padding:22px;width:min(850px,94vw);max-height:90vh;overflow:auto;background:var(--surface);color:var(--text)}dialog::backdrop{background:#08254188}dialog h2{margin:0 0 15px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.modal-head button{font-size:18px}.empty{padding:35px;text-align:center;color:var(--muted)}#toast{position:fixed;bottom:24px;right:24px;padding:12px 22px;background:var(--navy);color:white;border-radius:8px;display:none;z-index:100}.readonly{background:var(--head)}.login{max-width:600px;margin:55px auto}.login img{max-width:280px}.login .card{padding:30px}.unread td:nth-child(2){font-weight:700}.compact-fields{display:grid;grid-template-columns:2.4fr 1.3fr 1fr .8fr 1.1fr;gap:9px}.small-code{font:12px monospace}.steps{counter-reset:step}.steps p{padding:10px;border-bottom:1px solid var(--border)}.danger-note{color:var(--danger)}.chips{display:flex;gap:7px;flex-wrap:wrap}.theme-choice{padding:15px}.title .muted{max-width:600px}.hidden{display:none!important}@media(min-width:1700px){body{--font:16px}main{padding:26px 32px}.table-wrap{max-height:68vh}}@media(max-width:1100px){aside#sidebar{width:190px}.workspace{margin-left:190px}.brand{padding:16px}.brand img{width:155px}.split{grid-template-columns:1fr}.compact-fields{grid-template-columns:repeat(3,1fr)}.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:750px){aside#sidebar{transform:translateX(-100%);width:220px}body.menu-open aside#sidebar{transform:translateX(0)}.workspace{margin:0}#mobile-menu{display:block}main{padding:15px}.topbar{padding:0 12px}.demo-banner{padding:7px 12px}.profile-label{font-size:0}.profile-label select{font-size:12px;max-width:145px}.title h1{font-size:25px}.actions{margin-left:0}.col3,.col4,.col6,.col8{grid-column:span 12}.compact-fields{grid-template-columns:1fr 1fr}.table-wrap{max-height:65vh}.repeat-row{flex-wrap:wrap}.repeat-row input{flex-basis:35%}.stats{gap:8px}}

.compact-fields>[class*="col"]{grid-column:auto}

@media(min-width:1200px){
form[data-form="client"]>fieldset{display:grid;grid-template-columns:1.15fr 1fr;column-gap:16px}
form[data-form="client"]>fieldset>.card:nth-of-type(n+3),form[data-form="client"]>fieldset>.form-actions{grid-column:1/-1}
form[data-form="client"] [data-repeat="licences"]{display:flex;flex-wrap:wrap;gap:12px}
form[data-form="client"] [data-repeat="licences"] input[type="date"]{max-width:170px}
}
.repeat-row input{min-width:0}
[data-repeat="phones"] [data-key="prefix"]{max-width:65px}
[data-repeat="phones"] [data-key="value"]{max-width:160px}
[data-repeat="addresses"] [data-key="value"]{flex:2.2}

button.primary{color:var(--buttonText,#fff)}

/* Distribución de trabajo próxima a las maquetas aprobadas. */
:root{--accent:#005cff;--navy:#032747;--bg:#e9f5ff}
body{background:linear-gradient(115deg,#eefaff,#e0efff)}
.workspace{min-height:100vh}
.brand{background:linear-gradient(#fff,#f6fcff);border-bottom:1px solid #dceeff}
.brand img{width:180px}
.topbar{background:linear-gradient(90deg,var(--surface),var(--head));position:sticky;top:0;z-index:8}
.title h1{font-size:30px;color:var(--text)}
.card{border-color:color-mix(in srgb,var(--border),transparent 15%);box-shadow:0 3px 12px #00478b06;border-radius:10px}
.card h2{color:var(--accent);background:transparent;margin:0 0 10px;padding:0;font-size:19px}
input,select{min-height:36px}
input[type=checkbox]{min-height:0}
.input-copy{display:flex;align-items:center;border:1px solid var(--border);border-radius:6px;background:var(--surface)}
.input-copy input{border:0;min-width:0;flex:1;width:100%;background:transparent}
.input-copy button{border-left:1px solid var(--border);border-radius:0}
.input-copy:focus-within{outline:2px solid #8ad7ff}
.input-copy input:focus-visible{outline:0}
.notice-count{background:#ed1743;color:white;border:2px solid white;min-width:25px;height:25px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;box-shadow:0 1px 6px #aa002840;margin-left:auto}
#unread{margin-left:0;position:absolute;right:-7px;top:-7px}
button[aria-label=Avisos]{position:relative;font-size:21px;min-width:45px}
#unread[hidden]{display:none}
.has-notice{animation:notice-emphasis 1.8s ease-in-out 3}
@keyframes notice-emphasis{50%{box-shadow:0 0 0 5px #ff164333}}
@media(prefers-reduced-motion:reduce){.has-notice{animation:none}}
nav a{padding:9px 12px}nav a.active{background:linear-gradient(90deg,#00508c,#005baf);box-shadow:inset 4px 0 #00e1ff}
.person-list{margin:16px 0;border-top:1px solid var(--border)}
.person-row{display:grid;grid-template-columns:130px 190px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);align-items:center}
.person-row>div:last-of-type{grid-column:3}
.person-row label{display:block}
.person-row>strong{color:var(--accent)}
.person-summary{display:flex;gap:12px;flex-wrap:wrap;font-size:13px;margin-top:6px;align-items:center}
.occasional-entry{display:flex;gap:10px;align-items:center;margin:7px 0;flex-wrap:wrap}
.occasional-entry>label{flex:1;min-width:200px}
.coverage-fields{background:var(--head);border-radius:8px;padding:14px}
.family-scroll{max-height:260px;min-height:205px;overflow:auto}
.server-error{position:fixed;bottom:12px;left:245px;right:15px;background:#fff1f0;color:#711726;padding:18px;border:2px solid #cc263d;border-radius:8px;z-index:110;box-shadow:0 8px 30px #0003}
.server-error button,.server-error a{margin-right:12px}
.server-saving #save-state{color:#a55d00}
body:has(#server-error) #save-state{color:#b51d32}
.profile-label[hidden]{display:none}
.tabs a{font-size:15px;font-weight:600;text-decoration:none}
.tabs{border:1px solid var(--border);background:var(--surface);padding:10px 14px;border-radius:7px;display:flex;gap:15px;flex-wrap:wrap;color:#b2cee8}
table td a{font-weight:600}
td:nth-child(2){white-space:nowrap}
@media(min-width:1200px){form[data-form="client"] [data-repeat=phones] [data-key=value]{max-width:160px}form[data-form="client"] .col3{grid-column:span 3}}
@media(max-width:850px){.person-row{grid-template-columns:1fr 1fr}.person-row>div:last-of-type{grid-column:1/-1}.server-error{left:12px}.person-row>strong{grid-column:1/-1}}
@media(min-width:1700px){main{padding-top:20px}}
@media(min-width:1200px){
form[data-form="client"]>fieldset{grid-template-columns:1.35fr 1fr}
form[data-form="client"] label:has(>select[name=docType]){grid-column:span 2}
form[data-form="client"] label:has(input[name=doc]){grid-column:span 3}
form[data-form="client"] label:has(input[name=name]){grid-column:span 3}
form[data-form="client"] label:has(input[name=surname]){grid-column:span 4}
}
form[data-form=client] .card{padding:14px;margin:9px 0}
form[data-form=client] h3{font-size:15px;margin:9px 0 6px}
pre{max-height:350px;overflow:auto;white-space:pre-wrap;font-size:12px;background:var(--head);padding:12px;border-radius:6px}

@media(min-width:1200px){
form[data-form="client"]>fieldset{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
form[data-form="client"]>fieldset>.card{min-width:0}
form[data-form="client"] .grid{gap:10px}
}
form[data-form="client"] label{font-size:12.5px}
form[data-form="client"] input,form[data-form="client"] select,form[data-form="client"] textarea{font-size:14px}
.wa-btn{width:34px;height:34px;min-width:34px;padding:5px;border-radius:7px}
[data-repeat="phones"] [data-key=label]{max-width:165px}
form[data-form=client] .card{position:relative}
form[data-form=client] .card:has(>[data-repeat=addresses])>[data-repeat=addresses]+button,
form[data-form=client] .card:has(>[data-repeat=accounts])>[data-repeat=accounts]+button,
form[data-form=client] .card:has(>[data-repeat=phones])>[data-repeat=phones]+button{position:absolute;top:10px;right:14px}
@media(min-width:1200px){
form[data-form=client] [data-repeat=licences]{display:inline-flex;max-width:calc(100% - 90px);vertical-align:middle}
form[data-form=client] [data-repeat=licences]+button{vertical-align:middle;margin-left:8px}
}
