:root{--bg:#f5f6f8;--ink:#17202a;--muted:#687385;--line:#dfe4ea;--nav:#111827;--brand:#16324f;--teal:#0f766e;--ok:#15803d;--warn:#92400e;--danger:#b42318;--shadow:0 12px 34px rgba(23,32,42,.08);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button{border:0;cursor:pointer}.app{min-height:100vh;display:grid;grid-template-columns:280px minmax(0,1fr)}aside{background:var(--nav);color:#fff;padding:24px 18px;display:flex;flex-direction:column;gap:22px;position:sticky;top:0;height:100vh}.brand{padding:8px 8px 18px;border-bottom:1px solid rgba(255,255,255,.14);display:grid;gap:8px}.brand-logo{width:100%;max-width:210px;height:auto;background:#fff;border-radius:8px;padding:10px;margin-bottom:6px}.brand strong{font-size:1.15rem}.brand span,.note{color:#b8c2d2;font-size:.88rem}.nav{display:grid;gap:8px}.nav button{min-height:44px;text-align:left;color:#dbe4ef;background:transparent;border-radius:8px;padding:10px 12px;display:grid;grid-template-columns:26px 1fr;gap:10px;align-items:center}.nav button.active,.nav button:hover{background:rgba(255,255,255,.1);color:#fff}.note{margin-top:auto;padding:12px 8px 0;border-top:1px solid rgba(255,255,255,.14)}main{min-width:0;padding:26px}.top{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:center;margin-bottom:22px}h1{margin:0;font-size:clamp(1.45rem,2vw,2rem);letter-spacing:0}.sub{color:var(--muted);margin-top:4px}.actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:end}.btn{min-height:40px;border-radius:8px;padding:9px 13px;background:var(--brand);color:#fff;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.btn.secondary{background:#e9eef5;color:var(--ink)}.btn.ghost{background:#fff;color:var(--brand);border:1px solid var(--line)}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.stat,.panel{background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow)}.stat{padding:16px;min-height:104px;display:grid;align-content:space-between}.stat span{color:var(--muted);font-size:.86rem}.stat strong{font-size:1.65rem}.layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.8fr);gap:16px;align-items:start}.panel{overflow:hidden}.head{padding:16px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;align-items:center}.head h2{margin:0;font-size:1rem}.body{padding:16px}.toolbar{display:grid;grid-template-columns:1fr 180px;gap:10px;margin-bottom:14px}.field{display:grid;gap:6px;margin-bottom:12px}label{font-size:.78rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.04em}input,select,textarea{width:100%;border:1px solid var(--line);border-radius:8px;min-height:40px;padding:9px 10px;background:#fff;color:var(--ink)}textarea{min-height:86px;resize:vertical}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.wide{grid-column:1/-1}.list{display:grid;gap:10px}.messages{margin-top:12px}.item{border:1px solid var(--line);border-radius:8px;padding:13px;display:grid;grid-template-columns:1fr auto;gap:12px;background:#fff}.item h3{margin:0 0 5px;font-size:.98rem}.meta{color:var(--muted);font-size:.86rem;display:flex;gap:8px;flex-wrap:wrap}.chips{display:flex;gap:6px;flex-wrap:wrap;justify-content:end}.chip{border-radius:999px;padding:4px 9px;font-size:.78rem;font-weight:700;background:#edf2f7;color:var(--brand);white-space:nowrap}.ok{background:#dcfce7;color:var(--ok)}.warn{background:#fef3c7;color:var(--warn)}.danger{background:#fee2e2;color:var(--danger)}.info{background:#dbeafe;color:#1d4ed8}.empty{padding:24px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:8px}.module{display:none}.module.active{display:block}.kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.lane{background:#f8fafc;border:1px solid var(--line);border-radius:8px;padding:10px;min-height:180px}.lane h3{margin:0 0 10px;font-size:.86rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.rowactions{display:flex;gap:8px;flex-wrap:wrap;justify-content:end;margin-top:10px}.portal{border:1px solid var(--line);border-radius:8px;padding:14px;display:grid;gap:10px;background:#fff}.progress{height:9px;background:#e5e7eb;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;background:var(--teal)}.offline{color:#fecaca}.online{color:#bbf7d0}@media(max-width:980px){.app{grid-template-columns:1fr}aside{position:relative;height:auto}.nav{grid-template-columns:repeat(2,1fr)}.layout,.stats{grid-template-columns:1fr}}@media(max-width:640px){main{padding:18px}.top{grid-template-columns:1fr}.actions{justify-content:stretch}.btn{width:100%}.toolbar,.formgrid,.kanban{grid-template-columns:1fr}.item{grid-template-columns:1fr}.chips{justify-content:start}}
.case-toolbar{grid-template-columns:minmax(220px,1fr) 210px}.chip.light-red{background:#fee2e2;color:#b42318}.chip.light-orange{background:#ffedd5;color:#c2410c}.chip.light-blue{background:#dbeafe;color:#1d4ed8}.chip.light-gray{background:#f3f4f6;color:#4b5563}.deadline-red{border-color:#fecaca;background:#fffafa}.deadline-orange{border-color:#fed7aa;background:#fffaf5}.deadline-blue{border-color:#bfdbfe;background:#f8fbff}@media(max-width:640px){.case-toolbar{grid-template-columns:1fr}}

.history-box{margin-top:12px;border:1px solid var(--line);border-radius:8px;background:#f8fafc;padding:12px}.history-head{display:flex;justify-content:space-between;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.history-list{display:grid;gap:8px}.history-row{border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px}.history-row strong{display:block;font-size:.86rem}.history-row span{display:inline-block;margin:4px 0;color:var(--muted);font-size:.82rem}.history-row p{margin:0;color:var(--ink);font-size:.9rem}

.priority-card{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;padding:12px;text-align:left;display:grid;gap:6px;color:var(--ink)}.priority-card strong{font-size:.95rem}.priority-card span{color:var(--muted)}.priority-card small{font-weight:700}.priority-card.light-red{background:#fee2e2;border-color:#fecaca}.priority-card.light-orange{background:#ffedd5;border-color:#fed7aa}.priority-card.light-blue{background:#dbeafe;border-color:#bfdbfe}

.agenda-head{align-items:flex-start}.semaforo-legend{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;color:var(--muted);font-size:.84rem}.semaforo-legend span{display:inline-flex;align-items:center;gap:6px}.dot{width:11px;height:11px;border-radius:999px;display:inline-block}.dot.red{background:#ef4444}.dot.orange{background:#f97316}.dot.blue{background:#3b82f6}.trash-btn{float:right;width:34px;height:34px;border-radius:8px;background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.history-row{position:relative}.history-row p a{color:#16324f;font-weight:700}

.alert-summary{margin-bottom:16px}.alert-box,.alert-ok{border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow);padding:14px;display:grid;gap:10px}.alert-box strong,.alert-ok strong{display:block}.alert-box span,.alert-ok span{color:var(--muted)}.alert-items{display:flex;gap:8px;flex-wrap:wrap}.alert-pill{border-radius:8px;padding:8px 10px;font-size:.82rem;font-weight:700;display:grid;gap:3px;max-width:100%}.alert-pill small{font-weight:600;color:inherit!important;line-height:1.25}.alert-pill strong{line-height:1.25}.alert-pill.red{background:#fee2e2;color:#b42318}.alert-pill.orange{background:#ffedd5;color:#c2410c}.alert-ok{background:#f0fdf4;border-color:#bbf7d0}

.case-actions{display:grid;grid-template-columns:repeat(2,minmax(150px,1fr));justify-content:stretch}.case-actions .btn{width:100%}.danger-action{color:#991b1b;border-color:#fecaca;background:#fff}.diligence-box{margin-top:12px;border:1px solid var(--line);border-radius:8px;background:#f8fafc;padding:12px;display:grid;grid-template-columns:1fr .7fr 1fr;gap:10px}.diligence-box .rowactions{grid-column:1/-1}.item{align-items:start}.chips{align-items:flex-start}.chips .chip{border-radius:999px;min-height:auto;padding:6px 10px}.chip.ok,.chip.warn,.chip.info,.chip.danger{border-radius:999px;min-height:auto;padding:6px 10px}@media(max-width:640px){.case-actions,.diligence-box{grid-template-columns:1fr}}

.item .chips{max-width:240px}.item .chips .chip{display:inline-flex;align-items:center;justify-content:center;width:auto;height:auto;min-width:0}.item .chips .chip.light-red,.item .chips .chip.light-orange,.item .chips .chip.light-blue,.item .chips .chip.light-gray{border-radius:999px}

.item>.chips{align-self:start}.item>.chips .chip{align-self:flex-start;line-height:1.2;white-space:nowrap}.item{grid-template-columns:minmax(0,1fr) minmax(150px,auto)}

.list-row{width:100%;border:1px solid var(--line);border-left-width:8px;border-radius:8px;background:#fff;padding:12px;text-align:left;display:grid;grid-template-columns:120px minmax(210px,1fr) minmax(170px,.8fr) minmax(170px,.8fr) minmax(220px,1fr) 140px;gap:10px;align-items:center;color:var(--ink)}.list-row strong{font-size:.95rem}.list-row span,.list-row small{color:var(--muted)}.list-row em{font-style:normal;font-weight:700}.list-row.red{border-left-color:#ef4444}.list-row.orange{border-left-color:#f97316}.list-row.blue{border-left-color:#3b82f6}.list-row.gray{border-left-color:#9ca3af}.list-kind{font-weight:700;text-transform:uppercase;font-size:.78rem}@media(max-width:900px){.list-row{grid-template-columns:1fr}}

.history-tools{float:right;display:flex;gap:6px}.edit-mini{min-height:34px;border-radius:8px;background:#e9eef5;color:var(--ink);border:1px solid var(--line);padding:6px 10px}

/* brand polish */
aside{padding:22px 18px;background:linear-gradient(180deg,#0f1724 0%,#111827 58%,#0b1220 100%)}
.brand{padding:14px 10px 20px;border-bottom:1px solid rgba(255,255,255,.16);display:grid;gap:10px;justify-items:center;text-align:center}
.brand-logo{width:100%;max-width:235px;height:auto;background:#fff;border-radius:10px;padding:14px 12px;margin:0;box-shadow:0 18px 42px rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.72)}
.brand strong{font-size:1.2rem;line-height:1.2;margin-top:6px;letter-spacing:.01em}
.brand span{color:#c7d2e3;font-size:.9rem}
.nav{margin-top:4px}
@media(max-width:980px){.brand{grid-template-columns:auto 1fr;text-align:left;justify-items:start;align-items:center}.brand-logo{max-width:180px}.brand strong,.brand span{grid-column:2}}
@media(max-width:640px){.brand{grid-template-columns:1fr;text-align:center;justify-items:center}.brand strong,.brand span{grid-column:auto}.brand-logo{max-width:220px}}

/* improved logo asset */
.brand-logo{max-width:238px;padding:12px;background:#fff;object-fit:contain}
@media(max-width:980px){.brand-logo{max-width:170px}}
@media(max-width:640px){.brand-logo{max-width:220px}}

.brand-subtitle{font-size:1.05rem!important;font-weight:700;color:#e5edf7!important;letter-spacing:.02em;text-transform:uppercase}

.list-code{font-weight:700;color:var(--brand)!important;background:#eef4fb;border-radius:8px;padding:6px 8px;display:inline-flex;align-items:center;width:max-content;max-width:100%;overflow-wrap:anywhere}.list-expediente{overflow-wrap:anywhere}.list-client{font-weight:700;color:var(--ink)!important;overflow-wrap:anywhere}

.list-row.closed{border-left-color:#6b7280;background:#f9fafb}.list-row.closed .list-kind,.list-row.closed em{color:#6b7280}

/* Asistentes y asignaciones */
[hidden]{display:none!important}
.agenda-notebook{max-width:980px;margin:0 auto}.agenda-notebook .panel{background:#fffdf5}.agenda-date{display:block;color:var(--muted);font-size:.82rem;margin-top:4px;text-transform:capitalize}.agenda-form{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;padding:4px 0 18px;border-bottom:2px solid #d8e4f0}.agenda-form .field{margin:0}.agenda-form textarea{min-height:72px;background:repeating-linear-gradient(#fff 0,#fff 30px,#dce8f3 31px)}.agenda-list{display:grid;gap:0;background:repeating-linear-gradient(#fffdf5 0,#fffdf5 47px,#dce8f3 48px);border-left:3px solid #f2b8b5;padding-left:14px}.agenda-entry{min-height:74px;padding:12px 6px;display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;border-bottom:1px solid rgba(22,50,79,.12)}.agenda-check{font-size:1.45rem;color:var(--teal);font-weight:800}.agenda-copy p{margin:0 0 5px;font-size:1rem}.agenda-copy span{font-size:.78rem;color:var(--muted)}.agenda-actions{display:flex;gap:8px;align-items:center}.agenda-entry.is-done .agenda-copy p{text-decoration:line-through;text-decoration-thickness:2px;color:#6b7280}.agenda-entry.is-done{opacity:.82}@media(max-width:640px){.agenda-form{grid-template-columns:1fr}.agenda-entry{grid-template-columns:28px 1fr}.agenda-actions{grid-column:1/-1}.agenda-actions .btn{width:auto;flex:1}}
.assistant-admin{display:grid;gap:6px;justify-items:end}
.assistant-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}.assistant-grid{display:grid;gap:16px}.assistant-card{border:1px solid var(--line);border-radius:10px;background:#f8fafc;overflow:hidden}.assistant-head{padding:14px;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;background:#fff;border-bottom:1px solid var(--line)}.assistant-head h3{margin:0 0 3px}.assistant-head span{color:var(--muted);font-size:.84rem}.avatar{width:42px;height:42px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:800;font-size:1.1rem}.assistant-jobs{padding:12px;display:grid;gap:10px}.assignment-panel{margin-top:16px}.assignment-form{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:12px;align-items:end}.assignment-form .field{margin:0}.assignment-form .wide{grid-column:1/-1}.assignment-card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px;display:grid;gap:10px}.assignment-title{display:flex;justify-content:space-between;gap:12px}.assignment-title>div{display:grid;gap:3px}.assignment-title span,.assignment-meta{color:var(--muted);font-size:.83rem}.assignment-meta{display:flex;gap:12px;flex-wrap:wrap}.assignment-actions{display:flex;gap:8px;flex-wrap:wrap}.assignment-actions select{width:auto;min-width:140px}.task-advances{display:grid;gap:5px;border-top:1px solid var(--line);padding-top:8px;font-size:.84rem}.task-advances span{color:var(--muted)}@media(max-width:1100px){.assistant-layout{grid-template-columns:1fr}.assignment-form{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.assignment-form{grid-template-columns:1fr}.assistant-head{grid-template-columns:auto 1fr}.assistant-head>strong{grid-column:1/-1}.assignment-actions>*{width:100%!important}}

/* Cobranza automatizada por proceso */
.billing-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(340px,.8fr);gap:16px;align-items:start}.calculation-note{border-radius:8px;background:#eef6ff;color:#1e4d7b;padding:10px 12px;font-size:.84rem;margin:2px 0 14px}.billing-card{border:1px solid var(--line);border-radius:10px;background:#fff;padding:15px;display:grid;gap:14px}.billing-title{display:flex;justify-content:space-between;gap:12px;align-items:start}.billing-title h3{margin:0 0 4px;font-size:1rem}.billing-title span{color:var(--muted);font-size:.88rem}.billing-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.billing-summary>div{border:1px solid var(--line);border-radius:8px;padding:11px;display:grid;gap:4px;background:#f8fafc}.billing-summary span,.billing-summary small{color:var(--muted);font-size:.78rem}.billing-summary strong{font-size:1.08rem}.billing-summary .balance{background:#fff7ed;border-color:#fed7aa}.billing-summary .balance strong{color:#9a3412}.payment-history{border-top:1px solid var(--line);padding-top:10px}.payment-history summary{cursor:pointer;color:var(--brand);font-weight:700;font-size:.88rem}.payment-list{display:grid;gap:7px;margin-top:10px}.payment-row{display:grid;grid-template-columns:1fr auto 36px;gap:10px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:8px 9px}.payment-row span{display:grid}.payment-row small{color:var(--muted)}.empty.compact{padding:12px}.payment-form{display:grid;grid-template-columns:minmax(130px,1fr) minmax(150px,1fr) auto auto;gap:9px;align-items:end}.payment-form .field{margin:0}.payment-form .btn:disabled{opacity:.5;cursor:not-allowed}@media(max-width:1100px){.billing-layout{grid-template-columns:1fr}.payment-form{grid-template-columns:1fr 1fr}.payment-form .btn{width:100%}}@media(max-width:640px){.billing-summary,.payment-form{grid-template-columns:1fr}.billing-title{align-items:flex-start}}
