/* Teacher app: My slides and Courses tabs. The deck preview itself uses deck.css. */
body[data-tab="slides"] .wrap,body[data-tab="courses"] .wrap{max-width:1280px}
.sl-bar{display:flex;flex-wrap:wrap;gap:.5rem;margin:.8rem 0}
.sl-bar .btn + .btn,.sl-actions .btn + .btn,.sl-edtop .btn + .btn{margin-left:0}
.sl-row{display:flex;gap:1rem;align-items:center;justify-content:space-between;border-top:1px solid #dde5df;padding:.8rem 0;flex-wrap:wrap}
.sl-info{min-width:0;flex:1 1 260px}
.sl-info b{display:block}
.sl-actions{display:flex;gap:.4rem;flex-wrap:wrap}
.btn.danger{background:#b42318}
.sl-flash{position:sticky;top:0;z-index:5;padding:.6rem .9rem;border-radius:8px;margin:.5rem 0;background:#e3f3ea;color:#14532d}
.sl-flash.bad{background:#fde8e6;color:#8a1c12}
.sl-issues ul{margin:.4rem 0;padding-left:1.2rem}
.sl-issues .bad{color:#b42318}
.sl-issues .warn{color:#8a5a00}
.sl-issues .linkish{background:none;border:0;padding:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit;text-align:left}
.sl-edtop{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}
.sl-title{flex:1 1 240px;min-width:0;font-size:1.05rem;font-weight:700}
.sl-status{font-size:.85rem}
.sl-status.bad{color:#b42318}
.sl-ed{display:grid;grid-template-columns:230px minmax(0,1fr);gap:1rem;margin-top:1rem;align-items:start}
.sl-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}
.sl-li{display:flex;align-items:center;gap:.2rem;border:1px solid #dde5df;border-radius:6px;padding:.15rem .25rem;background:#fff}
.sl-li.on{border-color:#107c41;box-shadow:inset 3px 0 0 #107c41}
.sl-pick{flex:1;min-width:0;text-align:left;background:none;border:0;padding:.35rem;cursor:pointer;font:inherit;font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sl-add{display:flex;gap:.3rem;margin-top:.4rem;list-style:none}
.sl-add select{flex:1;min-width:0}
.sf-mini{border:1px solid #dbe4ee;background:#fff;border-radius:4px;min-width:30px;height:30px;cursor:pointer;font-size:.8rem}
.sf-mini:disabled{opacity:.35;cursor:default}
.sf-del{color:#b42318}
.sl-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;align-items:start}
.sl-preview{position:relative;overflow:hidden;border-radius:6px}
.sl-prevwrap{position:sticky;top:.5rem}
.sl-preview .dk-stage{transform-origin:top left}
.sl-over{color:#8a5a00;font-size:.85rem;margin:.3rem 0 0}
.sf-form{display:flex;flex-direction:column;gap:.6rem}
.sf-field{display:flex;flex-direction:column;gap:.2rem;min-width:0}
.sf-label{font-weight:600;font-size:.85rem;margin:0}
.sf-field input[type=text],.sf-field textarea,.sf-field select{width:100%;box-sizing:border-box}
.sf-code{font-family:Consolas,ui-monospace,monospace;font-size:.85rem}
.sf-count{font-size:.72rem;color:#5b6b61;align-self:flex-end}
.sf-count.sf-over{color:#b42318;font-weight:700}
.sf-obj{border-left:3px solid #d5ecde;padding-left:.6rem;display:flex;flex-direction:column;gap:.4rem}
.sf-items{display:flex;flex-direction:column;gap:.4rem}
.sf-item{display:flex;gap:.4rem;align-items:flex-start}
.sf-item > .sf-field{flex:1}
.sf-tools{display:flex;gap:.2rem;flex:none}
.sf-add{align-self:flex-start;font-size:.8rem;padding:.35rem .7rem}
.sf-hint{font-size:.72rem;color:#5b6b61}
.sf-gridwrap{overflow-x:auto}
.sf-gridt{border-collapse:collapse}
.sf-gridt td{padding:2px}
.sf-gridt input{width:100%;min-width:5rem;box-sizing:border-box}
.sl-panel{margin-top:1rem;border-top:1px solid #dde5df;padding-top:1rem}
.sl-link{width:100%;box-sizing:border-box}
.sl-qr{background:#fff;display:inline-block;padding:8px;margin:.5rem 0}
.sl-filters{display:flex;gap:.5rem;flex-wrap:wrap}
.sl-filters input{flex:1 1 150px;min-width:0}
.sl-modal{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:flex-start;justify-content:center;padding:4vh 12px;z-index:20;overflow:auto}
.sl-modal > div{background:#fff;border-radius:10px;padding:1rem;max-width:720px;width:100%;box-sizing:border-box}
.co-ch{border:1px solid #dde5df;border-radius:8px;padding:.7rem;margin:.7rem 0;background:#fff}
.co-chhead{display:flex;gap:.3rem;align-items:center}
.co-chhead input{flex:1;min-width:0}
.co-item{display:flex;gap:.4rem;align-items:center;justify-content:space-between;padding:.4rem 0;border-top:1px dashed #dde5df;flex-wrap:wrap}
.co-item > div:first-child{min-width:0;flex:1 1 220px}
.co-item .muted{font-size:.85rem}
/* Inputs created without a type (new topic deck, new course, filters) get the
   same look as the login fields and a phone-sized tap target. */
#nd-form input,#nd-form textarea,#nd-form select,#co-new input,.sl-filters input,.sl-filters select{
  width:100%;box-sizing:border-box;min-height:44px;font-family:var(--font-body);font-size:1rem;color:var(--ink);
  background:#fff;border:1px solid #dbe4ee;border-radius:4px;padding:.6rem .85rem}
#nd-form textarea{min-height:5.5rem;resize:vertical}
#nd-form input:focus,#nd-form textarea:focus,#co-new input:focus,.sl-filters input:focus{outline:none;border-color:#1677d2}
#co-new{margin:.8rem 0}
#co-new .btn{min-height:44px}
#nd-form .btn.block{min-height:44px}
#nd-form .btn.ghost{width:100%;min-height:44px;margin:.6rem 0 0}
@media (max-width:900px){.sl-ed,.sl-main{grid-template-columns:minmax(0,1fr)}.sl-prevwrap{position:static}}
/* Presentations tab */
body[data-tab="presentations"] .wrap{max-width:1280px}
.pr-badge{display:inline-block;margin-top:.25rem;font-size:.75rem;font-weight:600;color:#1f3a68;background:#e6ecf5;border-radius:4px;padding:.1rem .45rem}
.pr-source{border:1px solid #dde5df;border-radius:8px;padding:.5rem .8rem;margin:.6rem 0}
.pr-source label{display:block;margin:.3rem 0;font-weight:400}
.pr-privacy{background:#e6ecf5;color:#1f3a68;border-radius:6px;padding:.5rem .8rem}
.pr-settings{display:flex;flex-direction:column;gap:.35rem;max-width:420px;margin-bottom:1rem}
.pr-check{display:flex;gap:.4rem;align-items:center}
.pr-share,.pr-shareform{display:flex;flex-direction:column;gap:.5rem;max-width:520px}
.pr-shareform input{max-width:12rem}
.pr-once{border:2px solid #1f3a68;border-radius:8px;padding:.8rem;margin-bottom:1rem;display:flex;flex-direction:column;gap:.4rem}
.pr-pass{font:700 1.3rem ui-monospace,Consolas,monospace;letter-spacing:.15em;margin:0}
