:root{--viola:#3c2282;--viola-700:#2e1a66;--viola-900:#1a1230;--black:#000618;--white:#fbfaf7;--event:#00aa95;--event-600:#00937f;--event-light:#a5d5cb;--event-ground:#e6f5f2;--amber:#f7a83e;--amber-ground:#feead2;--amber-text:#a15c00;--alert:#ed749e;--alert-ground:#f7d6e2;--alert-text:#c33b68;--ink:#1a1230;--muted:#6b6486;--lav:#8674b5;--line:rgba(60,34,130,0.14);--line-strong:rgba(60,34,130,0.24);--bg:#fbfaf7;--card:#ffffff;--green:var(--event);--red:var(--alert-text);--disp:var(--font-disp),"Inter Tight",system-ui,"Segoe UI",sans-serif;--body:var(--font-body),"Inter",system-ui,"Segoe UI",sans-serif;--mono:var(--font-mono),ui-monospace,"Cascadia Code",Consolas,monospace;--radius:14px;--radius-sm:10px;--shadow:0 1px 2px rgba(26,18,48,0.06),0 12px 30px -18px rgba(26,18,48,0.28);--shadow-lg:0 24px 60px -28px rgba(26,18,48,0.45)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--body);color:var(--ink);background:var(--bg);line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--disp);letter-spacing:-.02em;line-height:1.06}a{color:var(--viola);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2.5px solid var(--event);outline-offset:2px;border-radius:3px}.rapport{position:relative;isolation:isolate}.rapport:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='20' viewBox='0 0 26 20'%3E%3Cpath fill='%2300aa95' transform='translate(-55.05 -37.13)' d='M70.66,42.131 L70.66,44.628 C70.66,45.706 70.364,46.563 69.772,47.2 C69.18,47.838 68.368,48.156 67.336,48.156 C66.335,48.156 65.538,47.838 64.946,47.2 C64.354,46.563 64.058,45.706 64.058,44.628 L64.058,42.131 L60.052,42.131 L60.052,44.628 C60.052,46.039 60.359,47.265 60.974,48.304 C61.588,49.344 62.445,50.148 63.546,50.717 C64.646,51.286 65.925,51.571 67.382,51.571 C68.823,51.571 70.091,51.286 71.183,50.717 C72.276,50.148 73.13,49.344 73.744,48.304 C74.359,47.265 74.666,46.039 74.666,44.628 L74.666,42.131 L70.66,42.131 Z'/%3E%3C/svg%3E");background-size:26px 20px;opacity:.1}.wordmark{font-family:var(--disp);font-weight:800;letter-spacing:-.03em;font-size:19px;color:var(--white)}.wordmark .u{color:var(--event)}.brandmark{display:inline-flex;align-items:center;gap:11px;text-decoration:none}.brandmark img{width:34px;height:34px;display:block}.brandmark .sub{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--lav)}.layout{grid-template-columns:1fr 360px;grid-template-rows:auto 1fr;grid-template-areas:"top top" "stage side";grid-gap:1.15rem;gap:1.15rem;padding:1.25rem}.layout,.loading{display:grid;min-height:100vh}.loading{place-items:center;color:var(--muted)}.topbar{grid-area:top;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.topbar h1{font-size:1.5rem;font-weight:700;margin:0}.topbar .muted a{color:var(--muted);text-decoration:none}.topbar .muted a:hover{color:var(--viola)}.controls{display:flex;align-items:center;gap:1rem}.controls select{font:inherit;padding:.4rem .6rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:#fff;color:var(--ink)}.lang{display:inline-flex;gap:2px;padding:3px;border-radius:100px;background:rgba(60,34,130,.07)}.lang button{border:0;background:transparent;color:var(--muted);font-family:var(--mono);font-size:12px;padding:5px 12px;border-radius:100px;cursor:pointer}.lang button.on{background:var(--viola);color:#fff}.stage{grid-area:stage;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:.6rem;overflow:auto;box-shadow:var(--shadow)}.sidebar{grid-area:side;display:flex;flex-direction:column;gap:1rem}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.15rem;box-shadow:var(--shadow)}.panel h2{font-size:1.05rem;font-weight:700;margin:0 0 .75rem}.muted{color:var(--muted)}.ok{color:var(--event-600);font-weight:600}.legend{display:flex;gap:1rem;flex-wrap:wrap;font-size:.85rem;color:var(--muted)}.dot{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:middle;margin-right:5px}.dot-confirmed{background:var(--event)}.dot-auto{background:var(--amber)}.dot-conflict{background:var(--alert)}.badge{display:inline-flex;align-items:center;padding:.15rem .6rem;border-radius:999px;font-family:var(--mono);font-size:.76rem;font-weight:500}.badge-confirmed{background:rgba(0,170,149,.12);color:var(--event-600)}.badge-auto{background:var(--amber-ground);color:var(--amber-text)}.badge-conflict{background:var(--alert-ground);color:var(--alert-text)}.kv{display:grid;grid-template-columns:auto 1fr;grid-gap:.5rem .85rem;gap:.5rem .85rem;margin:0;font-size:.92rem}.kv dt{color:var(--muted)}.kv dd{margin:0;font-family:var(--mono)}.conflict-note{color:var(--alert-text);font-size:.85rem}.checklist-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.checklist-head h2{margin:0}.checklist-head button{margin:0;white-space:nowrap}.checklist{list-style:none;margin:.5rem 0 0;padding:0;max-height:40vh;overflow:auto;display:flex;flex-direction:column;gap:6px}.check-item input[type=checkbox]{cursor:pointer;flex:none;accent-color:var(--event)}.check-item input[type=checkbox]:disabled{cursor:not-allowed}.check-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .6rem;border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;font-size:.9rem;background:#fff;transition:border-color .15s}.check-item:hover{border-color:var(--line-strong)}.check-item.active{border-color:var(--event);box-shadow:0 0 0 2px rgba(0,170,149,.15)}.check-item .muted{font-size:.8rem}button{font:inherit;font-family:var(--disp);font-weight:600;border-radius:100px;cursor:pointer;transition:.16s}button:disabled{cursor:not-allowed;opacity:.55}.panel button{border:1px solid var(--line-strong);background:#fff;color:var(--viola);padding:.4rem .8rem;margin-left:.4rem}.panel button:hover:not(:disabled){border-color:var(--viola)}.panel button.primary{display:block;width:100%;margin:1rem 0 0;background:var(--event);color:#fff;border:none;padding:.65rem}.panel button.primary:hover:not(:disabled){background:var(--event-600)}.release{border:none;padding:.85rem;font-weight:700;color:#fff;background:var(--event);border-radius:100px}.release:hover:not(:disabled){background:var(--event-600)}.release:disabled{background:var(--amber-ground);color:var(--amber-text)}input,select,textarea{font:inherit}input{font-family:var(--body);color:var(--ink);background:#fff;padding:.5rem .65rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--event);box-shadow:0 0 0 3px rgba(0,170,149,.16)}.book{max-width:1320px;margin:0 auto;padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.book .topbar{margin-bottom:0}.book h1{font-size:1.9rem;font-weight:800}.book .stage{padding:.6rem;background:var(--viola);border:none}.level-tabs{display:inline-flex;align-items:center;gap:.35rem}.level-tabs button{border:1px solid var(--line-strong);background:#fff;padding:.35rem .8rem;cursor:pointer;border-radius:100px;font-weight:600;color:var(--muted)}.level-tabs button.on{background:var(--viola);color:#fff;border-color:var(--viola)}.acct-btn{border:1px solid var(--line-strong);background:#fff;color:var(--viola);padding:.35rem .8rem;border-radius:100px}.acct-btn:hover{border-color:var(--viola)}.book-gate{display:grid;place-items:center;min-height:100vh;padding:1rem;background:var(--event-ground)}.book-gate .panel{width:min(440px,100%);text-align:center}.book-gate h1{font-size:1.6rem;font-weight:800}.book-gate form{display:flex;gap:.5rem;margin-top:1rem}.book-gate input{flex:1 1;text-align:center;text-transform:uppercase;letter-spacing:.1em}.book-gate .primary{white-space:nowrap;background:var(--event);color:#fff;border:none;padding:.5rem 1.1rem;border-radius:100px}.book-gate .primary:hover{background:var(--event-600)}.modal-backdrop{position:fixed;inset:0;background:rgba(26,18,48,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;padding:1rem;z-index:10}.modal{background:#fff;border-radius:var(--radius);padding:1.5rem;width:min(440px,100%);box-shadow:var(--shadow-lg)}.modal h2{margin:0 0 1rem;font-size:1.25rem;font-weight:700}.modal form{gap:.6rem}.modal form,.modal label{display:flex;flex-direction:column}.modal label{gap:.3rem;font-size:.82rem;font-weight:600;color:var(--viola-900)}.modal input,.modal textarea{font:inherit;color:var(--ink);padding:.55rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm)}.modal textarea{min-height:4rem;resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}.modal-actions button{border:1px solid var(--line-strong);background:#fff;color:var(--viola);padding:.55rem 1rem;border-radius:100px}.modal-actions .primary{background:var(--event);color:#fff;border:none}.modal-actions .primary:hover{background:var(--event-600)}.auth-gate{display:grid;place-items:center;min-height:100vh;padding:1rem;background:var(--viola)}.auth-gate:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='20' viewBox='0 0 26 20'%3E%3Cpath fill='%2300aa95' transform='translate(-55.05 -37.13)' d='M70.66,42.131 L70.66,44.628 C70.66,45.706 70.364,46.563 69.772,47.2 C69.18,47.838 68.368,48.156 67.336,48.156 C66.335,48.156 65.538,47.838 64.946,47.2 C64.354,46.563 64.058,45.706 64.058,44.628 L64.058,42.131 L60.052,42.131 L60.052,44.628 C60.052,46.039 60.359,47.265 60.974,48.304 C61.588,49.344 62.445,50.148 63.546,50.717 C64.646,51.286 65.925,51.571 67.382,51.571 C68.823,51.571 70.091,51.286 71.183,50.717 C72.276,50.148 73.13,49.344 73.744,48.304 C74.359,47.265 74.666,46.039 74.666,44.628 L74.666,42.131 L70.66,42.131 Z'/%3E%3C/svg%3E");background-size:26px 20px;opacity:.12}.auth-card{width:min(380px,100%);position:relative;z-index:1}.auth-card h1{font-size:1.4rem;font-weight:800;margin:0 0 .25rem}.auth-card .muted{margin:0 0 1rem;font-size:.9rem}.auth-card .lang{position:absolute;top:1rem;right:1rem}.auth-card label{display:flex;flex-direction:column;gap:.25rem;font-size:.82rem;font-weight:600;color:var(--viola-900);margin-bottom:.75rem}.auth-card input{font:inherit;color:var(--ink);padding:.55rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm)}.auth-card .primary{display:block;width:100%;margin-top:.5rem;background:var(--event);color:#fff;border:none;padding:.65rem;border-radius:100px}.auth-card .primary:hover{background:var(--event-600)}.authbar{display:flex;align-items:center;gap:.75rem;font-size:.85rem;flex-wrap:wrap}.authbar a{color:inherit;text-decoration:none;border-bottom:1px solid}.authbar button{border:1px solid var(--line-strong);background:transparent;color:inherit;padding:.3rem .7rem;border-radius:100px}.account-page{max-width:760px;margin:0 auto;padding:1.25rem;display:flex;flex-direction:column;gap:1rem}.account-page .topbar h1{font-size:1.4rem;margin:0}.account-page .topbar a{color:var(--muted);text-decoration:none}.account-page .topbar a:hover{color:var(--viola)}.user-form{display:flex;flex-direction:column;gap:.75rem;max-width:360px}.account-page form label,.user-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.82rem;font-weight:600;color:var(--viola-900)}.account-page form input,.user-form input{font:inherit;color:var(--ink);padding:.55rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm)}.account-page .primary,.user-form .primary{background:var(--event);color:#fff;border:none;padding:.6rem 1rem;border-radius:100px}.user-table{width:100%;border-collapse:collapse;font-size:.9rem}.user-table td,.user-table th{text-align:left;padding:.7rem .6rem;border-bottom:1px solid var(--line)}.user-table th{color:var(--muted);font-weight:500;font-family:var(--mono);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}.user-table button{border:1px solid var(--line-strong);background:#fff;color:var(--viola);padding:.3rem .7rem;border-radius:100px}.admin-shell{display:grid;grid-template-columns:248px 1fr;min-height:100vh}.admin-sidebar{background:var(--viola);color:var(--white);padding:20px 14px;display:flex;flex-direction:column;gap:3px;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow:auto}.admin-sidebar .brandmark{padding:6px 10px 18px}.admin-sidebar .wordmark{font-size:19px}.admin-sidebar .brandmark .sub{display:block}.navlink{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;color:rgba(251,250,247,.72);font-size:.9rem;font-weight:500;cursor:pointer;text-decoration:none;transition:.15s}.navlink:hover{background:rgba(255,255,255,.08);color:#fff}.navlink.on{background:rgba(255,255,255,.13);color:#fff}.navlink .ic{width:18px;text-align:center;opacity:.9}.nav-group{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--lav);padding:16px 12px 6px}.sidebar-foot{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;gap:12px}.sidebar-foot .lang{background:rgba(255,255,255,.08);align-self:flex-start}.sidebar-foot .lang button{color:var(--lav)}.sidebar-foot .lang button.on{background:#fff;color:var(--viola)}.sidebar-foot .authbar{flex-direction:column;align-items:flex-start;gap:.55rem;color:rgba(255,255,255,.82);font-size:.8rem}.sidebar-foot .authbar .muted{color:var(--lav)}.sidebar-foot .authbar a{color:rgba(255,255,255,.82)}.sidebar-foot .authbar a:hover{color:#fff}.sidebar-foot .authbar button{color:var(--lav);border-color:rgba(255,255,255,.22)}.sidebar-foot .authbar button:hover{color:#fff}.admin-main{min-width:0}.admin-main,.admin-page{display:flex;flex-direction:column}.admin-page{max-width:1320px;width:100%;margin:0 auto;padding:1.75rem 2rem;gap:1.15rem}.admin-page .topbar h1{font-size:1.5rem;font-weight:700;margin:0}.admin-page .topbar a{text-decoration:none}.admin-page .controls select{min-width:190px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px}.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);padding:18px 20px}.kpi .n{font-family:var(--disp);font-weight:800;font-size:34px;letter-spacing:-.03em;line-height:1}.kpi .l{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:8px}.kpi.accent .n{color:var(--event)}.content-grid{display:grid;grid-gap:1.15rem;gap:1.15rem;align-items:start}.content-grid.cols-2{grid-template-columns:1fr 1fr}.content-grid.cols-1-2{grid-template-columns:minmax(300px,1fr) 2fr}select{font-family:var(--body);color:var(--ink);background:#fff;border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:.5rem .65rem;cursor:pointer}.user-form select{max-width:360px}.res-actions button.danger,.row-actions button.danger,.user-table button.danger{color:var(--alert-text);border-color:rgba(237,116,158,.5)}.res-actions button.danger:hover,.row-actions button.danger:hover,.user-table button.danger:hover{background:rgba(237,116,158,.1)}@media (max-width:900px){.kpis{grid-template-columns:repeat(2,1fr)}.content-grid.cols-1-2,.content-grid.cols-2{grid-template-columns:1fr}}.upload-form{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.upload-form .primary{background:var(--event);color:#fff;border:none;padding:.55rem 1rem;border-radius:100px}.editor-link{text-decoration:none;padding:.5rem .95rem}.cta-link{display:inline-flex;align-items:center;gap:8px;background:var(--event);font-family:var(--disp);font-weight:700;font-size:1rem;padding:.7rem 1.4rem;border-radius:100px;transition:.16s}.cta-link,.cta-link:hover{color:#fff;text-decoration:none}.cta-link:hover{background:var(--event-600)}.cta-row{margin-top:1.1rem}.report-reasons{margin:.25rem 0 .5rem;padding-left:1.2rem;color:var(--alert-text);font-size:.85rem}.ends-form{display:flex;gap:.75rem;align-items:flex-end;flex-wrap:wrap}.ends-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.82rem;font-weight:600;color:var(--viola-900)}.ends-form input{font:inherit;padding:.5rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm)}.ends-form .primary{background:var(--event);color:#fff;border:none;padding:.55rem 1rem;border-radius:100px}.bulk-row{display:flex;gap:.75rem;align-items:flex-end;margin-top:.75rem;flex-wrap:wrap}.bulk-row label{display:flex;flex-direction:column;gap:.25rem;font-size:.82rem;font-weight:600;color:var(--viola-900)}.bulk-row input{width:7rem;font:inherit;padding:.5rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm)}.bulk-row button{border:1px solid var(--line-strong);background:#fff;color:var(--viola);padding:.55rem 1rem;border-radius:100px}.codes-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.codes-head button{padding:.35rem .8rem}.codes-head button,.link-cell button{border:1px solid var(--line-strong);background:#fff;color:var(--viola);border-radius:100px}.link-cell button{padding:.3rem .7rem}.acct-badge{margin-left:.35rem}.adjust-hint{font-size:.8rem;line-height:1.35;margin:.25rem 0 .5rem}.plan-wrap{position:relative}.plan-zoom{position:absolute;top:10px;right:10px;display:flex;flex-direction:column;gap:5px;z-index:2}.plan-zoom button{width:2.1rem;height:2.1rem;line-height:1;font-size:1.1rem;cursor:pointer;border:1px solid rgba(255,255,255,.2);background:rgba(0,6,24,.4);color:#fff;border-radius:9px;font-family:var(--mono)}.plan-zoom button:hover{background:rgba(0,6,24,.62)}.filter-toggle{display:flex;align-items:center;gap:.4rem;font-size:.9rem;color:var(--muted)}.res-actions{display:flex;gap:.5rem}.res-actions button{border:1px solid var(--line-strong);background:#fff;color:var(--viola);padding:.3rem .7rem;border-radius:100px}.send-check{flex-direction:row!important;align-items:center;gap:.4rem!important;color:var(--ink)!important}.send-check input{width:auto}.row-actions{display:flex;gap:.4rem}.tpl-select{display:flex;flex-direction:column;gap:.25rem;font-size:.82rem;font-weight:600;color:var(--viola-900);max-width:520px}.tpl-select select{font:inherit;color:var(--ink);padding:.55rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm)}.tpl-form{gap:.75rem}.tpl-form,.tpl-form label{display:flex;flex-direction:column}.tpl-form label{gap:.25rem;font-size:.82rem;font-weight:600;color:var(--viola-900)}.tpl-form input,.tpl-form textarea{font:inherit;color:var(--ink);padding:.55rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm)}.tpl-form textarea{resize:vertical;line-height:1.5;font-family:var(--mono);font-size:.85rem}.tpl-vars{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.tpl-vars .chip{border:1px solid rgba(0,170,149,.24);background:rgba(0,170,149,.1);color:var(--event-600);padding:.25rem .55rem;border-radius:8px;font-family:var(--mono);font-size:.78rem;cursor:pointer}.tpl-vars .chip:hover{background:rgba(0,170,149,.18)}.tpl-actions{display:flex;gap:.5rem;flex-wrap:wrap}.tpl-actions button{border:1px solid var(--line-strong);background:#fff;color:var(--viola);padding:.55rem 1rem;border-radius:100px}.tpl-actions button.primary{background:var(--event);color:#fff;border:none}.tpl-actions button:disabled{opacity:.5;cursor:not-allowed}.log-filters{display:flex;gap:.4rem;flex-wrap:wrap}.log-filters button{border:1px solid var(--line-strong);background:#fff;color:var(--muted);padding:.35rem .8rem;border-radius:100px;cursor:pointer}.log-filters button.on{background:var(--viola);color:#fff;border-color:var(--viola)}.log-retention{display:flex;align-items:flex-end;gap:.5rem}.log-retention label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;color:var(--muted)}.log-retention input{width:5rem;font:inherit;padding:.45rem;border:1px solid var(--line-strong);border-radius:var(--radius-sm)}.log-retention button{border:1px solid var(--line-strong);background:#fff;color:var(--viola);padding:.5rem .9rem;border-radius:100px}.log-detail .log-body{white-space:pre-wrap;background:var(--viola-900);color:#d8d0f0;border-radius:var(--radius-sm);padding:.85rem;font-family:var(--mono);font-size:.85rem;line-height:1.6;overflow-x:auto}td.nowrap{white-space:nowrap}@media (max-width:900px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 4px}.admin-sidebar .brandmark{padding:6px 10px}.admin-sidebar .nav-group{display:none}.sidebar-foot{margin-top:0;border-top:0;flex-direction:row;margin-left:auto}.admin-page{padding:1.25rem 1.1rem}}@media (max-width:720px){.layout{grid-template-columns:1fr;grid-template-areas:"top" "stage" "side"}}@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}