/* CRM de ejemplo (datos ficticios) */
:root{--bg:#f3f5f9;--card:#fff;--ink:#16202c;--mut:#5b6878;--line:#dfe4ec;--blue:#2b63c6;--blue-soft:#e8f0fb;--c1:#2b63c6;--c2:#a8812e;--c3:#1d7048;--c4:#7a4fb3}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.app{max-width:1360px;margin:0 auto;padding:18px 16px 40px}
.top{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:16px}
.brand{display:flex;align-items:center;gap:10px}
.brand .logo{width:40px;height:40px;border-radius:10px;background:#111;color:#d4ff3a;display:grid;place-items:center;font:900 15px Impact,Arial Black,sans-serif}
.brand strong{display:block;font-size:17px}.brand small{color:var(--mut)}
.tools{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.search{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:0 12px;min-height:44px;min-width:min(320px,100%);flex:1}
.search svg{width:18px;height:18px;fill:none;stroke:var(--mut);stroke-width:2}
.search input{border:0;outline:0;font:15px inherit;font-family:inherit;flex:1;min-width:0;background:transparent;padding:10px 0}
.search:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft)}
.b{min-height:44px;padding:10px 16px;border-radius:10px;font:600 14px inherit;font-family:inherit;cursor:pointer;border:1px solid var(--line);background:#fff;color:var(--ink)}
.b.primary{background:var(--blue);border-color:var(--blue);color:#fff}
.b.primary:hover{background:#2254ad}
.b.ghost:hover{border-color:var(--mut)}
.b.danger{color:#a3321f;border-color:#efc9c0}
.b:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,.card:focus-visible{outline:3px solid #f2c66d;outline-offset:2px}
.kpis{display:grid;grid-template-columns:repeat(3,1fr) 1.6fr;gap:12px;margin-bottom:12px}
@media (max-width:900px){.kpis{grid-template-columns:1fr 1fr}.kpi.chart{grid-column:1/-1}}
.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.kpi span{display:block;color:var(--mut);font-size:13px;font-weight:600}
.kpi b{display:block;font-size:26px;margin:4px 0 2px;letter-spacing:-.01em}
.kpi small{color:var(--mut)}
.bars{display:flex;align-items:flex-end;gap:10px;height:86px;margin-top:8px;padding-top:16px}
.bars .bw{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end;position:relative}
.bars i{display:block;width:100%;max-width:44px;background:var(--c1);border-radius:4px 4px 0 0;min-height:2px}
.bars em{font-style:normal;font-size:11px;color:var(--mut)}
.bars .v{font-size:11px;font-weight:700;color:var(--ink)}
.hint{color:var(--mut);font-size:13px;margin:6px 0 12px}
.board{display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:12px;overflow-x:auto;padding-bottom:8px}
@media (max-width:760px){.board{grid-template-columns:repeat(4,82%);scroll-snap-type:x mandatory}.col{scroll-snap-align:start}}
.col{background:#e9edf3;border-radius:14px;padding:10px;min-height:320px;transition:background .15s}
.col.over{background:#dbe6f7;outline:2px dashed var(--blue)}
.col h2{display:flex;justify-content:space-between;align-items:center;margin:2px 4px 10px;font-size:13px;letter-spacing:.06em;text-transform:uppercase}
.col h2 .dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}
.col h2 .n{background:#fff;border-radius:999px;padding:2px 9px;font-size:12px;color:var(--mut)}
.col h2 .sum{display:block;font-size:11px;color:var(--mut);letter-spacing:0;text-transform:none;font-weight:500}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:11px 12px;margin-bottom:9px;cursor:grab;position:relative;box-shadow:0 1px 2px rgba(0,0,0,.04)}
.card:hover{border-color:#b9c6d8}
.card.dragging{opacity:.45}
.card b{display:block;font-size:14.5px;padding-right:56px}
.card small{display:block;color:var(--mut);margin-top:2px}
.card .meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;align-items:center}
.card .chip{font-size:11.5px;background:var(--blue-soft);color:#1f4f9f;border-radius:999px;padding:2px 8px}
.card .val{font-size:12px;font-weight:700;margin-left:auto}
.card .mv{position:absolute;top:8px;right:8px;display:flex;gap:4px}
.card .mv button{width:26px;height:26px;border-radius:7px;border:1px solid var(--line);background:#fff;cursor:pointer;font-size:13px;line-height:1;color:var(--mut)}
.card .mv button:hover{color:var(--ink);border-color:var(--mut)}
.empty{color:var(--mut);font-size:13px;text-align:center;padding:18px 6px;border:1.5px dashed #cdd5e1;border-radius:12px}
dialog{border:0;border-radius:18px;padding:0;width:min(560px,94vw);box-shadow:0 30px 70px -20px rgba(0,0,0,.5)}
dialog::backdrop{background:rgba(6,19,33,.55)}
dialog form{padding:20px}
dialog header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
dialog h2{margin:0;font-size:19px}
dialog .x{border:0;background:none;font-size:28px;line-height:1;cursor:pointer;color:var(--mut);width:40px;height:40px}
dialog .grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:520px){dialog .grid{grid-template-columns:1fr}}
dialog label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600;color:var(--mut)}
dialog .full{grid-column:1/-1}
dialog input,dialog select,dialog textarea{font:15px inherit;font-family:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:9px;color:var(--ink);min-height:42px}
.hist{margin-top:14px;background:var(--bg);border-radius:10px;padding:10px 14px}
.hist h3{margin:0 0 6px;font-size:13px;color:var(--mut)}
.hist ul{margin:0;padding-left:18px;font-size:13px;max-height:120px;overflow:auto}
dialog footer{display:flex;gap:8px;margin-top:16px;align-items:center}
dialog footer span{flex:1}
