*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
:root{
	--bg:#fff;--bg2:#f6f6f4;--bg3:#eeede9;--bg4:#e6e5e0;
	--text:#1a1a18;--text2:#5f5f5a;--text3:#93938d;
	--border:rgba(0,0,0,0.12);--border2:rgba(0,0,0,0.22);
	--radius:9px;--radius-lg:14px;--radius-sm:6px;
	--font:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
	--accent:#1D9E75;--accent-ink:#0f5c44;--accent-bg:#e5f4ee;
	--danger:#b3402f;--danger-bg:#fbe9e6;
	--warn:#8a5a10;--warn-bg:#f8efdc;
	--sep-bg:#e7eefb;--sep-txt:#27508c;
	--ccc-bg:#f4ecfa;--ccc-txt:#6b3e8c;
	--shadow:0 1px 2px rgba(0,0,0,0.06),0 8px 24px rgba(0,0,0,0.08);
}
@media(prefers-color-scheme:dark){:root{
	--bg:#1c1c1a;--bg2:#242422;--bg3:#2c2c29;--bg4:#363632;
	--text:#f0efe8;--text2:#a6a6a0;--text3:#6f6f69;
	--border:rgba(255,255,255,0.10);--border2:rgba(255,255,255,0.2);
	--accent:#2bbd8e;--accent-ink:#8fe6c8;--accent-bg:#123328;
	--danger:#e0806f;--danger-bg:#3a1c17;
	--warn:#e0b263;--warn-bg:#332715;
	--sep-bg:#17243a;--sep-txt:#9dc0f0;
	--ccc-bg:#2a1b34;--ccc-txt:#d2a9ec;
	--shadow:0 1px 2px rgba(0,0,0,0.3),0 10px 30px rgba(0,0,0,0.45);
}}
html,body{height:100%;}
body{font-family:var(--font);background:var(--bg3);color:var(--text);-webkit-font-smoothing:antialiased;}
.pb-boot{padding:3rem 1rem;text-align:center;color:var(--text3);}
button{font-family:var(--font);cursor:pointer;}

/* ---------- shell ---------- */
.pb-root{min-height:100%;display:flex;flex-direction:column;}
.pb-header{background:var(--bg);border-bottom:0.5px solid var(--border);padding:.7rem 1rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;position:sticky;top:0;z-index:20;}
.pb-brand{display:flex;flex-direction:column;line-height:1.15;}
.pb-brand h1{font-size:18px;font-weight:700;letter-spacing:-.02em;}
.pb-brand .sub{font-size:12px;color:var(--text3);}
.pb-header-spacer{flex:1;}
.pb-toolbar{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;}

.btn{font-size:13px;color:var(--text);background:var(--bg);border:0.5px solid var(--border);padding:7px 12px;border-radius:var(--radius);display:inline-flex;align-items:center;gap:.35rem;}
.btn:hover{background:var(--bg2);border-color:var(--border2);}
.btn-icon{padding:7px 10px;}
.btn-primary{background:var(--accent);color:#fff;border-color:transparent;font-weight:600;}
.btn-primary:hover{filter:brightness(1.06);background:var(--accent);}
.btn-danger{color:var(--danger);}
.btn-ghost{background:transparent;border-color:transparent;color:var(--text2);}
.btn-ghost:hover{background:var(--bg2);}
.btn:disabled{opacity:.5;cursor:default;}

/* ---------- week nav ---------- */
.pb-weeknav{display:flex;align-items:center;gap:.3rem;}
.pb-weeklabel{font-size:14px;font-weight:600;min-width:150px;text-align:center;font-family:var(--font);color:var(--text);background:transparent;border:0.5px solid transparent;border-radius:var(--radius);padding:6px 8px;cursor:pointer;}
.pb-weeklabel:hover{background:var(--bg2);border-color:var(--border);}

/* week picker — rows are weeks, so a whole row lights up and is clickable */
.pb-wp{position:absolute;z-index:80;background:var(--bg);border:0.5px solid var(--border2);border-radius:var(--radius);box-shadow:var(--shadow);padding:8px;width:270px;}
.pb-wp-head{display:flex;align-items:center;gap:4px;margin-bottom:6px;}
.pb-wp-title{flex:1;text-align:center;font-size:13px;font-weight:600;}
.pb-wp-nav{background:transparent;border:none;color:var(--text2);font-size:16px;line-height:1;padding:4px 9px;border-radius:var(--radius-sm);cursor:pointer;}
.pb-wp-nav:hover{background:var(--bg2);color:var(--text);}
.pb-wp-dow{display:grid;grid-template-columns:repeat(5,1fr);gap:2px;padding:0 4px 4px;}
.pb-wp-dow span{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text3);text-align:center;}
.pb-wp-body{display:flex;flex-direction:column;gap:2px;}
.pb-wp-week{display:grid;grid-template-columns:repeat(5,1fr);gap:2px;width:100%;background:transparent;border:0.5px solid transparent;border-radius:var(--radius-sm);padding:3px;cursor:pointer;}
.pb-wp-week:hover{background:var(--bg2);border-color:var(--border);}
.pb-wp-week.sel{background:var(--accent-bg);border-color:transparent;}
.pb-wp-day{display:flex;flex-direction:column;align-items:center;gap:1px;padding:3px 0;border-radius:var(--radius-sm);line-height:1;}
.pb-wp-day b{font-size:12px;font-weight:600;color:var(--text);}
.pb-wp-day i{font-size:8.5px;font-style:normal;font-weight:700;color:var(--text3);letter-spacing:.02em;}
.pb-wp-week.sel .pb-wp-day b{color:var(--accent-ink);}
.pb-wp-day.other b,.pb-wp-day.other i{opacity:.38;}
.pb-wp-day.off b{color:var(--text3);text-decoration:line-through;text-decoration-thickness:1px;}
.pb-wp-day.today b{color:var(--accent);}
.pb-wp-day.today{box-shadow:inset 0 0 0 1px var(--accent);}
.pb-wp-foot{margin-top:6px;padding-top:6px;border-top:0.5px solid var(--border);text-align:center;}
.pb-wp-today{font-size:12px;font-weight:600;color:var(--accent-ink);background:transparent;border:none;padding:4px 8px;border-radius:var(--radius-sm);cursor:pointer;}
.pb-wp-today:hover{background:var(--bg2);}
.pb-sync{font-size:11px;color:var(--text3);display:flex;align-items:center;gap:.3rem;}
.pb-sync .dot{width:7px;height:7px;border-radius:50%;background:var(--accent);}
.pb-sync.saving .dot{background:var(--warn);}
.pb-sync.error .dot{background:var(--danger);}

/* ---------- grid ---------- */
.pb-main{flex:1;padding:1rem;overflow-x:auto;}
.pb-grid{min-width:820px;max-width:1500px;margin:0 auto;background:var(--bg);border:0.5px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);}
.pb-row{display:grid;grid-template-columns:150px repeat(5,1fr);border-bottom:0.5px solid var(--border);}
.pb-row:last-child{border-bottom:none;}
.pb-cell{padding:8px;border-left:0.5px solid var(--border);min-height:104px;position:relative;}
.pb-cell:first-child{border-left:none;}

.pb-headrow .pb-cell{min-height:0;background:var(--bg2);padding:9px 8px;}
.pb-corner{background:var(--bg2)!important;}
.pb-dayhead{display:flex;flex-direction:column;gap:2px;}
.pb-dayhead .dow{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text3);font-weight:600;}
.pb-dayhead .date{font-size:14px;font-weight:600;}
.pb-daytop{display:flex;justify-content:space-between;align-items:flex-start;}
.pb-cyclebadge{font-size:10px;font-weight:700;color:var(--accent-ink);background:var(--accent-bg);padding:2px 7px;border-radius:20px;margin-top:3px;display:inline-block;width:fit-content;}
.pb-daymenu{opacity:0;font-size:15px;line-height:1;color:var(--text3);background:transparent;border:none;padding:2px 5px;border-radius:var(--radius-sm);}
.pb-cell:hover .pb-daymenu,.pb-daymenu:focus{opacity:1;}
.pb-daymenu:hover{background:var(--bg3);color:var(--text);}
.pb-today .date{color:var(--accent);}
.pb-today.pb-cell{box-shadow:inset 0 3px 0 var(--accent);}

/* class label cells */
.pb-classlabel{background:var(--bg2);display:flex;flex-direction:column;justify-content:center;gap:3px;}
.pb-classlabel .name{font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px;line-height:1.2;}
.pb-classlabel .swatch{width:9px;height:9px;border-radius:3px;flex:none;}
.pb-classlabel .period{font-size:11px;color:var(--text3);padding-left:15px;}

/* lesson cell states */
.pb-noschool{background:repeating-linear-gradient(135deg,transparent,transparent 7px,var(--bg2) 7px,var(--bg2) 14px);}
.pb-noschool .label{font-size:12px;font-weight:600;color:var(--text2);}
.pb-noschool .kind{font-size:10px;text-transform:uppercase;letter-spacing:.05em;margin-top:2px;}
.pb-noschool .kind.snow{color:#3f7cc0;}
.pb-noschool .kind.event{color:var(--warn);}
.pb-noschool .kind.holiday{color:var(--text3);}
.pb-nomeet{color:var(--text3);display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--text3);opacity:.5;}

.pb-lesson{cursor:pointer;height:100%;display:flex;flex-direction:column;gap:4px;border-radius:var(--radius-sm);margin:-2px;padding:6px 6px 6px 8px;border-left:3px solid var(--lc,var(--accent));transition:background .12s;}
.pb-lesson:hover{background:var(--bg2);}
.pb-lesson.done{opacity:.62;}
.pb-lesson .title{font-size:12.5px;font-weight:600;line-height:1.25;}
.pb-lesson .obj{font-size:11.5px;color:var(--text2);line-height:1.3;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.pb-lesson .stds{display:flex;flex-wrap:wrap;gap:3px;margin-top:auto;}
.pb-std-chip{font-size:9.5px;font-weight:600;color:var(--accent-ink);background:var(--accent-bg);padding:1px 5px;border-radius:4px;}
.pb-lesson .hw{font-size:10.5px;color:var(--warn);}
.pb-lesson .donecheck{position:absolute;top:6px;right:6px;font-size:12px;color:var(--accent);opacity:0;}
.pb-lesson.done .donecheck{opacity:1;}
.pb-empty{cursor:pointer;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text3);font-size:12px;border-radius:var(--radius-sm);border:1px dashed transparent;}
.pb-cell:hover .pb-empty{border-color:var(--border);color:var(--text2);}

/* drag & drop (pointer-based: works with mouse and touch) */
.pb-lesson{touch-action:none;}
.pb-lesson:hover{cursor:grab;}
.pb-lesson.pb-dragging{opacity:.3;}
.pb-cell.pb-drop{background:var(--accent-bg);box-shadow:inset 0 0 0 2px var(--accent);}
.pb-ghost{position:fixed;z-index:300;pointer-events:none;opacity:.92;background:var(--bg);border:0.5px solid var(--border2);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:6px 8px;transform:rotate(-1.5deg);max-width:230px;}

/* quick edit table */
.pb-modal.xwide{max-width:1040px;}
.pb-qe-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.pb-qe-tools input[type=text]{flex:1;min-width:180px;}
.pb-qe-count{font-size:12px;color:var(--text3);white-space:nowrap;}
.pb-qe-wrap{max-height:58vh;overflow:auto;border:0.5px solid var(--border);border-radius:var(--radius);}
.pb-qe{width:100%;border-collapse:collapse;font-size:13px;}
.pb-qe th{position:sticky;top:0;z-index:1;background:var(--bg2);text-align:left;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text2);padding:8px;border-bottom:0.5px solid var(--border2);white-space:nowrap;}
.pb-qe td{padding:1px 5px;border-bottom:0.5px solid var(--border);vertical-align:middle;}
.pb-qe tr:last-child td{border-bottom:none;}
.pb-qe tr:hover td{background:var(--bg2);}
.pb-qe input[type=text]{width:100%;border:none;background:transparent;padding:7px 6px;font-size:13px;border-radius:var(--radius-sm);}
.pb-qe input[type=text]:hover{background:var(--bg3);}
.pb-qe input[type=text]:focus{background:var(--bg);outline:2px solid var(--accent);outline-offset:-2px;}
.pb-qe input[type=checkbox]{width:auto;}
.pb-qe-date{white-space:nowrap;color:var(--text2);font-size:12px;padding-left:8px!important;}
.pb-qe-cls{white-space:nowrap;font-weight:600;font-size:12px;}
.pb-qe-dot{width:8px;height:8px;border-radius:3px;display:inline-block;margin-right:5px;}
.pb-qe-unsched{color:var(--danger);font-size:11px;font-weight:700;}
.pb-qe-open{font-size:11px;padding:4px 9px;}
.pb-qe-add{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:-2px;}
.pb-qe-addform{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.pb-qe-adderr{font-size:12px;color:var(--danger);font-weight:600;}
.pb-qe tr.pb-qe-flash td{animation:qeflash 1.6s ease-out;}
@keyframes qeflash{from{background:var(--accent-bg);}to{background:transparent;}}
.pb-qe-empty{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text2);white-space:nowrap;cursor:pointer;}
.pb-qe-empty input{width:auto;}
.pb-qe tr.pb-qe-new td{background:transparent;}
.pb-qe tr.pb-qe-new .pb-qe-date,.pb-qe tr.pb-qe-new .pb-qe-cls{opacity:.5;}
.pb-qe tr.pb-qe-new input[type=text]::placeholder{color:var(--text3);font-style:italic;}

/* per-cell ⋯ (copy / paste / bump) */
.pb-cell-menu{position:absolute;top:5px;right:5px;z-index:3;opacity:0;font-size:15px;line-height:1;color:var(--text2);background:var(--bg);border:0.5px solid var(--border);border-radius:var(--radius-sm);padding:0 6px 2px;box-shadow:0 1px 2px rgba(0,0,0,0.08);}
.pb-cell:hover .pb-cell-menu,.pb-cell-menu:focus{opacity:1;}
.pb-cell-menu:hover{background:var(--bg2);color:var(--text);border-color:var(--border2);}

/* toast */
.pb-toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(8px);background:var(--text);color:var(--bg);font-size:13px;font-weight:600;padding:9px 16px;border-radius:20px;box-shadow:var(--shadow);opacity:0;transition:opacity .25s,transform .25s;z-index:200;pointer-events:none;}
.pb-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* ---------- popovers / menus ---------- */
.pb-menu{position:absolute;z-index:60;background:var(--bg);border:0.5px solid var(--border2);border-radius:var(--radius);box-shadow:var(--shadow);padding:5px;min-width:180px;}
.pb-menu button{display:block;width:100%;text-align:left;background:transparent;border:none;padding:8px 10px;border-radius:var(--radius-sm);font-size:13px;color:var(--text);}
.pb-menu button:hover{background:var(--bg2);}
.pb-menu button.danger{color:var(--danger);}
.pb-menu-sep{height:0.5px;background:var(--border);margin:4px 2px;}
.pb-menu-title{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text3);padding:6px 10px 3px;font-weight:600;}

/* ---------- modal ---------- */
.pb-overlay{position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:3vh 1rem 4vh;overflow-y:auto;}
.pb-modal{background:var(--bg);border-radius:var(--radius-lg);box-shadow:var(--shadow);width:100%;max-width:560px;border:0.5px solid var(--border);animation:pop .14s ease-out;}
.pb-modal.wide{max-width:720px;}
@keyframes pop{from{transform:translateY(8px) scale(.98);opacity:0;}to{transform:none;opacity:1;}}
.pb-modal-head{display:flex;align-items:center;gap:.6rem;padding:1rem 1.15rem;border-bottom:0.5px solid var(--border);position:sticky;top:0;background:var(--bg);border-radius:var(--radius-lg) var(--radius-lg) 0 0;z-index:1;}
.pb-modal-head h2{font-size:15px;font-weight:700;flex:1;letter-spacing:-.01em;}
.pb-modal-head .ctx{font-size:12px;color:var(--text3);}
.pb-modal-body{padding:1.15rem;display:flex;flex-direction:column;gap:1rem;}
.pb-modal-foot{padding:.9rem 1.15rem;border-top:0.5px solid var(--border);display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;}
.pb-modal-foot .spacer{flex:1;}

.field{display:flex;flex-direction:column;gap:5px;}
.field-row{display:flex;gap:.8rem;flex-wrap:wrap;}
.field-row .field{flex:1;min-width:130px;}
label.lbl{font-size:11px;font-weight:600;color:var(--text2);text-transform:uppercase;letter-spacing:.04em;}
input[type=text],input[type=password],input[type=date],input[type=number],textarea,select{font-family:var(--font);font-size:14px;color:var(--text);background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--radius);padding:9px 11px;width:100%;}
input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:transparent;}
textarea{resize:vertical;min-height:64px;line-height:1.4;}
.hint{font-size:11.5px;color:var(--text3);}

/* standards chips editor */
.pb-chips{display:flex;flex-wrap:wrap;gap:5px;align-items:center;}
.pb-chip{font-size:12px;font-weight:600;color:var(--accent-ink);background:var(--accent-bg);padding:3px 8px;border-radius:15px;display:inline-flex;align-items:center;gap:5px;}
.pb-chip button{background:transparent;border:none;color:var(--accent-ink);font-size:14px;line-height:1;padding:0;opacity:.6;}
.pb-chip button:hover{opacity:1;}
.pb-chipinput{border:none!important;background:transparent!important;flex:1;min-width:90px;padding:4px!important;outline:none!important;}

/* toggles */
.pb-check{display:flex;align-items:center;gap:8px;font-size:14px;cursor:pointer;}
.pb-check input{width:auto;}

/* settings — classes / dates lists */
.pb-list{display:flex;flex-direction:column;gap:8px;}
.pb-listitem{display:flex;align-items:center;gap:8px;background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--radius);padding:8px 10px;flex-wrap:wrap;}
.pb-listitem input[type=text]{flex:1;min-width:110px;}
.pb-colorbtn{width:26px;height:26px;border-radius:6px;border:0.5px solid var(--border2);flex:none;cursor:pointer;padding:0;}
.pb-meets{display:flex;gap:3px;flex-wrap:wrap;}
.pb-meetbtn{font-size:11px;font-weight:600;padding:3px 7px;border-radius:6px;border:0.5px solid var(--border);background:var(--bg);color:var(--text3);}
.pb-meetbtn.on{background:var(--accent-bg);color:var(--accent-ink);border-color:transparent;}

/* coverage */
.pb-cov-item{display:flex;align-items:center;gap:10px;padding:8px 2px;border-bottom:0.5px solid var(--border);}
.pb-cov-item:last-child{border-bottom:none;}
.pb-cov-code{font-size:13px;font-weight:700;color:var(--accent-ink);min-width:90px;}
.pb-cov-bar{flex:1;height:8px;background:var(--bg3);border-radius:5px;overflow:hidden;}
.pb-cov-bar span{display:block;height:100%;background:var(--accent);}
.pb-cov-n{font-size:12px;color:var(--text2);min-width:66px;text-align:right;}
.pb-cov-empty{color:var(--text3);font-size:13px;text-align:center;padding:1.5rem;}

/* setup / first run */
.pb-setup{max-width:520px;margin:8vh auto;background:var(--bg);border:0.5px solid var(--border);border-radius:var(--radius-lg);padding:2rem;text-align:center;box-shadow:var(--shadow);}
.pb-setup h2{font-size:20px;margin-bottom:.5rem;}
.pb-setup p{color:var(--text2);font-size:14px;line-height:1.5;margin-bottom:1.2rem;}
.pb-setup .url{font-family:ui-monospace,Menlo,monospace;font-size:12px;background:var(--bg2);border:0.5px solid var(--border);border-radius:var(--radius);padding:10px;word-break:break-all;margin:1rem 0;}
.pb-err{color:var(--danger);font-size:13px;}

/* teacher sign-in */
.pb-login{display:flex;flex-direction:column;gap:12px;text-align:left;}
.pb-login .btn-primary{align-self:stretch;justify-content:center;padding:10px;}
.pb-login-err{color:var(--danger);font-size:13px;min-height:1em;margin:-4px 0;}
.pb-login-err:empty{display:none;}

/* templates list */
.pb-tpl{display:flex;align-items:center;gap:8px;padding:10px;border:0.5px solid var(--border);border-radius:var(--radius);background:var(--bg2);}
.pb-tpl .tname{flex:1;font-weight:600;font-size:13.5px;}
.pb-tpl .tprev{font-size:11.5px;color:var(--text3);}

/* ---------- PE typeahead ---------- */
.pb-ta-wrap{position:relative;}
.pb-pe-search{width:100%;}
.pb-typeahead{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:5;background:var(--bg);border:0.5px solid var(--border2);border-radius:var(--radius);box-shadow:var(--shadow);max-height:280px;overflow-y:auto;}
.pb-ta-item{display:flex;gap:9px;padding:8px 11px;cursor:pointer;align-items:baseline;border-bottom:0.5px solid var(--border);}
.pb-ta-item:last-child{border-bottom:none;}
.pb-ta-item:hover{background:var(--accent-bg);}
.pb-ta-code{font-size:12px;font-weight:700;color:var(--accent-ink);white-space:nowrap;min-width:78px;}
.pb-ta-text{font-size:12px;color:var(--text2);line-height:1.35;}
.pb-pe-list{display:flex;flex-direction:column;gap:6px;margin-bottom:8px;}
.pb-pe-item{background:var(--bg2);border:0.5px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-sm);padding:7px 9px;}
.pb-pe-head{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.pb-pe-code{font-size:12.5px;font-weight:700;color:var(--accent-ink);}
.pb-pe-rm{background:transparent;border:none;color:var(--text3);font-size:17px;line-height:1;padding:0 2px;}
.pb-pe-rm:hover{color:var(--danger);}
.pb-pe-text{font-size:12px;color:var(--text2);line-height:1.35;margin-top:3px;}

/* ---------- checklist dropdown (SEPs / CCCs) ---------- */
.pb-dd-btn{width:100%;justify-content:space-between;text-align:left;}
.pb-dd-chev{color:var(--text3);font-size:11px;}
.pb-dd-panel{margin-top:6px;border:0.5px solid var(--border);border-radius:var(--radius);background:var(--bg2);padding:4px;max-height:230px;overflow-y:auto;}
.pb-dd-item{display:flex;align-items:flex-start;gap:8px;padding:7px 8px;border-radius:var(--radius-sm);font-size:13px;line-height:1.3;cursor:pointer;}
.pb-dd-item:hover{background:var(--bg3);}
.pb-dd-item input{width:auto;margin-top:2px;flex:none;}
.pb-dd-num{font-weight:700;color:var(--accent-ink);min-width:14px;}

/* lesson-card SEP / CCC chips, collapsed behind a "3D" pill */
.pb-3d{font-size:9px;font-weight:800;letter-spacing:.06em;color:var(--text3);background:var(--bg3);border:0.5px solid var(--border);border-radius:20px;padding:1px 7px;margin-top:2px;align-self:flex-start;display:inline-flex;align-items:center;gap:4px;line-height:1.5;}
.pb-3d:hover{color:var(--text);border-color:var(--border2);}
.pb-3d.on{background:var(--accent-bg);color:var(--accent-ink);border-color:transparent;}
.pb-3d-n{opacity:.7;font-weight:700;}
.pb-dims.collapsed{display:none;}
.pb-dims{display:flex;flex-direction:column;gap:3px;margin-top:2px;}
.pb-dim-row{display:flex;flex-wrap:wrap;gap:3px;align-items:baseline;}
.pb-dim-lab{font-size:8.5px;font-weight:800;letter-spacing:.07em;color:var(--text3);flex:none;padding-top:1px;}
.pb-dim-chip{font-size:9.5px;line-height:1.3;font-weight:600;padding:1px 5px;border-radius:4px;}
.pb-dim-chip b{font-weight:800;opacity:.65;margin-right:3px;}
.pb-dim-chip.sep{background:var(--sep-bg);color:var(--sep-txt);}
.pb-dim-chip.ccc{background:var(--ccc-bg);color:var(--ccc-txt);}

/* coverage section headers */
.pb-cov-h{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text2);margin:1.1rem 0 .3rem;}
.pb-cov-h:first-child{margin-top:0;}
.pb-cov-zero{opacity:.5;}
.pb-cov-zero .pb-cov-n{color:var(--danger);}

/* ---------- print ---------- */
@media print{
	@page{size:landscape;margin:1cm;}
	body{background:#fff;}
	.pb-header,.pb-daymenu,.pb-sync,.no-print,.pb-cell-menu,.pb-3d{display:none!important;}
	/* printed plans always show the full three dimensions, collapsed or not */
	.pb-dims,.pb-dims.collapsed{display:flex!important;}
	.pb-main{padding:0;overflow:visible;}
	.pb-grid{min-width:0;box-shadow:none;border-color:#999;max-width:none;}
	.pb-print-head{display:block!important;margin-bottom:.5cm;}
	.pb-cell{min-height:0;}
	.pb-lesson{cursor:default;}
	.pb-lesson .obj{-webkit-line-clamp:6;}
	.pb-row{break-inside:avoid;}
	*{-webkit-print-color-adjust:exact;print-color-adjust:exact;}
}
.pb-print-head{display:none;text-align:center;}
.pb-print-head h2{font-size:16px;}
.pb-print-head p{font-size:12px;color:#555;}
