.af-app{--bg:#08080a;--bg-2:#121017;--bg-3:#1b1823;--bg-hover:#231f2e;--ink-1:#f6f4f0;--ink-2:#b0aebb;--ink-3:#74717f;--line-soft:#ffffff12;--line-strong:#ffffff24;--accent:#c98afc;--accent-dim:#c98afc2e;--accent-ink:#08080a;--accent-glow:#c98afc47;--danger:#ff6a5b;--danger-dim:#ff6a5b29;--warn:#f5c542;--lime:#c8f542;--sidebar:#0b0910;--dfont:"Space Grotesk", "Helvetica Neue", Arial, sans-serif;--pad:18px;background:var(--bg);color:var(--ink-1);-webkit-font-smoothing:antialiased;grid-template-columns:240px 1fr;height:100vh;min-height:100vh;font-family:Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.45;display:grid;overflow:hidden}.af-app .af-main{grid-template-rows:54px 1fr 26px;min-width:0;display:grid;overflow:hidden}.af-app *,.af-app :before,.af-app :after{box-sizing:border-box}.af-app button{color:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit}.af-app input,.af-app textarea,.af-app select{color:inherit;background:var(--bg-3);border:1px solid var(--line-soft);border-radius:7px;outline:none;padding:7px 9px;font-family:inherit;font-size:15px}.af-app input:focus,.af-app textarea:focus,.af-app select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.af-app select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239aa0a6' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:30px}.af-app textarea{resize:vertical;min-height:80px}.af-app .rs-select-trigger{background:var(--dp-bg);border:1px solid var(--dp-line);border-radius:7px;padding:7px 9px}.af-app{--dp-bg:var(--bg-3);--dp-line:var(--line-soft);--dp-radius:7px;--dp-pad:7px 9px;--dp-fs:15px;--dp-ink:var(--ink-1);--dp-mute:var(--ink-3);--dp-accent:var(--accent);--dp-accent-ink:var(--accent-ink);--dp-accent-dim:var(--accent-dim);--dp-pop-bg:var(--bg-2);--dp-pop-line:var(--line-strong);--dp-day-hover:var(--bg-hover)}.af-app .rs-date{margin-bottom:0}.af-app .mono{font-family:JetBrains Mono,ui-monospace,Menlo,Consolas,monospace}.af-app .af-sidebar{background:var(--sidebar);border-right:1px solid var(--line-soft);flex-direction:column;gap:4px;padding:14px 12px;display:flex;overflow:hidden}.af-app .af-brand{border-bottom:1px solid var(--line-soft);align-items:center;gap:11px;margin-bottom:10px;padding:6px 6px 14px;display:flex}.af-app .af-brand-tile{background:linear-gradient(140deg, var(--accent), #7d4fd1);width:38px;height:38px;box-shadow:0 2px 10px var(--accent-dim);border-radius:10px;flex:none;justify-content:center;align-items:center;font-size:22px;display:flex}.af-app .af-brand-tile.has-logo{box-shadow:none;background:0 0;overflow:hidden}.af-app .af-brand-tile .fest-logo-img{object-fit:contain;width:100%;height:100%;display:block}.af-app .af-brand-name{color:var(--ink-1);text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:700;font-family:var(--dfont);overflow:hidden}.af-app .af-brand-meta{align-items:center;gap:6px;margin-top:2px;display:flex}.af-app .af-brand-meta .mono{letter-spacing:.08em;color:var(--ink-3);font-size:11.5px}.af-app .af-brand-sep{background:var(--ink-3);border-radius:50%;width:3px;height:3px}.af-app .af-brand-status{letter-spacing:.12em;text-transform:uppercase;font-size:11px;font-weight:600}.af-app .af-brand-status.live{color:var(--accent)}.af-app .af-brand-status.draft{color:var(--warn)}.af-app .af-brand-status.past{color:var(--ink-3)}.af-app .af-brand-status.archived{color:var(--danger)}.af-app .af-side-label{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);padding:2px 8px 6px;font-size:11px;font-weight:600}.af-app .af-nav-item{text-align:left;width:100%;color:var(--ink-2);border:1px solid #0000;border-radius:8px;align-items:center;gap:11px;padding:8px 11px;font-size:15px;transition:background .12s,color .12s;display:flex}.af-app .af-nav-item:hover:not(.on){background:var(--bg-hover);color:var(--ink-1)}.af-app .af-nav-item.on{background:var(--accent-dim);color:var(--ink-1);box-shadow:inset 2px 0 0 var(--accent);font-weight:600}.af-app .af-nav-item svg{flex:none}.af-app .af-nav-item .nav-count{background:var(--bg-3);color:var(--ink-3);border-radius:999px;padding:1px 7px;font-size:12px}.af-app .af-side-foot{border-top:1px solid var(--line-soft);gap:6px;padding-top:10px;display:flex}.af-app .af-side-foot .btn{background:var(--bg-2);flex:1;justify-content:center;padding:7px;font-size:13px}.af-app .af-topbar{border-bottom:1px solid var(--line-soft);background:var(--bg-2);align-items:center;gap:14px;padding:0 20px;display:flex}.af-app .crumb-back{border:1px solid var(--line-soft);background:var(--bg-3);width:32px;height:32px;color:var(--ink-2);border-radius:8px;flex:none;justify-content:center;align-items:center;transition:background .12s,color .12s,border-color .12s;display:inline-flex}.af-app .crumb-back:hover{background:var(--bg-hover);color:var(--ink-1);border-color:var(--line-strong)}.af-app .af-section-title{color:var(--ink-1);font-size:17px;font-weight:700;font-family:var(--dfont);letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.af-app .af-section-sub{color:var(--ink-3);margin-top:1px;font-size:13px}.af-app .af-saved{color:var(--ink-3);white-space:nowrap;align-items:center;gap:8px;margin-right:4px;font-size:13px;display:flex}.af-app .af-saved-dot{background:var(--lime);width:6px;height:6px;box-shadow:0 0 8px var(--lime);border-radius:50%}.af-app .af-saved.dirty{color:var(--warn)}.af-app .af-saved.dirty .af-saved-dot{background:var(--warn);box-shadow:0 0 8px var(--warn)}.af-app .af-scroll{padding:var(--pad) 20px;overflow-y:auto}.af-app .af-canvas{max-width:1080px;margin:0 auto}.af-app .af-detail-grid{grid-template-columns:1.55fr 1fr;align-items:start;gap:12px;margin-bottom:12px;display:grid}.af-app .af-detail-side{flex-direction:column;gap:12px;display:flex}.af-app .af-card-h{color:var(--ink-1);font-size:15.5px;font-weight:600}.af-app .af-meta-row{justify-content:space-between;padding:1px 0;font-size:14px;display:flex}.af-app .af-meta-row .k{color:var(--ink-3)}.af-app .af-meta-row .v{color:var(--ink-2)}@media (width<=860px){.af-app .af-detail-grid{grid-template-columns:1fr}}.af-app .panel{background:var(--bg-2);border:1px solid var(--line-soft);border-radius:10px;margin-bottom:14px;padding:18px}.af-app .panel-title{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:0 0 12px;font-size:12px;font-weight:600}.af-app{--af-bg-2:var(--bg-2);--af-bg-3:var(--bg-3);--af-bg-hover:var(--bg-hover)}.af-app .af-portal-embed{--panel:var(--af-bg-2);--panel-2:var(--af-bg-3);--panel-3:var(--af-bg-hover);--bg-2:var(--af-bg-3);--line:var(--line-soft);--line-2:var(--line-strong);--fg:var(--ink-1);--fg-2:var(--ink-2);--mute:var(--ink-3);--mute-2:var(--ink-3);--brand:var(--accent);--brand-2:var(--accent);--brand-dim:var(--accent-dim);--brand-ink:var(--accent-ink);--brand-glow:var(--accent-dim);--pass:var(--lime);--pass-dim:#c8f54229;--fail:var(--danger);--fail-dim:var(--danger-dim);--amber:var(--warn);--amber-dim:#f5c54229;--r-lg:10px;background:0 0;min-height:0;margin-bottom:14px;display:block;position:static}.af-app .af-portal-embed:after{content:none}.af-app .af-portal-embed .card{padding:18px}.af-app .grid-2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.af-app .grid-3{grid-template-columns:1fr 1fr 1fr;gap:12px;display:grid}.af-app .field{flex-direction:column;gap:5px;min-width:0;display:flex}.af-app .field label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-size:10px}.af-app .field .hint{color:var(--ink-3);font-size:11px}.af-app .toggle-row{border-top:1px dashed var(--line-soft);align-items:center;gap:10px;padding:8px 0;display:flex}.af-app .toggle-row:first-of-type{border-top:0}.af-app .toggle-row .label{color:var(--ink-1);flex:1;font-size:13px}.af-app .toggle-row .sub{color:var(--ink-3);font-size:11px}.af-app .switch{background:var(--bg-3);border:1px solid var(--line-soft);border-radius:999px;width:36px;height:20px;transition:background .12s;position:relative}.af-app .switch:after{content:"";background:var(--ink-3);border-radius:50%;width:14px;height:14px;transition:left .12s,background .12s;position:absolute;top:2px;left:2px}.af-app .switch.on{background:var(--accent-dim);border-color:var(--accent)}.af-app .switch.on:after{background:var(--accent);left:18px}.af-app .btn{letter-spacing:.04em;border:1px solid var(--line-strong);background:var(--bg-3);color:var(--ink-1);border-radius:6px;align-items:center;gap:6px;padding:7px 12px;font-size:12px;transition:all .12s;display:inline-flex}.af-app .btn:hover{background:var(--bg-hover);border-color:var(--line-strong)}.af-app .btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}.af-app .btn.primary:hover{box-shadow:0 0 0 3px var(--accent-dim)}.af-app .btn.ghost{background:0 0}.af-app .btn.danger{color:var(--danger);border-color:var(--danger-dim)}.af-app .btn.danger:hover{background:var(--danger-dim)}.af-app .btn[disabled]{opacity:.4;cursor:not-allowed}.af-app .btn-icon{width:28px;height:28px;color:var(--ink-2);border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.af-app .btn-icon:hover{background:var(--bg-hover);color:var(--ink-1);border-color:var(--line-soft)}.af-app .btn-icon.danger{color:var(--danger)}.af-app .btn-icon.danger:hover{background:var(--danger-dim)}.af-app .row-list{border:1px solid var(--line-soft);background:var(--bg-2);border-radius:8px;overflow:hidden}.af-app .row{border-bottom:1px solid var(--line-soft);grid-template-columns:28px minmax(0,1.6fr) minmax(0,1fr) minmax(0,1fr) minmax(0,90px) minmax(0,90px) 120px;align-items:center;gap:10px;padding:10px 12px;font-size:13px;display:grid}.af-app .row:last-child{border-bottom:0}.af-app .row.head{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);background:var(--bg-3);font-size:10px}.af-app .row .color-swatch{border:1px solid var(--line-strong);border-radius:5px;width:48px;height:22px;display:inline-block;box-shadow:inset 0 0 0 1px #ffffff1a}.af-app .af-artist-day-select .rs-select-trigger{min-height:0;padding:5px 8px;font-size:13px}.af-app input.field-error{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger-dim)}.af-app .row .row-actions{justify-content:flex-end;gap:4px;display:flex}.af-app .row input,.af-app .row select{padding:5px 8px}.af-app .empty{text-align:center;color:var(--ink-3);letter-spacing:.1em;text-transform:uppercase;padding:28px;font-size:12px}.af-app .af-statusbar{border-top:1px solid var(--line-soft);background:var(--bg-2);color:var(--ink-3);letter-spacing:.06em;align-items:center;gap:12px;padding:0 20px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12.5px;display:flex}.af-app .af-statusbar .ok{color:var(--lime)}.af-app .af-statusbar .err{color:var(--danger)}.af-app .toast-stack{z-index:9999;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:48px;right:24px}.af-app .toast{background:var(--bg-3);border:1px solid var(--line-strong);color:var(--ink-1);border-radius:8px;min-width:220px;padding:10px 14px;font-size:12px;box-shadow:0 12px 24px #0006}.af-app .toast.ok{border-color:var(--accent-dim)}.af-app .toast.danger{border-color:var(--danger-dim);color:var(--danger)}.af-app .filters{align-items:center;gap:10px;margin-bottom:12px;display:flex}.af-app .filters input.search{flex:1}.af-app .pill-group{border:1px solid var(--line-soft);border-radius:999px;display:inline-flex;overflow:hidden}.af-app .pill{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);background:var(--bg-2);padding:5px 12px;font-size:11px}.af-app .pill.on{background:var(--accent-dim);color:var(--accent)}.af-app .pill:hover:not(.on){color:var(--ink-2)}.af-app .danger-zone{border:1px solid var(--danger-dim);background:#ff6a5b0a;border-radius:10px;padding:18px}.af-app .danger-zone h3{letter-spacing:.12em;text-transform:uppercase;color:var(--danger);margin:0 0 12px;font-size:11px}.af-app .danger-zone .dz-row{border-top:1px dashed var(--danger-dim);align-items:center;gap:12px;padding:10px 0;display:flex}.af-app .danger-zone .dz-row:first-of-type{border-top:0}.af-app .danger-zone .dz-row .label{flex:1}.af-app .danger-zone .dz-row .label .t{color:var(--ink-1);font-size:13px}.af-app .danger-zone .dz-row .label .s{color:var(--ink-3);font-size:11px}.af-app .af-leaflet{border:1px solid var(--line-soft);background:var(--bg-3);border-radius:8px;width:100%;height:360px;overflow:hidden}.af-app .leaflet-container{background:var(--bg-3);font-family:inherit}.af-app .leaflet-div-icon{background:0 0;border:0}.af-app .geo-corner{letter-spacing:.05em;color:#07080a;cursor:grab;border-radius:5px;justify-content:center;align-items:center;font-size:10px;font-weight:800;display:flex;box-shadow:0 1px 6px #00000080}.af-app .geo-corner.sw{color:#fff;background:#a442f5}.af-app .geo-corner.ne{color:#07080a;background:#f5a442}.af-app .cal-img-wrap{max-width:100%;display:inline-block;position:relative}.af-app .cal-img-wrap img{cursor:crosshair;border:1px solid var(--line-soft);border-radius:8px;max-width:100%;display:block}.af-app .cal-dot{background:var(--accent);color:#07080a;pointer-events:none;border-radius:50%;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 2px;font-size:11px;font-weight:800;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 5px #00000080}.af-app .cal-dot--inline{flex:none;position:static;transform:none}.af-app .cal-dot.hl{box-shadow:0 0 0 3px var(--accent-dim), 0 1px 5px #00000080;transform:translate(-50%,-50%)scale(1.2)}.af-app .cal-dot--inline.hl,.af-app .cal-list-row.hl .cal-dot--inline{transform:scale(1.2)}.af-app .cal-list-row.hl{background:var(--accent-dim);border-radius:6px}.af-app .cal-canvas{height:420px}.af-app .cal-trace-bar{align-items:center;gap:10px;margin-bottom:8px;display:flex}.af-app .cal-trace-bar input[type=range]{accent-color:var(--accent)}.af-app .cal-list{flex-direction:column;gap:6px;margin-top:10px;display:flex}.af-app .cal-list-row{align-items:center;gap:6px;display:flex}.af-app .cal-list-row input{flex:1;min-width:0;padding:5px 8px}.af-app .cal-empty{color:var(--ink-3);margin-top:10px;font-size:12px}.af-app .ml-layers-list .cal-empty{margin:0;padding:14px 12px}.af-app .map-mode-banner{background:var(--bg-3);border:1px solid var(--line-soft);border-left:3px solid var(--accent);color:var(--ink-2);border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px;padding:10px 14px;font-size:13px;display:flex}.af-app .map-mode-banner b{color:var(--ink-1)}.af-app .map-mode-banner .warn{color:var(--warn)}.af-app .geo-loc-search{gap:8px;margin-bottom:10px;display:flex}.af-app .geo-loc-search input{flex:1}.geo-pick-popup .leaflet-popup-content-wrapper{background:var(--bg-2);color:var(--ink-1);border:1px solid var(--line-strong);border-radius:10px;box-shadow:0 8px 28px #00000080}.geo-pick-popup .leaflet-popup-tip{background:var(--bg-2);border:1px solid var(--line-strong)}.geo-pick-popup .leaflet-popup-close-button{color:var(--ink-3)}.geo-pick-popup .geo-pick-coords{color:var(--ink-1);margin-bottom:8px;font-size:12px}.geo-pick-popup .geo-pick-actions{gap:6px;display:flex}.geo-pick-popup .geo-pick-actions .btn{padding:4px 10px;font-size:11px}.af-app .mlayers-tools{flex-wrap:wrap;gap:4px;display:inline-flex}.af-app .mlayers-tool{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);border:1px solid var(--line-soft);background:var(--bg-3);border-radius:6px;padding:5px 12px;font-size:11px}.af-app .mlayers-tool:hover{color:var(--ink-1);border-color:var(--line-strong)}.af-app .mlayers-tool.active{background:var(--accent-dim);color:var(--accent);border-color:var(--accent)}.af-app .mlayers-status{border:1px solid var(--line-soft);background:var(--bg-2);color:var(--ink-2);border-radius:8px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;padding:8px 12px;font-size:12px;display:flex}.af-app .mlayers-trace{align-items:center;gap:8px;display:inline-flex}.af-app .mlayers-trace input[type=range]{accent-color:var(--accent)}.af-app .mlayers-grid{grid-template-columns:1fr 280px;align-items:start;gap:12px;display:grid}.af-app .mlayers-map{z-index:0;height:520px;position:relative}.af-app .mlayers-topbar{z-index:30;background:var(--bg);padding:4px 0 2px;position:sticky;top:0}.af-app .mlayers-topbar:before{content:"";top:calc(-1 * var(--pad));height:var(--pad);background:var(--bg);position:absolute;left:-20px;right:-20px}.af-app .ml-transform-btn{letter-spacing:.05em;white-space:nowrap;color:var(--ink-2);border:1px solid var(--line-soft);background:var(--bg-2);border-radius:5px;flex-shrink:0;padding:3px 8px;font-size:10px}.af-app .ml-transform-btn:hover{color:var(--ink-1);border-color:var(--line-strong)}.af-app .mlayers-side{border:1px solid var(--line-soft);background:var(--bg-2);border-radius:8px;overflow:hidden}.af-app .mlayers-side-h{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--line-soft);background:var(--bg-3);padding:10px 12px;font-size:10px}.af-app .ml-layers-list{max-height:300px;overflow-y:auto}.af-app .ml-layer-group-h{cursor:pointer;letter-spacing:.04em;color:var(--ink-2);background:var(--bg-3);border-bottom:1px solid var(--line-soft);align-items:center;gap:6px;padding:6px 10px;font-size:11px;font-weight:700;display:flex}.af-app .ml-layer-group-h:hover{color:var(--ink-1)}.af-app .ml-group-caret{text-align:center;width:10px;color:var(--ink-3)}.af-app .ml-group-name{text-overflow:ellipsis;white-space:nowrap;text-transform:none;flex:1;min-width:0;overflow:hidden}.af-app .ml-group-count{color:var(--ink-3);font-weight:500}.af-app .ml-transform-form{border-bottom:1px solid var(--line-soft);background:var(--bg-3);flex-direction:column;gap:4px;padding:10px 12px;display:flex}.af-app .ml-transform-form label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-top:4px;font-size:10px}.af-app .ml-layer-row{border-bottom:1px solid var(--line-soft);cursor:pointer;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.af-app .ml-layer-row:hover{background:var(--bg-hover)}.af-app .ml-layer-row.selected{background:var(--accent-dim)}.af-app .ml-layer-icon{text-align:center;width:18px}.af-app .ml-layer-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.af-app .ml-mini-btn{width:24px;height:24px;color:var(--ink-2);border-radius:5px;justify-content:center;align-items:center;display:inline-flex}.af-app .ml-mini-btn:hover{background:var(--bg-3);color:var(--ink-1)}.af-app .ml-edit-panel{border-top:1px solid var(--line-soft);flex-direction:column;gap:6px;padding:12px;display:flex}.af-app .ml-edit-title{color:var(--ink-1);margin-bottom:2px;font-size:12px;font-weight:800}.af-app .ml-edit-panel label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-top:4px;font-size:10px}.af-app .ml-edit-panel input[type=color]{height:30px;padding:2px}.af-app .ml-edit-panel input[type=range]{width:100%}.af-app .ml-check{text-transform:none;letter-spacing:0;color:var(--ink-2);align-items:center;gap:6px;font-size:12px;display:flex}.af-app .ml-check input{width:auto}.af-app .ml-emoji-quick{flex-wrap:wrap;gap:4px;display:flex}.af-app .ml-emoji-quick button{border:1px solid var(--line-soft);background:var(--bg-3);border-radius:6px;width:28px;height:28px;font-size:15px}.af-app .ml-emoji-quick button:hover{border-color:var(--accent)}.af-app .ml-poi-quick button{justify-content:center;align-items:center;display:flex}.af-app .ml-poi-quick button.active{border-color:var(--accent);background:var(--bg-2)}.af-app .ml-poi-quick button img{width:16px;height:16px;display:block}.af-app .ml-poi-glyph{vertical-align:-2px;width:14px;height:14px}.af-app .overlay-icon-pin{border:2px solid #ffffffd9;border-radius:50% 50% 50% 0;justify-content:center;align-items:center;width:28px;height:28px;font-size:15px;display:flex;transform:rotate(-45deg);box-shadow:0 2px 8px #00000080}.af-app .overlay-icon-pin>*{transform:rotate(45deg)}.af-app .overlay-icon-pin img{width:16px;height:16px;display:block}.af-app .overlay-icon-label{width:max-content;transform:translate(calc(14px - 50%))}.af-app .overlay-icon-label,.af-app .overlay-label-text{white-space:nowrap;color:#fff;background:#07080aeb;border:1px solid #ffffff40;border-radius:6px;margin-top:9px;padding:2px 8px;font-size:12.5px;font-weight:700;box-shadow:0 1px 4px #0006}.af-app .overlay-label-text{box-shadow:none;background:0 0;margin-top:3px;font-weight:700}.af-app .overlay-vertex-dot{background:var(--accent);cursor:grab;border:2px solid #fff;border-radius:50%;width:12px;height:12px;box-shadow:0 1px 5px #00000080}.af-app .overlay-vertex-dot.hollow{border:2px dashed var(--accent);cursor:copy;opacity:.85;background:0 0;width:8px;height:8px}.af-app .ov-corner{letter-spacing:.05em;color:#fff;cursor:nwse-resize;background:#a442f5;border-radius:5px;justify-content:center;align-items:center;width:24px;height:18px;font-size:9px;font-weight:800;display:flex;box-shadow:0 1px 6px #00000080}.af-app .ov-move{background:var(--accent);color:#07080a;cursor:move;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:12px;display:flex;box-shadow:0 1px 6px #00000080}.af-app .ml-zorder{flex-direction:column;display:flex}.af-app .ml-zorder button{width:16px;height:14px;color:var(--ink-3);justify-content:center;align-items:center;font-size:9px;line-height:1;display:flex}.af-app .ml-zorder button:hover:not(:disabled){color:var(--ink-1)}.af-app .ml-zorder button:disabled{opacity:.3;cursor:default}.af-app .stage-unsaved{background:var(--bg-3)}.af-app .af-drop{text-align:center;cursor:pointer;border:1.5px dashed var(--line-strong);background:var(--bg-3);color:var(--ink-3);border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:26px 18px;transition:border-color .12s,background .12s,color .12s;display:flex}.af-app .af-drop:hover{border-color:var(--accent);color:var(--ink-2)}.af-app .af-drop.drag{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}.af-app .af-drop-t{color:var(--ink-1);font-size:13px;font-weight:600}.af-app .af-drop-s{color:var(--ink-3);font-size:11px}.af-app .pub-panel-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.af-app .pub-toggle{cursor:pointer;background:0 0;border:0;flex-shrink:0;padding:0}.af-app .pub-toggle[disabled]{cursor:default;opacity:.7}.af-app .pub-toggle-track{background:var(--bg-3);border:1px solid var(--line-soft);border-radius:999px;grid-template-columns:1fr 1fr;min-width:232px;display:grid;position:relative;overflow:hidden}.af-app .pub-toggle-knob{background:var(--warn);border-radius:999px;width:50%;transition:transform .32s cubic-bezier(.34,1.32,.5,1),background .25s;position:absolute;top:0;bottom:0;left:0}.af-app .pub-toggle.on .pub-toggle-knob{background:var(--accent);transform:translate(100%)}.af-app .pub-opt{z-index:1;text-align:center;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);-webkit-user-select:none;user-select:none;padding:9px 18px;font-size:11px;font-weight:700;transition:color .22s;position:relative}.af-app .pub-toggle:not(.on) .pub-opt.draft,.af-app .pub-toggle.on .pub-opt.live{color:var(--bg)}.af-app .panel.card-compact{margin-bottom:10px;padding:14px}.af-app .panel.card-compact .panel-title{margin-bottom:6px}.af-app .panel.card-compact .card-intro{font-size:11px;line-height:1.4;margin:-2px 0 10px!important}.af-app .panel.card-compact .af-drop{text-align:left;border-radius:9px;flex-direction:row;align-items:center;gap:10px;padding:9px 14px;display:inline-flex}.af-app .panel.card-compact .af-drop>svg{flex-shrink:0;width:17px;height:17px}.af-app .panel.card-compact .af-drop-s{font-size:10.5px}@media (width<=760px){.af-app .mlayers-grid{grid-template-columns:1fr}}.af-app .imp-preview-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.af-app .imp-preview-head h3{margin:0;font-size:16px}.af-app .imp-summary{flex-wrap:wrap;gap:6px;display:flex}.af-app .imp-summary .chip{letter-spacing:.1em;text-transform:uppercase;background:var(--bg-3);color:var(--ink-2);border:1px solid var(--line-soft);border-radius:999px;padding:2px 8px;font-size:10px}.af-app .imp-summary .chip.add{color:var(--accent);border-color:var(--accent-dim)}.af-app .imp-summary .chip.update{color:var(--warn);border-color:#f5c54240}.af-app .imp-summary .chip.conflicts{color:var(--danger);border-color:var(--danger-dim)}.af-app .imp-section{border:1px solid var(--line-soft);background:var(--bg-2);border-radius:8px;margin-bottom:10px;padding:10px}.af-app .imp-section h4{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin:0 0 6px;font-size:11px}.af-app .imp-section.collapsed .imp-rows{display:none}.af-app .imp-section .toggle-collapse{float:right;cursor:pointer}.af-app .imp-row{border-radius:6px;grid-template-columns:70px 1fr;gap:10px;padding:6px 8px;font-size:12px;display:grid}.af-app .imp-row+.imp-row{border-top:1px solid var(--line-soft)}.af-app .imp-row.add,.af-app .imp-row.update{color:var(--ink-1)}.af-app .imp-row.unchanged{color:var(--ink-3)}.af-app .imp-row.has-conflict{background:#ff6a5b0f}.af-app .imp-tag{background:var(--bg-3);color:var(--ink-2);border:1px solid var(--line-soft);text-align:center;border-radius:4px;align-self:start;height:18px;padding:1px 6px;font-size:10px;line-height:16px}.af-app .imp-row.add .imp-tag{color:var(--accent);border-color:var(--accent-dim)}.af-app .imp-row.update .imp-tag{color:var(--warn);border-color:#f5c54240}.af-app .imp-diff{color:var(--ink-3);margin-top:2px;font-size:11px}.af-app .imp-diff .from{text-decoration:line-through}.af-app .imp-diff .to{color:var(--accent)}.af-app .imp-conflict{color:var(--danger);margin-top:2px;font-size:11px}.af-app .imp-history-row{border:1px solid var(--line-soft);background:var(--bg-2);border-radius:8px;grid-template-columns:90px 1fr 90px 110px;align-items:center;gap:10px;margin-bottom:6px;padding:8px 10px;font-size:12px;display:grid}.af-app .imp-meta{color:var(--ink-3);letter-spacing:.08em;font-family:JetBrains Mono,monospace;font-size:10px}.af-app .imp-status{letter-spacing:.1em;text-transform:uppercase;background:var(--bg-3);color:var(--ink-2);border:1px solid var(--line-soft);text-align:center;border-radius:999px;padding:2px 8px;font-size:10px}.af-app .imp-status.staged{color:var(--warn);border-color:#f5c54240}.af-app .imp-status.committed{color:var(--accent);border-color:var(--accent-dim)}.af-app .imp-status.discarded,.af-app .imp-status.rolled_back{color:var(--ink-3)}.af-app .nav-count.lint{background:var(--danger-dim);color:var(--danger)}.af-app .lint-clear{color:var(--ink-2);align-items:center;gap:10px;font-size:13px;display:flex}.af-app .lint-clear-dot{background:var(--lime);border-radius:50%;flex-shrink:0;width:9px;height:9px}.af-app .lint-summary{color:var(--ink-2);align-items:center;gap:6px;font-size:13px;display:flex}.af-app .lint-count{font-weight:700}.af-app .lint-count.err{color:var(--danger)}.af-app .lint-count.warn{color:var(--warn)}.af-app .lint-rule-count{color:var(--ink-3);margin-left:6px;font-size:11px;font-weight:400}.af-app .lint-list{flex-direction:column;gap:6px;display:flex}.af-app .lint-row{color:var(--ink-1);align-items:baseline;gap:9px;font-size:12.5px;line-height:1.5;display:flex}.af-app .lint-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;position:relative;top:-1px}.af-app .lint-row.error .lint-dot{background:var(--danger)}.af-app .lint-row.warn .lint-dot{background:var(--warn)}.af-app .lint-row.clickable{text-align:left;cursor:pointer;width:100%;font:inherit;background:0 0;border:none;border-radius:6px;margin:0 -6px;padding:4px 6px}.af-app .lint-row.clickable:hover{background:var(--bg-hover);color:var(--accent)}.af-app .snap-list{flex-direction:column;gap:8px;display:flex}.af-app .snap-row{background:var(--bg-3);border:1px solid var(--line-soft);border-radius:9px;align-items:center;gap:12px;padding:9px 12px;display:flex}.af-app .snap-kind{letter-spacing:.12em;border:1px solid var(--line-strong);color:var(--ink-3);border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:9px}.af-app .snap-kind.named{color:var(--accent);border-color:var(--accent)}.af-app .snap-main{flex:1;min-width:0}.af-app .snap-name{color:var(--ink-1);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.af-app .snap-meta{color:var(--ink-3);margin-top:2px;font-size:10px}.af-app .snap-del{color:var(--ink-3);padding:4px 9px}.af-app .snap-del:hover{color:var(--danger)}