:root{--bg:#f4f7f6;--surface:#ffffff;--surface-2:#edf2f0;--ink:#16211e;--muted:#5d6e69;--line:#dfe7e4;--teal:#0f766e;--teal-deep:#0a5c56;--teal-soft:#e1f0ee;--gold:#a67c22;--gold-soft:#f5ead2;--red:#b8443a;--red-soft:#f9e8e6;--amber:#a8720f;--amber-soft:#f7eed8;--violet:#6153c4;--violet-soft:#eae7f8;--indigo:#3b5bdb;--indigo-soft:#e6ebfb;--cyan:#0e7490;--cyan-soft:#dff1f6;--ok:#2e7d4f;--ok-soft:#e3f1e9;--shadow:0 1px 2px rgba(22,33,30,0.06),0 6px 18px rgba(22,33,30,0.06);--radius:12px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:Segoe UI Variable Text,Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--teal);text-decoration:none}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:9px 12px;width:100%}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--teal);outline-offset:1px}label{display:block;font-size:12.5px;font-weight:600;color:var(--muted);margin:12px 0 4px}.shell{min-height:100dvh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;gap:18px;padding:10px 18px;background:var(--surface);border-bottom:1px solid var(--line);position:-webkit-sticky;position:sticky;top:0;z-index:30}.brand{font-weight:700;letter-spacing:-.01em;color:var(--ink);font-size:16px;white-space:nowrap}.brand b{color:var(--teal)}.topnav{display:flex;gap:4px;flex:1 1}.topnav a{font-size:13.5px;font-weight:600;color:var(--muted);padding:7px 13px;border-radius:9px}.topnav a.on{color:var(--teal);background:var(--teal-soft)}.topbar .who{font-size:12.5px;color:var(--muted);white-space:nowrap}.main{flex:1 1;width:100%;max-width:1200px;margin:0 auto;padding:20px 18px 90px}.bottomnav{display:none;position:fixed;bottom:0;left:0;right:0;z-index:30;background:var(--surface);border-top:1px solid var(--line);padding:6px 4px calc(8px + env(safe-area-inset-bottom));justify-content:space-around}.bottomnav a{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:9.5px;font-weight:600;color:var(--muted);flex:1 1;min-width:0;padding:4px 0;border-radius:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bottomnav a.on{color:var(--teal)}.bottomnav svg{width:22px;height:22px;stroke:currentColor}.fab{position:fixed;right:16px;bottom:calc(70px + env(safe-area-inset-bottom));z-index:31;width:52px;height:52px;border-radius:50%;border:0;background:var(--teal);color:#fff;font-size:28px;line-height:0;display:none;align-items:center;justify-content:center;box-shadow:0 6px 16px rgba(15,118,110,.4)}@media (max-width:860px){.topnav{display:none}.bottomnav,.fab{display:flex}.main{padding:14px 12px 110px}}.page-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:4px 0 16px;flex-wrap:wrap}.page-h h1{font-size:20px;font-weight:700;letter-spacing:-.01em;margin:0}.page-h .sub{font-size:12.5px;color:var(--muted);margin-top:2px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.card.pad{padding:16px}.section-h{display:flex;justify-content:space-between;align-items:baseline;margin:18px 0 8px}.section-h h2{font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0}.section-h a{font-size:12.5px;font-weight:600}.row-item{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:11px 13px;display:flex;gap:11px;align-items:center;margin-bottom:8px}.row-item .txt{flex:1 1;min-width:0}.row-item .txt b{display:block;font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-item .txt span{font-size:12px;color:var(--muted)}.row-item.overdue{border-left:3px solid var(--red)}.row-item.today{border-left:3px solid var(--amber)}.row-item .check{width:18px;height:18px;flex:none;border:1.6px solid var(--muted);border-radius:5px;background:transparent;padding:0}.row-item .check:hover{border-color:var(--teal);background:var(--teal-soft)}.chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;border-radius:99px;padding:3px 9px;white-space:nowrap}.chip.red{color:var(--red);background:var(--red-soft)}.chip.amber{color:var(--amber);background:var(--amber-soft)}.chip.neutral{color:var(--muted);background:var(--surface-2)}.chip.gold{color:var(--gold);background:var(--gold-soft)}.chip.ok{color:var(--ok);background:var(--ok-soft)}.chip.dashed{color:var(--amber);background:transparent;border:1px dashed var(--amber)}.pl{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.05em;border-radius:5px;padding:2px 7px;text-transform:uppercase;white-space:nowrap}.pl.CLINIC{color:var(--teal);background:var(--teal-soft)}.pl.HOSPITAL{color:var(--indigo);background:var(--indigo-soft)}.pl.ACADEMY{color:var(--violet);background:var(--violet-soft)}.pl.ODONTO{color:var(--cyan);background:var(--cyan-soft)}.pl.FISCAL{color:var(--gold);background:var(--gold-soft)}.avatar{width:26px;height:26px;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;background:var(--teal)}.avatar.alt{background:var(--violet)}.btn{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;border-radius:9px;padding:8px 14px;border:1px solid var(--line);background:var(--surface);color:var(--ink);white-space:nowrap}.btn:hover{background:var(--surface-2)}.btn.pri{background:var(--teal);border-color:var(--teal);color:#fff}.btn.pri:hover{background:var(--teal-deep)}.btn.danger{color:var(--red);border-color:var(--red-soft)}.btn.sm{font-size:12px;padding:5px 10px}.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.filters a,.filters button{font-size:12px;font-weight:600;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:5px 11px;white-space:nowrap}.filters a.on,.filters button.on{color:var(--teal);background:var(--teal-soft);border-color:transparent}.kb-wrap{overflow-x:auto;padding-bottom:8px;-webkit-overflow-scrolling:touch}.kb{display:flex;gap:12px;align-items:flex-start;min-width:max-content}.kb .col{width:218px;flex:none}.col-h{display:flex;justify-content:space-between;align-items:baseline;padding:0 4px 8px;gap:6px}.col-h b{font-size:12.5px;font-weight:700;white-space:nowrap}.col-h span{font-size:11px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kcard{display:block;color:inherit;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 11px 9px;margin-bottom:8px;box-shadow:0 1px 2px rgba(22,33,30,.05)}.kcard:hover{border-color:var(--teal)}.kcard .nm{font-size:13px;font-weight:600;display:flex;justify-content:space-between;gap:6px;align-items:center;margin-bottom:2px}.kcard .nm em{font-style:normal}.kcard .meta,.kcard .nm em{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kcard .meta{font-size:11px;color:var(--muted);margin-bottom:7px}.kcard .foot{display:flex;justify-content:space-between;align-items:center;gap:6px}.kcard .foot .avatar{width:20px;height:20px;font-size:9px}.kcard.rot{border-color:var(--red);box-shadow:inset 3px 0 0 var(--red)}.kcard .rotlbl{font-size:10.5px;color:var(--red);font-weight:600;margin-top:6px}@media (max-width:860px){.kb{flex-direction:column;min-width:0}.kb .col{width:100%}}.list-row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-top:1px solid var(--line);color:inherit}.list-row:first-child{border-top:0}.list-row:hover{background:var(--surface-2)}.list-row .c-name{flex:2 1;min-width:0}.list-row .c-name b{display:block;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-row .c-name span{font-size:11.5px;color:var(--muted)}.list-row .c-lines{display:flex;gap:4px;flex-wrap:wrap}.list-row .c-stage{min-width:130px;text-align:right}@media (max-width:640px){.list-row .c-stage{display:none}}.rec-cols{display:grid;grid-template-columns:280px 1fr;grid-gap:14px;gap:14px;align-items:start}@media (max-width:980px){.rec-cols{grid-template-columns:1fr}}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin-bottom:12px}.panel h3{margin:0 0 10px;font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted)}.kv{display:grid;grid-template-columns:100px 1fr;grid-gap:4px 10px;gap:4px 10px;font-size:12.5px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0;font-weight:600;overflow-wrap:anywhere}.stepper{display:flex;align-items:center;gap:0;margin:12px 0 4px;overflow-x:auto;padding-bottom:6px}.step,.step .knot{display:flex;align-items:center;flex:none}.step .knot{width:20px;height:20px;border-radius:50%;border:2px solid var(--line);background:var(--surface);color:#fff;font-size:10px;justify-content:center}.step.done .knot{background:var(--teal);border-color:var(--teal)}.step.cur .knot{border-color:var(--gold);background:var(--gold);box-shadow:0 0 0 4px var(--gold-soft)}.step .lbl{font-size:10.5px;color:var(--muted);margin:0 8px 0 5px;white-space:nowrap}.step.cur .lbl{color:var(--ink);font-weight:700}.step .bar{width:18px;height:2px;background:var(--line);margin-right:8px}.step.done .bar{background:var(--teal)}.tl{position:relative;padding-left:26px}.tl:before{content:"";position:absolute;left:9px;top:6px;bottom:6px;width:2px;background:var(--line)}.ev{position:relative;padding:0 0 14px}.ev .dot{position:absolute;left:-26px;top:2px;width:20px;height:20px;border-radius:50%;background:var(--surface);border:2px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:10px}.ev.hl .dot{border-color:var(--teal)}.ev .e-h{font-size:11px;color:var(--muted);margin-bottom:2px}.ev .e-h b{color:var(--ink);font-size:12.5px}.ev .e-b{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:12.5px;white-space:pre-wrap;overflow-wrap:anywhere}.contact{display:flex;align-items:center;gap:9px;padding:8px 0;border-top:1px solid var(--line);font-size:12.5px}.contact:first-of-type{border-top:0}.contact .c-i{flex:1 1;min-width:0}.contact .c-i b{display:block}.contact .c-i span{color:var(--muted);font-size:11.5px;overflow-wrap:anywhere}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:0 16px;gap:0 16px}@media (max-width:640px){.form-grid{grid-template-columns:1fr}}.form-actions{display:flex;gap:10px;margin-top:18px;justify-content:flex-end}.error-box{background:var(--red-soft);color:var(--red)}.error-box,.ok-box{border-radius:9px;padding:10px 13px;font-size:13px;margin:12px 0}.ok-box{background:var(--ok-soft);color:var(--ok)}.empty{border:1.5px dashed var(--line);border-radius:var(--radius);padding:18px;text-align:center;font-size:13px;color:var(--muted)}.line-checks{display:flex;gap:8px;flex-wrap:wrap}.line-checks label{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:13px;color:var(--ink);font-weight:600;background:var(--surface-2);border:1px solid var(--line);border-radius:9px;padding:7px 12px;cursor:pointer}.line-checks input{width:auto;accent-color:var(--teal)}.line-checks label.on{background:var(--teal-soft);color:var(--teal);border-color:transparent}.login-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:28px}.login-card h1{font-size:20px;margin:0 0 2px}.login-card .sub{font-size:13px;color:var(--muted);margin:0 0 14px}