
/* Layout: app shell. Desktop = rail de navegación + área de trabajo; teléfono = cabecera compacta + barra inferior con hoja «Más». */
:root{
  --bg:#f3f5fa; --surface:#ffffff; --surface-2:#eef1f8; --line:#dfe4ef;
  --ink:#0d1526; --muted:#5b6478; --faint:#8a93a6;
  --primary:#2557d6; --primary-ink:#ffffff; --primary-soft:#e5ecfd;
  --sun:#f5b301; --sun-soft:#fff4d1; --sun-ink:#6b4c00;
  --good:#11845b; --good-soft:#dff4ea; --warn:#b5560b; --warn-soft:#fdebd9; --bad:#c2322b; --bad-soft:#fbe3e1;
  --field-1:#1f7a4d; --field-2:#7cb342; --field-3:#e5c44a;
  --shadow:0 1px 2px rgba(13,21,38,.06),0 8px 24px -12px rgba(13,21,38,.18);
  --f-display:'Bricolage Grotesque',ui-sans-serif,system-ui,sans-serif;
  --f-body:'Figtree',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
  --f-mono:'Martian Mono',ui-monospace,'SFMono-Regular',Menlo,monospace;
  --r-lg:20px; --r-md:14px; --r-sm:10px;
  --ease:cubic-bezier(.2,.8,.2,1);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0a0f1a; --surface:#121a2a; --surface-2:#18223a; --line:#24304a;
  --ink:#eef2fb; --muted:#a3adc4; --faint:#7480a0;
  --primary:#6d93ff; --primary-ink:#0a0f1a; --primary-soft:#1c2a52;
  --sun:#ffc53d; --sun-soft:#3a2f10; --sun-ink:#ffd978;
  --good:#3fcf93; --good-soft:#113427; --warn:#ffa45c; --warn-soft:#3b2512; --bad:#ff7a70; --bad-soft:#3d1a18;
  --field-1:#3fae73; --field-2:#9ccc65; --field-3:#f0d062;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 28px -14px rgba(0,0,0,.7);
  color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0a0f1a; --surface:#121a2a; --surface-2:#18223a; --line:#24304a;
  --ink:#eef2fb; --muted:#a3adc4; --faint:#7480a0;
  --primary:#6d93ff; --primary-ink:#0a0f1a; --primary-soft:#1c2a52;
  --sun:#ffc53d; --sun-soft:#3a2f10; --sun-ink:#ffd978;
  --good:#3fcf93; --good-soft:#113427; --warn:#ffa45c; --warn-soft:#3b2512; --bad:#ff7a70; --bad-soft:#3d1a18;
  --field-1:#3fae73; --field-2:#9ccc65; --field-3:#f0d062;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 28px -14px rgba(0,0,0,.7);
  color-scheme:dark}

*{box-sizing:border-box}
html,body{height:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:8px}
.num{font-variant-numeric:tabular-nums}
.mono{font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
h1,h2,h3{font-family:var(--f-display);margin:0;text-wrap:balance;letter-spacing:-.01em}

/* Shell */
.app{position:relative;z-index:1;display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100%}
.rail{position:sticky;top:env(safe-area-inset-top,0px);height:100vh;display:flex;flex-direction:column;gap:18px;padding:20px 14px;border-right:1px solid var(--line);background:color-mix(in srgb,var(--surface) 86%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.brand{display:flex;align-items:center;gap:10px;padding:0 6px}
.brand img{width:40px;height:40px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px var(--line)}
.brand b{font-family:var(--f-display);font-size:18px;font-weight:800;line-height:1.1;display:block}
.brand span{font-size:12px;color:var(--muted)}
.nav{display:flex;flex-direction:column;gap:2px;position:relative}
.nav button{position:relative;z-index:1;display:flex;align-items:center;gap:12px;border:0;background:none;padding:10px 12px;border-radius:12px;color:var(--muted);font-weight:600;text-align:left;transition:color .25s var(--ease)}
.nav button:hover{color:var(--ink)}
.nav button[aria-current="page"]{color:var(--primary)}
.nav .pill{position:absolute;left:0;right:0;height:44px;border-radius:12px;background:var(--primary-soft);transition:transform .45s var(--ease),height .3s;z-index:0}
.nav svg{width:20px;height:20px;flex:none}
.nav .lock{margin-left:auto;font-size:10px;font-family:var(--f-mono);color:var(--faint)}
.rail-foot{margin-top:auto;display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:var(--r-md);background:var(--surface-2)}
.roles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.roles button:last-child:nth-child(odd){grid-column:1/-1}
.roles button{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:6px 8px;font-size:13px;font-weight:600;color:var(--muted);transition:all .2s var(--ease)}
.roles button[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--bg)}

.main{min-width:0;display:flex;flex-direction:column}
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;display:flex;align-items:center;gap:12px;padding:16px 28px;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid transparent}
.top h1{font-size:26px;font-weight:800}
.top .sub{color:var(--muted);font-size:14px}
.top .grow{flex:1;min-width:0}
.mobile-brand,.mobile-role{display:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 16px;border-radius:12px;border:1px solid var(--line);background:var(--surface);font-weight:700;transition:transform .2s var(--ease),box-shadow .2s,background .2s}
.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow)}
.btn:active{transform:translateY(0) scale(.98)}
.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}
.btn svg{width:18px;height:18px}
.content{padding:8px 28px 48px;display:flex;flex-direction:column;gap:20px}

/* Vistas con transición */
.view{display:flex;flex-direction:column;gap:20px}
.view.enter > *{animation:rise .55s var(--ease) both}
.view.enter > *:nth-child(2){animation-delay:.06s}
.view.enter > *:nth-child(3){animation-delay:.12s}
.view.enter > *:nth-child(4){animation-delay:.18s}
.view.enter > *:nth-child(5){animation-delay:.24s}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px;box-shadow:var(--shadow);min-width:0}
.card h2{font-size:19px;font-weight:700}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.grid{display:grid;gap:16px}
.g-kpi{grid-template-columns:repeat(4,minmax(0,1fr))}
.g-2{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}
.g-2e{grid-template-columns:repeat(2,minmax(0,1fr))}

.kpi{display:flex;flex-direction:column;gap:6px;position:relative;overflow:hidden}
.kpi .v{font-family:var(--f-display);font-size:30px;font-weight:800;line-height:1.05}
.kpi .d{font-size:13px;color:var(--muted)}
.kpi.hero{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.kpi.hero .mono,.kpi.hero .d{color:color-mix(in srgb,var(--bg) 70%,transparent)}
.kpi.hero > *{position:relative;z-index:1}
.kpi.hero::after{content:"";position:absolute;z-index:0;inset:0;background-image:linear-gradient(color-mix(in srgb,var(--bg) 9%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--bg) 9%,transparent) 1px,transparent 1px);background-size:28px 28px;-webkit-mask-image:linear-gradient(120deg,transparent 35%,#000);mask-image:linear-gradient(120deg,transparent 35%,#000)}
@keyframes spin{to{transform:rotate(360deg)}}

.chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;white-space:nowrap}
.chip.good{background:var(--good-soft);color:var(--good)}
.chip.warn{background:var(--warn-soft);color:var(--warn)}
.chip.bad{background:var(--bad-soft);color:var(--bad)}
.chip.info{background:var(--primary-soft);color:var(--primary)}
.chip.sun{background:var(--sun-soft);color:var(--sun-ink)}
.dot{width:7px;height:7px;border-radius:50%;background:currentColor}
.chip .dot.live{animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{50%{opacity:.25;transform:scale(.7)}}

.list{display:flex;flex-direction:column}
.row{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-top:1px solid var(--line)}
.row:first-child{border-top:0;padding-top:0}
.row .t{font-weight:600}
.row .s{font-size:13px;color:var(--muted)}
.row .grow{flex:1;min-width:0}
.row .amt{font-weight:700;white-space:nowrap;text-align:right}
.ico{flex:none;width:36px;height:36px;border-radius:11px;display:grid;place-items:center}
.ico svg{width:18px;height:18px}
.ico.warn{background:var(--warn-soft);color:var(--warn)}
.ico.info{background:var(--primary-soft);color:var(--primary)}
.ico.sun{background:var(--sun-soft);color:var(--sun-ink)}
.ico.good{background:var(--good-soft);color:var(--good)}

/* Mapa del lote */
.map{position:relative;border-radius:var(--r-md);overflow:hidden;background:var(--surface-2);aspect-ratio:16/10;max-width:100%}
.map svg{width:100%;height:100%;display:block}
.map .legend{position:absolute;left:12px;bottom:12px;display:flex;gap:8px;flex-wrap:wrap}
.map canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.hud{position:absolute;left:10px;right:10px;display:flex;align-items:center;justify-content:space-between;gap:8px;pointer-events:none}
.hud-top{top:10px}.hud-bottom{bottom:10px;flex-direction:column;align-items:stretch;gap:6px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--surface) 82%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.hud-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:12px;font-weight:700;background:color-mix(in srgb,var(--surface) 85%,transparent);color:var(--primary);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.hud-chip[data-done="true"]{color:var(--good)}
.hud-play{pointer-events:auto;width:34px;height:34px;border-radius:50%;border:0;display:grid;place-items:center;background:color-mix(in srgb,var(--surface) 85%,transparent);color:var(--ink);transition:transform .2s var(--ease)}
.hud-play:hover{transform:scale(1.08)}.hud-play svg{width:14px;height:14px}
.hud-line{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted)}.hud-line b{color:var(--ink);white-space:nowrap}
.hud-bar{height:5px;border-radius:99px;background:var(--surface-2);overflow:hidden}.hud-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--primary),var(--good));border-radius:99px}
.fieldhero{position:relative;padding:0;overflow:hidden;height:240px}
.fieldhero canvas,.scene-sm canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.hero-copy{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;justify-content:center;gap:6px;padding:24px;max-width:62%;background:linear-gradient(90deg,color-mix(in srgb,var(--surface) 78%,transparent) 40%,transparent)}
.hero-copy h2{font-size:30px;font-weight:800;line-height:1.08}
.hero-copy p{margin:0;color:var(--muted)}
.tag{position:absolute;right:12px;bottom:10px;z-index:1;font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px;background:color-mix(in srgb,var(--surface) 75%,transparent);color:var(--muted)}
.scene-sm{position:relative;height:190px;border-radius:var(--r-md);overflow:hidden;margin-bottom:12px}
.numin{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:0 10px 0 4px;transition:border-color .2s,box-shadow .2s}
.numin:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}
.numin input{width:96px;border:0;background:none;font-family:var(--f-display);font-size:22px;font-weight:700;text-align:right;padding:4px;outline:none}
.numin span{font-weight:700;color:var(--muted)}
.params{display:flex;flex-direction:column;gap:22px}
.pgroup{display:flex;flex-direction:column;gap:10px}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.pfield{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border-radius:12px;background:var(--surface-2);border:1px solid transparent;transition:border-color .2s}
.pfield.changed{border-color:var(--sun)}
.pfield.bad{border-color:var(--bad)}
.pfield label{font-size:13px;font-weight:600;color:var(--muted)}
.pfield .pin{display:flex;align-items:center;gap:6px}
.pfield input{flex:1;min-width:0;border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:7px 9px;font-weight:700;font-variant-numeric:tabular-nums}
.pfield .u{font-size:12px;color:var(--faint);white-space:nowrap}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* Formularios */
.field{display:flex;flex-direction:column;gap:8px}
.field label,.field .lbl{font-size:13px;font-weight:700;color:var(--muted)}
.seg{display:flex;flex-wrap:wrap;gap:6px;padding:4px;border-radius:14px;background:var(--surface-2)}
.seg button{flex:1 1 auto;min-height:38px;border:0;border-radius:10px;background:none;padding:0 12px;font-weight:600;color:var(--muted);transition:background .25s var(--ease),color .25s,box-shadow .25s}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
.funds{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}@media (max-width:820px){.funds{grid-template-columns:repeat(2,minmax(0,1fr))}}.fund{display:grid;gap:8px;padding:16px}.fund .v{font-family:var(--f-display);font-size:24px;font-weight:700}.fund .d{font-size:12px;color:var(--muted)}
.track{height:6px;border-radius:99px;background:var(--surface-2);overflow:hidden}.track i{display:block;height:100%;border-radius:inherit;background:var(--primary)}
.expg + .expg{padding-top:16px;border-top:1px solid var(--line)}
.qdrafts summary{cursor:pointer;display:flex;flex-direction:column;gap:2px;list-style:none}.qdrafts summary::-webkit-details-marker{display:none}.qdrafts summary b{font-family:var(--f-display);font-size:18px}.row.justsaved{background:var(--good-soft);border-radius:14px;padding-inline:12px}
.cln{cursor:pointer}.cln input{width:18px;height:18px;flex:none;accent-color:var(--primary)}
.adrow{flex-wrap:wrap}.adbtns{display:flex;flex-wrap:wrap;gap:6px}.adpay{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px;align-items:center}.adpay .txt{max-width:170px}
.adcard{gap:6px;border-style:dashed}.adcard .t{font-weight:700}.adlink{font-weight:700;color:var(--primary)}
.bkcounts{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px;margin-top:4px}
.bkcounts>div{padding:10px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line)}
.bkcounts .v{font-family:var(--f-display);font-size:20px;font-weight:700;margin-top:2px}
.ncform{display:grid;gap:12px;padding:16px;border-radius:16px;background:var(--surface-2);border:1px solid var(--line)}
.sheet.wide{width:min(760px,100%)}
.sheet h3.sh{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:20px 0 10px;font-weight:600}
.sheet .qfacts{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:640px){.sheet .qfacts{grid-template-columns:repeat(2,minmax(0,1fr))}}
.tlist{display:grid;gap:8px;margin:0;padding:0;list-style:none}.tlist li{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.45}.tlist li svg{flex:none;width:16px;height:16px;margin-top:2px;color:var(--good)}
.recv{display:grid;gap:6px;margin-top:10px}.recv .lbl{font-size:12px;font-weight:600;color:var(--muted)}.recv .tri button{min-height:34px;font-size:13px;padding:0 10px}.recv .tri button[aria-pressed="true"]{background:var(--ink);color:var(--surface);box-shadow:var(--shadow)}.recv .tri button{cursor:pointer;border:1px solid var(--line);background:var(--surface)}.recv .tri button:hover{border-color:var(--primary);color:var(--primary)}.recv .tri{gap:6px;background:none;border:0;padding:0;flex-wrap:wrap}.recv.need .lbl{color:var(--warn)}.recv.need .tri button{border-color:var(--warn)}
.hold{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.hold .card{padding:16px}.hold .v{font-size:22px;font-weight:700;margin-top:4px}
.seg button small{display:block;font-size:11px;font-weight:500;color:var(--faint);line-height:1}
input[type=range]{width:100%;accent-color:var(--primary);height:28px}
.rangeval{display:flex;justify-content:space-between;align-items:baseline}
.rangeval b{font-family:var(--f-display);font-size:22px}
select{min-height:42px;border-radius:12px;border:1px solid var(--line);background:var(--surface);padding:0 12px;width:100%}

.price{font-family:var(--f-display);font-weight:800;font-size:44px;line-height:1;letter-spacing:-.02em}
.bars{display:flex;flex-direction:column;gap:9px}
.bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;font-size:14px}
.bar .track{grid-column:1/-1;height:8px;border-radius:99px;background:var(--surface-2);overflow:hidden}
.bar .fill{height:100%;border-radius:99px;background:var(--primary);transform-origin:left;transition:width .7s var(--ease);animation:grow .8s var(--ease) both}
@keyframes grow{from{transform:scaleX(0)}}
.bar.c-good .fill{background:var(--good)} .bar.c-sun .fill{background:var(--sun)} .bar.c-warn .fill{background:var(--warn)} .bar.c-ink .fill{background:var(--ink)}
.gauge{position:relative;height:12px;border-radius:99px;background:linear-gradient(90deg,var(--bad) 0 30%,var(--sun) 30% 45%,var(--good) 45%);opacity:.9}
.gauge i{position:absolute;top:-5px;width:4px;height:22px;border-radius:3px;background:var(--ink);transition:left .7s var(--ease)}
.note{font-size:13px;color:var(--muted)}
.callout{display:flex;gap:10px;padding:12px 14px;border-radius:var(--r-md);font-size:14px}
.callout svg{width:20px;height:20px;flex:none;margin-top:1px}
.callout.warn{background:var(--warn-soft);color:var(--warn)}
.callout.info{background:var(--primary-soft);color:var(--primary)}
.callout.good{background:var(--good-soft);color:var(--good)}

/* Agenda */
.week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.week button{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:10px 4px;display:flex;flex-direction:column;align-items:center;gap:2px;transition:all .25s var(--ease)}
.week button span{font-size:12px;color:var(--muted)}
.week button b{font-family:var(--f-display);font-size:20px}
.week button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.week button[aria-pressed="true"] span{color:inherit;opacity:.7}
.week button .mk{width:6px;height:6px;border-radius:50%;background:var(--sun)}
.week button .mk.none{background:transparent}
.steps{display:flex;flex-direction:column;gap:8px}
.step{display:flex;gap:12px;align-items:center;padding:12px;border-radius:var(--r-md);background:var(--surface-2);border:0;text-align:left;width:100%;transition:background .2s}
.step .box{flex:none;width:24px;height:24px;border-radius:8px;border:2px solid var(--faint);display:grid;place-items:center;transition:all .25s var(--ease)}
.step[aria-pressed="true"] .box{background:var(--good);border-color:var(--good);color:var(--surface)}
.step[aria-pressed="true"] .box svg{animation:pop .35s var(--ease)}
@keyframes pop{from{transform:scale(0)}to{transform:scale(1)}}
.step .t{font-weight:600}
.step .s{font-size:13px;color:var(--muted)}
.progress{height:6px;border-radius:99px;background:var(--surface-2);overflow:hidden}

/* Operación del vuelo */
.callout.bad{background:var(--bad-soft);color:var(--bad)}
.note.bad{color:var(--bad);font-weight:600}
.op{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);gap:16px;align-items:start}
.oprail{display:flex;flex-direction:column;gap:6px;margin-top:14px;position:relative}
.opst{display:flex;gap:12px;align-items:center;width:100%;text-align:left;padding:10px 12px;border-radius:var(--r-md);border:1px solid transparent;background:none;color:var(--ink);transition:background .2s,border-color .2s}
.opst:hover{background:var(--surface-2)}
.opst[aria-current]{background:var(--surface-2);border-color:var(--line)}
.opst .n{flex:none;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:13px;border:2px solid var(--line);color:var(--muted);background:var(--surface)}
.opst .n svg{width:15px;height:15px}
.opst.ok .n{background:var(--good);border-color:var(--good);color:var(--surface)}
.opst.now .n{border-color:var(--primary);color:var(--primary);box-shadow:0 0 0 4px var(--primary-soft)}
.opst.bad .n{background:var(--bad);border-color:var(--bad);color:var(--surface)}
.opst .grow{flex:1;min-width:0;display:flex;flex-direction:column}
.opst .t{font-weight:700}
.opst .s{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.oppanel{display:flex;flex-direction:column;gap:12px}
.oppanel h3{font-family:var(--f-display);font-size:20px;margin:0}
.oppanel > .note{margin:-4px 0 0}
.chks{display:flex;flex-direction:column;gap:8px}
.chk{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:var(--r-md);background:var(--surface-2)}
.chk-h{display:flex;gap:10px;justify-content:space-between;align-items:flex-start;flex-wrap:wrap}
.chk-h > div:first-child{flex:1 1 200px;min-width:0}
.chk .s{font-size:13px;color:var(--muted)}
.chk input.txt{min-height:38px}
.tri{display:flex;gap:4px;padding:3px;border-radius:12px;background:var(--surface);border:1px solid var(--line)}
.tri button{border:0;background:none;border-radius:9px;padding:6px 10px;font-weight:600;font-size:13px;color:var(--muted)}
.tri button[data-s="riesgo"][aria-pressed="true"]{background:var(--bad-soft);color:var(--bad)}
.tri button[data-s="ok"][aria-pressed="true"]{background:var(--good-soft);color:var(--good)}
.tri button[data-s=""][aria-pressed="true"]{background:var(--surface-2);color:var(--ink)}
.opfoot{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:4px}
.btn:disabled{opacity:.45;cursor:not-allowed}
.opsim{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:6px;padding-top:12px;border-top:1px dashed var(--line);font-size:12px;color:var(--faint)}
.linkbtn{border:0;background:none;color:var(--primary);font-weight:700;padding:4px 0}
.fls{display:flex;flex-direction:column;gap:8px}
.fl{padding:12px;border-radius:var(--r-md);border:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.fl-h{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}
.fl-g{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.fl-g span,.flsum div{display:flex;flex-direction:column;font-weight:700}
.fl-g i,.flsum i{font-style:normal;font-family:var(--f-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-weight:400}
.fl .s{font-size:13px;color:var(--muted)}
.flsum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.flsum b{font-family:var(--f-display);font-size:20px}
.fladd{border:1px solid var(--line);border-radius:var(--r-md);padding:12px}
.fladd summary{cursor:pointer;font-weight:700;display:flex;gap:8px;align-items:center;list-style:none}
.fladd summary svg{width:18px;height:18px}
.fladd[open] summary{margin-bottom:12px}
.g-3f{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:10px}
.thumbs{display:flex;gap:6px;flex-wrap:wrap}
.thumbs img{width:64px;height:64px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.bill{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.bl{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-top:1px solid var(--line)}
.bl:first-child{border-top:0}
.bl span{color:var(--muted)}
.bl.tot{background:var(--warn-soft)}
.bl.tot span,.bl.tot b{color:var(--warn);font-weight:800}
.bl.tot b{font-family:var(--f-display);font-size:22px}
.bl.tot.paid{background:var(--good-soft)}
.bl.tot.paid span,.bl.tot.paid b{color:var(--good)}
.fixbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px}
.fixbar .callout{flex:1 1 300px}
.qrev{display:flex;flex-direction:column;gap:12px;padding:14px;border-radius:var(--r-md);background:var(--surface-2)}
.qrev .bill{background:var(--surface)}
.qfacts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 14px;margin:0}
.qfacts dt{font-family:var(--f-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
.qfacts dd{margin:2px 0 0;font-weight:600;font-size:14px;overflow-wrap:anywhere}
.bl small{display:block;font-size:12px;color:var(--faint)}
.bl.tot2 span,.bl.tot2 b{font-weight:800;color:var(--ink)}
.bl.tot2 b{font-family:var(--f-display);font-size:20px}
@media (max-width:640px){.qfacts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1100px){.op{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){.g-3f{grid-template-columns:repeat(2,minmax(0,1fr))}.fl-g{grid-template-columns:repeat(2,minmax(0,1fr))}.tri{width:100%}.tri button{flex:1}}
.progress i{display:block;height:100%;background:var(--good);transition:width .5s var(--ease)}

.week button .mk.pay{background:var(--primary)}.week button .mk.done{background:var(--good)}.dots i.hecho{background:var(--good)}
.btn.icon{min-height:34px;width:34px;padding:0;font-size:20px;line-height:1}
.month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.month .mh{font-family:var(--f-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);text-align:center;padding:4px 0}
.mc{min-height:86px;display:flex;flex-direction:column;align-items:stretch;gap:4px;padding:6px;border-radius:12px;border:1px solid var(--line);background:var(--surface);text-align:left;transition:border-color .2s,transform .2s var(--ease),background .2s;min-width:0}
.mc:hover{transform:translateY(-1px);border-color:var(--primary)}
.mc.empty{border:0;background:none}
.mc .dn{font-weight:700;font-size:13px}
.mc.today .dn{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--sun);color:#1a1300}
.mc[aria-pressed="true"]{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.evp{display:block;font-size:11px;font-weight:700;padding:3px 6px;border-radius:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;animation:rise .5s var(--ease) both}
.evp b{font-weight:500}
.evp.vuelo{background:var(--sun-soft);color:var(--sun-ink)}
.evp.hecho{background:var(--good-soft);color:var(--good)}
.evp.pago{background:var(--primary-soft);color:var(--primary)}
.mc .dots{display:none;gap:3px}
.mc .dots i{width:6px;height:6px;border-radius:50%;background:var(--sun)}
.mc .dots i.pago{background:var(--primary)}
.evp.prog{background:var(--good-soft);color:var(--good)}
.evp.prog.tent{background:transparent;color:var(--warn);box-shadow:inset 0 0 0 1px var(--warn)}
.week button .mk.prog{background:var(--good)}.week button .mk.prog.tent{background:transparent;box-shadow:inset 0 0 0 1.5px var(--warn)}
.evp.seg{background:transparent;color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}
.week button .mk.seg{background:transparent;box-shadow:inset 0 0 0 1.5px var(--primary)}.mc .dots i.seg{background:var(--primary)}
.optabs{margin:-4px 0 12px}
.op.one{grid-template-columns:minmax(0,1fr)}
.arch{border-top:1px solid var(--line)}.arch:first-child{border-top:0}
.arch>summary{display:flex;align-items:center;gap:12px;padding:12px 0;cursor:pointer;list-style:none}.arch>summary::-webkit-details-marker{display:none}
.arch>summary .grow{flex:1;min-width:0}.archbody{padding:0 0 14px 52px;display:flex;flex-direction:column;gap:10px}
@media (max-width:640px){.archbody{padding-left:0}.archbody .qfacts{grid-template-columns:repeat(2,minmax(0,1fr))}}
.fu{border-radius:12px;padding:12px;background:var(--surface-2);display:flex;flex-direction:column;gap:6px}.fu.late{background:var(--bad-soft)}
.fulog{margin:0;padding-left:18px;font-size:13px;color:var(--muted)}
.mc .dots i.prog{background:var(--good)}.mc .dots i.prog.tent{background:transparent;box-shadow:inset 0 0 0 1.5px var(--warn)}
.ccout{min-height:42px;display:flex;align-items:center;padding:8px 12px;border-radius:12px;background:var(--surface-2);font-weight:700;font-size:16px}
.ccprev{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px;padding:12px;border-radius:12px;background:var(--primary-soft)}
.ccprev b{font-size:17px}
@media (max-width:640px){.ccprev{grid-template-columns:repeat(2,minmax(0,1fr))}}
.qdact{display:flex;gap:8px;flex-basis:100%;padding-left:52px;flex-wrap:wrap;align-items:center}
.qdnote,.qdrecv{flex-basis:100%;padding-left:52px}
.qdappr{flex-basis:100%;margin:10px 0 0 52px;padding:12px;border-radius:12px;background:var(--surface-2);display:flex;flex-direction:column;gap:8px;min-width:0}
.qdappr .list{background:var(--surface);border-radius:10px}
.qdpil[aria-pressed="true"]{box-shadow:inset 3px 0 0 var(--primary);background:var(--primary-soft)}
@media (max-width:640px){.qdappr{margin-left:0}}
.qdnewpil{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.qdnewpil .note{flex-basis:100%}
.qdnewpil input.txt{flex:1 1 160px;width:auto;min-height:38px}
.qdmove{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.qdmove input.txt{width:auto;min-height:38px;padding:6px 10px}
@media (max-width:640px){.qdact,.qdnote,.qdrecv{padding-left:0}}
.rowbtn{width:100%;border:0;border-top:1px solid var(--line);background:none;text-align:left;cursor:pointer}
.rowbtn:first-child{border-top:0}
.rowbtn.att{align-items:center;border-radius:12px;margin-inline:-8px;padding-inline:8px;width:calc(100% + 16px);transition:background .2s,transform .2s var(--ease)}
.rowbtn.att:hover{background:var(--surface-2)}
.rowbtn.att:hover .go-arrow{transform:translateX(3px);color:var(--primary)}
.go-arrow{font-size:22px;line-height:1;color:var(--faint);transition:transform .2s var(--ease),color .2s}
input.txt,textarea.txt{width:100%;min-height:42px;border-radius:12px;border:1px solid var(--line);background:var(--surface);padding:8px 12px;font:inherit;color:var(--ink)}
textarea.txt{resize:vertical}
input.txt:focus,textarea.txt:focus,select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}
.person-roles{display:flex;flex-wrap:wrap;gap:6px}
.rolechip{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;color:var(--muted);transition:all .2s var(--ease)}
.rolechip[aria-pressed="true"]{background:var(--primary-soft);border-color:var(--primary);color:var(--primary)}
.row .person-roles{max-width:46%;justify-content:flex-end}
table.pvr td:not(:first-child),table.pvr th:not(:first-child){text-align:right;white-space:nowrap}
table.pvr td .s{font-weight:400;white-space:normal}
table.pvr td:first-child{white-space:normal}
@media (max-width:640px){
  table.pvr thead{display:none}
  table.pvr,table.pvr tbody,table.pvr tr{display:block;width:100%}
  table.pvr tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px 8px;padding:10px 0;border-bottom:1px solid var(--line)}
  table.pvr td{display:block;padding:0;border:0!important;text-align:left!important}
  table.pvr td:first-child{grid-column:1/-1;margin-bottom:4px}
  table.pvr td[data-l]::before{content:attr(data-l);display:block;font-size:11px;font-weight:400;color:var(--muted)}
}
table.pvr tr.sub td,table.pvr tr.tot td{font-weight:700;border-top:1px solid var(--line)}
table.pvr tr.tot td{color:var(--primary)}
.prow{flex-wrap:wrap}
.ptools{flex-basis:100%;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end;padding-left:52px}
.ptools .s{flex:1;min-width:160px}
.pedit{flex-basis:100%;margin-top:4px}
.btn.danger{color:var(--bad);border-color:var(--bad)}

/* Imagen real: ortofoto propia (vista previa 1024 px del KMZ de Plantación ROSA) */
:root{--poster:url(data:image/webp;base64,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)}
#bg{position:fixed;inset:0;z-index:0;pointer-events:none;background:var(--poster) center/cover no-repeat;opacity:1;overflow:hidden}
#bg video,.ovid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
#bg video{filter:blur(1px) saturate(1.08);transform:scale(1.02)}
.ohero{position:relative;overflow:hidden;height:240px;padding:0;background:#0c1611 var(--poster) center/cover no-repeat;border-color:#0c1611;color:#eef3ef}
.ohero .hero-copy{position:relative;z-index:1;background:linear-gradient(90deg,rgba(12,22,17,.9) 40%,rgba(12,22,17,.55) 75%,rgba(12,22,17,0));max-width:68%;color:#eef3ef}
.ohero .hero-copy .mono{color:#ffd166}
.ohero .hero-copy p{color:rgba(238,243,239,.74)}
.ohero .tag{z-index:1;background:rgba(12,22,17,.72);color:rgba(238,243,239,.85)}
.hud-chip[data-kind="good"]{color:var(--good)}.hud-chip[data-kind="warn"]{color:var(--warn)}.hud-chip[data-kind="sun"]{color:var(--sun-ink)}
@media (prefers-reduced-motion: reduce){#bg video,.ovid{display:none}}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) #bg{opacity:.9}}
:root[data-theme="dark"] #bg{opacity:.9}
#bgveil{position:fixed;inset:0;z-index:0;pointer-events:none;background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 22%,transparent) 0%,color-mix(in srgb,var(--bg) 28%,transparent) 55%,color-mix(in srgb,var(--bg) 40%,transparent) 100%)}
/* Dinero */
.wf{display:flex;flex-direction:column;gap:2px}
.wf-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:8px 0;border-top:1px dashed var(--line)}
.wf-row:first-child{border-top:0}
.wf-row .t{font-weight:600}
.wf-row .s{font-size:13px;color:var(--muted)}
.wf-row .a{font-weight:700;text-align:right;white-space:nowrap}
.wf-row .a.neg{color:var(--muted)}
.wf-row.total{border-top:2px solid var(--ink)}
.wf-row.total .t,.wf-row.total .a{font-family:var(--f-display);font-size:18px}
.wf-row .vis{grid-column:1/-1;height:6px;border-radius:99px;background:var(--surface-2);position:relative;overflow:hidden}
.wf-row .vis i{position:absolute;top:0;bottom:0;border-radius:99px;background:var(--primary);transform-origin:left;animation:grow .9s var(--ease) both}
.wf-row:nth-child(n+3) .vis i{animation-delay:.08s}.wf-row:nth-child(n+5) .vis i{animation-delay:.16s}.wf-row:nth-child(n+7) .vis i{animation-delay:.24s}.wf-row:nth-child(n+9) .vis i{animation-delay:.32s}
.wf-row.cost .vis i{background:var(--warn)}
.wf-row.save .vis i{background:var(--sun)}
.wf-row.total .vis i{background:var(--good)}
.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.partner{border-radius:var(--r-md);padding:16px;background:var(--surface-2);display:flex;flex-direction:column;gap:4px}
.partner .v{font-family:var(--f-display);font-size:28px;font-weight:800}
.ring{width:120px;height:120px;flex:none}
.ring circle{fill:none;stroke-width:12}
.ring .bgc{stroke:var(--surface-2)}
.ring .fg{stroke:var(--primary);stroke-linecap:round;transition:stroke-dashoffset 1.2s var(--ease);transform:rotate(-90deg);transform-origin:50% 50%}
.ring text{fill:var(--ink);font-family:var(--f-display);font-weight:800;font-size:22px}
.ring .rs{fill:var(--muted);font-family:var(--f-body);font-size:11px;font-weight:500}

.table-wrap{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{padding:10px 8px;text-align:left;border-top:1px solid var(--line);white-space:nowrap}
th{font-family:var(--f-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-weight:500;border-top:0}
td.yes{color:var(--good);font-weight:700} td.no{color:var(--faint)}

/* Modal cotización cliente */
.scrim{position:fixed;inset:0;z-index:40;background:color-mix(in srgb,var(--ink) 45%,transparent);display:grid;place-items:center;padding:16px;animation:fade .25s ease}
@keyframes fade{from{opacity:0}}
.sheet{width:min(520px,100%);max-height:calc(100% - 32px);overflow:auto;background:var(--surface);border-radius:24px;padding:24px;box-shadow:0 30px 80px -20px rgba(0,0,0,.45);animation:sheet .45s var(--ease)}
@keyframes sheet{from{transform:translateY(30px) scale(.97);opacity:0}}
.doc-head{display:flex;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.doc-head img{width:46px;height:46px;border-radius:50%;background:#fff}

/* Barra inferior (teléfono) */
.tabbar{display:none}
.more-list{display:flex;flex-direction:column;gap:6px}
.more-list button{display:flex;align-items:center;gap:12px;border:0;background:var(--surface-2);border-radius:14px;padding:14px;font-weight:600;text-align:left}
.more-list svg{width:20px;height:20px;color:var(--primary)}

@media (max-width:1100px){.g-kpi{grid-template-columns:repeat(2,minmax(0,1fr))}.g-2{grid-template-columns:minmax(0,1fr)}}
@media (max-width:820px){
  .app{grid-template-columns:minmax(0,1fr)}
  .rail{display:none}
  .top{padding:12px 16px;gap:10px}
  .top h1{font-size:22px}
  .top .sub,.top .desk{display:none}
  .mobile-brand{display:block;width:36px;height:36px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px var(--line)}
  .mobile-role{display:block}
  .mobile-role select{min-height:36px;font-size:13px;font-weight:700;border-radius:999px;padding:0 10px;width:auto}
  .content{padding:4px 16px 110px;gap:16px}
  .view{gap:16px}
  .card{padding:16px;border-radius:18px}
  .g-2e{grid-template-columns:minmax(0,1fr)}
  .kpi .v{font-size:24px}
  .fieldhero,.ohero{height:210px}
  .mc{min-height:48px;padding:5px;align-items:center}
  .mc .evp{display:none}
  .mc .dots{display:flex}
  .hero-copy{max-width:70%;padding:16px}
  .hero-copy h2{font-size:21px}
  .hero-copy p{font-size:13px}
  .numin input{width:76px;font-size:19px}
  .price{font-size:38px}
  .tabbar{display:grid;position:fixed;left:0;right:0;bottom:0;z-index:30;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line)}
  .tabbar button{border:0;background:none;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;border-radius:12px;font-size:11px;font-weight:700;color:var(--faint);transition:color .2s}
  .tabbar button svg{width:22px;height:22px;transition:transform .3s var(--ease)}
  .tabbar button[aria-current="page"]{color:var(--primary)}
  .tabbar button[aria-current="page"] svg{transform:translateY(-2px) scale(1.08)}
  .scrim.bottom{place-items:end center;padding:0}
  .scrim.bottom .sheet{border-radius:24px 24px 0 0;width:100%;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}
}
@media (max-width:420px){.g-kpi{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.kpi .v{font-size:21px}.split{grid-template-columns:minmax(0,1fr)}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important}}
