/* Chalkmate — planning: week view, lesson editor, units */

/* lesson card (lists) */
.pl-lc{position:relative;padding-left:18px}
.pl-lc::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--c)}
.pl-lc-when{width:74px;flex:none;display:flex;flex-direction:column;line-height:1.25}
.pl-lc-when b{font-size:13px;font-weight:600}
.pl-lc-when span{font-size:12px;color:var(--text-3)}
.pl-lc-main{min-width:0;display:flex;flex-direction:column;gap:2px}
.pl-lc-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-height:0}
.pl-lc-meta:empty{display:none}
.pl-lc.pl-unpl b.ellipsis{color:var(--text-2);font-style:italic;font-weight:500}
.pl-lc.pl-unpl{background:color-mix(in srgb,var(--warn) 5%,transparent)}
.pl-lc.pl-cx{opacity:.6}
.pl-lc:hover{background:var(--hover)}
@media (max-width:760px){.pl-lc-when{width:62px}.pl-lc .pill{display:none}.pl-lc.pl-unpl::after{content:"";width:8px;height:8px;border-radius:50%;background:var(--warn);flex:none}}

/* layout */
.pl-cols{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}
.pl-main,.pl-side{display:flex;flex-direction:column;gap:16px;min-width:0}
.pl-main>.card,.pl-side>.card{margin:0}
@media (max-width:1000px){.pl-cols{grid-template-columns:1fr}}
.pl-form .field:last-child{margin-bottom:0}
.pl-pad{padding:0 16px 14px;margin:0}

/* week */
.pl-sumbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--text-2);margin:-8px 0 18px}
.pl-sumbar b{color:var(--text);font-weight:700}
.pl-sumbar .grow{min-width:120px;max-width:260px}
.pl-sumbar .pl-todo b{color:var(--warn)}
.pl-alldone{display:inline-flex;align-items:center;gap:5px;color:var(--ok);font-weight:600}
.pl-alldone svg{width:15px;height:15px}
.pl-cfilter{width:auto;max-width:220px;height:37px}
.pl-week{display:grid;gap:12px;grid-template-columns:repeat(5,minmax(0,1fr))}
.pl-week.cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}
.pl-day{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:10px;display:flex;flex-direction:column;gap:8px;min-width:0;min-height:160px}
.pl-day.today{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}
.pl-day.closed{background:var(--panel-2)}
.pl-day.past .pl-wl{opacity:.75}
.pl-dh{display:flex;align-items:center;gap:6px;padding:2px 2px 4px}
.pl-dh>div{flex:1;display:flex;align-items:baseline;gap:6px;min-width:0}
.pl-dh b{font-size:14px}
.pl-dh span{font-size:12.5px;color:var(--text-2)}
.pl-dh .pl-today{color:#fff}
.pl-dh .iconbtn{opacity:.5}.pl-dh:hover .iconbtn,.pl-dh .iconbtn:focus{opacity:1}
.pl-today{background:var(--brand);color:#fff}
.pl-closed{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--warn);background:color-mix(in srgb,var(--warn) 10%,var(--panel));border-radius:8px;padding:6px 8px}
.pl-closed svg{width:13px;height:13px;flex:none}
.pl-dlist{display:flex;flex-direction:column;gap:8px}
.pl-none{font-size:12.5px;color:var(--text-3);margin:4px 2px}
.pl-wl{display:flex;flex-direction:column;gap:4px;padding:8px 10px 9px;border-radius:10px;border:1px solid var(--line);border-left:3px solid var(--c);background:var(--panel);text-decoration:none;color:inherit;min-width:0;transition:box-shadow .15s,transform .15s}
.pl-wl:hover{box-shadow:var(--sh-2)}
.pl-wl.unpl{border-style:dashed;border-left-style:solid;background:color-mix(in srgb,var(--warn) 6%,var(--panel));border-color:color-mix(in srgb,var(--warn) 45%,var(--line));border-left-color:var(--c)}
.pl-wl.ls-b-cancelled{opacity:.55}
.pl-wl.ls-b-cancelled .pl-wl-title{text-decoration:line-through}
.pl-wl-top{display:flex;align-items:center;justify-content:space-between;gap:6px}
.pl-wl-t{font-size:12px;font-weight:600;color:var(--text-2);white-space:nowrap}
.pl-wl-top .pill{flex:none}
.pl-wl-c{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-2);min-width:0}
.pl-wl-c .sq{width:8px;height:8px;border-radius:2px;background:var(--c);flex:none}
.pl-wl-title{font-size:13.5px;font-weight:600;line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.pl-wl.unpl .pl-wl-title{color:var(--text-2);font-style:italic;font-weight:500}
@media (max-width:1280px){.pl-week .pl-wl-top .pill{display:none}}
@media (max-width:1100px){.pl-week,.pl-week.cols-7{grid-template-columns:repeat(2,minmax(0,1fr))}.pl-week .pl-wl-top .pill{display:inline-flex}}
@media (max-width:760px){
  .pl-week,.pl-week.cols-7{grid-template-columns:1fr;gap:10px}
  .pl-day{min-height:0;scroll-margin-top:72px}
  .pl-day.closed .pl-dlist .pl-none{display:none}
  .pl-dh .iconbtn{opacity:1}
  .pl-sumbar{gap:10px;margin-top:-4px}
  .pl-weekpage .phead .acts{width:100%;justify-content:space-between}
  .pl-cfilter{max-width:none;flex:1}
}

/* planner overview */
.pl-stats{margin-bottom:6px}
.pl-stat-todo b{color:var(--warn)}
.pl-gdate{padding:10px 16px 6px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);background:var(--panel-2);border-bottom:1px solid var(--line-2)}
.pl-gdate .faint{text-transform:none;letter-spacing:0;font-weight:500}

/* lesson editor */
.pl-lhead{min-width:0}
.pl-lhead h2{word-break:break-word}
.pl-lhead p{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pl-unitlink{display:inline-flex;align-items:center;gap:6px;margin-top:8px;font-size:13px;font-weight:600;color:var(--brand);text-decoration:none}
.pl-unitlink svg{width:15px;height:15px}
.pl-unitlink:hover{text-decoration:underline}
.pl-saved{min-width:90px;text-align:right}
.pl-title{font-size:17px;font-weight:600}
.pl-status{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.pl-st{display:flex;align-items:center;gap:7px;height:36px;padding:0 10px;border-radius:9px;border:1px solid var(--line);background:var(--panel);font:inherit;font-size:13px;font-weight:600;color:var(--text-2);cursor:pointer;text-decoration:none}
.pl-st .d{width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}
.pl-st.ls-unplanned .d{background:var(--ls-unplanned)}
.pl-st:hover{background:var(--hover)}
.pl-st.on{border-color:currentColor;box-shadow:inset 0 0 0 1px currentColor}
.pl-st.ls-cancelled.on{text-decoration:line-through}
.pl-st:last-child:nth-child(odd){grid-column:span 2}
.pl-aicard .card-h h3{display:flex;align-items:center;gap:8px;color:var(--ai)}
.pl-aicard .card-h h3 svg{width:17px;height:17px}
:root[data-theme="dark"] .pl-aicard .card-h h3{color:#c4b5fd}
.pl-aibtns{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.pl-aibtns .btn{justify-content:flex-start}
[data-aiout]:not(:empty){margin-bottom:12px}
.pl-ai-h{margin-bottom:8px}
.pl-ai-h h3{margin:2px 0 0}
.pl-res .li{padding:10px 12px 10px 16px}
.pl-res a{text-decoration:none;color:inherit;min-width:0}
.pl-carry .btn{justify-content:center}
@media (max-width:1000px){
  .pl-lesson .pl-side{order:-1}
  .pl-lesson .pl-side>.card:not(:first-child):not(.pl-aicard){order:2}
  .pl-aibtns{flex-direction:row;flex-wrap:wrap}
  .pl-aibtns .btn{flex:1 1 auto}
  .pl-status{grid-template-columns:repeat(5,minmax(0,1fr))}
  .pl-st:last-child:nth-child(odd){grid-column:auto}
}
@media (max-width:760px){
  .pl-status{grid-template-columns:1fr 1fr}
  .pl-st:last-child:nth-child(odd){grid-column:span 2}
  .pl-lesson .phead .acts{width:100%}
  .pl-lesson .phead .acts .pl-saved{flex:1;text-align:left;min-width:0}
}

/* units */
.pl-urow .grow{min-width:0}
.pl-unum{font-weight:700;font-size:14px;background:color-mix(in srgb,var(--c,var(--brand)) 12%,var(--panel));color:var(--text-2)}
.pl-ubar{max-width:220px;margin-top:6px}
.pl-pick{display:flex;flex-direction:column;gap:2px;max-height:55vh;overflow:auto}
.pl-pickrow{padding:8px 4px;border-bottom:1px solid var(--line-2)}
.pl-seq{display:flex;flex-direction:column;gap:2px;margin-top:6px}
.pl-seqrow{display:flex;gap:12px;align-items:flex-start;padding:10px 4px;border-bottom:1px solid color-mix(in srgb,var(--ai) 15%,var(--line));cursor:pointer}
.pl-seqrow:last-child{border-bottom:0}
.pl-seqrow input{margin-top:3px;flex:none;accent-color:var(--ai)}
.pl-seqd{width:84px;flex:none;display:flex;flex-direction:column;font-size:12.5px}
.pl-seqrow .grow{min-width:0}
.pl-seqrow .grow>b{display:block}
.pl-seqrow ul{margin:4px 0 0;padding-left:18px;font-size:13px;color:var(--text-2)}
.pl-was{display:block;text-decoration:line-through}
@media (max-width:760px){.pl-seqd{width:64px}}
