.recog-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.recog-step{display:flex;align-items:center;gap:10px;min-height:36px;color:var(--muted)}.recog-step .recog-dot{flex:none;width:22px;height:22px;border-radius:var(--r-chip);display:grid;place-items:center;font-size:.75rem;font-weight:700;border:var(--bw) solid var(--border);background:var(--surface)}.recog-step.done{color:var(--text)}.recog-step.done .recog-dot{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.recog-step.now{color:var(--text);font-weight:700}.recog-step.now .recog-dot{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.recog-step.now .recog-dot:after{content:"";width:8px;height:8px;border-radius:var(--r-chip);background:var(--accent);animation:recog-pulse 1.2s ease-in-out infinite}@keyframes recog-pulse{0%,to{opacity:.35}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.recog-step.now .recog-dot:after{animation:none}}.recog-quota{font-size:.9rem;color:var(--muted)}.recog-cands{display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(0,1fr)}.recog-cand{display:flex;gap:12px;align-items:flex-start;padding:12px}.recog-cand .recog-thumb{flex:none;width:72px;height:96px;border-radius:var(--r-s);overflow:hidden;background:var(--surface-2);border:var(--bw) solid var(--border);display:grid;place-items:center;color:var(--muted);font-size:.7rem;text-align:center;padding:4px}.recog-cand .recog-thumb img{width:100%;height:100%;object-fit:cover;display:block}.recog-cand .recog-body{min-width:0;display:flex;flex-direction:column;gap:6px}.recog-cand .recog-title{font-weight:700;overflow-wrap:anywhere}.recog-cand .recog-link{display:inline-flex;align-items:center;min-height:44px;overflow-wrap:anywhere}.recog-cand details summary{cursor:pointer;min-height:44px;display:flex;align-items:center}.recog-field{border:var(--bw) solid var(--border);border-radius:var(--r-m);padding:8px 12px 12px;margin:0;min-width:0;background:var(--surface)}.recog-field>legend{padding:0 6px;font-weight:700}.recog-opts{display:flex;flex-direction:column}.recog-opt{display:flex;align-items:center;gap:10px;min-height:48px;padding:4px 0;border-bottom:var(--bw-line) solid var(--border)}.recog-opt:last-child{border-bottom:0}.recog-opt input{flex:none;width:22px;height:22px;accent-color:var(--accent)}.recog-opt label{flex:1 1;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;cursor:pointer;min-height:44px}.recog-opt .recog-val{font-weight:600;overflow-wrap:anywhere}.recog-opt .recog-from{color:var(--muted);font-size:.85rem}.recog-opt a{display:inline-flex;align-items:center;min-height:44px;padding:0 4px;font-size:.85rem;overflow-wrap:anywhere}@media (min-width:720px){.recog-cands{grid-template-columns:repeat(2,minmax(0,1fr))}}.wall-card{color:var(--text);text-decoration:none}.wall-card:hover{border-color:var(--accent)}.wall-card .badge{align-self:center}.wall-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.wall-head h1{flex:1 1 10ch;min-width:0;overflow-wrap:break-word}.wall-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:-8px}.wall-state{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 10px;border-radius:var(--r-chip);background:var(--surface-2);color:var(--muted);font-size:.8rem;font-weight:600;white-space:nowrap}.wall-state[data-save-state=saved]{color:var(--ok)}.wall-state[data-save-state=error]{color:var(--danger)}.wall-tools{display:flex;flex-direction:column;gap:8px}.wall-sel{flex-direction:row;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px}.wall-sel .grow{display:flex;flex-direction:column;gap:2px;flex:1 1 100%}.wall-sel .btn{flex:1 1 auto}@media (min-width:640px){.wall-sel .grow{flex:1 1}.wall-sel .btn{flex:0 0 auto}}.wall-sel strong{overflow-wrap:anywhere}.wall-scroll{overflow:auto;max-width:100%;max-height:72dvh;border-radius:var(--r-m);-webkit-overflow-scrolling:touch}.wall{position:relative;width:100%;overflow:hidden;border:var(--bw) solid var(--border);border-radius:var(--r-s)}.wall[data-busy="1"]{opacity:.7;pointer-events:none}.wall-deck{position:absolute;container-type:size;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:-webkit-grab;cursor:grab;display:block;color:inherit;text-decoration:none}.wall-deck.selected{outline:2px solid var(--accent);outline-offset:2px;z-index:3}.wall-deck.dragging{cursor:-webkit-grabbing;cursor:grabbing;z-index:4}.wall-deck:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.wall-img{position:absolute;left:50%;top:50%;width:100cqw;height:100cqh;transform:translate(-50%,-50%);object-fit:fill;pointer-events:none;filter:drop-shadow(0 .3cqh .5cqw color-mix(in srgb,var(--wall-shade) 70%,transparent))}.wall-img:not(.cut){object-fit:cover;border-radius:50cqw}.wall-deck.quer>.wall-img{width:100cqh;height:100cqw;transform:translate(-50%,-50%) rotate(90deg)}.wall-deck.quer>.wall-img:not(.cut){border-radius:50cqh}.wall-ghost{position:absolute;inset:0;border:2px dashed var(--muted);border-radius:50cqmin;background:color-mix(in srgb,var(--surface) 55%,transparent);pointer-events:none}.wall-zoom{display:inline-flex;gap:6px}.wall-panel{gap:14px}.wall-panel .cols{align-items:start}.wall-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));grid-gap:10px;gap:10px;max-height:52dvh;overflow:auto;padding:2px}.wall-pick-item{position:relative;display:flex;flex-direction:column;gap:6px;cursor:pointer;min-width:0}.wall-pick-item input{position:absolute;opacity:0;width:1px;height:1px}.wall-pick-item .deck-tile{padding:6px}.wall-pick-name{font-size:.8rem;line-height:1.2;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.wall-pick-item:after{content:"";position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:var(--r-chip);border:var(--bw) solid var(--border);background:var(--bg)}.wall-pick-item:has(input:checked) .deck-tile{border-color:var(--accent);outline:2px solid var(--accent)}.wall-pick-item:has(input:checked):after{background:var(--accent);border-color:var(--accent)}.wall-pick-item:has(input:checked):before{content:"";position:absolute;z-index:1;top:10px;right:14px;width:6px;height:11px;border:solid var(--on-accent);border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}.wall-pick-item:has(input:focus-visible) .deck-tile{outline:2px solid var(--accent)}.swatches{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.swatch{width:44px;height:44px;border-radius:var(--r-chip);border:var(--bw) solid var(--border);cursor:pointer;padding:0}.swatch[aria-pressed=true]{outline:3px solid var(--accent);outline-offset:2px}.color-input{width:64px;height:44px;padding:2px;border:var(--bw) solid var(--border);border-radius:var(--r-s);background:var(--field);cursor:pointer}.field-error{color:var(--danger);font-size:.8rem}.pub{display:flex;flex-direction:column;gap:16px}.pub-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.pub-head h1{flex:1 1;min-width:0;overflow-wrap:anywhere}.pub-scroll{overflow-x:auto}.pub .wall{min-width:560px}.pub-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));grid-gap:4px 16px;gap:4px 16px;padding:0;margin:0;list-style:none}.pub-list a{display:flex;align-items:center;min-height:44px;color:var(--text);overflow-wrap:anywhere}.export-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(0,1fr)}@media (min-width:900px){.export-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}}.export-card p{color:var(--muted)}.export-card .btn{margin-top:auto}.export-card{height:100%}.export-total{font-size:1.4rem;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.h-sm{font-size:calc(1.05rem * var(--head-scale))}.meter>span.warn{background:var(--warn)}.meter>span.over{background:var(--danger)}.stat-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.stat{display:flex;flex-direction:column;gap:4px;padding:14px 16px;background:var(--surface);border:var(--bw) solid var(--border);border-radius:var(--r-l);box-shadow:var(--shadow)}.stat strong{font-family:var(--font-head);font-weight:var(--head-weight);font-size:calc(1.6rem * var(--head-scale));line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat span{color:var(--muted);font-size:.85rem}.stat.bad strong{color:var(--danger)}.stat.warn strong{color:var(--warn)}.chips.admin-nav{margin-bottom:4px}.pager{display:flex;align-items:center;justify-content:space-between;gap:12px}.merge-pair{display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(0,1fr)}@media (min-width:720px){.merge-pair{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.merge-pair .card.source{border-style:dashed}.merge-pair .card.target{border-color:var(--accent)}.plain-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.err-text{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.8rem;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--danger)}.admin-row{display:flex;align-items:center;gap:12px;color:var(--text);text-decoration:none;min-height:44px}.admin-row .grow{display:flex;flex-direction:column;gap:2px}.admin-row:hover strong{color:var(--accent)}.danger-zone{border-color:var(--danger)}.inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}.inline-form .field{flex:1 1;min-width:160px}.kv .meter{margin-top:6px}.kv .badge{white-space:normal;height:auto;min-height:22px;padding-top:2px;padding-bottom:2px}.admin-tabs{flex-wrap:wrap;overflow:visible}.job-main{flex:1 1 200px;min-width:0}@media (max-width:639px){.table.responsive thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.table.responsive,.table.responsive tbody{display:block}.table.responsive tr{display:block;padding:10px 0;border-bottom:var(--bw-line) solid var(--border)}.table.responsive tr:last-child{border-bottom:0}.table.responsive td,.table.responsive th{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:3px 0;border:0;text-align:right}.table.responsive th[scope=row]{display:block;text-align:left;font-size:.95rem;color:var(--text);white-space:normal;padding-bottom:6px}.table.responsive td:before{content:attr(data-label);color:var(--muted);font-size:.85rem;text-align:left}}.gal-walls{display:flex;flex-direction:column;gap:12px}.gal-wall-list{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr))}.gal-wall{justify-content:center;gap:2px;min-height:64px;color:var(--text);text-decoration:none}.gal-wall:hover{border-color:var(--accent)}.gal-wall strong{font-family:var(--font-head);font-weight:var(--head-weight);text-transform:var(--head-case);letter-spacing:var(--head-track);overflow-wrap:anywhere}.kpis{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}@media (min-width:640px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:1000px){.kpis{grid-template-columns:repeat(5,minmax(0,1fr))}}.kpi{display:flex;flex-direction:column;gap:4px;min-width:0;padding:14px;background:var(--surface);border:var(--bw) solid var(--border);border-radius:var(--r-m);box-shadow:var(--tile-shadow)}.kpi-label{font-size:.8rem;font-weight:600;color:var(--muted)}.kpi-value{font-family:var(--font-head);font-weight:var(--head-weight);letter-spacing:var(--head-track);text-transform:none;font-size:calc(1.5rem * var(--head-scale));line-height:1.15;overflow-wrap:anywhere}.kpi.pos .kpi-value{color:var(--ok)}.kpi.neg .kpi-value{color:var(--danger)}.kpi-sub{line-height:1.3}.chart-box{position:relative;width:100%;min-width:0}.chart-box svg{font-family:var(--font-body);overflow:visible}.chart-box .recharts-cartesian-axis-tick-value{font-size:12px}.chart-legend{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.85rem;color:var(--muted)}.chart-legend .key{display:inline-flex;align-items:center;gap:8px}.chart-legend .swatch{display:inline-block;width:24px;height:0;border-top:3px solid var(--c1)}.chart-legend .swatch.dashed{border-top-style:dashed}.chart-legend .swatch.band{height:10px;border:0;background:color-mix(in srgb,var(--c3) 22%,transparent)}.chart-legend .sw-c1{border-color:var(--c1)}.chart-legend .sw-c2{border-color:var(--c2)}.chart-legend .sw-c3{border-color:var(--c3)}.movers{display:grid;grid-gap:20px;gap:20px;grid-template-columns:minmax(0,1fr)}@media (min-width:720px){.movers{grid-template-columns:repeat(2,minmax(0,1fr))}}.mover-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.mover-list>li{border-bottom:var(--bw-line) solid var(--border)}.mover-list>li:last-child{border-bottom:0}.mover{display:flex;align-items:center;gap:12px;min-height:64px;padding:8px 0;color:var(--text);text-decoration:none}.mover .grow{display:flex;flex-direction:column;gap:2px;min-width:0}.mover .grow strong{overflow-wrap:anywhere}.mover-change{display:flex;flex-direction:column;align-items:flex-end;font-weight:700;white-space:nowrap}.mover-change.pos{color:var(--ok)}.mover-change.neg{color:var(--danger)}.value-big{font-family:var(--font-head);font-weight:var(--head-weight);letter-spacing:var(--head-track);font-size:calc(2.2rem * var(--head-scale));line-height:1.1;overflow-wrap:anywhere}.range-bar{position:relative;height:12px;border-radius:var(--r-chip);background:var(--accent-soft);border:var(--bw-line) solid var(--border)}.range-mid{position:absolute;top:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:var(--accent);border:var(--bw-line) solid var(--surface);box-shadow:0 0 0 var(--bw-line) var(--accent)}.obs-list{list-style:none;margin:0;padding:0}.obs,.obs-list{display:flex;flex-direction:column}.obs{gap:2px;padding:10px 0;border-bottom:var(--bw-line) solid var(--border)}.obs:last-child{border-bottom:0}.obs-meta a{overflow-wrap:anywhere}.value-line{display:block;font-weight:600;color:var(--text)}.deck-meta>.value-line{white-space:nowrap}.notif-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.notif{display:flex;gap:12px;padding:14px 12px 14px 14px;border-left:4px solid transparent;border-bottom:var(--bw-line) solid var(--border)}.notif:last-child{border-bottom:0}.notif.unread{border-left-color:var(--accent);background:var(--accent-soft)}.notif-body{display:flex;flex-direction:column;gap:8px;min-width:0;flex:1 1}.notif-body p{overflow-wrap:anywhere}