/* ============================================================
   Platforma: dodatki do oryginalnego styles.css ("soft neobrutalism").
   Wszystko z tych samych tokenów (--ink, --shadow-*, --radius-*, pastelowe akcenty);
   żadnych nowych kolorów, żadnych nowych krojów. Oryginalny styles.css nie jest zmieniany.
   ============================================================ */

/* ---------- Ekran ładowania (wcześniej style w atrybutach, teraz klasy: CSP) ---------- */
.km-loader{position:fixed;inset:0;z-index:99999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.1rem;background:#fff;transition:opacity .35s ease;}
.km-loader.done{opacity:0;pointer-events:none;}
.km-loader .spin-wrap{position:relative;width:64px;height:64px;}
.km-loader .spin-ring{position:absolute;inset:-9px;border-radius:50%;border:3px solid #e4e4e4;border-top-color:var(--ink);animation:km-spin .85s linear infinite;}
.km-loader svg{position:relative;width:64px;height:64px;stroke:var(--ink);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;}
.km-loader .bar{width:230px;height:8px;border-radius:99px;background:#e4e4e4;overflow:hidden;}
.km-loader .bar>i{display:block;height:100%;width:2%;background:var(--ink);border-radius:99px;transition:width .18s ease;}
.km-loader .msg{color:var(--text-muted);font-size:.85rem;min-height:1.2em;text-align:center;padding:0 1rem;}
@keyframes km-spin{to{transform:rotate(360deg)}}

/* ---------- Podstawy ---------- */
[hidden]{display:none!important;}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.skip-link{position:absolute;left:.6rem;top:-3rem;background:var(--ink);color:#fff;padding:.5rem .9rem;border-radius:var(--radius-sm);z-index:1000;font-weight:700;transition:top .15s;}
.skip-link:focus{top:.6rem;text-decoration:none;}
.muted{color:var(--text-muted);}
.spacer{flex:1;}
.row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}
.stack{display:flex;flex-direction:column;gap:.75rem;}
.kbd{display:inline-block;min-width:1.5em;padding:.05em .45em;border:1.25px solid var(--ink);border-bottom-width:2.5px;border-radius:6px;background:#fff;font-size:.78rem;font-weight:700;text-align:center;color:var(--ink);}
.pill.red{background:var(--accent-red-light);color:#c8344f;}
.pill.purple{background:var(--accent-purple-light);color:var(--accent-purple);}
.pill.gray{background:var(--gray-100);color:var(--gray-600);}
.pill.ink{background:var(--ink);color:#fff;}
.show-sm{display:none;}
.ic.sm{width:16px;height:16px;}
.ic.lg{width:28px;height:28px;}

/* ---------- Przyciski: dodatki ---------- */
.btn.lg{padding:.7rem 1.3rem;font-size:.95rem;border-radius:var(--radius);}
.btn.block{display:flex;width:100%;justify-content:center;}
.btn.amber{background:var(--accent-amber-light);}
.btn.icon{padding:.4rem;border-radius:var(--radius-sm);}
.btn.icon.xs{padding:.2rem;}
.btn[aria-busy=true]{position:relative;color:transparent!important;pointer-events:none;}
.btn[aria-busy=true]>*{visibility:hidden;}
.btn[aria-busy=true]::after{content:"";position:absolute;width:16px;height:16px;left:calc(50% - 8px);top:calc(50% - 8px);border:2.5px solid var(--ink);border-top-color:transparent;border-radius:50%;animation:km-spin .7s linear infinite;}
.btn.link{background:none;border:none;box-shadow:none;padding:.1rem .2rem;text-decoration:underline;color:var(--accent-blue);font-weight:600;}
.btn.link:hover{transform:none;box-shadow:none;}

/* ---------- Formularze ---------- */
.pf .field{display:flex;flex-direction:column;gap:.35rem;margin-bottom:1rem;min-width:0;}
.pf .field>label,.pf .field-label{display:flex;align-items:center;gap:.4rem;font-weight:700;font-size:.83rem;color:var(--text-main);}
.pf .req{color:#c8344f;font-weight:800;}
.pf .opt-tag{color:var(--text-muted);font-weight:500;font-size:.74rem;}
.pf .field-hint{font-size:.78rem;color:var(--text-muted);line-height:1.45;}
.pf .field-error{display:flex;gap:.35rem;align-items:flex-start;font-size:.8rem;font-weight:600;color:#c8344f;line-height:1.4;}
.pf .field-error .ic{width:15px;height:15px;margin-top:1px;}
.pf .field-error .ic svg *{stroke:#c8344f!important;}
.pf .form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 1rem;}
.pf .form-grid .wide{grid-column:1/-1;}

.pf input[type=text],.pf input[type=password],.pf input[type=search],.pf input[type=number],.pf input[type=url],.pf select,.pf textarea{
  width:100%;font:inherit;font-size:.93rem;color:var(--text-main);background:#fff;
  border:1.5px solid var(--ink);border-radius:var(--radius-sm);padding:.58rem .8rem;line-height:1.4;
  box-shadow:2px 2px 0 var(--gray-200);transition:box-shadow .12s,transform .12s,border-color .12s,background-color .12s;}
.pf input::placeholder,.pf textarea::placeholder{color:var(--gray-400);}
.pf input:hover:not(:disabled),.pf select:hover:not(:disabled),.pf textarea:hover:not(:disabled){box-shadow:3px 3px 0 var(--gray-300);}
.pf input:focus,.pf select:focus,.pf textarea:focus{outline:none;box-shadow:3px 3px 0 var(--accent-blue);transform:translate(-1px,-1px);}
.pf input:focus-visible,.pf select:focus-visible,.pf textarea:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px;}
.pf [aria-invalid=true]{border-color:var(--accent-red);box-shadow:3px 3px 0 var(--accent-red-light);}
.pf input:disabled,.pf select:disabled,.pf textarea:disabled{background:var(--gray-100);color:var(--gray-500);cursor:not-allowed;box-shadow:none;border-color:var(--gray-400);}
.pf textarea{min-height:5.5rem;resize:vertical;}
.pf textarea.code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.82rem;line-height:1.5;tab-size:2;white-space:pre-wrap;overflow:auto;}
.pf textarea.grow{resize:none;overflow:hidden;min-height:2.6rem;}
.pf select{appearance:none;-webkit-appearance:none;padding-right:2.3rem;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%234b4a57' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .7rem center;background-size:16px;}
.pf input[type=number]{-moz-appearance:textfield;}
.pf .counter{font-size:.72rem;color:var(--text-muted);text-align:right;}
.pf .counter.over{color:#c8344f;font-weight:700;}

.pf .input-group{display:flex;align-items:stretch;}
.pf .input-group>input{border-top-right-radius:0;border-bottom-right-radius:0;}
.pf .input-group>.addon{display:inline-flex;align-items:center;justify-content:center;padding:0 .7rem;border:1.5px solid var(--ink);border-left:none;
  border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--bg-subtle);cursor:pointer;color:var(--ink);font:inherit;font-weight:700;font-size:.8rem;}
.pf .input-group>.addon:hover{background:var(--accent-blue-light);}

/* checkbox i radio: ten sam wygląd co "opt" generatora */
.check,.radio{display:inline-flex;align-items:flex-start;gap:.55rem;cursor:pointer;font-size:.9rem;line-height:1.35;}
.check input,.radio input{appearance:none;-webkit-appearance:none;flex-shrink:0;width:20px;height:20px;margin:.05rem 0 0;border:1.5px solid var(--ink);background:#fff;cursor:pointer;
  display:inline-grid;place-content:center;box-shadow:2px 2px 0 var(--ink);transition:transform .1s,box-shadow .1s,background-color .15s;}
.check input{border-radius:6px;}
.radio input{border-radius:50%;}
.check input:hover,.radio input:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--ink);}
.check input:active,.radio input:active{transform:translate(1px,1px);box-shadow:none;}
.check input::before{content:"";width:11px;height:11px;transform:scale(0);clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%);background:var(--ink);transition:transform .2s cubic-bezier(.34,1.56,.64,1);}
.radio input::before{content:"";width:9px;height:9px;border-radius:50%;transform:scale(0);background:var(--ink);transition:transform .2s cubic-bezier(.34,1.56,.64,1);}
.check input:checked,.radio input:checked{background:var(--accent-amber);}
.check input:checked::before,.radio input:checked::before{transform:scale(1);}
.check input:focus-visible,.radio input:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px;}
.check input:disabled,.radio input:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;}
.check .desc,.radio .desc{display:block;color:var(--text-muted);font-size:.78rem;}

/* przełącznik (publikacja) */
.switch{display:inline-flex;align-items:center;gap:.6rem;cursor:pointer;font-size:.86rem;font-weight:600;user-select:none;}
.switch input{position:absolute;opacity:0;width:0;height:0;}
.switch .track{position:relative;flex-shrink:0;width:44px;height:26px;border:1.5px solid var(--ink);border-radius:99px;background:#fff;box-shadow:2px 2px 0 var(--ink);transition:background-color .15s;}
.switch .track::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border:1.5px solid var(--ink);border-radius:50%;background:#fff;transition:transform .18s cubic-bezier(.34,1.56,.64,1),background-color .15s;}
.switch input:checked+.track{background:var(--accent-green-light);}
.switch input:checked+.track::after{transform:translateX(18px);background:var(--accent-green);}
.switch input:focus-visible+.track{outline:2px solid var(--accent-blue);outline-offset:2px;}
.switch input:disabled+.track{opacity:.5;}

/* przełącznik segmentowy */
.segmented{display:inline-flex;border:1.5px solid var(--ink);border-radius:var(--radius-sm);overflow:hidden;background:#fff;box-shadow:2px 2px 0 var(--ink);}
.segmented button{border:none;background:transparent;padding:.4rem .8rem;font:inherit;font-size:.8rem;font-weight:700;color:var(--text-body);cursor:pointer;border-right:1.25px solid var(--ink);}
.segmented button:last-child{border-right:none;}
.segmented button:hover{background:var(--bg-subtle);}
.segmented button[aria-pressed=true]{background:var(--accent-blue-light);color:var(--ink);}

/* strefa upuszczania plików */
.dropzone{display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center;padding:1.4rem 1rem;border:2px dashed var(--ink);border-radius:var(--radius);background:var(--bg-subtle);cursor:pointer;transition:background-color .15s,transform .12s;}
.dropzone:hover,.dropzone.over{background:var(--accent-blue-light);transform:translate(-1px,-1px);}
.dropzone:focus-within{outline:2px solid var(--accent-blue);outline-offset:2px;}
.dropzone input[type=file]{position:absolute;opacity:0;width:1px;height:1px;}
.dropzone b{color:var(--text-main);}

/* siła hasła: tylko podpowiedź, serwer pilnuje reguł */
.meter{height:6px;border:1px solid var(--ink);border-radius:99px;background:#fff;overflow:hidden;}
.meter>i{display:block;height:100%;width:0;background:var(--accent-red);transition:width .2s,background-color .2s;}
.meter.s2>i{background:var(--accent-amber);}
.meter.s3>i{background:var(--accent-green);}

/* ---------- Okna dialogowe (natywny <dialog>: pułapka fokusu, Esc, inertne tło) ---------- */
dialog.pm{padding:0;border:1.25px solid var(--ink);border-radius:var(--radius-lg);background:var(--bg-card);color:var(--text-body);
  width:min(var(--pm-w,640px),calc(100vw - 1.5rem));max-height:min(92vh,920px);box-shadow:var(--shadow-lg);overflow:hidden;}
dialog.pm[open]{display:flex;flex-direction:column;animation:pm-in .16s ease-out;}
dialog.pm::backdrop{background:rgba(17,24,39,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);}
dialog.pm.sm{--pm-w:440px;}
dialog.pm.md{--pm-w:660px;}
dialog.pm.lg{--pm-w:920px;}
dialog.pm.xl{--pm-w:1280px;height:min(92vh,900px);}
dialog.pm.top{z-index:2000;}
@keyframes pm-in{from{opacity:0;transform:translateY(8px) scale(.985);}to{opacity:1;transform:none;}}
.pm-head{display:flex;align-items:center;gap:.8rem;padding:.95rem 1.2rem;border-bottom:1.25px solid var(--border-soft);background:var(--bg-card);}
.pm-head h2{margin:0;font-size:1.1rem;flex:1;min-width:0;}
.pm-head .sub{display:block;font-size:.78rem;font-weight:500;color:var(--text-muted);}
.pm-body{padding:1.2rem 1.3rem;overflow-y:auto;flex:1;min-height:0;}
.pm-foot{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.85rem 1.2rem;border-top:1.25px solid var(--border-soft);background:var(--bg-subtle);}
.pm-foot .status{font-size:.82rem;color:var(--text-muted);}
.pm-foot .status.warn{color:var(--accent-amber);font-weight:700;}
.pm-foot .status.ok{color:var(--accent-green);font-weight:700;}
.pm-x{width:32px;height:32px;border-radius:50%;border:1.25px solid var(--border-soft);background:var(--bg-subtle);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;color:var(--ink);flex:none;}
.pm-x:hover{background:var(--accent-red-light);border-color:var(--accent-red);}
.pm-x .ic{width:16px;height:16px;}

/* ---------- Podpowiedzi: dymki, paski wskazówek, puste stany ---------- */
/* :where(): zerowa specyficzność, więc elementy już pozycjonowane (np. .comment-btn) zachowują swoje position */
:where([data-tip]){position:relative;}
/* Dymek jest display:none dopóki nie jest potrzebny: ukryty element pozycjonowany bezwzględnie i tak zwiększałby
   przewijalną szerokość strony (na telefonie i w wąskim oknie). */
[data-tip]::after{content:attr(data-tip);display:none;position:absolute;z-index:3000;left:50%;bottom:calc(100% + 9px);transform:translateX(-50%);width:max-content;max-width:min(260px,70vw);
  padding:.42rem .65rem;border-radius:9px;background:var(--ink);color:#fff;font-size:.74rem;font-weight:600;line-height:1.35;text-align:center;white-space:normal;text-transform:none;letter-spacing:0;
  box-shadow:3px 3px 0 rgba(17,24,39,.25);pointer-events:none;}
[data-tip]::before{content:"";display:none;position:absolute;z-index:3000;left:50%;bottom:calc(100% + 3px);transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--ink);border-bottom:0;pointer-events:none;}
[data-tip-pos=bottom]::after{bottom:auto;top:calc(100% + 9px);}
[data-tip-pos=bottom]::before{bottom:auto;top:calc(100% + 3px);border-top:0;border-bottom:6px solid var(--ink);border-top-color:transparent;}
/* left = dymek rozciąga się w lewo od elementu (kotwica: prawa krawędź), right = w prawo */
[data-tip-pos=left]::after{left:auto;right:0;transform:none;}
[data-tip-pos=right]::after{left:0;transform:none;}
[data-tip]:hover::after,[data-tip]:hover::before,[data-kbd] [data-tip]:focus-visible::after,[data-kbd] [data-tip]:focus-visible::before{display:block;animation:tip-in .14s ease-out .4s both;}
@keyframes tip-in{from{opacity:0;}to{opacity:1;}}
@media (hover:none) and (pointer:coarse){[data-tip]::after,[data-tip]::before{display:none!important;}}
/* ikona "?" przy etykiecie pola: dymek z wyjaśnieniem */
.tip-i{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border:1.25px solid var(--ink);border-radius:50%;background:#fff;font-size:.68rem;font-weight:800;color:var(--ink);cursor:help;flex-shrink:0;}
.tip-i:hover{background:var(--accent-amber-light);}

.hint-bar{display:flex;align-items:flex-start;gap:.7rem;margin:0 0 1.1rem;padding:.75rem .95rem;border:1.25px solid var(--ink);border-left-width:4px;border-left-color:var(--accent-amber);border-radius:var(--radius-sm);background:var(--accent-amber-light);font-size:.86rem;line-height:1.45;color:var(--text-body);}
.hint-bar .ic{margin-top:1px;}
.hint-bar b{color:var(--text-main);}
.hint-bar .hint-x{margin-left:auto;flex-shrink:0;border:none;background:none;cursor:pointer;padding:.15rem;border-radius:6px;color:var(--ink);}
.hint-bar .hint-x:hover{background:rgba(0,0,0,.08);}
.hint-bar.info{border-left-color:var(--accent-blue);background:var(--accent-blue-light);}
/* ---- podgląd jako inna osoba (administrator): pasek pod nagłówkiem, który nie pozwala zapomnieć, czyje konto widać ---- */
.imp-bar{display:flex;align-items:center;gap:.6rem;margin:.6rem -1.4rem -.7rem;padding:.5rem 1.4rem;border-top:1.25px solid var(--ink);background:var(--accent-amber-light);font-size:.84rem;line-height:1.4;color:var(--text-body);}
.imp-bar b{color:var(--text-main);}
.imp-bar .spacer{flex:1;}
.imp-bar .ic{flex-shrink:0;}
@media (max-width:640px){.imp-bar{flex-wrap:wrap;}}
@media print{.imp-bar{display:none;}}

/* ---- samouczek: nakładka z „oknem” na elemencie i karta z opisem (tutorial.js, templates/tutorial.html) ---- */
.tour-invite{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin:0 0 1.1rem;padding:.75rem .95rem;border:1.25px solid var(--ink);border-left-width:4px;border-left-color:var(--accent-blue);border-radius:var(--radius-sm);background:var(--accent-blue-light);font-size:.86rem;line-height:1.45;color:var(--text-body);}
.tour-invite b{color:var(--text-main);}
.tour-invite>span:nth-child(2){flex:1 1 18rem;}
.tour-invite .hint-x{flex-shrink:0;border:none;background:none;cursor:pointer;padding:.15rem;border-radius:6px;color:var(--ink);}
.tour-invite .hint-x:hover{background:rgba(0,0,0,.08);}
.tour{position:fixed;inset:0;z-index:9000;pointer-events:none;}
.tour-shield{position:fixed;inset:0;pointer-events:auto;background:transparent;}
.tour-shield.dim{background:rgba(35,34,43,.62);}
.tour-hole{position:fixed;pointer-events:none;border:2px solid var(--accent-amber);border-radius:var(--radius-sm);box-shadow:0 0 0 100vmax rgba(35,34,43,.62);transition:top .18s ease,left .18s ease,width .18s ease,height .18s ease;}
.tour-card{position:fixed;pointer-events:auto;box-sizing:border-box;max-width:calc(100vw - 24px);padding:1rem 1.1rem .9rem;border:1.5px solid var(--ink);border-radius:var(--radius-sm);background:var(--bg-card);box-shadow:5px 5px 0 var(--ink);color:var(--text-body);font-size:.9rem;line-height:1.5;}
.tour-card.center{top:50%;left:50%;transform:translate(-50%,-50%);}
.tour-card h3{margin:.15rem 0 .45rem;font-size:1.05rem;color:var(--text-main);}
.tour-card .tour-text p{margin:0 0 .55rem;}
.tour-card .tour-text b{color:var(--text-main);}
.tour-meta{display:flex;align-items:center;gap:.6rem;font-size:.72rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;}
.tour-bar{flex:1;height:5px;border:1px solid var(--ink);border-radius:99px;background:#fff;overflow:hidden;}
.tour-bar i{display:block;height:100%;background:var(--accent-blue);transition:width .18s ease;}
.tour-foot{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-top:.7rem;}
.tour-foot .spacer{flex:1;}
/* ołówek poprawki pojawia się normalnie po najechaniu; w kroku o poprawkach jest widoczny od razu */
.tour-cm>.comment-btn{display:flex!important;}
@media (prefers-reduced-motion:reduce){.tour-hole,.tour-bar i{transition:none;}}
@media print{.tour,.tour-invite,.imp-bar{display:none!important;}}
.empty-state{display:flex;flex-direction:column;align-items:center;gap:.5rem;text-align:center;padding:2.4rem 1rem;color:var(--text-muted);}
.empty-state .ic{width:36px;height:36px;opacity:.7;}
.empty-state b{color:var(--text-main);font-size:1rem;}

/* ---------- Powiadomienia ---------- */
.toast-host{position:fixed;inset:auto 1rem 1rem auto;margin:0;padding:0;border:0;background:none;overflow:visible;z-index:5000;display:flex;flex-direction:column;gap:.55rem;align-items:flex-end;pointer-events:none;}
.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:.6rem;max-width:min(380px,calc(100vw - 2rem));padding:.7rem .9rem;border:1.5px solid var(--ink);border-radius:var(--radius-sm);background:#fff;box-shadow:var(--shadow);font-size:.88rem;font-weight:600;color:var(--text-main);animation:pm-in .18s ease-out;}
.toast.ok{background:var(--accent-green-light);}
.toast.error{background:var(--accent-red-light);}
.toast.info{background:var(--accent-blue-light);}
.toast button{margin-left:.3rem;border:none;background:none;cursor:pointer;padding:0;color:var(--ink);}

/* ---------- Logowanie ---------- */
.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:
  radial-gradient(circle at 12% 18%,var(--accent-blue-light) 0,transparent 32%),radial-gradient(circle at 88% 82%,var(--accent-amber-light) 0,transparent 30%),#fff;}
.auth-card{width:min(420px,100%);padding:2rem 2rem 1.6rem;background:var(--bg-card);border:1.5px solid var(--ink);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);}
.auth-brand{display:flex;align-items:center;gap:.75rem;margin-bottom:1.3rem;}
.auth-brand .brand-icon{width:42px;height:42px;color:var(--accent-blue);}
.auth-brand .brand-icon svg{width:100%;height:100%;}
.auth-brand small{display:block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);}
.auth-brand b{font-size:1.2rem;color:var(--text-main);}
.auth h1{font-size:1.3rem;margin-bottom:.25rem;}
.auth-foot{margin-top:1.1rem;padding-top:.9rem;border-top:1.25px solid var(--border-soft);font-size:.8rem;color:var(--text-muted);text-align:center;}

/* ---------- Pasek górny: dodatki ---------- */
.tb-group{display:flex;align-items:center;gap:.4rem;}
.topbar .who{white-space:nowrap;display:flex;align-items:center;gap:.5rem;font-size:.82rem;font-weight:600;color:var(--text-main);}
.topbar .who .pill{font-size:.68rem;}
.topbar-actions .btn .badge.new{background:var(--accent-amber);color:var(--ink);}
.topbar-actions .btn .badge{display:inline-block;min-width:1.35em;padding:0 .35em;border-radius:99px;background:var(--ink);color:#fff;font-size:.68rem;font-weight:800;text-align:center;line-height:1.5;}
.lesson-card.draft{border-style:dashed;background:var(--bg-subtle);}
.lesson-card .card-foot{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:auto;padding-top:.5rem;border-top:1px dashed var(--border-soft);}
.lesson-card .card-foot .switch{font-size:.74rem;}
.lesson-card .card-top{display:flex;align-items:center;justify-content:space-between;gap:.4rem;}
.editbar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.55rem .8rem;margin:0 0 1rem;border:1.25px dashed var(--ink);border-radius:var(--radius-sm);background:var(--accent-purple-light);font-size:.82rem;}
.editbar b{color:var(--ink);}

/* ---------- Edytor lekcji ---------- */
.ed{display:grid;grid-template-columns:190px 1fr;gap:0;height:100%;min-height:0;}
.ed-nav{display:flex;flex-direction:column;gap:.2rem;padding:.8rem .6rem;border-right:1.25px solid var(--border-soft);background:var(--bg-subtle);overflow-y:auto;}
.ed-nav button{display:flex;align-items:center;gap:.5rem;text-align:left;padding:.55rem .7rem;border:1.25px solid transparent;border-radius:var(--radius-sm);background:none;font:inherit;font-size:.86rem;font-weight:600;color:var(--text-body);cursor:pointer;}
.ed-nav button:hover{background:#fff;}
.ed-nav button[aria-selected=true]{background:#fff;border-color:var(--ink);box-shadow:2px 2px 0 var(--ink);color:var(--ink);}
.ed-nav .count{margin-left:auto;font-size:.7rem;font-weight:700;color:var(--text-muted);}
.ed-nav .dot{width:8px;height:8px;border-radius:50%;background:var(--accent-amber);margin-left:auto;}
.ed-main{overflow-y:auto;padding:1.1rem 1.3rem 2rem;min-width:0;}
.ed-main h3{margin:0 0 .6rem;font-size:1rem;}
.ed-card{border:1.25px solid var(--ink);border-radius:var(--radius-sm);background:#fff;margin-bottom:.9rem;box-shadow:var(--shadow-sm);}
.ed-card-head{display:flex;align-items:center;gap:.5rem;padding:.55rem .7rem;border-bottom:1.25px solid var(--border-soft);background:var(--bg-subtle);border-radius:var(--radius-sm) var(--radius-sm) 0 0;}
.ed-card-head .num{font-size:.7rem;font-weight:800;color:var(--accent-blue);background:var(--accent-blue-light);border-radius:6px;padding:2px 8px;flex-shrink:0;}
.ed-card-head .pf{flex:1;min-width:0;}
.ed-card-head input[type=text]{font-weight:700;}
.ed-card-body{padding:.8rem .8rem .3rem;}
.ed-tools{display:flex;gap:.25rem;flex-shrink:0;}
.ed-add{display:flex;gap:.5rem;flex-wrap:wrap;margin:.2rem 0 1rem;}
.chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.4rem;}
.chip{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .3rem .15rem .6rem;border:1.25px solid var(--ink);border-radius:99px;background:var(--accent-blue-light);font-size:.78rem;font-weight:600;}
.chip button{border:none;background:none;cursor:pointer;padding:.1rem .25rem;font-size:.9rem;line-height:1;color:var(--ink);border-radius:50%;}
.chip button:hover{background:rgba(0,0,0,.1);}
.fig-row{display:grid;grid-template-columns:160px 1fr;gap:.9rem;}
.fig-row .thumb{width:160px;height:120px;border:1.25px solid var(--ink);border-radius:var(--radius-sm);background:var(--bg-subtle) center/contain no-repeat;display:flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--text-muted);text-align:center;}
.sub-checks{display:flex;flex-wrap:wrap;gap:.4rem .9rem;}

/* slajdy: pasek z numerami i poleceniami, pod nim ramka (i kod obok, gdy edytuje się HTML) */
.ed-slides{display:flex;flex-direction:column;gap:.7rem;min-height:0;}
.slides-top{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}
.slides-top .slide-add{width:auto;padding-top:.35rem;padding-bottom:.35rem;font-size:.82rem;}
.slides-body{display:grid;gap:1rem;min-height:0;flex:1;}
.slides-body.code{grid-template-columns:minmax(300px,420px) 1fr;}
.slides-body.visual{grid-template-columns:minmax(0,1fr);}
.slides-body .code-col{display:flex;flex-direction:column;min-height:0;gap:.6rem;overflow-y:auto;padding-right:.2rem;}
.slide-strip{display:flex;gap:.3rem;flex-wrap:wrap;}
.slide-strip button{min-width:34px;padding:.25rem .5rem;border:1.25px solid var(--ink);border-radius:8px;background:#fff;font:inherit;font-size:.78rem;font-weight:700;cursor:pointer;}
.slide-strip button:hover{background:var(--bg-subtle);}
.slide-strip button[aria-current=true]{background:var(--accent-amber);box-shadow:2px 2px 0 var(--ink);}
.preview-col{display:flex;flex-direction:column;gap:.5rem;min-width:0;min-height:0;}
.preview-frame{flex:1;min-height:320px;border:1.5px solid var(--ink);border-radius:var(--radius);overflow:hidden;background:#fff;box-shadow:var(--shadow-sm);aspect-ratio:16/9;max-height:max(320px,calc(100vh - 340px));}
.preview-frame iframe{width:100%;height:100%;border:0;display:block;}
.slides-adv{border:1.25px dashed var(--border-med);border-radius:var(--radius-sm);padding:.5rem .8rem;background:var(--bg-subtle);}
.slides-adv summary{cursor:pointer;font-weight:700;font-size:.85rem;}
.slides-adv .field{margin-top:.8rem;}

/* pola WYSIWYG (rich.js): wyglądają jak pola formularza, a tekst jest od razu sformatowany */
.rt{min-height:2.5rem;padding:.55rem .8rem;border:1.5px solid var(--ink);border-radius:var(--radius-sm);background:#fff;color:var(--text-main);font-size:.93rem;line-height:1.5;
  box-shadow:2px 2px 0 var(--gray-200);outline:none;overflow-wrap:anywhere;transition:box-shadow .12s,transform .12s;cursor:text;}
.rt:hover{box-shadow:3px 3px 0 var(--gray-300);}
.rt:focus{box-shadow:3px 3px 0 var(--accent-blue);transform:translate(-1px,-1px);}
.rt:empty::before{content:attr(data-ph);color:var(--gray-400);pointer-events:none;}
.rt[aria-invalid=true]{border-color:var(--accent-red);box-shadow:3px 3px 0 var(--accent-red-light);}
.rt-line{min-height:2.3rem;padding-top:.4rem;padding-bottom:.4rem;}
.rt code{background:var(--gray-100);border-radius:4px;padding:0 .25rem;}
td .rt{box-shadow:none;}
.rt-bar,.vis-bar{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;padding:.45rem 1.2rem;border-bottom:1.25px solid var(--border-soft);background:var(--bg-card);}
.vis-bar{padding:.4rem .5rem;border:1.25px solid var(--border-soft);border-radius:var(--radius-sm);}
.rt-btn{min-width:34px;height:34px;padding:0 .5rem;border:1.25px solid var(--ink);border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:.9rem;cursor:pointer;
  box-shadow:2px 2px 0 var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:.2rem;}
.rt-btn:hover{background:var(--accent-blue-light);transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--ink);}
.rt-btn:active{transform:translate(1px,1px);box-shadow:none;}
.rt-btn .ic{width:16px;height:16px;}
.rt-hint{font-size:.76rem;margin-left:.4rem;}
.vis-sep{width:1px;height:22px;background:var(--border-med);margin:0 .2rem;}
.bullet{flex-shrink:0;width:1rem;text-align:center;color:var(--text-muted);padding-top:.45rem;font-weight:700;}
.ed-nav-note{margin:auto 0 .2rem;padding:.6rem .5rem 0;font-size:.74rem;line-height:1.4;}
.alert-title-input{width:100%;margin-bottom:.4rem;font-weight:700;text-transform:uppercase;font-size:.78rem;letter-spacing:.03em;}
.fig-row .thumb{cursor:zoom-in;padding:0;font:inherit;}
.fig-row .thumb:disabled{cursor:default;}

/* edytor dokumentu (pre-reading, skrypt): wygląda jak lekcja, a pola są piszące; narzędzia pokazują się po najechaniu */
.doc{max-width:880px;margin:0 auto;padding:.2rem .2rem 2rem;}
.doc-item{position:relative;}
.doc-ins{display:flex;justify-content:center;flex-wrap:wrap;gap:.3rem;min-height:16px;opacity:0;transition:opacity .12s;}
.doc-ins:hover,.doc-ins:focus-within{opacity:1;}
.doc-ins.keep{opacity:.5;margin-top:.2rem;}
.doc-ins.keep:hover,.doc-ins.keep:focus-within{opacity:1;}
.doc-ins .btn.xs{padding:.02rem .5rem;font-size:.72rem;box-shadow:none;border-width:1px;}
.doc-head{display:flex;align-items:center;gap:.4rem;margin:.2rem 0 .4rem;}
.pf .doc .doc-h2,.pf .doc .doc-h3{flex:1;min-width:0;width:auto;border:1px dashed transparent;border-radius:6px;background:transparent;font:inherit;font-weight:800;color:var(--text-main);padding:.15rem .3rem;box-shadow:none;line-height:1.3;}
.pf .doc .doc-h2{font-size:1.5rem;}
.pf .doc .doc-h3{font-size:1.1rem;border-bottom:1px solid var(--border-soft);border-radius:6px 6px 0 0;}
.pf .doc .doc-h2:hover,.pf .doc .doc-h3:hover{border-color:var(--border-med);box-shadow:none;}
.pf .doc .doc-h2:focus,.pf .doc .doc-h3:focus{border-color:var(--accent-blue);background:#fff;box-shadow:none;transform:none;outline:none;}
.doc .rt{border:1px dashed transparent;box-shadow:none;background:transparent;padding:.15rem .3rem;min-height:1.7rem;font-size:1rem;line-height:1.6;border-radius:6px;}
.doc .rt:hover{border-color:var(--border-med);box-shadow:none;}
.doc .rt:focus{border-color:var(--accent-blue);background:#fff;box-shadow:none;transform:none;}
.doc .rt[aria-invalid=true]{border-color:var(--accent-red);box-shadow:none;background:var(--accent-red-light);}
.doc-blk{position:relative;margin:.15rem 0;}
.doc-sec{margin-bottom:.6rem;}
.doc-ctl{position:absolute;right:0;top:-14px;z-index:3;display:flex;align-items:center;gap:.3rem;padding:.15rem .3rem;background:#fff;border:1.25px solid var(--border-soft);border-radius:8px;box-shadow:var(--shadow-sm);opacity:0;pointer-events:none;transition:opacity .12s;}
.doc-blk:hover>.doc-ctl,.doc-blk:focus-within>.doc-ctl{opacity:1;pointer-events:auto;}
.pf .doc-ctl select{width:auto;padding:.15rem 1.6rem .15rem .45rem;font-size:.74rem;box-shadow:none;border-width:1.25px;}
.doc .ed-tools{opacity:0;transition:opacity .12s;}
.doc-head:hover .ed-tools,.doc-head:focus-within .ed-tools,.doc-row:hover .ed-tools,.doc-row:focus-within .ed-tools,.doc-ctl .ed-tools{opacity:1;}
.doc-list{margin:.15rem 0 .4rem .3rem;}
.doc-row{display:flex;align-items:flex-start;gap:.3rem;}
.doc-row>.grow-1{flex:1;min-width:0;}
.doc .bullet{padding-top:.15rem;}
.doc-more{margin-left:1.3rem;opacity:.55;box-shadow:none;}
.doc-more:hover{opacity:1;}
.doc .alert-box{margin:.2rem 0;}
.pf .doc .alert-title-input{width:100%;border:1px dashed transparent;background:transparent;box-shadow:none;padding:.1rem .3rem;margin:0 0 .15rem;font-size:.78rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--accent-red);}
.pf .doc .alert-box.ok .alert-title-input{color:var(--accent-green);}
.pf .doc .alert-title-input:hover{border-color:var(--border-med);box-shadow:none;}
.pf .doc .alert-title-input:focus{border-color:var(--accent-blue);background:#fff;box-shadow:none;transform:none;}
.doc .doc-table{margin:.3rem 0;}
.doc .doc-table td{padding:2px 4px;}
.doc .doc-table td .rt{min-height:1.8rem;}
.pf .doc .doc-th{width:100%;min-width:90px;background:transparent;color:inherit;border:1px dashed rgba(255,255,255,.3);box-shadow:none;font-weight:700;padding:.2rem .35rem;}
.pf .doc .doc-th:focus{background:rgba(255,255,255,.12);border-color:#fff;box-shadow:none;transform:none;}
.doc-cell-x{opacity:0;transition:opacity .12s;}
.doc-table:hover .doc-cell-x,.doc-table:focus-within .doc-cell-x{opacity:1;}
.doc-more-row{gap:.3rem;margin-top:.2rem;opacity:.55;}
.doc-more-row:hover,.doc-more-row:focus-within{opacity:1;}
@media (hover:none) and (pointer:coarse){.doc-ins,.doc .ed-tools,.doc-ctl,.doc-cell-x{opacity:1;pointer-events:auto;}.doc-ctl{position:static;margin-bottom:.3rem;box-shadow:none;}}

/* galeria: gdzie obraz jest użyty */
.upl .uses{display:flex;flex-wrap:wrap;gap:.25rem;padding:0 .55rem .4rem;}
.upl .uses .pill{font-size:.68rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.upl.missing .img{display:flex;align-items:center;justify-content:center;color:#c8344f;font-weight:700;font-size:.8rem;background:var(--accent-red-light);}
.upl .img{padding:0;border:0;border-bottom:1.25px solid var(--ink);width:100%;font:inherit;}
.use-list{display:flex;flex-direction:column;gap:.4rem;}
.use-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.45rem .6rem;border:1.25px solid var(--border-soft);border-radius:var(--radius-sm);background:var(--bg-subtle);font-size:.86rem;}
.use-slide{font-weight:800;color:var(--text-main);white-space:nowrap;}
.use-lesson{flex:1;min-width:160px;}
.lb-cap{max-width:80vw;padding:.4rem .8rem;border-radius:var(--radius-sm);background:rgba(255,255,255,.92);color:var(--text-main);font-size:.88rem;font-weight:600;text-align:center;}

/* obrazy zadań w oknie podglądu: te same reguły co .modal-body oryginału */
.pm-body .mb-img{max-width:100%;display:block;margin:.6rem auto;background:#fff;border:1.25px solid var(--border-soft);border-radius:var(--radius-sm);cursor:zoom-in;}
.pm-body .ans-wrap .mb-img{margin:0;border:none;mix-blend-mode:multiply;}

/* powiększenie obrazu (jak lightbox oryginału) */
dialog.pm.lb{width:100vw;max-width:100vw;height:100vh;max-height:100vh;border:0;border-radius:0;box-shadow:none;background:rgba(10,12,18,.88);overflow:hidden;}
dialog.pm.lb[open]{display:flex;align-items:center;justify-content:center;}
dialog.pm.lb::backdrop{background:transparent;}
.lb-x{position:fixed;top:16px;right:20px;}
.lb-body{display:flex;flex-direction:column;align-items:center;gap:.6rem;}
.lb-body img{max-width:92vw;max-height:84vh;object-fit:contain;border-radius:8px;background:#fff;}
.lb-nav{display:flex;gap:1rem;align-items:center;color:#fff;}
.toast .toast-action{margin-left:.4rem;border:1.25px solid var(--ink);border-radius:8px;background:#fff;padding:.15rem .6rem;font:inherit;font-size:.8rem;font-weight:700;cursor:pointer;color:var(--ink);}
.toast .toast-action:hover{background:var(--accent-amber-light);}

/* ---------- Poprawki (rejestr i okno zgłoszenia) ---------- */
.corr{border:1.25px solid var(--ink);border-left-width:5px;border-left-color:var(--accent-amber);border-radius:var(--radius-sm);background:#fff;margin-bottom:.7rem;padding:.75rem .9rem;box-shadow:var(--shadow-sm);}
.corr.resolved{border-left-color:var(--accent-green);background:var(--bg-subtle);}
.corr.rejected{border-left-color:var(--accent-red);background:var(--bg-subtle);}
.corr-answer{margin:.4rem 0;padding:.45rem .7rem;border-radius:var(--radius-sm);background:var(--accent-green-light);font-size:.86rem;}
.corr.rejected .corr-answer{background:var(--accent-red-light);}
.corr-answer b{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;margin-bottom:.1rem;}
.corr-meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-size:.78rem;color:var(--text-muted);margin-bottom:.4rem;}
.corr-meta b{color:var(--text-main);}
.corr-quote{margin:.3rem 0;padding:.35rem .65rem;border-left:3px solid var(--border-med);color:var(--text-muted);font-size:.82rem;font-style:italic;background:var(--bg-subtle);border-radius:0 6px 6px 0;}
.corr-text{white-space:pre-wrap;color:var(--text-main);font-size:.92rem;margin:.3rem 0 .5rem;}
.corr-actions{display:flex;gap:.4rem;flex-wrap:wrap;}
.filters-bar{display:flex;gap:.6rem;flex-wrap:wrap;align-items:flex-end;margin-bottom:1rem;}
.filters-bar .field{margin:0;min-width:160px;}
.flash-target{animation:flash-target 2.4s ease;}
@keyframes flash-target{0%,30%{background:var(--accent-amber-light);box-shadow:0 0 0 3px var(--accent-amber);}100%{background:transparent;box-shadow:0 0 0 0 transparent;}}
.comment-btn .ic{width:15px;height:15px;}

/* ---------- Konta, obrazy, analityka ---------- */
.pw-reveal{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.8rem 1rem;margin:.8rem 0;border:1.5px solid var(--ink);border-radius:var(--radius-sm);background:var(--accent-green-light);}
.pw-reveal code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:1.05rem;font-weight:800;letter-spacing:.04em;color:var(--ink);user-select:all;}
table.data.compact th,table.data.compact td{padding:6px 9px;font-size:.84rem;}
table.data td.num,table.data th.num{text-align:right;font-variant-numeric:tabular-nums;}
table.data tr.off td{color:var(--gray-500);background:var(--bg-subtle);}
.upl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.8rem;}
.upl{border:1.25px solid var(--ink);border-radius:var(--radius-sm);background:#fff;overflow:hidden;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;}
.upl .img{height:110px;background:var(--bg-subtle) center/contain no-repeat;border-bottom:1.25px solid var(--ink);cursor:pointer;}
.upl .meta{padding:.4rem .55rem;font-size:.74rem;line-height:1.35;word-break:break-all;}
.upl .meta b{display:block;color:var(--text-main);font-size:.78rem;}
.upl .acts{display:flex;gap:.3rem;padding:0 .45rem .45rem;margin-top:auto;}
.upl .meta .muted,.upl .meta .img-opis{display:block;}
.upl .meta .img-opis{margin:.15rem 0;color:var(--text-body);font-style:italic;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.img-opis-view{margin:-.4rem 0 1rem;text-align:center;font-style:italic;color:var(--text-body);white-space:pre-line;}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem;margin-bottom:1.2rem;}
.kpi{padding:.8rem .9rem;border:1.25px solid var(--ink);border-radius:var(--radius-sm);background:#fff;box-shadow:var(--shadow-sm);}
.kpi small{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;}
.kpi b{display:block;font-size:1.6rem;line-height:1.15;color:var(--text-main);margin-top:.2rem;}
.kpi span{font-size:.74rem;color:var(--text-muted);}
.chart{display:flex;align-items:flex-end;gap:2px;height:130px;padding:.4rem .4rem 0;border:1.25px solid var(--ink);border-radius:var(--radius-sm);background:#fff;}
.chart .col{flex:1;min-width:2px;display:flex;flex-direction:column;justify-content:flex-end;height:100%;position:relative;}
.chart .col i{display:block;background:var(--accent-blue);border:1px solid var(--ink);border-bottom:none;border-radius:3px 3px 0 0;min-height:0;}
.chart .col:hover i{background:var(--accent-amber);}
.chart-axis{display:flex;justify-content:space-between;font-size:.7rem;color:var(--text-muted);margin:.2rem .2rem 1rem;}
.hbar{height:9px;min-width:60px;border:1px solid var(--ink);border-radius:99px;background:#fff;overflow:hidden;}
.hbar>i{display:block;height:100%;background:var(--accent-green);}
.section-title{display:flex;align-items:center;gap:.5rem;margin:1.4rem 0 .6rem;font-size:.95rem;}

/* ---------- Strona lekcji ---------- */
.lesson-head{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;}
.lesson-meta-row{color:var(--text-muted);display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;}
.prez-frame{position:relative;}
.empty .btn{margin-top:1rem;}

dialog.pm>form{display:contents;}
.ed-card-head>.grow-1{flex:1;min-width:0;}
.alert-box.flat{border-radius:0;margin:0;}

/* na ekranie dotykowym nie ma najechania: ołówek propozycji poprawki jest stale widoczny (w oryginale tylko po najechaniu) */
@media (hover:none) and (pointer:coarse){.commentable-wrapper>.comment-btn{display:flex!important;opacity:.65;}}

/* ---------- Telefon ---------- */
@media (max-width:900px){
  .ed{grid-template-columns:1fr;grid-template-rows:auto 1fr;}
  .ed-nav{flex-direction:row;overflow-x:auto;border-right:none;border-bottom:1.25px solid var(--border-soft);padding:.5rem;}
  .ed-nav button{white-space:nowrap;}
  .slides-body.code{grid-template-columns:minmax(0,1fr);}
  dialog.pm.xl{height:96vh;}
  .fig-row{grid-template-columns:1fr;}
}
@media (max-width:1500px){.hide-md{display:none;}}
@media (max-width:900px){.hide-sm{display:none;}.topbar .crumbs{display:none;}}
@media (max-width:900px){.ed{grid-template-columns:minmax(0,1fr);}.ed-nav-note{display:none;}}
@media (max-width:768px){
  /* oryginalny wzorzec menu: przyciski wchodzą do rozwijanego panelu (.nav-toggle + .topbar-actions.open) */
  .topbar-actions .hide-sm,.topbar-actions .hide-md,.topbar-actions .show-sm{display:inline;}
  .tb-group{flex-direction:column;align-items:stretch;width:100%;gap:.4rem;}
  .topbar-actions .who{justify-content:center;padding:.2rem 0;}
  .topbar-actions .who .name{display:inline;}
  .topbar-actions .btn{justify-content:flex-start;}
  .topbar-actions .btn.icon{width:100%;padding:.4rem .75rem;}
}
@media (max-width:600px){
  .ed-main{padding:.8rem .7rem 1.5rem;}
  .ed-card-head{flex-wrap:wrap;}
  .ed-card-head>.grow-1{flex:1 1 100%;order:3;}
  .upl-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));}
  .pm-head,.pm-foot{padding-left:.9rem;padding-right:.9rem;}
  .pm-body{padding:1rem;}
  .auth-card{padding:1.5rem 1.2rem 1.2rem;}
}
@media print{
  dialog,.toast-host,.hint-bar,.editbar,.km-loader,.comment-btn,.auth{display:none!important;}
  .commentable-wrapper{padding-right:0;}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;}
}

/* repozytorium GitHub w panelu Paczka */
.gh-box{border:2px solid var(--ink);border-radius:var(--radius);padding:.8rem 1rem;background:var(--bg-subtle);box-shadow:var(--shadow-sm);}
.gh-box .gh-row{display:flex;gap:.5rem;align-items:baseline;flex-wrap:wrap;margin:.15rem 0;font-size:.9rem;}
.gh-box .gh-row .k{min-width:9.5rem;color:var(--text-muted);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;}
.gh-box code{font-size:.82rem;}
.gh-box .gh-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.7rem;}

/* ===== Asystent (czat dla redaktorów): panel po prawej stronie, POD nagłówkiem, na stronie i w oknie edytora ===== */
/* Panel boczny otwiera się pod paskiem nagłówka (strona: .topbar, edytor: .pm-head), który zostaje na całą szerokość. Strona (body) i
   treść okna edytora kurczą się o szerokość panelu zamiast być przykryte; na wąskim ekranie panel przykrywa treść, ale też pod nagłówkiem.
   --as-top i --as-ed-top mierzy assistant.js (wysokość nagłówka zmienia się z szerokością ekranu); wartości poniżej to tylko start. */
:root{--as-w:clamp(340px,32vw,460px);--as-ed-w:clamp(320px,34vw,440px);--as-top:58px;--as-ed-top:66px;}
body.as-open{margin-right:var(--as-w);}
body.as-open .topbar{margin-right:calc(-1*var(--as-w));}
dialog.pm.as-open>:not(.pm-head):not(.as-editor){margin-right:var(--as-ed-w);}
.as{position:fixed;top:var(--as-top);right:0;bottom:0;width:var(--as-w);z-index:40;display:flex;flex-direction:column;background:var(--bg-card);border-left:1.25px solid var(--ink);border-top:1.25px solid var(--ink);font-size:.88rem;}
.as-editor{position:absolute;top:var(--as-ed-top);bottom:0;right:0;width:var(--as-ed-w);z-index:5;border-top:0;}
.as-head{display:flex;align-items:center;gap:.4rem;padding:.6rem .8rem;border-bottom:1.25px solid var(--border-soft);background:var(--bg-subtle);}
.as-title{margin:0;font-size:1rem;display:flex;align-items:center;gap:.4rem;}
.as-chat{flex:1;min-height:0;display:flex;flex-direction:column;}
.as-convhead{display:flex;align-items:center;gap:.5rem;padding:.35rem .8rem;border-bottom:1px solid var(--border-soft);font-size:.8rem;}
.as-convtitle{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.as-list{flex:1;min-height:0;overflow-y:auto;padding:.6rem .8rem;display:flex;flex-direction:column;gap:.4rem;}
.as-list-hint{margin:0 0 .3rem;font-size:.8rem;color:var(--text-muted);}
.as-li{display:flex;align-items:center;gap:.3rem;border:1.25px solid var(--ink);border-radius:var(--radius-sm);background:var(--bg-card);}
.as-li.cur{background:var(--accent-blue-light);}
.as-li-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem;text-align:left;padding:.45rem .6rem;border:0;background:none;font:inherit;cursor:pointer;}
.as-li-main:hover{background:var(--bg-subtle);}
.as-li-title{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.as-li-meta{display:flex;gap:.45rem;flex-wrap:wrap;align-items:center;font-size:.72rem;color:var(--text-muted);}
.as-li-meta .pill{font-size:.66rem;}
.as-li-meta .ic{width:14px;height:14px;vertical-align:-3px;}
.as-li>.btn.icon{margin-right:.4rem;padding:.2rem .35rem;}
.as-head .btn.icon{padding:.2rem .35rem;}
.as-notice{padding:.6rem .8rem 0;}
.as-code{display:grid;gap:.25rem;}
.as-code-val{font-family:var(--font-mono,monospace);font-size:1.05rem;letter-spacing:.12em;background:var(--bg-subtle);padding:.05rem .4rem;border:1px solid var(--ink);border-radius:6px;}
.as-admin{padding:.4rem .8rem;border-bottom:1px solid var(--border-soft);font-size:.8rem;color:var(--text-muted);}
.as-admin summary{cursor:pointer;}
.as-admin-row{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.4rem;}
.as-log{flex:1;min-height:0;overflow-y:auto;padding:.7rem .8rem;display:flex;flex-direction:column;gap:.6rem;}
.as-empty{color:var(--text-body);}
.as-empty p{margin:.2rem 0 .5rem;}
.as-ex{display:block;width:100%;text-align:left;margin:.3rem 0;padding:.45rem .6rem;border:1.25px solid var(--ink);border-radius:var(--radius-sm);background:var(--bg-card);font:inherit;font-size:.82rem;cursor:pointer;}
.as-ex:hover{background:var(--bg-subtle);transform:translate(-1px,-1px);box-shadow:2px 2px 0 var(--ink);}
.as-msg{display:flex;flex-direction:column;}
.as-msg.user{align-items:flex-end;}
.as-msg.assistant{align-items:flex-start;}
.as-who{font-size:.7rem;font-weight:700;color:var(--text-muted);margin:0 .2rem .1rem;}
.as-bubble{max-width:92%;padding:.5rem .7rem;border:1.25px solid var(--ink);border-radius:var(--radius-sm);background:var(--bg-card);overflow-wrap:anywhere;}
.as-msg.user .as-bubble{background:var(--accent-blue-light);white-space:pre-wrap;}
.as-msg.assistant .as-bubble{background:var(--bg-subtle);}
.as-md p{margin:.25rem 0;}
.as-md ul{margin:.25rem 0 .25rem 1.1rem;padding:0;}
.as-md code{font-size:.8rem;background:rgba(75,74,87,.1);padding:0 .25rem;border-radius:4px;}
.as-link{color:var(--accent-blue);font-weight:700;text-decoration:underline;text-underline-offset:2px;cursor:pointer;}
.as-link:hover{background:var(--accent-blue-light);}
.as-steps{list-style:none;margin:0 0 .4rem;padding:0;display:grid;gap:.15rem;font-size:.78rem;color:var(--text-muted);}
.as-steps li{display:flex;align-items:center;gap:.35rem;}
.as-steps li .ic{width:14px;height:14px;}
.as-steps li:not(.done) .ic{animation:as-spin 1s linear infinite;}
.as-steps li.done .ic{color:var(--accent-green);}
.as-typing{color:var(--text-muted);font-style:italic;}
@keyframes as-spin{to{transform:rotate(360deg);}}
.as-props{border-top:1.25px solid var(--border-soft);background:var(--bg-subtle);padding:.5rem .8rem;max-height:46%;overflow-y:auto;}
.as-props h3{margin:0 0 .4rem;font-size:.85rem;}
.as-prop{border:1.25px solid var(--ink);border-radius:var(--radius-sm);background:var(--bg-card);padding:.45rem .6rem;margin-bottom:.45rem;}
.as-prop.bad{border-color:var(--accent-red);}
.as-prop-head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;}
.as-prop-head b{flex:1;min-width:0;overflow-wrap:anywhere;}
.as-prop-sum{margin:.25rem 0 .1rem;color:var(--text-body);font-size:.82rem;}
.as-prop-actions{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.35rem;}
.as-prop.applied{background:var(--bg-subtle);}
.as-prop-meta{display:flex;gap:.3rem;flex-wrap:wrap;align-items:center;margin-top:.25rem;}
.as-part{font-size:.7rem;font-weight:700;padding:1px 7px;border:1px solid var(--border-med);border-radius:6px;background:var(--bg-subtle);}
.as-props-foot{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;margin-top:.2rem;}
.as-composer{border-top:1.25px solid var(--border-soft);padding:.5rem .8rem .6rem;background:var(--bg-card);}
.as-ctx{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;font-size:.74rem;margin-bottom:.3rem;}
.as-chip{font-size:.74rem;}
.as-row{display:flex;gap:.4rem;align-items:flex-end;}
.as-input{flex:1;resize:vertical;min-height:2.6rem;max-height:10rem;font:inherit;font-size:16px;padding:.4rem .55rem;border:1.25px solid var(--ink);border-radius:var(--radius-sm);}
.as-foot{font-size:.7rem;margin-top:.3rem;}
.as-count{display:inline-block;min-width:1.3em;padding:0 .35em;margin-left:.3rem;border-radius:99px;background:var(--gray-100);color:var(--gray-600);font-size:.68rem;font-weight:800;text-align:center;line-height:1.5;}
@media (max-width:820px){body.as-open{margin-right:0;}body.as-open .topbar{margin-right:0;}.as{top:var(--as-top);width:100vw;border-left:0;}}
@media (max-width:700px){dialog.pm.as-open>:not(.pm-head):not(.as-editor){margin-right:0;}.as-editor{width:100%;}}

/* ---- zmiany od modelu: nowa treść podkreślona pulsująco (wszędzie: pre-reading, skrypt, zadania, slajdy…), usunięta przekreślona ---- */
ins.pl-new{text-decoration:none;background:rgba(18,183,106,.08);border-bottom:.16em solid #12b76a;padding-bottom:.02em;-webkit-box-decoration-break:clone;box-decoration-break:clone;animation:pl-pulse 1.5s ease-in-out infinite;}
del.pl-del{color:#9a2b3f;background:rgba(200,52,79,.08);text-decoration:line-through;text-decoration-color:#c8344f;text-decoration-thickness:.12em;-webkit-box-decoration-break:clone;box-decoration-break:clone;}
@keyframes pl-pulse{0%,100%{border-bottom-color:#12b76a;background:rgba(18,183,106,.14);}50%{border-bottom-color:rgba(18,183,106,.2);background:rgba(18,183,106,.03);}}
@media (prefers-reduced-motion:reduce){.as-steps li:not(.done) .ic{animation:none;}ins.pl-new{animation:none;}}

/* ---- okno porównania ---- */
.dv-bar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.5rem 1.2rem;border-bottom:1.25px solid var(--border-soft);background:var(--bg-subtle);}
.dv-tabs{display:flex;gap:.3rem;flex-wrap:wrap;}
.dv-tab{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .7rem;border:1.25px solid var(--ink);border-radius:var(--radius-sm);background:var(--bg-card);font:inherit;font-size:.84rem;font-weight:600;cursor:pointer;}
.dv-tab.on{background:var(--accent-amber);box-shadow:2px 2px 0 var(--ink);}
.dv-tab .as-count{background:var(--ink);color:#fff;}
.dv-legend{font-size:.8rem;display:inline-flex;gap:.6rem;align-items:center;}
.dv-body{overflow-y:auto;}
.dv-part{max-width:860px;margin:0 auto;}
.dv-sec{margin:0 0 1.1rem;}
.dv-sec h2,.dv-sec h3{margin:0 0 .4rem;}
.dv-sec ul{margin:.2rem 0 .2rem 1.2rem;padding:0;}
.dv-sec li{margin:.25rem 0;}
.dv-blk{margin:.35rem 0;}
.is-new{border-left:3px solid #12b76a;padding-left:.6rem;}
.is-removed{border-left:3px solid #c8344f;padding-left:.6rem;opacity:.8;}
.dv-task{border:1.25px solid var(--ink);border-radius:var(--radius-sm);background:#fff;padding:.6rem .8rem;margin-bottom:.7rem;display:grid;gap:.3rem;}
.dv-task.is-new,.dv-task.is-removed{border-left-width:4px;}
.dv-task.is-hidden{opacity:.6;}
.dv-task ul{margin:.1rem 0 .1rem 1.2rem;padding:0;}
.dv-task .k{display:inline-block;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin-right:.35rem;}
.dv-task-h{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;}
.dv-fig{display:flex;gap:.8rem;align-items:flex-start;margin-bottom:.7rem;padding:.5rem;border:1.25px solid var(--border-soft);border-radius:var(--radius-sm);}
.dv-fig img{width:120px;max-height:90px;object-fit:contain;border:1px solid var(--border-soft);border-radius:6px;background:#fff;}
.dv-table th{width:9rem;text-align:left;}
.dv-cur{outline:2.5px solid var(--accent-blue);outline-offset:3px;border-radius:4px;}
.dv-slides{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:1rem;align-items:start;}
.dv-slide-list{display:flex;flex-direction:column;gap:.3rem;max-height:68vh;overflow-y:auto;}
.dv-sl{display:flex;align-items:center;gap:.5rem;text-align:left;padding:.35rem .5rem;border:1.25px solid var(--border-soft);border-radius:var(--radius-sm);background:#fff;font:inherit;font-size:.8rem;cursor:pointer;}
.dv-sl.changed{border-left:4px solid var(--accent-amber);}
.dv-sl.new{border-left:4px solid #12b76a;}
.dv-sl.removed{border-left:4px solid #c8344f;cursor:default;}
.dv-sl.cur{border-color:var(--ink);box-shadow:2px 2px 0 var(--ink);}
.dv-sl-n{font-weight:800;min-width:1.4rem;}
.dv-sl-t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dv-slides iframe{width:100%;aspect-ratio:16/9;min-height:320px;border:1.5px solid var(--ink);border-radius:var(--radius);background:#fff;}
@media (max-width:900px){.dv-slides{grid-template-columns:minmax(0,1fr);}.dv-slide-list{max-height:28vh;}}

/* ---------- Studio obrazów (generowanie): prefiks .ig ---------- */
.ig-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,1fr);gap:1.2rem;align-items:start;}
.ig-stage{position:relative;display:flex;align-items:center;justify-content:center;min-height:240px;max-height:38vh;border:1.25px solid var(--ink);border-radius:var(--radius-sm);background:#fff;overflow:hidden;}
.ig-stage img{max-width:100%;max-height:38vh;object-fit:contain;display:block;}
.ig-stage.empty{background:var(--bg-subtle);}
.ig-placeholder{display:flex;flex-direction:column;align-items:center;gap:.5rem;color:var(--text-muted);font-size:.9rem;padding:1rem;text-align:center;}
.ig-working{position:absolute;inset:auto .6rem .6rem auto;display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .65rem;border:1.25px solid var(--ink);border-radius:999px;background:var(--accent-amber-light);font-weight:700;font-size:.8rem;}
.ig-spin{animation:ig-rot 1s linear infinite;}
@keyframes ig-rot{to{transform:rotate(360deg);}}
.ig-thumbs{display:flex;gap:.6rem;overflow-x:auto;padding:.7rem .15rem .5rem;}
.ig-thumb{flex:0 0 132px;display:flex;flex-direction:column;gap:.15rem;padding:0 0 .4rem;border:1.25px solid var(--ink);border-radius:var(--radius-sm);background:#fff;font:inherit;text-align:left;cursor:pointer;overflow:hidden;min-height:36px;}
.ig-thumb:hover{transform:translate(-1px,-1px);box-shadow:3px 3px 0 var(--ink);}
.ig-thumb.sel{outline:3px solid var(--accent-blue);outline-offset:1px;box-shadow:3px 3px 0 var(--ink);}
.ig-thumb-img{display:block;height:82px;border-bottom:1.25px solid var(--ink);background:var(--bg-subtle) center/contain no-repeat;}
.ig-thumb-name{padding:0 .45rem;font-weight:700;font-size:.78rem;color:var(--text-main);}
.ig-thumb-who{padding:0 .45rem;font-size:.68rem;color:var(--text-muted);line-height:1.3;}
.ig-badges{display:flex;gap:.25rem;padding:0 .45rem;min-height:1.1rem;}
.ig-badges .pill{font-size:.66rem;}
.ig-acts{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem;}
.ig-acts .btn,.ig-acts .pill{min-height:36px;}
.ig-prompt-box{margin-top:.6rem;padding:.6rem .8rem;border:1.25px solid var(--border-soft);border-radius:var(--radius-sm);background:var(--bg-subtle);font-size:.85rem;}
.ig-prompt-box p{margin:.15rem 0 .5rem;white-space:pre-wrap;}
.ig-prompt-box ul{margin:.15rem 0 .4rem 1.1rem;padding:0;}
.ig-meta{font-size:.75rem;margin-top:.4rem;}
.ig-upload{position:relative;margin-top:.6rem;cursor:pointer;min-height:36px;}
.ig-upload input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;}
.ig-upload[aria-disabled="true"]{opacity:.5;pointer-events:none;}
.ig-h{margin:0 0 .6rem;font-size:1rem;}
.ig-side .field select,.ig-side .field textarea{width:100%;}
.ig-go{width:100%;justify-content:center;min-height:42px;}
.ig-steps{margin:.2rem 0 .4rem 1.2rem;padding:0;font-size:.88rem;}
.ig-steps li{margin:.2rem 0;}
.ig-account{margin-top:1rem;font-size:.8rem;}
.ig-account .ic{width:14px;height:14px;vertical-align:-2px;}
@media (max-width:700px){
  .ig-grid{grid-template-columns:minmax(0,1fr);}
  .ig-stage{min-height:200px;}
}
@media (prefers-reduced-motion:reduce){.ig-spin{animation:none;}.ig-thumb:hover{transform:none;}}

/* kafelek galerii: plakietka liczby wersji i przyciski generatora */
.upl .img{position:relative;}
.upl .ver-badge{position:absolute;top:.3rem;right:.3rem;font-size:.66rem;}
.upl-head-acts{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.6rem;}
.ed-slide-imgs{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.4rem .5rem;border:1.25px solid var(--border-soft);border-radius:var(--radius-sm);background:var(--bg-card);margin:.4rem 0;}
.ed-slide-imgs .lbl{font-size:.78rem;font-weight:700;color:var(--text-muted);}
.ed-slide-img{display:flex;align-items:center;gap:.4rem;padding:.2rem .3rem;border:1.25px solid var(--ink);border-radius:8px;background:#fff;}
.ed-slide-img .th{width:48px;height:36px;object-fit:contain;background:var(--bg-subtle);border-radius:4px;}
.ig-way{margin:.5rem 0;padding:.5rem .7rem;border:1.25px solid var(--border-soft);border-radius:var(--radius-sm);background:#fff;font-size:.86rem;line-height:1.45;}
.ig-cmd{display:block;margin:.35rem 0;padding:.35rem .5rem;border-radius:6px;background:var(--bg-subtle);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.8rem;overflow-x:auto;user-select:all;white-space:nowrap;}

/* ---------- Zarządzanie lekcjami i planem (redaktorzy) ---------- */
.plan-tools{margin-bottom:0;}
.plan-tools .badge{display:inline-block;min-width:1.35em;padding:0 .35em;border-radius:99px;background:var(--ink);color:#fff;font-size:.68rem;font-weight:800;text-align:center;line-height:1.5;}
.lesson-card .card-foot .card-acts{display:inline-flex;align-items:center;gap:.2rem;margin-left:auto;}
.danger-zone{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:1.2rem 0;padding:.8rem 1rem;border:1.25px dashed var(--ink);border-radius:var(--radius-sm);background:var(--accent-red-light);}
.mo-title{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin:0 0 1rem;min-height:2.4rem;}
.mo-title h2{margin:0;}
.mo-edit{flex:none;margin:0;}
.mo-rename{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;flex:1;margin:.3rem 0 .45rem;}
.mo-rename input{flex:1;min-width:220px;}
.tr-ask{margin-top:.5rem;}
.tr-ask .tr-slug{min-width:0;flex:1;}

/* ---------- Asystent: propozycje nowej lekcji i usunięcia lekcji ---------- */
.dv-chip{vertical-align:middle;margin-right:.35rem;}
.dv-lesson{max-width:860px;margin:0 auto 1rem;padding:.7rem .9rem;border:1.25px solid var(--ink);border-radius:var(--radius-sm);background:#fff;}
.dv-lesson.new{border-left:5px solid #12b76a;}
.dv-lesson.del{border-left:5px solid var(--accent-red);background:rgba(200,52,79,.05);}
.dv-lesson-h{display:flex;align-items:center;gap:.5rem;margin-bottom:.4rem;}
.dv-facts{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:.25rem .9rem;margin:0;font-size:.88rem;}
.dv-facts dt{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);padding-top:.15rem;}
.dv-facts dd{margin:0;overflow-wrap:anywhere;}
.dv-slist{max-width:860px;margin:0 auto;padding-left:1.6rem;}
.dv-slist li{margin:.2rem 0;}
.as-trash-note{display:flex;align-items:center;gap:.4rem;margin-top:.3rem;font-size:.8rem;color:var(--text-body);}

/* ===== Studio slajdów: pełnoekranowy edytor slajdów (klasa .studio na oknie edytora; editor.js, editor.html) =====
   Okno wypełnia cały ekran. Pasek u góry (zapis, cofnij/ponów, urządzenie, powiększenie, wizualnie/kod), po lewej lista slajdów, pośrodku
   scena z ramką urządzenia (ramka podglądu ma rozmiar PRAWDZIWEGO ekranu urządzenia i jest skalowana transformacją, więc prezentacja liczy układ
   dokładnie tak jak na tym urządzeniu), po prawej narzędzia. Poniżej 900 px lista i narzędzia są szufladami nad sceną. Poza studiem elementy
   .st-* są ukryte, a obwiednie sceny (.st-box, .st-screen) przezroczyste (display:contents), więc zwykły edytor wygląda jak dawniej. */
.st-bar,.st-rail,.st-tools,.st-scrim{display:none;}
.st-box,.st-screen{display:contents;}
dialog.pm.studio{position:fixed;inset:0;margin:0;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;border:0;border-radius:0;box-shadow:none;animation:none;
  padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);}
dialog.pm.studio>.pm-head,dialog.pm.studio>.rt-bar,dialog.pm.studio>.pm-foot,dialog.pm.studio .ed-nav{display:none;}
dialog.pm.studio .ed{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);}
dialog.pm.studio .ed-main{padding:0;overflow:hidden;display:flex;flex-direction:column;}
dialog.pm.studio .ed-slides{flex:1;min-height:0;display:grid;gap:0;position:relative;overflow:hidden;
  grid-template-columns:clamp(190px,17vw,250px) minmax(0,1fr) clamp(270px,22vw,340px);grid-template-rows:auto minmax(0,1fr);grid-template-areas:"bar bar bar" "rail stage tools";}
dialog.pm.studio .slides-top,dialog.pm.studio .vis-bar,dialog.pm.studio .ed-slide-imgs,dialog.pm.studio .slides-adv,dialog.pm.studio .code-col{display:none!important;}
dialog.pm.studio .empty-state{grid-area:stage;align-self:center;}
dialog.pm.studio .st-bar{display:flex;grid-area:bar;}
dialog.pm.studio .st-rail{display:flex;grid-area:rail;}
dialog.pm.studio .st-tools{display:flex;grid-area:tools;}
dialog.pm.studio .slides-body{grid-area:stage;display:flex;min-width:0;min-height:0;gap:0;padding:0;}
dialog.pm.studio .preview-col{flex:1;min-width:0;min-height:0;position:relative;overflow:auto;display:flex;gap:0;
  background-color:#e8e3d5;background-image:radial-gradient(rgba(35,32,25,.16) 1px,transparent 1px);background-size:14px 14px;}
dialog.pm.studio .st-box{display:block;position:relative;flex:none;margin:auto;background:#1d2230;border-radius:calc(var(--bz)*1.7);box-shadow:var(--shadow);}
dialog.pm.studio .st-box[data-kind=auto]{background:none;box-shadow:none;border-radius:0;}
dialog.pm.studio .st-screen{display:block;position:absolute;inset:var(--bz);overflow:hidden;border-radius:calc(var(--bz)*.8);background:#fff;}
dialog.pm.studio .st-box[data-kind=auto] .st-screen{border-radius:0;}
dialog.pm.studio .preview-frame{position:absolute;left:0;top:0;flex:none;width:var(--fw);height:var(--fh);min-height:0;max-height:none;aspect-ratio:auto;
  border:0;border-radius:0;box-shadow:none;background:#fff;transform:scale(var(--s));transform-origin:0 0;}

.st-bar{align-items:center;gap:.45rem .55rem;flex-wrap:wrap;padding:.4rem .7rem;border-bottom:1.25px solid var(--ink);background:var(--bg-card);min-width:0;}
.st-title{flex:1 1 110px;min-width:0;display:flex;flex-direction:column;line-height:1.2;}
.st-title b{font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.st-title small{font-size:.72rem;color:var(--text-muted);}
.st-group{display:inline-flex;align-items:center;gap:.3rem;}
.st-bar select{width:auto;max-width:15rem;padding:.3rem 1.9rem .3rem .55rem;font-size:.8rem;box-shadow:none;}
.st-seg{display:inline-flex;border:1.5px solid var(--ink);border-radius:8px;overflow:hidden;background:#fff;box-shadow:2px 2px 0 var(--ink);}
.st-seg button{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;min-width:34px;height:32px;padding:0 .55rem;border:0;border-right:1.25px solid var(--ink);background:transparent;font:inherit;font-size:.78rem;font-weight:700;color:var(--text-body);cursor:pointer;}
.st-seg button:last-child{border-right:0;}
.st-seg button:hover{background:var(--bg-subtle);}
.st-seg button[aria-pressed=true]{background:var(--accent-blue-light);color:var(--ink);}
.st-seg .ic,.st-btn .ic{width:17px;height:17px;}
.st-seg .rot .ic{transform:rotate(90deg);}
.st-devs{display:none;}
.st-status{font-size:.76rem;font-weight:700;color:var(--text-muted);}
.st-status.warn{color:#9a6a00;}
.st-btn.st-narrow{display:none;}
.st-btn{min-width:34px;height:34px;padding:0 .5rem;border:1.25px solid var(--ink);border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:.85rem;font-weight:700;cursor:pointer;
  box-shadow:2px 2px 0 var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:.3rem;}
.st-btn:hover:not(:disabled){background:var(--accent-blue-light);}
.st-btn:active:not(:disabled){transform:translate(1px,1px);box-shadow:none;}
.st-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;}
.st-btn[aria-pressed=true]{background:var(--accent-blue-light);}
.st-btn.sm{min-width:28px;height:28px;padding:0 .35rem;font-size:.76rem;box-shadow:1px 1px 0 var(--ink);}
.st-btn.sm .ic{width:14px;height:14px;}
.st-btn.danger:hover:not(:disabled){background:var(--accent-red-light);}
.st-btn.primary{background:var(--accent-blue-light);}
.st-btn[aria-busy=true]{opacity:.6;pointer-events:none;}

/* lista slajdów */
.st-rail{flex-direction:column;min-height:0;min-width:0;border-right:1.25px solid var(--border-soft);background:var(--bg-subtle);position:relative;}
.st-rail-head{display:flex;align-items:center;gap:.4rem;padding:.5rem .55rem;border-bottom:1.25px solid var(--border-soft);}
.st-rail-head .st-btn.grow{flex:1;}
.st-menu{position:absolute;z-index:6;left:.5rem;right:.5rem;top:3.1rem;padding:.35rem;display:flex;flex-direction:column;gap:.2rem;background:#fff;border:1.5px solid var(--ink);border-radius:var(--radius-sm);box-shadow:var(--shadow);}
.st-menu button{display:flex;flex-direction:column;align-items:flex-start;gap:.05rem;padding:.4rem .55rem;border:0;border-radius:6px;background:none;font:inherit;font-size:.82rem;font-weight:700;color:var(--text-main);cursor:pointer;text-align:left;}
.st-menu button small{font-size:.7rem;font-weight:500;color:var(--text-muted);}
.st-menu button:hover,.st-menu button:focus-visible{background:var(--accent-blue-light);}
.st-list{position:relative;flex:1;min-height:0;overflow-y:auto;margin:0;padding:.55rem;list-style:none;display:flex;flex-direction:column;gap:.45rem;}
.st-card{position:relative;display:flex;flex-direction:column;border:1.25px solid var(--ink);border-radius:var(--radius-sm);background:#fff;box-shadow:2px 2px 0 var(--ink);}
.st-card[aria-current=true]{background:var(--accent-amber-light);box-shadow:3px 3px 0 var(--ink);}
.st-card.dragging{opacity:.4;}
.st-card.ins-before::before,.st-card.ins-after::after{content:"";position:absolute;left:0;right:0;height:4px;border-radius:2px;background:var(--accent-blue);}
.st-card.ins-before::before{top:-.33rem;}
.st-card.ins-after::after{bottom:-.33rem;}
.st-card-main{flex:1;min-width:0;display:flex;align-items:flex-start;gap:.5rem;padding:.45rem .5rem;border:0;background:none;font:inherit;text-align:left;cursor:pointer;color:inherit;border-radius:var(--radius-sm);}
.st-card-main:focus-visible{outline:2px solid var(--accent-blue);outline-offset:-2px;}
.st-num{flex:none;min-width:1.7rem;height:1.7rem;border-radius:6px;border:1.25px solid var(--ink);background:var(--accent-blue-light);display:inline-flex;align-items:center;justify-content:center;font-size:.76rem;font-weight:800;}
.st-txt{min-width:0;display:flex;flex-direction:column;gap:.1rem;}
.st-txt b{font-size:.8rem;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;}
.st-txt small{font-size:.7rem;line-height:1.3;color:var(--text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;}
.st-kinds{display:flex;flex-wrap:wrap;gap:.2rem;}
.st-kinds i{font-style:normal;font-size:.62rem;font-weight:800;padding:0 .35rem;border-radius:99px;background:var(--gray-100);color:var(--gray-600);text-transform:uppercase;letter-spacing:.02em;}
.st-card-acts{display:none;justify-content:flex-end;gap:.25rem;padding:0 .45rem .4rem;}
.st-card[aria-current=true] .st-card-acts{display:flex;}
.st-card-acts .st-btn.sm{min-width:28px;height:26px;padding:0 .25rem;}
.st-card-acts .st-btn.sm .ic{width:14px;height:14px;}

/* narzędzia */
.st-tools{flex-direction:column;min-height:0;min-width:0;border-left:1.25px solid var(--border-soft);background:var(--bg-card);}
.st-tabs{display:flex;border-bottom:1.25px solid var(--border-soft);background:var(--bg-subtle);}
.st-tabs button{flex:1;padding:.6rem .4rem;border:0;border-bottom:3px solid transparent;background:none;font:inherit;font-size:.82rem;font-weight:700;color:var(--text-body);cursor:pointer;}
.st-tabs button[aria-selected=true]{background:var(--bg-card);border-bottom-color:var(--accent-blue);color:var(--ink);}
.st-pane{flex:1;min-height:0;overflow-y:auto;padding:.7rem .8rem 1.4rem;display:flex;flex-direction:column;gap:.95rem;}
.st-pane fieldset{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:.95rem;}
.st-sec h4{margin:0 0 .4rem;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);}
.st-grp{display:flex;flex-wrap:wrap;gap:.3rem;}
.st-sw{width:28px;height:28px;padding:0;border:1.5px solid var(--ink);border-radius:50%;cursor:pointer;}
.st-sw:focus-visible,.st-icon:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px;}
.st-blocks{display:grid;grid-template-columns:1fr 1fr;gap:.4rem;}
.st-blocks .st-btn{justify-content:flex-start;height:auto;min-height:36px;padding:.3rem .5rem;text-align:left;font-size:.76rem;line-height:1.2;}
.st-figs{display:flex;flex-wrap:wrap;gap:.35rem;}
.st-figs button{width:64px;height:48px;padding:2px;border:1.25px solid var(--ink);border-radius:6px;background:#fff center/contain no-repeat;cursor:pointer;}
.st-icons{display:flex;flex-direction:column;gap:.45rem;padding:.5rem;border:1.25px solid var(--border-soft);border-radius:var(--radius-sm);background:#fff;}
.st-icons input{padding:.35rem .55rem!important;font-size:.82rem!important;}
.st-icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(5.2rem,1fr));gap:.3rem;max-height:13rem;overflow-y:auto;}
.st-icon{padding:.3rem .25rem;border:1.25px solid var(--border-soft);border-radius:6px;background:var(--bg-subtle);font:inherit;font-size:.7rem;font-weight:700;cursor:pointer;color:var(--text-main);overflow-wrap:anywhere;}
.st-icon:hover{background:var(--accent-blue-light);border-color:var(--ink);}
.st-check{display:flex;align-items:center;gap:.5rem;font-size:.86rem;font-weight:600;cursor:pointer;}
.st-check input{width:18px;height:18px;accent-color:var(--accent-blue);}
.st-hint{margin:0;font-size:.76rem;line-height:1.4;color:var(--text-muted);}
.st-pane textarea.code{flex:1;min-height:14rem;}
.st-scrim{position:absolute;inset:0;z-index:15;background:rgba(17,24,39,.45);}

@media (min-width:1100px){.st-devs{display:inline-flex;}.st-devsel{display:none;}}
@media (max-width:1000px){.st-lbl{display:none;}}
@media (pointer:coarse){
  dialog.pm.studio .st-btn,.st-seg button{min-width:44px;height:44px;}
  dialog.pm.studio .st-btn.sm{min-width:36px;height:36px;}
  .st-card-acts .st-btn.sm{min-width:34px;height:30px;}
  .st-card-acts{opacity:1;}
  .st-sw{width:36px;height:36px;}
}
@media (max-width:1180px){.st-status{display:none;}}
@media (max-width:900px){
  dialog.pm.studio .ed-slides{grid-template-columns:minmax(0,1fr);grid-template-areas:"bar" "stage";}
  .st-btn.st-narrow{display:inline-flex;}
  /* szuflady: leżą w tym samym polu siatki co scena, nad nią */
  dialog.pm.studio .st-rail,dialog.pm.studio .st-tools{grid-area:stage;z-index:20;width:min(320px,88vw);box-shadow:var(--shadow-lg);transition:transform .2s ease,visibility 0s linear .2s;visibility:hidden;}
  dialog.pm.studio .st-rail{justify-self:start;transform:translateX(-105%);border-right:1.25px solid var(--ink);}
  dialog.pm.studio .st-tools{justify-self:end;transform:translateX(105%);border-left:1.25px solid var(--ink);}
  dialog.pm.studio .st-rail.open,dialog.pm.studio .st-tools.open{transform:none;visibility:visible;transition:transform .2s ease,visibility 0s;}
  dialog.pm.studio .st-scrim.open{display:block;grid-area:stage;z-index:15;}
  .st-status{display:none;}
  .st-zoom[disabled]{display:none;}
  .st-bar select{max-width:9.5rem;}
  .st-title{flex-basis:80px;}
}
@media (prefers-reduced-motion:reduce){dialog.pm.studio .st-rail,dialog.pm.studio .st-tools{transition:none!important;}}
dialog.pm.studio .as-editor{top:0;}

/* ===== Asystent: zwijana lista propozycji (assistant.html: .as-props-bar, .as-props-body, .as-prop-toggle) =====
   Nadpisuje starsze reguły .as-props powyżej: lista nie zajmuje więcej niż 40% panelu i się przewija, a pasek
   z nagłówkiem i przyciskiem „Zatwierdź wybrane” leży poza przewijanym polem, więc jest zawsze widoczny. */
.as{--as-props-max:40%;}
.as-props{display:flex;flex-direction:column;padding:0;max-height:var(--as-props-max);min-height:0;overflow:hidden;flex:0 0 auto;}
.as-props-bar{display:flex;align-items:center;gap:.4rem .6rem;flex-wrap:wrap;padding:.3rem .8rem;background:var(--bg-subtle);flex:0 0 auto;}
.as-props-body{overflow-y:auto;min-height:0;padding:.1rem .8rem .5rem;overscroll-behavior:contain;}
.as-props-toggle,.as-prop-toggle{display:flex;align-items:center;gap:.4rem;min-width:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;padding:.2rem 0;border-radius:var(--radius-sm);}
.as-props-toggle{flex:1 1 100%;flex-wrap:wrap;row-gap:.2rem;font-size:.85rem;font-weight:700;}
.as-prop-toggle{flex:1 1 auto;}
.as-props-toggle:focus-visible,.as-prop-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:2px;}
.as-props-title{white-space:nowrap;}
.as-chev{display:inline-flex;flex:0 0 auto;transition:transform .15s ease;}
[aria-expanded="true"]>.as-chev{transform:rotate(90deg);}
.as-kind{display:inline-flex;flex:0 0 auto;color:var(--text-muted,inherit);}
.as-prop{padding:.2rem .5rem;margin-bottom:.3rem;}
.as-prop-head{flex-wrap:nowrap;gap:.4rem;}
.as-prop-toggle .as-prop-title{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;}
.as-prop-toggle .pill{flex:0 0 auto;white-space:nowrap;}
.as-prop-body{padding:.1rem 0 .3rem 1.4rem;}
.as-applied{margin-top:.2rem;border-top:1px dashed var(--border-med);padding-top:.2rem;}
.as-applied-toggle{width:100%;font-weight:600;color:var(--text-body);}
.as-props-foot{margin-top:0;flex:1 1 100%;}
.as-props-foot .btn{width:100%;justify-content:center;}
@media (max-width:820px){
  .as{--as-props-max:44%;}
  .as-props-bar{padding:.25rem .6rem;}
  .as-props-body{padding:.1rem .6rem .5rem;}
  .as-prop-toggle .pill:not(:last-child){display:none;}   /* na wąskim ekranie zwinięty wiersz pokazuje tylko tytuł i stan */
  .as-prop-body{padding-left:.4rem;}
  .as-prop-actions .btn{min-height:36px;}
}
@media (prefers-reduced-motion:reduce){.as-chev{transition:none;}}
