/* Authoritative CULTYRA tokens and reusable components. */
:root{--c-forest:#153e32;--c-green:#287451;--c-bg:#f5f7f5;--c-paper:#fff;--c-text:#20382d;--c-muted:#607168;--c-line:#dfe6e0;--c-good:#246a48;--c-warning:#886015;--c-critical:#b23c36;--c-info:#326887;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s6:24px;--s8:32px;--s12:48px;--radius:12px;--shadow:0 4px 18px #193d2908}
#app{--ws-bg:var(--c-bg);--ws-paper:var(--c-paper);--ws-text:var(--c-text);--ws-muted:var(--c-muted);--ws-line:var(--c-line);--ws-green:var(--c-green);--ws-sage:#edf3ee;--lime:var(--c-green);--mint:var(--c-green);--cream:var(--c-text);--muted:var(--c-muted);grid-template-columns:244px minmax(0,1fr)!important;grid-template-rows:72px minmax(0,1fr)!important}
body.theme-dark{--c-bg:#14251e;--c-paper:#1c3027;--c-text:#edf4ef;--c-muted:#b5c6ba;--c-line:#365043;--c-green:#81c6a0}
#app .main{padding:32px clamp(20px,3vw,48px) 48px!important;background:var(--c-bg)!important}#app .content{max-width:1440px!important;background:transparent!important}#app .sidebar{width:244px!important;padding:24px 16px 16px!important;background:var(--c-forest)!important;overflow:visible}#app #nav{overflow-y:auto;min-height:0;scrollbar-width:thin}#app .nav-group-label{font-size:12px!important;letter-spacing:.05em;color:#a9c2b5!important}#app .nav-item{font-size:15px!important;min-height:44px!important;color:#dce8df!important}#app .nav-item.active{background:#e7f0e8!important;color:#153e32!important;font-weight:600!important}#app .nav-item:hover{transform:none!important}#app .sidebar .sb-logo{margin-bottom:12px!important;min-height:70px!important}#app .topbar{padding:0 32px!important;gap:16px;background:var(--c-paper)!important}#app .view-title:before{content:'Espacio de trabajo / ';color:var(--c-muted)}#app .topbar .uname{display:none!important}#app .topbar select{max-width:200px;min-width:0}#app .theme-toggle,#app .profile-avatar{min-width:44px!important;min-height:44px!important}#app .sb-profile{display:flex;align-items:center;gap:12px;width:100%;color:#e9f2ec;background:transparent;border:0;text-align:left;padding:12px 4px;font-size:14px}#app .sb-profile small{display:block;color:#b0c8b9}#app .sb-foot .btn{min-height:44px;font-size:14px!important}#app .sb-collapse{position:absolute;right:-14px;top:86px;border:1px solid var(--c-line);background:var(--c-paper);color:var(--c-text);border-radius:50%;width:28px;height:28px;display:grid;place-items:center;z-index:5}#app .sb-collapse svg{width:16px}
#app h1,#app h2,#app h3{font-family:var(--display)!important;letter-spacing:-.035em;color:var(--c-text)!important}#app h1{font-size:32px!important;line-height:1.2!important;margin:8px 0!important}#app h2{font-size:24px!important}#app h3{font-size:19px!important}#app p,#app .ri-sub,#app .note{font-size:14px!important;color:var(--c-muted)!important}#app .eyebrow{font-size:12px!important;color:var(--c-muted)!important}#app .btn{font-size:14px!important;min-height:44px;border-radius:8px!important;padding:10px 16px!important;box-shadow:none!important;gap:8px}#app .btn-primary{background:var(--c-green)!important;color:#fff!important;border-color:var(--c-green)!important}#app .btn-ghost{background:var(--c-paper)!important;color:var(--c-text)!important;border:1px solid var(--c-line)!important}#app input,#app select,#app textarea{font-size:16px!important;min-height:44px;border-radius:8px!important;background:var(--c-paper)!important;color:var(--c-text)!important;border:1px solid var(--c-line)!important;padding:10px 12px;max-width:100%}#app label{font-size:14px!important;color:var(--c-text)}#app :focus-visible,.ui-dialog :focus-visible{outline:3px solid #529376!important;outline-offset:3px}#app .panel,#app .live-card,#app .settings-card{background:var(--c-paper)!important;border:1px solid var(--c-line)!important;border-radius:var(--radius)!important;box-shadow:none!important}#app small{font-size:13px}button,a,input,select,summary{touch-action:manipulation}.ui-icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle}.ui-page-head{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:28px}.ui-page-head p{margin:0}.ui-actions{display:flex;gap:8px;flex-wrap:wrap}.ui-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.ui-stat{padding:20px;background:var(--c-paper);border:1px solid var(--c-line);border-radius:var(--radius)}.ui-stat>div{display:flex;gap:10px;align-items:center;font-size:14px;color:var(--c-muted)}.ui-stat>strong{display:block;font:600 32px var(--display);margin:16px 0 4px;color:var(--c-text)}.ui-stat small{color:var(--c-muted)}.ui-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.ui-columns{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:24px}.ui-card{background:var(--c-paper);border:1px solid var(--c-line);border-radius:var(--radius);padding:24px;margin-bottom:24px;min-width:0}.ui-section-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.ui-section-head h2{margin:0!important}.ui-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;white-space:nowrap;padding:5px 9px;border-radius:6px;background:#eef1ee;color:#586a60}.ui-badge .ui-icon{width:14px;height:14px}.ui-badge.good{background:#eaf4ed;color:#246a48}.ui-badge.warning{background:#fbf3df;color:#886015}.ui-badge.critical{background:#fbecea;color:#a23430}.ui-badge.info{background:#eaf2f8;color:#326887}.ui-empty{text-align:center;padding:32px 16px;color:var(--c-muted)}.ui-empty>.ui-icon{width:32px;height:32px;margin-bottom:12px}.ui-empty h3{margin:0 0 8px}.ui-empty p{max-width:50ch;margin:auto}.ui-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--c-line)}.ui-row:last-child{border:0}.ui-row small{display:block;color:var(--c-muted);margin-top:4px}.ui-filter{display:flex;gap:16px;flex-wrap:wrap;align-items:end;margin-bottom:24px}.ui-filter label{display:flex;flex-direction:column;gap:8px;flex:1;min-width:140px}.ui-filter select{width:100%}.ui-sensor{padding:20px;border:1px solid var(--c-line);border-radius:var(--radius);background:var(--c-paper);min-width:0}.ui-sensor h3{font-family:var(--body)!important;font-size:16px!important;margin:12px 0}.ui-value{font:400 28px var(--mono);margin:12px 0}.ui-value small{font:14px var(--body);color:var(--c-muted)}.ui-sensor footer{font-size:13px;color:var(--c-muted);margin-top:16px}.ui-notice{display:flex;align-items:center;gap:12px;padding:16px;border:1px solid var(--c-line);background:var(--c-paper);border-radius:8px;margin-bottom:24px;font-size:14px}.ui-notice.error{border-left:3px solid var(--c-critical)}.ui-table-wrap{overflow:auto;max-width:100%}.ui-table{width:100%;border-collapse:collapse;font-size:14px}.ui-table th{text-align:left;font-weight:500;color:var(--c-muted);background:var(--c-bg);padding:12px}.ui-table td{padding:16px 12px;border-bottom:1px solid var(--c-line)}.ui-tabs{display:flex;gap:4px;padding:4px;border:1px solid var(--c-line);border-radius:10px;width:fit-content;flex-wrap:wrap;margin-bottom:24px}.ui-tabs button{border:0;border-radius:6px;background:transparent;color:var(--c-muted);min-height:40px;padding:8px 16px;font-size:14px}.ui-tabs button[aria-selected=true],.ui-tabs button[aria-pressed=true]{background:var(--c-forest);color:white}.ui-skeleton{display:grid;gap:16px;grid-template-columns:repeat(3,1fr)}.ui-skeleton div{height:160px;background:var(--c-line);border-radius:12px;animation:ui-pulse 1.5s ease-in-out infinite}.ui-dialog{max-width:min(540px,calc(100vw - 32px));border:1px solid var(--c-line);border-radius:16px;padding:24px;color:var(--c-text);background:var(--c-paper);font-family:var(--body)}.ui-dialog::backdrop{background:#0c241b66}.ui-chart{width:100%;height:auto;min-height:180px;overflow:visible}.ui-chart text{font:12px var(--body);fill:var(--c-muted)}.ui-chart line{stroke:var(--c-line)}.ui-chart polyline{fill:none;stroke:var(--c-green);stroke-width:2.5}.ui-chart circle{fill:var(--c-green)}.ui-chart circle:focus{outline:none;stroke:var(--c-text);stroke-width:3}.ui-farm-visual{height:100px;background:#edf3ec;display:grid;place-items:center;border-radius:8px;margin-bottom:16px;color:#537a60}.ui-farm-visual svg{width:48px;height:48px}.ui-farm-visual img{width:100%;height:100%;object-fit:cover}.ui-muted{color:var(--c-muted)}.ui-skip{position:fixed;left:16px;top:-100px;z-index:99999;background:white;color:#153e32;padding:12px}.ui-skip:focus{top:12px}
#app.is-collapsed{grid-template-columns:80px minmax(0,1fr)!important}#app.is-collapsed .sidebar{width:80px!important;padding:24px 12px!important}#app.is-collapsed .sb-logo img{width:44px!important;object-fit:contain}#app.is-collapsed .sb-logo{padding:0!important;margin:0!important}#app.is-collapsed .nav-item{justify-content:center}#app.is-collapsed .nav-item span,#app.is-collapsed .nav-group-label,#app.is-collapsed .sb-profile span,#app.is-collapsed .sb-foot>[data-act=logout]{display:none!important}#app.is-collapsed details.nav-group:not([open])>.nav-item{display:flex}#app.is-collapsed .sb-collapse svg{transform:rotate(180deg)}#app .cal-cell{cursor:pointer;min-height:56px}#app .cal-cell:focus-visible{outline:3px solid var(--c-green)}#app .farm-list .row-item{border:1px solid var(--c-line);border-radius:12px;padding:20px;background:var(--c-paper)}
@keyframes ui-pulse{50%{opacity:.45}}
@media(min-width:901px){#app .hamb{display:none!important}#app .sidebar{position:relative!important}}
@media(max-width:1100px){.ui-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.ui-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ui-columns{grid-template-columns:1fr}#app .topbar{padding:0 20px!important}#app .view-title:before{content:''}}
@media(max-width:900px){#app,#app.is-collapsed{grid-template-columns:minmax(0,1fr)!important}#app .sidebar,#app.is-collapsed .sidebar{position:fixed!important;top:0;bottom:0;left:0;width:270px!important;transform:translateX(-100%);z-index:1000;padding:24px 16px!important}#app .sidebar.open{transform:translateX(0)}#app .topbar{grid-column:1!important}#app .main{grid-column:1!important}#app .hamb{display:grid!important;min-width:44px;min-height:44px;place-items:center}#app .sb-collapse{display:none}#app.is-collapsed .nav-item span,#app.is-collapsed .nav-group-label,#app.is-collapsed .sb-profile span{display:block!important}#app.is-collapsed .nav-item{justify-content:flex-start}#app.is-collapsed .sb-logo img{width:156px!important}#app .scrim.show{z-index:999}.ui-page-head{align-items:flex-start;flex-wrap:wrap}#app h1{font-size:28px!important}}
@media(max-width:600px){#app .main{padding:24px 16px 40px!important}#app .topbar{padding:0 12px!important;gap:8px}#app .topbar .usermenu{gap:4px!important}#app .topbar select{max-width:120px;font-size:14px!important}#app .theme-toggle{display:none!important}.ui-kpis{gap:8px}.ui-stat{padding:16px 12px}.ui-stat>div{font-size:13px;gap:6px}.ui-stat>strong{font-size:28px}.ui-grid{grid-template-columns:1fr}.ui-card{padding:20px 16px}.ui-section-head{flex-wrap:wrap}.ui-filter{gap:12px}.ui-filter label{min-width:calc(50% - 12px)}.ui-table thead{display:none}.ui-table,.ui-table tbody,.ui-table tr,.ui-table td{display:block}.ui-table tr{padding:12px 0;border-bottom:1px solid var(--c-line)}.ui-table td{border:0;padding:6px 4px;display:flex;justify-content:space-between;gap:12px;overflow-wrap:anywhere}.ui-table td:before{content:attr(data-label);color:var(--c-muted)}.ui-row{align-items:flex-start}.ui-page-head .ui-actions{width:100%}.ui-tabs{width:100%}.ui-tabs button{flex:1;padding:8px 12px}#app .row,#app .task-form-grid,#app .settings-fields{grid-template-columns:1fr!important}#app .calendar-actions{flex-wrap:wrap}#app .cal-cell{min-height:48px!important;padding:6px!important}#app .view-title{font-size:13px!important}#app .content{overflow-wrap:anywhere}.ui-skeleton{grid-template-columns:1fr}.ui-notice{align-items:flex-start}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.sidebar,.topbar,.ui-filter,.ui-actions,.ui-tabs{display:none!important}#app{display:block!important}.main{overflow:visible!important}.ui-card{break-inside:avoid}}
#app .ui-farm-card .ui-farm-visual{flex:1 1 100%;width:100%}#app .ui-farm-card{cursor:default!important}#app .ui-farm-card .tag{font-size:12px!important}#app .cal-num{font-size:14px!important}#app .ui-tabs{max-width:100%}#app input[type=checkbox]{min-height:20px;min-width:20px;padding:0}#app .ui-card .ui-actions{margin-top:16px}#app .simple-account,#app .simple-settings-content{background:var(--c-paper)!important;color:var(--c-text)!important;border-color:var(--c-line)!important}#app .nav-group[open] summary{margin-bottom:8px}#app .ui-stat small{line-height:1.5;display:block}.ui-chart-tooltip{min-height:24px;font-size:14px;color:var(--c-muted)}
@media print{#app{position:static!important;height:auto!important}.main,.content{height:auto!important;overflow:visible!important}details:not([open]){display:none!important}}
#app .ui-agenda-day{grid-template-columns:1fr}#app .ui-agenda-week .cal-cell{display:flex;flex-direction:column;gap:12px}#app .ui-agenda-week .cal-num{font-size:13px!important}@media(max-width:600px){#app .ui-agenda-week{grid-template-columns:1fr!important}#app .ui-agenda-week .cal-cell{flex-direction:row;justify-content:space-between}}

.sensor-traffic{display:flex;align-items:center;gap:10px;margin:14px 0;font-size:14px}.traffic-lamps{display:inline-flex;gap:6px;background:#18251e;border-radius:24px;padding:7px}.traffic-lamps i{width:14px;height:14px;border-radius:50%;background:#536058;opacity:.3}.traffic-lamps i.on{opacity:1}.traffic-lamps .red.on{background:#f04444}.traffic-lamps .yellow.on{background:#f7bd29}.traffic-lamps .green.on{background:#35cf77}
