@font-face{font-family:'Bricolage Grotesque';font-weight:200 800;font-display:swap;src:url(/fonts/bricolage.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Instrument Sans';font-weight:400 700;font-display:swap;src:url(/fonts/instrument-sans.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--ink:#111640;--blue:#2d55ff;--pink:#ff7aa8;--sun:#ffcf3d;--line:#e0e2f0;--tint:#f1f2fa}*{box-sizing:border-box}body{margin:0;background:#f8f9fd;color:var(--ink);font:16px 'Instrument Sans',sans-serif}h1,h2,h3,.logo{font-family:'Bricolage Grotesque',sans-serif}h1{font-size:clamp(30px,4vw,46px);line-height:1.1;margin:0 0 16px}h2{font-size:23px}p{line-height:1.6}header{background:white;border-bottom:1px solid var(--line);padding:20px 4%;display:flex;align-items:center;justify-content:space-between;gap:14px}header div{display:flex;align-items:center;gap:14px}.logo{font-size:32px;font-weight:800;letter-spacing:-2px;text-decoration:none}.logo span{color:var(--blue)}a{color:var(--ink)}button,.button{font:600 15px 'Instrument Sans',sans-serif;cursor:pointer;padding:12px 18px;border:1px solid var(--line);border-radius:99px;background:white;color:var(--ink);text-decoration:none;display:inline-block}button:hover,.button:hover{border-color:var(--blue)}button:disabled{opacity:.55;cursor:wait}.primary{background:var(--blue);border-color:var(--blue);color:white}.pink{background:var(--pink)}.sun{background:var(--sun)}label{display:block;font-size:14px;font-weight:600;margin:14px 0}input,select{display:block;width:100%;padding:13px;border:1px solid #b8bce0;border-radius:10px;font:inherit;margin-top:7px;background:white;color:var(--ink)}input[type=checkbox],input[type=radio]{display:inline-block;width:auto;margin-right:10px}input:focus,button:focus-visible,a:focus-visible{outline:3px solid #a7b7ff;outline-offset:3px}.auth{max-width:1050px;margin:65px auto;display:grid;grid-template-columns:1fr 1fr;gap:48px;padding:0 24px}.intro{padding:30px 10px}.intro .tag{background:var(--sun)}.card{background:white;border:1px solid var(--line);border-radius:22px;padding:28px}.tag{display:inline-block;font-size:12px;font-weight:700;background:var(--tint);border-radius:99px;padding:7px 12px}.muted{color:#5b5f80}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px}.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.shell{display:grid;grid-template-columns:220px 1fr;max-width:1440px;margin:auto;min-height:80vh}.sidebar{padding:32px 18px;background:white;border-right:1px solid var(--line)}.sidebar a{display:block;text-decoration:none;border-radius:12px;padding:13px;margin:5px 0}.sidebar a.active{background:var(--tint);font-weight:700;color:var(--blue)}.main{padding:42px;min-width:0}.hero{background:linear-gradient(120deg,#fff 30%,#ffe9f0);border:1px solid var(--line);border-radius:24px;padding:32px;margin-bottom:24px}.metric{font-size:36px;font-weight:800;margin:12px 0}.price{font-size:30px;font-weight:800}.cards .card{display:flex;flex-direction:column;align-items:flex-start}.cards .card p{flex:1}.cart{margin-top:24px}.list{padding:0;list-style:none}.list li{padding:15px 0;border-bottom:1px solid var(--line)}.notice{padding:16px;border-radius:12px;background:#fff4d5;margin:16px 0}.success{background:#e5f7ee}.error{background:#ffe8eb}#status:not(:empty){padding:14px 4%;background:#fff4d5;border-bottom:1px solid var(--line)}.loading{padding:40px;text-align:center}.progress{height:8px;border-radius:10px;background:var(--tint);overflow:hidden}.progress span{display:block;height:100%;background:var(--blue)}fieldset{border:0;padding:0;margin:24px 0}legend{font-weight:700;font-size:20px;margin-bottom:12px}fieldset label{border:1px solid var(--line);border-radius:12px;padding:14px;background:white}.wide{max-width:860px}.empty{padding:32px;border:1px dashed #b8bce0;border-radius:20px}.divider{border:0;border-top:1px solid var(--line);margin:24px 0}footer{padding:20px 4%;color:#5b5f80;font-size:13px}table{width:100%;border-collapse:collapse}td,th{text-align:left;padding:12px;border-bottom:1px solid var(--line)}.table-scroll{overflow:auto}.links{margin-top:22px;display:flex;gap:16px;flex-wrap:wrap}@media(max-width:800px){.auth{grid-template-columns:1fr;margin:25px auto;gap:15px}.intro{padding:10px}.shell{grid-template-columns:1fr}.sidebar{display:flex;overflow:auto;padding:10px;border-right:0;border-bottom:1px solid var(--line)}.sidebar a{white-space:nowrap}.main{padding:24px 16px}.two{grid-template-columns:1fr}header{padding:16px}.logo{font-size:27px}header div{gap:8px;font-size:14px}button,.button{padding:10px 15px}.card{padding:22px}}

[hidden]{display:none!important}textarea{display:block;width:100%;padding:13px;border:1px solid #b8bce0;border-radius:10px;font:inherit;margin-top:7px;color:var(--ink)}.lesson-body{white-space:pre-wrap;line-height:1.7;padding:15px 0}.main>.card,.main>form.card{margin-bottom:20px}button:disabled{cursor:not-allowed}

.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
header div a,header div button{min-height:44px;display:inline-flex;align-items:center;padding-inline:10px}
.sup-tabs{margin:18px 0;flex-wrap:wrap}
.sup-cols{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:16px;align-items:start}
.sup-list .list{max-height:60vh;overflow:auto;padding:0;list-style:none;margin:8px 0 0}
.sup-conv{width:100%;text-align:left;display:grid;gap:4px;background:transparent;border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:6px;min-height:44px}
.sup-conv.active{border-color:var(--blue);background:#F5F7FF}
.sup-conv small{color:var(--muted,#4A4E70)}
.sup-msgs{max-height:50vh;overflow:auto;display:grid;gap:8px;margin:14px 0;padding:10px;background:#FAFAFD;border-radius:12px}
.sup-msg{padding:8px 12px;border-radius:12px;background:#fff;border:1px solid var(--line);white-space:pre-wrap;max-width:90%}
.sup-msg small{display:block;color:var(--muted,#4A4E70);font-size:12px}
.sup-msg.customer{justify-self:end;background:#EEF2FF}
.sup-msg.agent{border-color:var(--blue)}
.sup-msg.system{justify-self:center;background:#FFF1C2}
@media(max-width:860px){.sup-cols{grid-template-columns:1fr}}
.cp-kpi{text-align:left;cursor:pointer;font:inherit;color:inherit}
.cp-kpi small{font-size:13px;color:var(--muted,#4A4E70);font-weight:400}
.cp-sel{background:#F5F7FF}
.cp-search{margin:12px 0}
.cp-search input{flex:1;min-height:44px}
.cp-detail h3{margin-top:22px}

/* ---------- Admin console ---------- */
body[data-admin] .pc-root{display:none}
.shell.admin .sidebar{display:flex;flex-direction:column;gap:2px}
.side-label{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#5b5f80;margin:0 13px 8px}
.shell.admin .sidebar a{display:flex;align-items:center;gap:10px;margin:2px 0}
.sidebar .ic{width:22px;height:22px;display:inline-grid;place-items:center;border-radius:7px;background:var(--tint);font-size:13px;font-weight:700;flex:none}
.sidebar a.active .ic{background:var(--blue);color:#fff}
.sidebar .badge{margin-left:auto;background:var(--pink);color:var(--ink);font-size:12px;border-radius:99px;padding:2px 8px}
.sidebar hr{border:0;border-top:1px solid var(--line);margin:16px 0;width:100%}
.side-link{background:none;border:0;padding:10px 13px;text-align:left;font-weight:500;color:#5b5f80;text-decoration:underline;border-radius:10px}
.client-bar{background:var(--ink);color:#fff;padding:10px 4%;display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;font-size:14px}
.client-bar button{padding:8px 14px}
.bo-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:8px}
.bo-head h1{margin-bottom:6px}.bo-head p{margin:0 0 8px;max-width:720px}
.between{justify-content:space-between}.grow{flex:1;min-width:220px}
.bo-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:18px 0 22px;overflow-x:auto}
.bo-tabs a{padding:12px 16px;text-decoration:none;font-weight:600;color:#5b5f80;border-bottom:3px solid transparent;white-space:nowrap}
.bo-tabs a.on{color:var(--blue);border-color:var(--blue)}
.bo-tabs b{background:var(--tint);border-radius:99px;padding:1px 8px;font-size:12px;margin-left:4px}
.bo-kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;margin:18px 0}
.bo-kpi{padding:18px 20px;text-decoration:none;display:flex;flex-direction:column;gap:6px;transition:border-color .15s}
a.bo-kpi:hover{border-color:var(--blue)}
.bo-kpi span{font-size:14px;color:#5b5f80}.bo-kpi strong{font:800 28px 'Bricolage Grotesque',sans-serif}.bo-kpi small{font-size:13px;color:#5b5f80}
.bo-todo{padding:20px 24px;margin:12px 0;border-left:5px solid var(--sun)}
.bo-todo h2{margin:0 0 8px;font-size:19px}.bo-todo ul{margin:0;padding-left:20px}.bo-todo li{margin:6px 0}
.bo-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin:16px 0}
.bo-cols h2,.main section.card h2{font-size:19px;margin:0 0 10px}
.main section.card{margin-bottom:16px;padding:22px}
.bo-list{list-style:none;padding:0;margin:0}
.bo-list li{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.bo-list li:last-child{border:0}.bo-list small{display:block;color:#5b5f80;font-size:13px}
.bo-quick{margin:24px 0}.bo-quick h2{font-size:19px}
.tag.st-live,.tag.st-paid{background:#e5f7ee}.tag.st-preorder,.tag.st-pending{background:#fff4d5}.tag.st-archived,.tag.st-cancelled{background:#eceef5;color:#5b5f80}.tag.st-draft{background:var(--tint)}.tag.st-refunded{background:#ffe8eb}
.bo-table td{vertical-align:middle}.bo-table td.row{flex-wrap:nowrap}
td .button,td button{padding:8px 14px;font-size:14px}
.bo-form{max-width:980px}
.three{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.narrow{max-width:220px}
.bo-box{border:1px solid var(--line);border-radius:16px;padding:6px 20px 14px;margin:18px 0}
.bo-box legend{font-size:16px;padding:0 6px;margin:0}
details summary{cursor:pointer;font-weight:600;padding:8px 0}
.bo-img{display:flex;gap:16px;align-items:center}.bo-img img{border-radius:10px;object-fit:cover;border:1px solid var(--line)}
.bo-publish{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:14px 20px;margin:12px 0 0}
.switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;margin:10px 0}
.switch input{position:absolute;opacity:0;width:1px;height:1px}
.switch span{width:44px;height:26px;border-radius:99px;background:#c9ccdf;position:relative;transition:background .15s;flex:none}
.switch span::after{content:'';position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.switch input:checked+span{background:var(--blue)}.switch input:checked+span::after{left:21px}
.switch input:focus-visible+span{outline:3px solid #a7b7ff;outline-offset:2px}
.switch.sm{margin:0;font-size:14px;font-weight:500}
.bo-lessons{list-style:none;padding:8px 20px}
.bo-sec{font:700 13px 'Instrument Sans',sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#5b5f80;padding:16px 0 6px}
.bo-lesson{display:grid;grid-template-columns:auto 1fr auto auto;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.bo-move{display:flex;flex-direction:column;gap:2px}.bo-move button{padding:2px 9px;font-size:11px;border-radius:6px;line-height:1.4}
.bo-ltitle{text-decoration:none;display:flex;flex-direction:column}.bo-ltitle small{color:#5b5f80;font-size:13px}
.bo-files{list-style:none;padding:0}.bo-files li{padding:8px 0;display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.bo-files button{padding:4px 12px;font-size:13px}
button.danger{background:#ffe8eb;border-color:#d4304b;color:#9b1530}
button.link{background:none;border:0;padding:0;text-decoration:underline;font-size:12px;font-weight:600;color:var(--blue)}
.chip{display:inline-flex;margin:0;cursor:pointer}.chip input{position:absolute;opacity:0}
.chip{border:1px solid var(--line);border-radius:99px;padding:9px 15px;background:#fff;font-weight:600}
.chip:has(input:checked){background:var(--blue);border-color:var(--blue);color:#fff}
.chip:has(input:focus-visible){outline:3px solid #a7b7ff}
.bo-period input[type=date]{width:auto;margin:0;padding:9px}
.bo-bars{display:flex;align-items:flex-end;gap:2px;height:180px;padding:10px 0;border-bottom:1px solid var(--line)}
.bo-bars span{flex:1;background:var(--blue);border-radius:4px 4px 0 0;min-width:2px;height:0}
.bo-search{max-width:280px;margin:0;padding:10px 14px}
.prose{line-height:1.7}.prose h2{margin-top:28px}.prose img{max-width:100%}
/* Support inbox */
.bo-inbox{display:grid;grid-template-columns:minmax(260px,340px) 1fr;border:1px solid var(--line);border-radius:20px;background:#fff;overflow:hidden;height:calc(100vh - 290px);min-height:520px}
.bo-ilist{border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
.bo-filters{display:flex;gap:6px;flex-wrap:wrap;padding:12px;border-bottom:1px solid var(--line)}
.bo-filters button{padding:7px 12px;font-size:13px}.bo-filters button.on{background:var(--ink);border-color:var(--ink);color:#fff}
.bo-filters b{background:var(--pink);color:var(--ink);border-radius:99px;padding:0 7px;margin-left:3px}
.bo-ilist ul{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1}
.bo-emptyl{padding:24px;text-align:center}
.bo-conv{display:flex;gap:12px;padding:12px 14px;text-decoration:none;border-bottom:1px solid var(--line)}
.bo-conv:hover{background:#fafbff}.bo-conv.on{background:#eef2ff}
.bo-av{width:40px;height:40px;border-radius:50%;background:var(--tint);display:grid;place-items:center;font-weight:800;flex:none}
.bo-conv.unread .bo-av{background:var(--blue);color:#fff}.bo-conv.unread b,.bo-conv.unread .bo-prev{font-weight:700;color:var(--ink)}
.bo-cbody{min-width:0;flex:1;display:flex;flex-direction:column;gap:3px}
.bo-crow{display:flex;justify-content:space-between;gap:8px}.bo-crow b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bo-crow small{color:#5b5f80;white-space:nowrap}
.bo-prev{font-size:14px;color:#5b5f80;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bo-badges{display:flex;gap:4px;flex-wrap:wrap}.bo-badges .tag{font-size:11px;padding:3px 8px}
.bo-thread{display:flex;flex-direction:column;min-height:0;min-width:0}
.bo-thead{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.bo-thead small{display:block;color:#5b5f80;font-size:13px}.bo-thead>div:nth-child(2){flex:1;min-width:0}
.bo-back{display:none;text-decoration:none;font-size:22px;padding:4px 8px}
.bo-ticket{padding:10px 18px;background:#fffaf0;border-bottom:1px solid var(--line);font-size:14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.bo-ticket select{width:auto;margin:0;padding:6px 10px}.bo-ticket p{flex-basis:100%;margin:4px 0 0}
.bo-msgs{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:10px;background:#f6f7fc}
.bo-msg{max-width:78%;padding:10px 14px;border-radius:16px;background:#fff;border:1px solid var(--line);white-space:pre-wrap;align-self:flex-start}
.bo-msg small{display:block;font-size:12px;color:#5b5f80;margin-top:6px;white-space:normal}
.bo-msg.agent{align-self:flex-end;background:var(--blue);color:#fff;border-color:var(--blue)}.bo-msg.agent small{color:#dfe5ff}.bo-msg.agent button.link{color:#fff}
.bo-msg.ai{background:#eef2ff}
.bo-msg.system{align-self:center;background:#fff4d5;font-size:13px}
.bo-reply{padding:10px 14px;border-top:1px solid var(--line);background:#fff}
.bo-reply textarea{margin:0;flex:1;resize:vertical;min-height:48px}.bo-reply .row{flex-wrap:nowrap;align-items:flex-end}
.bo-qr{display:flex;gap:6px;overflow-x:auto;padding-bottom:8px}
.bo-qr button{padding:5px 11px;font-size:12px;font-weight:500;white-space:nowrap}
.bo-none{margin:auto;text-align:center;padding:30px}
.bo-teach{margin:10px 14px;border-color:var(--blue)}.bo-teach h3{margin:0}
.bo-kb summary{display:flex;flex-direction:column;gap:4px}.bo-kb summary small{font-weight:400;color:#5b5f80}
.bo-kb{margin-bottom:10px;padding:16px 22px}
/* Student player */
.learn{display:grid;grid-template-columns:290px 1fr;gap:28px;align-items:start}
.learn-side{position:sticky;top:16px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:20px;max-height:calc(100vh - 32px);overflow:auto}
.learn-side h2{font-size:19px;margin:12px 0}.learn-side .progress{margin:8px 0 4px}
.learn-out{list-style:none;padding:0;margin:14px 0 0}
.learn-out a{display:flex;gap:10px;align-items:flex-start;padding:9px 8px;border-radius:10px;text-decoration:none;font-size:15px}
.learn-out a.on{background:#eef2ff;font-weight:700}
.learn-sec{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#5b5f80;margin:14px 8px 4px}
.chk{width:24px;height:24px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;font-size:12px;flex:none}
.chk.done{background:var(--blue);border-color:var(--blue);color:#fff}
.learn-main{min-width:0;max-width:860px}
.video{width:100%;aspect-ratio:16/9;border:0;border-radius:16px;background:#000;display:block;margin:16px 0}
.video iframe{width:100%;height:100%;border:0;border-radius:16px}
.learn-nav{margin:28px 0}
.learn-card{text-decoration:none;display:flex;flex-direction:column;gap:10px;align-items:flex-start}.learn-card h2{margin:4px 0}.learn-card .progress{width:100%}
@media(max-width:900px){.three{grid-template-columns:1fr}.learn{grid-template-columns:1fr}.learn-side{position:static;max-height:none}
.bo-inbox{grid-template-columns:1fr;height:auto;min-height:0}.bo-inbox .bo-thread{display:none}.bo-inbox.has-thread .bo-ilist{display:none}.bo-inbox.has-thread .bo-thread{display:flex;height:calc(100vh - 200px)}.bo-back{display:inline}
.bo-lesson{grid-template-columns:auto 1fr;}.bo-lesson .switch,.bo-lesson>.button{grid-column:2}
.shell.admin .sidebar{flex-direction:row;align-items:center}.side-label,.sidebar hr{display:none}.side-link{white-space:nowrap}}
.bo-box label,.bo-box fieldset label{border:0;padding:0;background:none;border-radius:0}
@media(max-width:600px){.bo-kpis{grid-template-columns:1fr 1fr;gap:10px}.bo-kpi{padding:14px}.bo-kpi strong{font-size:22px}header div a{white-space:nowrap}}
/* Marketing tests */
.tag.lv-weak{background:#fde8e8;color:#a3191f}.tag.lv-medium{background:#fff1c2;color:#7a4a00}.tag.lv-strong{background:#e5f7ee;color:#1e6b3a}
.bo-area{display:grid;grid-template-columns:160px 1fr 34px;gap:10px;align-items:center;padding:6px 0;font-size:14px}
.bo-abar{height:10px;background:var(--tint);border-radius:99px;overflow:hidden}.bo-abar i{display:block;height:100%;border-radius:99px;background:var(--blue)}
.bo-abar i.low{background:#e5484d}.bo-abar i.mid{background:#f5a524}.bo-abar i.high{background:#1e8a4a}
.bo-findings{padding-left:20px}.bo-findings li{padding:10px 0;border-bottom:1px solid var(--line)}.bo-findings li.extra{opacity:.75}.bo-findings p{margin:4px 0}
.tag.k-issue{background:#fde8e8}.tag.k-strength{background:#e5f7ee}.tag.k-opportunity{background:#fff1c2}
.bo-ans{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px 24px;margin:0}.bo-ans div{border-bottom:1px solid var(--line);padding:8px 0}.bo-ans dt{font-size:13px;color:#5b5f80}.bo-ans dd{margin:2px 0 0;font-weight:600}
.mt-hub{display:flex;gap:24px;align-items:center;margin-bottom:20px}.mt-hub h2{font-size:40px;margin:0}
.mt-hub-score{width:110px;height:110px;border-radius:50%;display:grid;place-items:center;align-content:center;border:8px solid var(--blue);flex:none}.mt-hub-score strong{font:800 36px 'Bricolage Grotesque',sans-serif;line-height:1}
.mt-hub.lvl-weak .mt-hub-score{border-color:#e5484d}.mt-hub.lvl-medium .mt-hub-score{border-color:#f5a524}.mt-hub.lvl-strong .mt-hub-score{border-color:#1e8a4a}
.mt-hub-f li{margin-bottom:12px;border-left:5px solid #e5484d}.mt-hub-f li.k-strength{border-left-color:#1e8a4a}.mt-hub-f li.k-opportunity{border-left-color:var(--sun)}
.mt-hub-f{padding:0}.mt-hub-f li.card{padding:20px 24px}.mt-hub-f li p{margin:8px 0 0}.mt-hub.lvl-weak h2{color:#c2272d}.mt-hub.lvl-medium h2{color:#b26b00}.mt-hub.lvl-strong h2{color:#1e6b3a}
.bo-ans div.open{grid-column:1/-1}.bo-ans div.open dd{font-weight:500}

.bo-conn .bo-kpis{margin-bottom:0}.bo-conn .bo-kpi strong{font-size:22px}.conn-on{background:#e5f7ee;color:#1e6b3a}.conn-off{background:#fff4d5;color:#7a5600}.ai-st-ok{background:#e5f7ee}.ai-st-error{background:#ffe8eb}.ai-st-fallback{background:#fff4d5}
.ai-summary{border-left:6px solid #1e6b3a}.ai-weeks{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.ai-weeks>li{background:var(--tint);border-radius:14px;padding:14px 16px}.ai-weeks small{font-weight:700;color:#5b5f80;text-transform:uppercase;font-size:12px}.ai-weeks h3{font-size:17px;margin:4px 0 8px}.ai-weeks ul{margin:0;padding-left:18px;font-size:15px}.ai-admin{background:#fffbea}.ai-wrap{display:grid;gap:16px;margin:16px 0}.bo-list li small{display:block}
.sh-overall{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.sh-overall h2{margin:0}.sh-overall p{margin:4px 0 0}.sh-overall .sh-dot{font-size:34px;line-height:1}.sh-count{list-style:none;display:flex;gap:10px;padding:0;margin:0 0 0 auto;flex-wrap:wrap}.sh-count li{border-radius:99px;padding:6px 12px;font-size:14px;background:var(--tint)}.sh-count b{font-size:16px}
.sh-dot,.sh-pill i{font-style:normal}.sh-green .sh-dot,.sh-pill.sh-green i,li.sh-green b{color:#1e8a4a}.sh-yellow .sh-dot,.sh-pill.sh-yellow i,li.sh-yellow b{color:#d39a00}.sh-red .sh-dot,.sh-pill.sh-red i,li.sh-red b{color:#d23a4a}.sh-none .sh-dot{color:#b8bce0}
.sh-ok .sh-dot{color:#1e8a4a}.sh-warning .sh-dot{color:#d39a00}.sh-error .sh-dot{color:#d23a4a}
.sh-ai{margin-bottom:18px}.sh-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}
.sh-card{border-top:5px solid #b8bce0;padding:20px}.sh-card.sh-green{border-top-color:#1e8a4a}.sh-card.sh-yellow{border-top-color:#f0b400}.sh-card.sh-red{border-top-color:#d23a4a;background:#fff8f8}
.sh-top{display:flex;align-items:center;gap:10px}.sh-top h3{margin:0;font-size:18px}.sh-top .sh-dot{font-size:20px}.sh-st{font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.03em;color:#5b5f80;margin:8px 0 4px}.sh-card p{margin:6px 0}.small{font-size:13px}
.sh-fix{background:var(--tint);border-radius:10px;padding:10px 12px;font-size:14px}.sh-card details{margin-top:8px}.sh-card summary{cursor:pointer;font-weight:600;font-size:14px;color:var(--blue)}
.sh-meta{margin:8px 0 0;display:grid;gap:6px;font-size:13px}.sh-meta div{display:grid;grid-template-columns:120px 1fr;gap:8px}.sh-meta dt{color:#5b5f80}.sh-meta dd{margin:0;word-break:break-word}
.sh-mini h2{display:flex;align-items:center;gap:8px;margin:0}.sh-pills{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 6px}.sh-pill{display:inline-flex;align-items:center;gap:6px;background:var(--tint);border-radius:99px;padding:6px 12px;font-size:13px;font-weight:600}
.ai-second{border-left:6px solid var(--blue)}
@media(max-width:600px){.sh-count{margin-left:0}.sh-meta div{grid-template-columns:1fr}}

/* mobile: iPhone zooms into any field under 16px; keep forms at 16px and small text readable */
@media(max-width:700px){input,select,textarea{font-size:16px!important}body{-webkit-text-size-adjust:100%}}

/* PitancosAI HUB */
.ai-hub{max-width:900px}.ai-compose{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin-top:14px}.ai-compose textarea{margin:0;min-height:76px}.ai-compose button{min-height:48px}
#pitancos-ai-chat{min-height:320px;max-height:58vh;overflow:auto;background:#f6f7fc;border:1px solid var(--line);border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:10px}
.ai-chat-msg{max-width:82%;padding:11px 14px;border-radius:15px;white-space:pre-wrap;line-height:1.5}.ai-chat-msg.user{align-self:flex-end;background:var(--blue);color:#fff}.ai-chat-msg.assistant{align-self:flex-start;background:#fff;border:1px solid var(--line)}.ai-chat-msg.thinking{align-self:flex-start;color:#5b5f80}
@media(max-width:600px){.ai-compose{grid-template-columns:1fr}.ai-chat-msg{max-width:92%}}

/* Compact back-office dashboard */
.shell.admin .main{max-width:1500px;width:100%;margin:0 auto}
.shell.admin .bo-todo{padding:16px 20px}
.shell.admin .bo-kpis{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:14px 0}
.shell.admin .bo-kpi{padding:14px 16px;min-height:92px}
.shell.admin .bo-kpi strong{font-size:24px}
.shell.admin .bo-cols{gap:12px;margin:12px 0}
.shell.admin .bo-cols section.card{padding:18px}
.shell.admin .bo-quick{margin:18px 0}

/* Admin operations: Workshops / Sessions */
.ops-tabs{display:flex;gap:8px;margin:0 0 16px}.ops-tabs a{padding:10px 16px;border:1px solid var(--line);border-radius:999px;text-decoration:none;font-weight:700;background:#fff}.ops-tabs a.active{background:var(--blue);color:#fff;border-color:var(--blue)}
.ops-grid-head,.ops-grid-row{display:grid;grid-template-columns:minmax(220px,2fr) 1.1fr .8fr .8fr;gap:16px;align-items:center;padding:13px 4px}.ops-grid-head{border-bottom:1px solid var(--line);color:#5b5f80}.ops-grid-row{border-bottom:1px solid var(--line)}.ops-grid-row:last-child{border:0}.ops-grid-row span:first-child{display:flex;flex-direction:column;gap:3px}
.session-board{display:flex;flex-direction:column}.session-item{display:grid;grid-template-columns:180px minmax(220px,1fr) 120px 130px;gap:16px;align-items:center;padding:15px 4px;border-bottom:1px solid var(--line)}.session-item:last-child{border:0}.session-item p{margin:4px 0 0;color:#5b5f80}
@media(max-width:850px){.ops-grid-head{display:none}.ops-grid-row,.session-item{grid-template-columns:1fr;gap:8px;padding:16px 0}}

/* Studio / Store / Support */
.studio-list{display:flex;flex-direction:column}.studio-list article{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:14px;align-items:center;padding:15px 2px;border-bottom:1px solid var(--line)}.studio-list article:last-child{border:0}.studio-list p{margin:4px 0 0;color:#626781}
.support-tabs{display:flex;gap:8px;margin-bottom:14px}.support-tabs span{padding:9px 14px;border:1px solid var(--line);border-radius:999px;background:#fff;font-weight:700}.support-tabs .active{background:var(--blue);border-color:var(--blue);color:#fff}.support-layout{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(360px,1.15fr);gap:14px}.support-inbox article,.ticket-row{padding:13px 2px;border-bottom:1px solid var(--line)}.support-inbox p,.ticket-row p{margin:4px 0;color:#626781}.ticket-row{display:grid;grid-template-columns:1fr auto;gap:8px}.ticket-row p{grid-column:1/-1}
.lesson-row{display:flex;justify-content:space-between;gap:16px;padding:14px 2px;border-bottom:1px solid var(--line)}
@media(max-width:760px){.studio-list article,.support-layout{grid-template-columns:1fr}.support-tabs{overflow:auto}.ticket-row{grid-template-columns:1fr}}

.session-calendar{display:grid;grid-template-columns:1fr 1.3fr;gap:28px}.booking-mini{display:flex;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}


/* Admin desktop: keep navigation visible while each module scrolls independently. */
@media (min-width: 901px) {
  body[data-admin] .shell.admin {
    height: calc(100dvh - var(--admin-top-offset, 100px));
    min-height: 0;
    overflow: hidden;
  }
  body[data-admin] .shell.admin .sidebar {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    align-self: stretch;
  }
  body[data-admin] .shell.admin .main {
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior-y: contain;
    scrollbar-gutter: stable;
  }
}


/* System Health dashboard — approved compact layout */
.shell.admin .sh-dashboard{display:flex;flex-direction:column;gap:20px;padding-bottom:28px}
.shell.admin .sh-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}
.shell.admin .sh-header h1{font-size:clamp(28px,3vw,40px);line-height:1.12;margin:6px 0 10px;letter-spacing:-.025em}
.shell.admin .sh-header .muted{margin:0;max-width:740px}
.shell.admin .sh-header-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex-shrink:0}
.shell.admin .sh-overall{display:flex;align-items:center;gap:20px;padding:22px 24px;margin:0}
.shell.admin .sh-overall-copy{flex:1;min-width:0}
.shell.admin .sh-overall h2{font-size:19px;margin:0 0 5px}
.shell.admin .sh-overall p{margin:0}
.shell.admin .sh-count{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0;padding:0;list-style:none}
.shell.admin .sh-count li{background:#f1f3fa;border-radius:999px;padding:7px 12px;font-size:13px;white-space:nowrap}
.shell.admin .sh-count .sh-green b{color:#07974b}.shell.admin .sh-count .sh-yellow b{color:#d48b00}.shell.admin .sh-count .sh-red b{color:#d6374b}
.shell.admin .sh-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0}
.shell.admin .sh-card{min-width:0;min-height:165px;padding:18px 20px;border-top:4px solid #c8cfdf;display:flex;flex-direction:column;gap:10px}
.shell.admin .sh-card.sh-green{border-top-color:#0b9f55}.shell.admin .sh-card.sh-yellow{border-top-color:#f2a400}.shell.admin .sh-card.sh-red{border-top-color:#d83c50}
.shell.admin .sh-card-main{display:flex;gap:14px;align-items:flex-start}
.shell.admin .sh-brand{width:48px;height:48px;flex:0 0 48px;border-radius:12px;display:grid;place-items:center;background:#edf1fa;color:#121a42;font-size:28px;font-weight:800}
.shell.admin .sh-brand-cloudflare{color:#f48120}.shell.admin .sh-brand-netlify{color:#00a8aa}.shell.admin .sh-brand-supabase{color:#08a86a}.shell.admin .sh-brand-resend{background:#141722;color:white;font-size:25px}.shell.admin .sh-brand-posthog{color:#e89110}.shell.admin .sh-brand-anthropic{color:#d85c38}
.shell.admin .sh-card-copy{min-width:0;flex:1}
.shell.admin .sh-card h3{font-size:17px;margin:0 0 2px}
.shell.admin .sh-subtitle{font-size:13px;color:#626c91;margin:0 0 7px}
.shell.admin .sh-status{display:inline-flex;gap:6px;align-items:center;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:700;background:#eef0f7}
.shell.admin .sh-status-green{color:#008944;background:#e7f8ef}.shell.admin .sh-status-yellow{color:#a36b00;background:#fff5d9}.shell.admin .sh-status-red{color:#b82d43;background:#fff0f2}
.shell.admin .sh-card-message{font-size:13px;line-height:1.4;color:#465276;margin:9px 0 5px;overflow-wrap:anywhere}
.shell.admin .sh-card details{margin-top:auto;font-size:13px}.shell.admin .sh-card summary{cursor:pointer;color:#3157d8;font-weight:700}
.shell.admin .sh-card .sh-fix{font-size:12px;line-height:1.4;overflow-wrap:anywhere;margin:0}
.shell.admin .sh-bottom{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.shell.admin .sh-bottom>.card{margin:0;min-width:0;padding:20px}
.shell.admin .sh-email-test{display:flex;align-items:flex-start;gap:14px}
.shell.admin .sh-email-test h2,.shell.admin .sh-ai h2,.shell.admin .sh-logs h2{font-size:18px;margin:0 0 10px}
.shell.admin .sh-email-test p{font-size:14px;line-height:1.5;margin:0 0 14px}
.shell.admin .sh-section-icon{width:46px;height:46px;flex-shrink:0;border-radius:12px;background:#edf1fa;display:grid;place-items:center;font-size:26px}
.shell.admin .sh-ai{grid-column:1/-1}
.shell.admin .sh-ai-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.shell.admin .sh-ai-cols>div+div{border-left:1px solid #dce0ed;padding-left:16px}
.shell.admin .sh-ai-cols b{font-size:13px}.shell.admin .sh-ai-cols p{font-size:14px;color:#536084;margin:7px 0 0}
.shell.admin .sh-logs{grid-column:2;grid-row:1}
.shell.admin .sh-log-list{max-height:230px;overflow-y:auto}
.shell.admin .sh-log-list p{display:flex;align-items:baseline;gap:8px;font-size:13px;border-bottom:1px solid #eef0f7;padding:7px 0;margin:0}
@media(max-width:1150px){.shell.admin .sh-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.shell.admin .sh-header{flex-direction:column}.shell.admin .sh-header-actions{align-items:flex-start}.shell.admin .sh-overall{flex-wrap:wrap}.shell.admin .sh-count{width:100%}.shell.admin .sh-grid,.shell.admin .sh-bottom,.shell.admin .sh-ai-cols{grid-template-columns:1fr}.shell.admin .sh-ai,.shell.admin .sh-logs{grid-column:auto;grid-row:auto}.shell.admin .sh-ai-cols>div+div{border-left:0;border-top:1px solid #dce0ed;padding:12px 0 0}}

/* Resend test is part of its service card, not a separate dashboard panel. */
.shell.admin .sh-resend-test{margin-top:auto;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding-top:12px;border-top:1px solid #e5e9f2}
.shell.admin .sh-resend-test button{font-size:13px;padding:9px 14px;max-width:100%}
.shell.admin .sh-resend-test small{font-size:12px;line-height:1.4}
.shell.admin .sh-bottom>.sh-logs{grid-column:1/-1;grid-row:auto}
.shell.admin .sh-bottom>.sh-ai{grid-column:1/-1;grid-row:auto}

/* Admin startup: avoid public-nav flash while Supabase restores the session. */
body[data-admin-pending] #top-nav,
body[data-admin-pending] #store-link {display:none!important}
body[data-admin-pending]{background:#f8f9fd}
@media (min-width:901px){
  body[data-admin-pending] #app{min-height:calc(100dvh - 100px);background:#f8f9fd}
  body[data-admin] .shell.admin{max-width:none;width:100%}
}

/* PitancosAI operations console: real backend observations, read-only. */
.shell.admin .sh-ai-console{display:flex;flex-direction:column;gap:20px}
.shell.admin .sh-ai-title{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.shell.admin .sh-ai-title .eyebrow{font-size:11px;letter-spacing:.12em;font-weight:800;color:#3458e9;margin:0 0 6px}
.shell.admin .sh-ai-title h2{font-size:22px;margin:0 0 6px}
.shell.admin .sh-ai-title p{font-size:13px;margin:0}
.shell.admin .sh-ai-title button{flex-shrink:0}
.shell.admin .sh-ai-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.shell.admin .sh-ai-tile{border:1px solid #e0e5f1;border-left:4px solid #bfc8d8;border-radius:12px;padding:14px;min-width:0;background:#fafbfe}
.shell.admin .sh-ai-tile.sh-green{border-left-color:#0b9f55}.shell.admin .sh-ai-tile.sh-yellow{border-left-color:#f2a400}.shell.admin .sh-ai-tile.sh-red{border-left-color:#d83c50}
.shell.admin .sh-ai-tile-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px}
.shell.admin .sh-ai-tile-head strong{font-size:14px}
.shell.admin .sh-ai-tile p{font-size:13px;color:#4f5b7b;line-height:1.45;margin:10px 0 0;overflow-wrap:anywhere}
.shell.admin .sh-ai-ops{display:grid;grid-template-columns:1fr 1fr;gap:20px;border-top:1px solid #e1e6f2;padding-top:18px}
.shell.admin .sh-ai-ops h3{font-size:16px;margin:0 0 12px}
.shell.admin .sh-ai-metrics{margin:0}
.shell.admin .sh-ai-metrics>div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #edf0f6;padding:8px 0;font-size:13px}
.shell.admin .sh-ai-metrics dt{color:#596582}.shell.admin .sh-ai-metrics dd{font-weight:700;margin:0;text-align:right}
.shell.admin .sh-ai-alert{font-size:13px;line-height:1.5;border-bottom:1px solid #edf0f6;padding-bottom:10px;margin:0 0 10px;overflow-wrap:anywhere}
.shell.admin .sh-ai-disclaimer{font-size:12px;line-height:1.5}
@media(max-width:1150px){.shell.admin .sh-ai-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.shell.admin .sh-ai-title{flex-direction:column}.shell.admin .sh-ai-kpis,.shell.admin .sh-ai-ops{grid-template-columns:1fr}}

/* System Health · tarjeta principal de PitancosAI.
   Fondo oscuro de marca para que se lea como la cabecera del panel y no como
   una tarjeta mas. El color del estado va en el borde superior y en la pildora,
   no en el fondo, para que el contraste del texto no dependa del estado. */
.shell.admin .sh-hero{background:#111640;color:#fff;border:0;border-top:6px solid #c8cfdf;border-radius:16px;padding:24px 26px;margin:0 0 18px;display:flex;flex-direction:column;gap:16px}
.shell.admin .sh-hero.sh-hero-green{border-top-color:#2ad17f}
.shell.admin .sh-hero.sh-hero-yellow{border-top-color:#ffc53d}
.shell.admin .sh-hero.sh-hero-red{border-top-color:#ff6b7f}
.shell.admin .sh-hero-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap}
.shell.admin .sh-hero-id{display:flex;align-items:center;gap:14px;min-width:0}
.shell.admin .sh-hero-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;background:rgba(255,255,255,.1);font-size:22px;flex:none}
.shell.admin .sh-hero .eyebrow{color:#9aa4d8;margin:0 0 2px;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.shell.admin .sh-hero h2{margin:0;font-size:25px;color:#fff;letter-spacing:-.02em}
.shell.admin .sh-hero-state{display:flex;flex-direction:column;align-items:flex-end;gap:6px;text-align:right}
.shell.admin .sh-hero-state small{color:#9aa4d8;font-size:12px}
.shell.admin .sh-hero .sh-status{font-size:13px;font-weight:700;padding:6px 12px;border-radius:99px;white-space:nowrap}
.shell.admin .sh-hero .sh-status-green{color:#8ef0bd;background:rgba(42,209,127,.17)}
.shell.admin .sh-hero .sh-status-yellow{color:#ffdc8a;background:rgba(255,197,61,.17)}
.shell.admin .sh-hero .sh-status-red{color:#ffb3bf;background:rgba(255,107,127,.19)}
.shell.admin .sh-hero .sh-status-none{color:#c8cfdf;background:rgba(255,255,255,.1)}
.shell.admin .sh-hero-message{margin:0;font-size:15px;line-height:1.5;color:#e6e9fb;overflow-wrap:anywhere}
.shell.admin .sh-hero-checks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 22px}
.shell.admin .sh-hero-check{display:flex;gap:11px;align-items:flex-start;min-width:0}
.shell.admin .sh-hero-check-mark{display:grid;place-items:center;width:21px;height:21px;border-radius:50%;font-size:12px;font-weight:700;flex:none;margin-top:1px}
.shell.admin .sh-hero-check.is-ok .sh-hero-check-mark{background:rgba(42,209,127,.2);color:#8ef0bd}
.shell.admin .sh-hero-check.is-pending .sh-hero-check-mark{background:rgba(255,197,61,.2);color:#ffdc8a}
.shell.admin .sh-hero-check.is-down .sh-hero-check-mark{background:rgba(255,107,127,.22);color:#ffb3bf}
.shell.admin .sh-hero-check strong{display:block;font-size:13.5px;color:#fff;font-weight:650;line-height:1.3}
.shell.admin .sh-hero-check small{display:block;font-size:12px;color:#9aa4d8;line-height:1.4;margin-top:2px;overflow-wrap:anywhere}
.shell.admin .sh-hero-legend{margin:0;padding-top:14px;border-top:1px solid rgba(255,255,255,.12);font-size:12px;line-height:1.5;color:#8d97cc}
@media(max-width:760px){.shell.admin .sh-hero{padding:20px}.shell.admin .sh-hero-checks{grid-template-columns:1fr}.shell.admin .sh-hero-state{align-items:flex-start;text-align:left}.shell.admin .sh-hero h2{font-size:22px}}

/* La navegacion del encabezado no tenia disposicion propia: sus enlaces salian
   pegados en una sola cadena ("CursosWorkshop online"). Flex con separacion, y
   cada destino con el area tactil minima de 44px. */
.top-nav{display:flex;align-items:center;gap:18px;flex-wrap:wrap;min-width:0}
.top-nav a{min-height:44px;display:inline-flex;align-items:center;white-space:nowrap;text-decoration:none}
.top-nav a:hover{color:var(--blue)}
.head-actions{display:flex;align-items:center;gap:10px}
.head-actions button,.head-actions a{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}
header .logo{min-height:44px;display:inline-flex;align-items:center}
@media(max-width:620px){
 header{flex-wrap:wrap;gap:10px;padding:12px 16px}
 .top-nav{order:3;width:100%;gap:14px;overflow-x:auto;-webkit-overflow-scrolling:touch}
 .top-nav a{font-size:15px}
}

body[data-admin]{background:#f3f5fa;color:#17203c}
body[data-admin]>header{padding:12px 28px;min-height:74px;box-shadow:0 1px 0 #e7ebf3}
.shell.admin{max-width:none;width:100%;grid-template-columns:252px minmax(0,1fr);background:#f3f5fa}
.shell.admin .sidebar{background:#111b33;color:#c5d0e6;border:0;padding:26px 16px;gap:4px}
.admin-side-brand{display:flex;align-items:center;gap:11px;padding:2px 12px 30px;color:#fff}
.admin-side-brand strong,.admin-side-brand small{display:block}
.admin-side-brand strong{font:700 17px 'Bricolage Grotesque',sans-serif}
.admin-side-brand small{font-size:12px;color:#9aabc8;margin-top:3px}
.admin-side-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:#4664ed;color:white;font:800 21px 'Bricolage Grotesque',sans-serif}
.shell.admin .side-label{color:#8999b7;margin:0 12px 8px}
.shell.admin .sidebar a{color:#d1daea;min-height:44px;padding:11px 12px;border-radius:10px;transition:background .15s,color .15s}
.shell.admin .sidebar a:hover{background:#25314d;color:#fff}
.shell.admin .sidebar a.active{background:#344b88;color:#fff}
.shell.admin .sidebar .ic{background:#283750;color:#dbe5ff}
.shell.admin .sidebar a.active .ic{background:#5878d6;color:#fff}
.shell.admin .sidebar hr{border-color:#33405a;margin:16px 10px}
.shell.admin .side-link{color:#c5d0e6;text-decoration:none;min-height:42px}
.admin-content{min-width:0;min-height:0;display:flex;flex-direction:column}
.admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;background:white;border-bottom:1px solid #e3e8f1;padding:15px 32px;color:#6b7791;font-size:13px}
.admin-toolbar strong{color:#1d2a44}.admin-toolbar span[aria-hidden]{padding:0 8px;color:#a9b3c5}
.admin-account{max-width:45%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border:1px solid #e5eaf2;border-radius:999px;padding:7px 12px;color:#34425f}
.shell.admin .main{padding:30px clamp(18px,3vw,44px) 48px;max-width:1540px}
.shell.admin .main .card,.shell.admin .main .bo-kpi{border-color:#e2e7f0;border-radius:16px;box-shadow:0 3px 18px rgba(26,42,76,.035)}
.shell.admin .page-head,.shell.admin .bo-head{margin-bottom:20px}
.shell.admin .page-head h1,.shell.admin .bo-head h1{letter-spacing:-.035em}
.shell.admin .bo-kpis{gap:14px;margin:18px 0 24px}
.shell.admin .bo-kpi{min-height:112px;padding:18px 20px;background:linear-gradient(145deg,#fff,#f9fbff)}
.shell.admin .bo-kpi strong{font-size:clamp(24px,2.3vw,32px)}
.shell.admin .table-scroll,.shell.admin .users-table{max-width:100%;overflow-x:auto}
.shell.admin table{width:100%;border-spacing:0}
.shell.admin th{background:#f6f8fc;color:#53627c;font-size:12px;text-transform:uppercase;letter-spacing:.045em}
.shell.admin td,.shell.admin th{padding:14px 16px;border-bottom:1px solid #e8ecf3}
.shell.admin tbody tr:hover{background:#f8faff}
.shell.admin input,.shell.admin select,.shell.admin textarea{border-color:#cdd6e5;border-radius:10px;min-height:44px}
.shell.admin input:focus,.shell.admin select:focus,.shell.admin textarea:focus{border-color:#4664ed;outline:3px solid #dce5ff}
.shell.admin button,.shell.admin .button{border-radius:10px;min-height:42px}
.shell.admin .primary{background:#3e5ce9;border-color:#3e5ce9}
@media(min-width:901px){body[data-admin] .shell.admin .admin-content{min-height:0;overflow:hidden}body[data-admin] .shell.admin .admin-content .main{overflow-y:auto;min-height:0;scrollbar-gutter:stable}}
@media(max-width:900px){.shell.admin{display:block}.shell.admin .sidebar{display:flex;flex-direction:row;align-items:center;overflow-x:auto;padding:12px;gap:6px}.shell.admin .sidebar a{white-space:nowrap;flex:none;margin:0}.admin-side-brand,.shell.admin .side-label,.shell.admin .sidebar hr,.shell.admin .side-link{display:none}.admin-toolbar{padding:12px 18px}.shell.admin .main{padding:22px 16px 40px}}
@media(max-width:600px){.admin-account{display:none}.shell.admin .bo-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.shell.admin .bo-kpi{min-height:104px;padding:14px}.shell.admin .main section.card{padding:18px}.shell.admin .table-scroll{margin-inline:-4px}}

body[data-admin]{height:100dvh;display:flex;flex-direction:column;overflow:hidden}
body[data-admin]>header,body[data-admin]>#status{flex:none}
body[data-admin]>#app{flex:1;min-height:0;overflow:hidden}
body[data-admin] .shell.admin{height:100%;min-height:0;overflow:hidden}
body[data-admin] .admin-content{min-height:0;overflow:hidden}
body[data-admin] .admin-content .main{flex:1;min-height:0;max-height:none;overflow-y:auto;overscroll-behavior:contain;padding-block:20px}
body[data-admin] .admin-dashboard-main,body[data-admin] .admin-users-main{overflow:hidden}
.admin-dashboard{height:100%;min-height:0;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;gap:12px}
.admin-dashboard .page-head{margin:0}
.admin-dashboard .page-head h1{font-size:clamp(24px,2.6vw,34px);margin:0}
.admin-dashboard .page-head .lead{margin:4px 0 0;font-size:13px;line-height:1.3}
.admin-dashboard .bo-todo{margin:0;padding:10px 16px;min-height:0;overflow:auto}
.admin-dashboard .bo-todo h2{font-size:15px;margin:0 0 4px}
.admin-dashboard .bo-todo ul{display:flex;flex-wrap:wrap;gap:4px 22px;margin:0;padding-left:18px}
.admin-dashboard .bo-todo li{margin:0;font-size:13px}
.admin-dashboard .bo-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:0}
.admin-dashboard .bo-kpis>.kpi{min-width:0;min-height:74px;padding:10px 12px;border:1px solid #e2e7f0;border-radius:12px;background:#fff;display:flex;flex-direction:column;justify-content:center;gap:2px;box-shadow:0 3px 14px rgba(26,42,76,.035)}
.admin-dashboard .bo-kpis>.kpi span{font-size:11px;color:#596780;line-height:1.2}
.admin-dashboard .bo-kpis>.kpi b{font:800 clamp(17px,2vw,24px) 'Bricolage Grotesque',sans-serif;line-height:1.1;overflow:hidden;text-overflow:ellipsis}
.admin-dashboard .bo-kpis>.kpi small{font-size:10px;color:#77839a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-dashboard .bo-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;min-height:0;margin:0}
.admin-dashboard .bo-cols>.card{min-width:0;min-height:0;overflow:auto;margin:0;padding:14px}
.admin-dashboard .bo-cols h2{font-size:15px;margin:0}
.admin-dashboard .bo-cols .bo-list{margin:8px 0 0}
.admin-dashboard .bo-cols .bo-list li{padding:7px 0;font-size:12px}
.admin-dashboard .bo-cols .bo-list small{font-size:10px}
.admin-dashboard .bo-quick{margin:0;display:flex;align-items:center;gap:12px;min-width:0}
.admin-dashboard .bo-quick h2{font-size:13px;white-space:nowrap;margin:0}
.admin-dashboard .bo-quick>.row{flex:1;min-width:0;flex-wrap:nowrap;overflow-x:auto;padding:3px 0}
.admin-dashboard .bo-quick .button{white-space:nowrap;font-size:12px;padding:8px 10px;min-height:36px}
.shell.admin .admin-dashboard .bo-kpis{grid-template-columns:repeat(5,minmax(0,1fr));gap:9px;margin:0}
.shell.admin .admin-dashboard .bo-cols{gap:10px;margin:0;min-height:0}
.shell.admin .admin-dashboard .bo-cols section.card{padding:14px}
.shell.admin .admin-dashboard .bo-quick{margin:0}
.admin-users{height:100%;min-height:0;display:flex;flex-direction:column}
.admin-users-main>#cp{height:100%;min-height:0}
.admin-users>.page-head{flex:none;align-items:center;margin:0 0 12px}
.admin-users>.page-head h1{font-size:clamp(24px,2.5vw,34px);margin:0}
.admin-users-count{color:#60708a;font-size:13px;white-space:nowrap}
.admin-users-workspace{flex:1;min-height:0;display:grid;grid-template-columns:minmax(290px,34%) minmax(0,1fr);gap:12px}
.admin-users-detail,.admin-users-list{min-height:0;margin:0!important;border-radius:14px!important}
.admin-users-detail{overflow-y:auto;padding:22px!important}
.admin-users-detail h2{font-size:20px;margin:4px 0 16px}
.admin-users-detail .eyebrow{font-size:11px;margin:0;color:#5268a6}
.admin-users-empty{display:grid;place-content:center;text-align:center;height:100%;max-width:250px;margin:auto}
.admin-users-empty>span{font-size:36px;color:#8295d8}
.admin-users-empty h2{margin:8px 0}
.admin-users-empty p{font-size:13px}
.admin-users-form label{margin:10px 0;font-size:12px}
.admin-users-form input{margin-top:5px;font-size:14px;min-height:40px!important;padding:9px 11px}
.admin-users-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.admin-users-actions button{font-size:13px;min-height:38px!important;padding:8px 12px}
.admin-users-list{display:flex;flex-direction:column;overflow:hidden;padding:0!important}
.admin-users-list-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid #e8edf4}
.admin-users-list-head h2{margin:0!important;font-size:17px}
.admin-users-list-head p{margin:2px 0 0;font-size:12px;line-height:1.3}
.admin-users-search{margin:0;min-width:180px;width:min(230px,40%)}
.admin-users-search input{margin:0;font-size:13px;padding:8px 10px;min-height:38px}
.admin-users-table-wrap{flex:1;min-height:0;overflow:auto}
.admin-users-table-wrap table{min-width:520px}
.admin-users-table-wrap thead{position:sticky;top:0;z-index:1}
.admin-users-table-wrap td,.admin-users-table-wrap th{padding:10px 12px!important;font-size:12px}
.admin-users-table-wrap td strong{font-size:13px}
.admin-users-table-wrap tr.is-selected{background:#eef3ff}
.admin-users-row-actions{display:flex;gap:5px;white-space:nowrap}
.admin-users-row-actions button{min-height:32px!important;padding:6px 9px;font-size:11px}
@media(max-width:1150px){.admin-dashboard .bo-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-dashboard .bo-cols{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){body[data-admin] .shell.admin{display:flex;flex-direction:column}.shell.admin .sidebar{flex:none}.shell.admin .admin-content{flex:1;min-height:0}}
@media(max-width:760px){body[data-admin] .admin-content .main{padding:12px}.admin-users-workspace{display:block}.admin-users-detail{display:none;padding:14px!important}.admin-users-list{height:100%}.admin-users.is-editing .admin-users-detail{display:block;height:100%}.admin-users.is-editing .admin-users-list{display:none}.admin-users-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 9px}.admin-users-form label{margin:5px 0}.admin-users-form label:nth-child(3),.admin-users-actions{grid-column:1/-1}.admin-users-list-head p{display:none}.admin-dashboard .bo-kpis{grid-template-columns:repeat(2,minmax(0,1fr));max-height:210px;overflow-y:auto}.admin-dashboard .bo-cols{grid-template-columns:repeat(3,minmax(240px,90%));overflow-x:auto}}
@media(max-width:900px){.shell.admin .admin-dashboard .bo-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.shell.admin .admin-dashboard .bo-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-height:700px){.admin-dashboard .bo-kpis{overflow:auto}.admin-dashboard .bo-cols{min-height:100px}}
