:root{--bg:#f4eee5;--paper:#fffdf9;--paper2:#eee4d7;--sidebar:#e7dccd;--ink:#312a23;--muted:#82776b;--gold:#9b7440;--gold2:#b79562;--line:#d9cbb9;--danger:#a64e43;--warn:#b98136;--ok:#49745a;--shadow:0 14px 38px rgba(76,58,39,.10)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font-family:Inter,system-ui,sans-serif}button,input,select,textarea{font:inherit}.hidden{display:none!important}.serif{font-family:"Cormorant Garamond",serif}.app{display:grid;grid-template-columns:250px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,#e8decf,#dfd1c0);border-right:1px solid var(--line);padding:24px 16px;position:sticky;top:0;height:100vh;overflow:auto}.brand{padding:8px 10px 22px;border-bottom:1px solid rgba(89,69,47,.12);margin-bottom:15px}.brand h1{font:700 26px/1 "Cormorant Garamond",serif;letter-spacing:2px;margin:0;color:#6c5535}.brand small{letter-spacing:3px;color:var(--muted);font-size:9px}.nav{display:grid;gap:4px}.nav button{border:0;background:transparent;color:#63594f;text-align:left;padding:11px 12px;border-radius:10px;cursor:pointer;display:flex;gap:10px;align-items:center}.nav button:hover,.nav button.active{background:rgba(255,255,255,.55);color:#654c2d}.nav .ico{width:22px;text-align:center}.main{min-width:0}.topbar{height:68px;border-bottom:1px solid var(--line);background:rgba(255,253,249,.82);backdrop-filter:blur(10px);display:flex;align-items:center;gap:14px;padding:0 28px;position:sticky;top:0;z-index:10}.search{flex:1;max-width:520px;position:relative}.search input{width:100%;padding:11px 14px 11px 38px;border:1px solid var(--line);background:#faf7f2;border-radius:10px;color:var(--ink)}.search span{position:absolute;left:13px;top:10px}.userpill{margin-left:auto;display:flex;align-items:center;gap:10px}.avatar{width:35px;height:35px;border-radius:50%;display:grid;place-items:center;background:#b79462;color:white;font-weight:700}.content{padding:28px;max-width:1500px;margin:0 auto}.pagehead{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;margin-bottom:22px;flex-wrap:wrap}.pagehead h2{font:700 30px/1.1 "Cormorant Garamond",serif;margin:0;color:#5f4b32}.pagehead p{margin:6px 0 0;color:var(--muted);font-size:13px}.btn{border:1px solid var(--line);background:#fffaf3;color:var(--ink);border-radius:9px;padding:10px 14px;cursor:pointer;font-weight:600}.btn:hover{filter:brightness(.98)}.btn.primary{background:var(--gold);border-color:var(--gold);color:white}.btn.danger{color:var(--danger);border-color:#dfb7b1;background:#fff7f6}.btn.small{padding:7px 10px;font-size:12px}.grid{display:grid;gap:16px}.stats{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.card{background:var(--paper);border:1px solid var(--line);border-radius:14px;box-shadow:0 3px 12px rgba(76,58,39,.035);padding:18px}.stat .n{font:700 32px/1 "Cormorant Garamond",serif;color:#745a38}.stat .l{color:var(--muted);font-size:12px;margin-top:8px;text-transform:uppercase;letter-spacing:1px}.stat .s{font-size:12px;margin-top:7px;color:var(--ok)}.two{grid-template-columns:1.15fr .85fr}.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card h3{font:700 20px "Cormorant Garamond",serif;margin:0 0 14px;color:#665035}.list{display:grid;gap:9px}.item{display:flex;gap:12px;align-items:flex-start;padding:11px 0;border-bottom:1px solid #eee5da}.item:last-child{border:0}.item .grow{flex:1;min-width:0}.item b{font-size:13px}.item small{display:block;color:var(--muted);margin-top:4px;line-height:1.45}.dot{width:8px;height:8px;border-radius:50%;margin-top:6px;background:var(--gold2)}.badge{display:inline-flex;align-items:center;border-radius:99px;padding:4px 8px;font-size:11px;font-weight:700;background:#eee5d8;color:#755b38}.badge.ok{background:#e8f1ea;color:var(--ok)}.badge.warn{background:#f6ead8;color:#916128}.badge.danger{background:#f5dfdc;color:#934239}.badge.muted{background:#eee;color:#666}.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:13px;background:var(--paper)}table{width:100%;border-collapse:collapse;min-width:850px}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid #eee5da;font-size:12px;vertical-align:top}th{background:#f2e9de;color:#756958;text-transform:uppercase;letter-spacing:.8px;font-size:10px;position:sticky;top:0}tr:hover td{background:#fffcf8}.actions{display:flex;gap:6px;flex-wrap:wrap}.empty{padding:34px;text-align:center;color:var(--muted)}.modalback{position:fixed;inset:0;background:rgba(45,35,25,.44);display:grid;place-items:center;z-index:50;padding:18px}.modal{background:var(--paper);width:min(900px,96vw);max-height:92vh;overflow:auto;border-radius:16px;box-shadow:var(--shadow);border:1px solid var(--line)}.modal.large{width:min(1120px,97vw)}.modalhead{display:flex;justify-content:space-between;align-items:center;padding:19px 22px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--paper);z-index:2}.modalhead h3{margin:0;font:700 24px "Cormorant Garamond",serif}.modalbody{padding:22px}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field{display:grid;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:11px;color:#766958;text-transform:uppercase;letter-spacing:.7px;font-weight:700}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:9px;background:#fffdfa;padding:10px 11px;color:var(--ink)}.field textarea{min-height:88px;resize:vertical}.modalfoot{display:flex;justify-content:flex-end;gap:9px;padding:16px 22px;border-top:1px solid var(--line)}.tabs{display:flex;gap:4px;overflow:auto;border-bottom:1px solid var(--line);margin:-5px 0 18px}.tabs button{border:0;background:transparent;padding:11px 12px;color:var(--muted);cursor:pointer;white-space:nowrap}.tabs button.active{color:var(--gold);border-bottom:2px solid var(--gold)}.timeline{border-left:2px solid #d8c6af;margin-left:8px;padding-left:20px}.event{position:relative;margin:0 0 18px}.event:before{content:"";position:absolute;left:-26px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--gold)}.event b{font-size:13px}.event small{color:var(--muted);display:block;margin-top:3px}.calendar{display:grid;grid-template-columns:repeat(7,1fr);border:1px solid var(--line);border-radius:12px;overflow:hidden}.calhead,.calday{padding:9px;border-right:1px solid #e8ddd0;border-bottom:1px solid #e8ddd0;min-height:44px}.calhead{min-height:auto;background:#eee4d8;font-size:10px;text-transform:uppercase;color:var(--muted);font-weight:700}.calday{min-height:110px;background:#fffdf9}.calday .num{font-size:11px;color:var(--muted)}.calevent{margin-top:5px;padding:5px 6px;border-radius:6px;font-size:10px;background:#efe2d1;color:#6b4f2e;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calevent.term{background:#f3ded9;color:#8d443c}.money{font-variant-numeric:tabular-nums}.progress{height:7px;background:#eee5d9;border-radius:10px;overflow:hidden}.progress i{display:block;height:100%;background:var(--gold)}.login{min-height:100vh;display:grid;place-items:center;padding:22px;background:radial-gradient(circle at 30% 20%,#fffaf1 0,#f0e7da 40%,#dfd0be 100%)}.loginbox{width:min(430px,95vw);background:rgba(255,253,249,.94);border:1px solid var(--line);border-radius:18px;padding:34px;box-shadow:var(--shadow)}.loginbox .seal{text-align:center;font-size:46px}.loginbox h1{text-align:center;font:700 36px "Cormorant Garamond",serif;color:#675033;margin:8px 0 3px}.loginbox .sub{text-align:center;color:var(--muted);font-size:11px;letter-spacing:2px;margin-bottom:24px}.toast{position:fixed;right:18px;bottom:18px;z-index:99;padding:12px 15px;border-radius:10px;background:#3b332c;color:white;box-shadow:var(--shadow);max-width:350px;font-size:13px}.toast.err{background:#8f4038}.sectiontitle{font:700 18px "Cormorant Garamond",serif;color:#665035;margin:18px 0 10px}.kpirow{display:flex;gap:8px;flex-wrap:wrap}.note{padding:12px;border-radius:9px;background:#f2eadf;color:#6f6358;font-size:12px;border:1px solid #e2d4c2}.mobilemenu{display:none}.switch{position:relative;width:42px;height:24px;background:#d7c8b7;border-radius:99px;cursor:pointer;display:inline-block}.switch.on{background:var(--gold)}.switch:after{content:"";position:absolute;width:18px;height:18px;background:white;border-radius:50%;top:3px;left:3px;transition:.2s}.switch.on:after{left:21px}
@media(max-width:1050px){.stats{grid-template-columns:repeat(2,1fr)}.two,.three{grid-template-columns:1fr}.app{grid-template-columns:76px 1fr}.sidebar{padding:18px 8px}.brand h1,.brand small,.nav button span.label{display:none}.brand{text-align:center}.nav button{justify-content:center}.content{padding:20px}.formgrid{grid-template-columns:1fr}.field.full{grid-column:auto}}
@media(max-width:700px){.app{display:block}.sidebar{position:fixed;z-index:30;left:-270px;width:250px;transition:.2s}.sidebar.open{left:0}.main{width:100%}.mobilemenu{display:inline-flex}.topbar{padding:0 12px}.content{padding:16px}.stats{grid-template-columns:1fr 1fr}.search{max-width:none}.userpill .email{display:none}.calendar{grid-template-columns:repeat(7,minmax(90px,1fr));overflow:auto}.calday{min-height:90px}.pagehead h2{font-size:26px}}

/* V4.1 Expedientes documentales y proformas PDF */
.doc-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:8px}
.proforma-item{display:grid;grid-template-columns:minmax(220px,1fr) 80px 120px 42px;gap:8px;align-items:center}
.proforma-item input{min-width:0}
@media(max-width:760px){.proforma-item{grid-template-columns:1fr 70px 100px 42px}.doc-toolbar .btn{flex:1 1 46%}}

/* V4.2 Autenticación, recuperación y usuarios */
.authlink{border:0;background:transparent;color:#7a5b34;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:4px;font-weight:600}
.authlink:hover{color:#9b7440}.adminusers .compact{align-items:center;margin-bottom:14px}.adminusers table{min-width:760px}.field small{font-size:10px;color:var(--muted);line-height:1.35}.loginbox .btn.primary{width:100%}

/* V4.4 — Biblioteca jurídica de términos y plazos */
.terms-tabs{margin:0 0 16px}.legal-note{margin:0 0 16px;line-height:1.55}.catalog-filter{margin-bottom:14px}.catalog-summary{margin:12px 0;color:#786b5a;font-size:13px}.legal-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.legal-card{display:flex;flex-direction:column;gap:9px}.legal-card h3{margin:2px 0 0;font-size:17px;color:#4f3b28}.legal-card p{margin:0;line-height:1.5}.legal-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.legal-head small{max-width:42%;text-align:right;color:#8a7d6d}.legal-ref,.legal-rule{font-size:12px;color:#6f6559}.legal-actions{margin-top:auto;padding-top:5px}.subtle{font-size:12px;color:#9a7a4f}.legal-selected{background:#f7f1e8;border:1px solid #eadfce;border-radius:10px;padding:16px;margin-bottom:16px}.legal-selected h3{margin:10px 0 8px;color:#503b27}.legal-selected p{margin:6px 0;line-height:1.5}
@media(max-width:850px){.legal-cards{grid-template-columns:1fr}.legal-head{display:block}.legal-head small{display:block;max-width:none;text-align:left;margin-top:8px}}
.calc-result{align-self:start}.calc-date{font-family:Georgia,serif;font-size:34px;font-weight:700;color:#6d4f2b;margin:8px 0 12px}.calc-skips{display:grid;gap:5px;margin:10px 0 16px}.calc-skips span{font-size:12px;color:#756a5c;padding:6px 8px;background:#f8f4ed;border-radius:6px}.legal-timeline .event{padding-bottom:18px}.legal-timeline .btn{margin-top:8px}

/* V4.6 — Favoritos, historial y control procesal */
.legal-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.fav-btn.active{background:#f5ead8;border-color:#d8bb8b;color:#8a622b}.history-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.calc-history{margin-top:16px}.calc-history .empty{padding:20px 8px}

/* V4.7 — Nuevo término: manual o calculado */
.term-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.term-choice-card{appearance:none;border:1px solid var(--line,#dfd0bb);background:#fffaf3;border-radius:12px;padding:20px;text-align:left;display:flex;gap:14px;align-items:flex-start;cursor:pointer;color:inherit;font:inherit;transition:.18s ease}.term-choice-card:hover{transform:translateY(-1px);border-color:#a87c3e;box-shadow:0 8px 22px rgba(91,68,39,.09)}.term-choice-icon{width:40px;height:40px;min-width:40px;border-radius:10px;background:#f1e4cf;color:#8d652f;display:grid;place-items:center;font-size:20px}.term-choice-card b{display:block;font-family:Georgia,serif;font-size:17px;color:#5a4228;margin-bottom:7px}.term-choice-card small{display:block;line-height:1.5;color:#756b60}.term-choice-grid .full{grid-column:1/-1}@media(max-width:680px){.term-choice-grid{grid-template-columns:1fr}}
