:root{--brand:#0b4f90;--brand-ink:#fff;--brand-soft:#1361ab;--brand-dim:#083c6e;--accent:#ffd62b;--accent-ink:#1a1d21;--bg:#eef1f6;--surface:#fff;--surface-2:#f5f7fa;--border:#dde2ea;--text:#1b2430;--text-muted:#5c6675;--text-faint:#8a94a3;--ok:#1f8a4c;--ok-bg:#e6f5ec;--bad:#c0392b;--bad-bg:#fbe9e7;--na:#6b7280;--na-bg:#eceef1;--shadow:0 1px 2px #141e320f, 0 4px 14px #141e320f;--radius:8px;--font-ui:"Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, Helvetica, Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace}@media (prefers-color-scheme:dark){:root{--bg:#10151d;--surface:#1a212c;--surface-2:#212936;--border:#2c3644;--text:#e7ebf1;--text-muted:#a2acbb;--text-faint:#6c7686;--brand:#1e69ab;--brand-soft:#2779bf;--brand-dim:#0d3f70;--ok:#3fbd77;--ok-bg:#133424;--bad:#e2685a;--bad-bg:#3a1c19;--na:#9aa3b1;--na-bg:#262e39;--shadow:0 1px 2px #0000004d, 0 4px 14px #00000059}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:14px;line-height:1.45;overflow:hidden}::selection{background:var(--accent);color:var(--accent-ink)}button,input,select{font-family:inherit;font-size:inherit;color:inherit}.btn{border-radius:var(--radius);cursor:pointer;border:none;justify-content:center;align-items:center;gap:6px;padding:10px 14px;font-size:13px;font-weight:700;display:inline-flex}.btn-accent{background:var(--accent);color:var(--accent-ink);flex:1.3}.btn-accent:hover{filter:brightness(.96)}.btn-ghost{background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);flex:1}.btn-ghost:hover{background:var(--border)}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.task-list-panel{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex:0 0 280px;width:280px;min-height:0;transition:flex-basis .28s,width .28s,opacity .2s,border-color .28s;display:flex;overflow:hidden}.task-list-panel.collapsed{opacity:0;border-color:#0000;flex-basis:0;width:0}.task-list-inner{flex-direction:column;flex:1;min-width:280px;min-height:0;display:flex}.task-list-head{background:var(--brand-dim);color:var(--brand-ink);letter-spacing:.3px;text-transform:uppercase;white-space:nowrap;flex:none;justify-content:space-between;align-items:baseline;gap:8px;padding:14px 16px;font-size:13px;font-weight:700;display:flex}.task-list-head .count{text-transform:none;color:#ffffffbf;font-size:11.5px;font-weight:400}.task-rows{flex-direction:column;flex:auto;display:flex;overflow-y:auto}.task-row{cursor:pointer;border-left:5px solid #0000;border-bottom:1px solid var(--bg);align-items:flex-start;gap:10px;padding:8px 12px;display:flex}.task-row:hover{background:var(--surface-2)}.task-row.selected{border-left-color:var(--accent);background:var(--surface-2)}.task-row-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.task-row .ref{font-family:var(--font-mono);color:var(--text-faint);font-size:10.5px}.task-row .title{text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12.5px;font-weight:600;line-height:1.3;display:-webkit-box;overflow:hidden}.task-row .sla-dot{text-align:center;text-transform:uppercase;border-radius:100px;flex:0 0 32px;width:32px;margin-top:2px;padding:2px 0;font-size:9px;font-weight:700}.task-row .sla-dot.sla-si{background:var(--ok-bg);color:var(--ok)}.task-row .sla-dot.sla-no{background:var(--bad-bg);color:var(--bad)}.task-row .sla-dot.sla-na{background:var(--na-bg);color:var(--na)}.task-rows-empty{text-align:center;color:var(--text-faint);flex:1;justify-content:center;align-items:center;padding:24px;font-size:12.5px;display:flex}.task-pagination{border-top:1px solid var(--border);flex-wrap:wrap;flex:none;justify-content:center;align-items:center;gap:6px;padding:10px 12px;display:flex}.page-btn{border:1px solid var(--border);background:var(--surface-2);min-width:26px;height:26px;color:var(--text-muted);cursor:pointer;border-radius:6px;padding:0 5px;font-size:11.5px;font-weight:600}.page-btn.active{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.page-btn:disabled{opacity:.4;cursor:not-allowed}.spinner{border:3px solid var(--border);border-top-color:var(--brand);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite spinner-rotate}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.photo-viewer{background:var(--bg);flex-direction:column;flex:auto;min-width:0;min-height:0;display:flex}.photo-empty{text-align:center;color:var(--text-faint);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:14px;padding:30px;display:flex}.photo-empty svg{opacity:.5;width:52px;height:52px}.photo-empty p{max-width:260px;color:var(--text-muted);margin:0;font-size:14px}.photo-viewer-head{flex:none;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 24px 0;display:flex}.photo-viewer-head .info{min-width:0}.photo-viewer-head .title{text-wrap:balance;font-size:17px;font-weight:700;line-height:1.3}.photo-viewer-head .ref{font-family:var(--font-mono);color:var(--text-muted);margin-top:3px;font-size:12.5px}.close-btn{border:1px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--text-muted);cursor:pointer;box-shadow:var(--shadow);border-radius:50%;flex:none;justify-content:center;align-items:center;transition:background .18s,color .18s,border-color .18s,transform .18s,box-shadow .18s;display:flex}.close-btn svg{width:15px;height:15px}.close-btn:hover{background:var(--bad-bg);border-color:var(--bad);color:var(--bad);box-shadow:0 3px 10px color-mix(in srgb, var(--bad) 30%, transparent), var(--shadow);transform:scale(1.08)}.close-btn:active{transform:scale(.94)}.carousel-wrap{flex-direction:column;flex:auto;gap:10px;min-height:0;padding:12px 16px 16px;display:flex}.carousel-main{border:1px solid var(--border);background:var(--surface-2);border-radius:14px;flex:auto;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.carousel-frame{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.carousel-frame img{object-fit:contain;background:var(--surface-2);border-radius:10px;max-width:100%;max-height:100%;display:block}.carousel-image{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;transition:transform .15s;animation:.35s carousel-fade}.carousel-image.dragging{cursor:grabbing;transition:none}@keyframes carousel-fade{0%{opacity:0}to{opacity:1}}.carousel-nav{background:color-mix(in srgb, var(--brand) 85%, transparent);color:#fff;cursor:pointer;width:40px;height:40px;box-shadow:var(--shadow);border:none;border-radius:50%;justify-content:center;align-items:center;transition:background .18s,transform .18s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.carousel-nav:hover{background:var(--brand-soft);transform:translateY(-50%)scale(1.05)}.carousel-nav:active{transform:translateY(-50%)scale(.96)}.carousel-nav svg{width:18px;height:18px}.carousel-nav.prev{left:16px}.carousel-nav.next{right:16px}.carousel-counter{color:#fff;font-variant-numeric:tabular-nums;background:#141820b8;border-radius:100px;padding:5px 12px;font-size:12px;font-weight:600;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}.carousel-resume{background:var(--surface);border:1px solid var(--border);width:34px;height:34px;color:var(--brand);cursor:pointer;box-shadow:var(--shadow);border-radius:50%;justify-content:center;align-items:center;padding:0;transition:background .18s,color .18s,transform .18s;display:flex;position:absolute;bottom:48px;left:50%;transform:translate(-50%)}.carousel-resume:hover{background:var(--brand);color:#fff;transform:translate(-50%)scale(1.06)}.carousel-resume:active{transform:translate(-50%)scale(.94)}.carousel-resume svg{width:16px;height:16px}.carousel-thumbs{flex:none;gap:8px;padding-bottom:4px;display:flex;overflow-x:auto}.carousel-thumb{cursor:pointer;background:var(--surface-2);border:2px solid #0000;border-radius:8px;flex:none;width:80px;height:58px;padding:0;overflow:hidden}.carousel-thumb img{object-fit:cover;width:100%;height:100%;display:block}.carousel-thumb.active{border-color:var(--accent)}.carousel-thumb:not(.active):hover{border-color:var(--brand-soft)}.detail-panel{background:var(--surface);border-left:1px solid var(--border);flex-direction:column;flex:0 0 420px;width:420px;min-height:0;transition:flex-basis .3s,width .3s,opacity .25s,border-color .3s;display:flex;overflow:hidden}.detail-panel.auto-collapsed{opacity:0;border-color:#0000;flex-basis:0;width:0}.detail-content{flex-direction:column;flex:1;min-width:420px;min-height:0;display:flex}.info-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;flex:none;gap:2px;padding:14px 16px 0;display:flex}.info-tabs button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:6px 6px 0 0;padding:8px 10px;font-size:12.5px;font-weight:700}.info-tabs button.active{background:var(--surface-2);color:var(--brand);border-bottom:2px solid var(--accent)}.detail-scroll{flex-direction:column;flex:auto;gap:22px;padding:16px;display:flex;overflow-y:auto}.section-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;margin:0 0 10px;padding-bottom:8px;display:flex}.section-head h3{text-transform:uppercase;letter-spacing:.5px;min-width:0;color:var(--brand);flex:auto;margin:0;font-size:11.5px;font-weight:700;line-height:1.35}.sla-tick{border-radius:50%;flex:none;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.sla-tick svg{width:13px;height:13px}.sla-tick.si{background:var(--ok-bg);color:var(--ok)}.sla-tick.no{background:var(--bad-bg);color:var(--bad)}.sla-tick.na{background:var(--na-bg);color:var(--na)}.section-grid{grid-template-columns:1fr 1fr;gap:12px 16px;display:grid}.field{flex-direction:column;gap:3px;min-width:0;display:flex}.field.wide{grid-column:1/-1}.field .k{text-transform:uppercase;letter-spacing:.4px;color:var(--text-faint);font-size:11px;font-weight:700}.field .v{color:var(--text);font-size:13.5px}.field .v.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.map-embed{border:1px solid var(--border);border-radius:10px;height:360px;margin-top:4px;overflow:hidden}.map-embed iframe{border:0;width:100%;height:100%}.map-link{color:var(--brand);margin-top:6px;font-size:12px;font-weight:600;text-decoration:none;display:inline-block}.map-link:hover{text-decoration:underline}.detail-empty{text-align:center;color:var(--text-faint);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;min-width:420px;padding:30px;display:flex}.detail-empty svg{opacity:.5;width:40px;height:40px}.detail-empty p{max-width:200px;color:var(--text-muted);margin:0;font-size:13px}.app{flex-direction:column;height:100%;display:flex}.topbar{background:var(--brand);color:var(--brand-ink);min-height:60px;box-shadow:0 2px 6px #0a14282e, var(--shadow);z-index:20;border-bottom:1px solid #0000002e;flex-direction:column;flex:none;justify-content:center;align-items:stretch;gap:8px;padding:0 20px;display:flex}@media (width<=980px){.topbar{min-height:0;padding:8px 16px}}.topbar-row{align-items:center;gap:12px;width:100%;min-width:0;display:flex;position:relative}.topbar .brand{letter-spacing:.2px;white-space:nowrap;flex:none;align-items:center;gap:10px;min-width:0;font-weight:600;display:flex;overflow:hidden}.topbar .brand-mark{flex:none;width:auto;height:34px;display:block}.topbar-search-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.search-box{background:#ffffff24;border-radius:100px;align-items:center;gap:8px;padding:0 8px 0 14px;display:flex}.search-box-desktop{width:480px;height:38px}.search-box-mobile{width:100%;height:36px}.search-box .search-icon{opacity:.85;flex:none}.search-box input{color:#fff;background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:13px}.search-box input::placeholder{color:#ffffffb3}.search-box button{color:#fff;cursor:pointer;background:#fff3;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:13px;line-height:1;display:flex}.view-switch{background:var(--surface);border-bottom:1px solid var(--border);flex:none;gap:8px;padding:8px 10px;display:none}.view-switch button{border:1px solid var(--border);background:var(--surface-2);color:var(--text-muted);cursor:pointer;border-radius:100px;flex:1;padding:8px 10px;font-size:12.5px;font-weight:600}.view-switch button.active{background:var(--brand);border-color:var(--brand);color:var(--brand-ink)}.layout{flex:auto;min-height:0;display:flex;position:relative}.collapse-handle{background:var(--surface);border-right:1px solid var(--border);z-index:15;flex:none;justify-content:center;align-items:center;width:20px;display:flex;position:relative}.collapse-btn{border:1px solid var(--border);background:var(--surface);width:32px;height:32px;color:var(--brand);cursor:pointer;box-shadow:var(--shadow);border-radius:50%;flex:none;justify-content:center;align-items:center;transition:background .18s,color .18s,border-color .18s,transform .18s,box-shadow .18s;display:flex;position:relative;transform:translate(-6px)}.collapse-btn:hover{background:var(--brand);border-color:var(--brand);color:#fff;box-shadow:0 3px 10px color-mix(in srgb, var(--brand) 45%, transparent), var(--shadow);transform:translate(-6px)scale(1.08)}.collapse-btn:active{transform:translate(-6px)scale(.94)}.collapse-btn svg{width:16px;height:16px;transition:transform .28s}.toast{background:var(--text);color:var(--bg);box-shadow:var(--shadow);opacity:0;pointer-events:none;z-index:100;border-radius:100px;padding:10px 18px;font-size:13px;font-weight:600;transition:opacity .2s,transform .2s;position:fixed;bottom:22px;left:50%;transform:translate(-50%,12px)}.toast.show{opacity:1;transform:translate(-50%)}@media (width<=980px){.view-switch{display:flex}.collapse-handle,.layout>*{display:none}.layout[data-view=tareas] .task-list-panel{opacity:1;flex-basis:auto;width:auto;display:flex;position:absolute;inset:0}.layout[data-view=fotos] .photo-viewer{display:flex;position:absolute;inset:0}.layout[data-view=info] .detail-panel{opacity:1;flex-basis:auto;width:auto;display:flex;position:absolute;inset:0}.layout[data-view=info] .detail-scroll,.layout[data-view=info] .detail-empty{min-width:0}}
