:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#1b3430;background:#f3f6f4;font-size:16px;--green:#106b55;--muted:#627772}*{box-sizing:border-box}body{margin:0}header{background:white;border-bottom:1px solid #e1e9e5;padding:20px max(20px,calc((100vw - 1140px)/2));display:flex;align-items:center;justify-content:space-between;gap:12px}.brand{display:flex;align-items:center;gap:12px;color:var(--green);text-decoration:none;font-size:24px;font-weight:900;letter-spacing:-1px}.brand span{font-size:12px;letter-spacing:1.4px;color:#243b34}.brand small{display:block;font-size:11px;font-weight:500;letter-spacing:0;color:var(--muted);margin-top:3px}main{max-width:1140px;margin:30px auto;padding:0 22px 90px}h1{font-size:clamp(28px,5vw,40px);letter-spacing:-1.3px;margin:10px 0}h2{font-size:23px;margin:0 0 14px}h3{font-size:18px;margin:4px 0 8px}p{line-height:1.5}.muted,small{color:var(--muted)}.eyebrow{color:var(--green);font-size:12px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase}.banner{border:1px solid #c8ddd3;color:#416357;background:#e8f3ed;padding:12px 16px;border-radius:12px;font-size:13px;margin:20px 0}.toolbar,.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.toolbar{justify-content:space-between;margin:22px 0}.grow{flex:1}.tabs{background:#e6ede8;display:flex;padding:4px;border-radius:13px;gap:4px}button,.button{font:inherit;font-weight:650;border:1px solid #d9e3dc;background:white;color:#28463c;padding:13px 17px;min-height:48px;border-radius:11px;cursor:pointer;text-decoration:none;display:inline-flex;justify-content:center;align-items:center;gap:8px}button:hover,.button:hover{filter:brightness(.96)}button:disabled{opacity:.5;cursor:wait}.primary,.tabs button.active{background:var(--green);color:white;border-color:var(--green)}.tabs button{background:transparent;border:0;padding:10px 16px;min-height:43px}.tabs button.active{border-radius:9px}.card,.calendar,.panel{background:#fff;border:1px solid #e0e7e1;border-radius:18px;padding:20px;box-shadow:0 4px 18px #244c3310}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stat{background:white;border:1px solid #dfe7e1;border-radius:16px;padding:18px}.stat strong{font-size:26px;display:block;margin-top:5px}.card{border-left:5px solid var(--accent,#458acc);margin:14px 0;text-align:left;display:block;width:100%;color:inherit;font-weight:400}.card p{margin:7px 0}.pill{font-size:12px;font-weight:750;display:inline-block;border-radius:30px;padding:5px 10px;background:#e9f1fc;color:#315a91}.status-programado{--accent:#4d85cb}.status-en_camino{--accent:#8562c9}.status-en_curso{--accent:#d49b18}.status-incidencia{--accent:#d45959}.status-finalizado{--accent:#22866a}.status-cancelado{--accent:#81918b}.card .time{font-size:13px;color:var(--muted);font-weight:650}.calendar{padding:12px;overflow:hidden}.monthgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekday{text-align:center;padding:8px;font-size:12px;color:var(--muted);font-weight:700}.daycell{min-height:110px;display:block;border:1px solid #e9eeea;border-radius:10px;text-align:left;position:relative;padding:8px;background:#fff}.daycell.today{background:#ebf5ef;border-color:#82bba5}.daycell.outside{opacity:.35}.date{font-size:13px}.dot{display:block;padding:4px 5px;border-radius:5px;background:#e5eff9;color:#315d8d;font-size:11px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin:4px 0}.dot.personal{background:#ede8f7;color:#6d5192}.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;overflow-x:auto}.week .col{background:white;min-width:120px;padding:10px;border:1px solid #e2e8e3;border-radius:14px}.week button{font-size:12px;width:100%;padding:9px;display:block;text-align:left;margin-top:8px}.legend{display:flex;gap:14px;font-size:12px;color:var(--muted);margin:15px 0;flex-wrap:wrap}.legend span:before{content:'';width:9px;height:9px;display:inline-block;border-radius:50%;background:var(--c);margin-right:6px}.login{max-width:450px;margin:65px auto}.login p{color:var(--muted)}label{display:block;font-size:13px;font-weight:700;margin:16px 0 7px}input,textarea,select{font:inherit;width:100%;border:1px solid #cddbd1;border-radius:10px;padding:13px;background:white;color:#213e31;min-height:48px}textarea{min-height:110px;resize:vertical}input[type=checkbox]{width:22px;min-height:22px}fieldset{border:1px solid #d9e2db;border-radius:10px;margin:15px 0}fieldset label{display:flex;align-items:center;gap:10px;margin:10px 0}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:15px}form>button{margin-top:20px;width:100%}dialog{border:0;box-shadow:0 20px 100px #15372d44;border-radius:22px;max-width:700px;width:calc(100% - 28px);max-height:92dvh;padding:26px}dialog::backdrop{background:#12392b77}.close{float:right;padding:7px 13px;min-height:42px}.details{clear:both;padding-top:16px}.details p{white-space:pre-line;overflow-wrap:anywhere}.actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0}.note{padding:14px 0;border-top:1px solid #edf1ec;white-space:pre-line}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.photo-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px}.empty{text-align:center;color:var(--muted);padding:45px 20px;background:white;border:1px dashed #cbdad0;border-radius:18px}#message{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);background:#203c31;color:white;border-radius:12px;padding:13px 18px;box-shadow:0 8px 30px #23473333;max-width:calc(100% - 30px);z-index:5;margin:0}#message:empty{display:none}a{color:var(--green)}:focus-visible{outline:3px solid #e6a51f;outline-offset:3px}.help{font-size:12px;color:var(--muted)}@media(max-width:650px){header{padding:16px}main{padding:0 15px 85px;margin-top:20px}.grid{gap:8px}.stat{padding:13px;font-size:12px}.stat strong{font-size:23px}.toolbar{gap:14px}.toolbar .tabs{width:100%}.tabs button{flex:1}.calendar{padding:5px;border-radius:12px}.monthgrid{gap:2px}.daycell{min-height:74px;padding:5px 3px;border-radius:6px}.dot{font-size:9px;padding:3px 1px}.weekday{padding:6px 0;font-size:10px}.week{grid-template-columns:repeat(7,145px)}dialog{padding:20px}.formgrid{grid-template-columns:1fr}.actions button,.actions .button{font-size:14px;padding:13px 8px}.photo-grid{grid-template-columns:1fr 1fr}.login{margin:35px auto}.brand{font-size:23px}}

.lg-blue{--c:#4d85cb}.lg-yellow{--c:#d49b18}.lg-red{--c:#d45959}.lg-green{--c:#22866a}.lg-purple{--c:#8562c9}.personal-card{--accent:#8562c9}
