.board-canvas.dragging-file::after {
  content: 'Отпустите файлы, чтобы добавить их на доску'; position: absolute; inset: 20px; z-index: 10;
  display: grid; place-items: center; border: 2px dashed #3157f5; border-radius: 20px;
  background: #e9f0ffdd; color: #164fd4; font: 700 18px Manrope, sans-serif; pointer-events: none;
}
.board-preview-modal { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 28px; background: #10182aaa; }
.board-preview-modal[hidden] { display: none; }
.board-preview-modal > div { width: min(1100px, 95vw); height: min(820px, 92vh); padding: 16px; display: grid; grid-template-rows: auto 1fr auto; gap: 12px; border-radius: 18px; background: #fff; box-shadow: 0 25px 80px #0c132966; }
.board-preview-modal header { display: flex; align-items: center; justify-content: space-between; }
.board-preview-modal header button { width: 36px; height: 36px; border: 0; border-radius: 8px; background: #eef2f8; font-size: 22px; }
.board-preview-modal iframe { width: 100%; height: 100%; border: 1px solid #dce4ef; border-radius: 10px; }
.board-preview-modal a { text-align: center; color: #155eef; text-decoration: none; font-weight: 700; }
.board-modal > form { max-height: min(780px, calc(100vh - 30px)); overflow: auto; }
.board-modal h2 { margin: 2px 0 8px; }
.board-modal fieldset { border: 1px solid #dce4ef; border-radius: 12px; }
.board-modal legend { padding: 0 6px; color: #52627e; font-weight: 700; }
.board-dialog-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.board-student-picker { max-height: 250px; overflow: auto; display: grid; gap: 6px; padding: 6px; }
.board-student-picker label { grid-template-columns: auto 1fr; align-items: center; padding: 9px; border-radius: 9px; background: #f6f8fc; }
.board-student-picker span { display: grid; margin-left: 8px; }
.board-student-picker small { color: #7a88a3; }
.object-reactions { position: absolute; left: 8px; bottom: -26px; padding: 3px 7px; border: 1px solid #dce4ef; border-radius: 12px; background: #fff; box-shadow: 0 5px 16px #26365a22; font-size: 14px; }
.board-object-comments article { padding: 9px !important; background: #f7f9fd; }
.board-object-comments p { margin: 5px 0 0; color: #53627d; font-size: 13px; }
.board-preview em { position: absolute; top: 12px; right: 12px; padding: 5px 8px; border: 1px solid #d5def0; border-radius: 999px; background: #ffffffe8; color: #53627d; font: 700 10px Manrope; font-style: normal; }
.board-card-members { margin-top: 11px; color: #61718d; font-size: 12px; }
.board-room-card { grid-template-columns: 8px minmax(0, 1fr) auto auto !important; }
.board-room-card div { min-width: 0; }
.board-room-card b, .board-room-card small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.board-room-card [data-focus-room], .board-member-list [data-focus-member] { cursor: pointer; }
.board-room-card [data-focus-room]:hover b, .board-member-list [data-focus-member]:hover b { color: #155eef; }
.board-room-notice { display: grid; gap: 5px; margin: 0 0 18px; padding: 13px 14px; border: 1px solid #cfdcff; border-radius: 12px; background: #f5f8ff; color: #18223c; }
.board-room-notice span { color: #64738f; font-size: 12px; line-height: 1.45; }
.board-switch { display: flex !important; grid-template-columns: none !important; align-items: flex-start; gap: 9px !important; margin: 9px 0 !important; color: #263451 !important; font-size: 13px !important; }
.board-switch input { flex: 0 0 auto; margin-top: 2px; }
.board-collect-preview { display: grid; gap: 8px; max-height: 210px; overflow: auto; margin: 12px 0; }
.board-collect-preview > span { display: grid; gap: 3px; padding: 10px 12px; border-left: 4px solid var(--room-color, #3157f5); border-radius: 8px; background: #f6f8fd; }
.board-collect-preview small, .board-dialog-note { color: #7483a2; font-size: 12px; line-height: 1.45; }
.board-warning { padding: 10px 12px; border: 1px solid #f0d6b4; border-radius: 9px; background: #fff9f1; }
.board-room-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.board-room-actions button { padding: 9px 11px; border: 1px solid #d9e1ee; border-radius: 8px; background: #fff; font: 650 12px Manrope; }
.board-room-actions .danger { border-color: #f1cdd0; color: #bd3b45; }
.board-align-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-bottom: 18px; }
.board-align-actions button { padding: 8px 4px; border: 1px solid #d9e1ee; border-radius: 7px; background: #fff; color: #34425e; font: 650 10px Manrope; }
.board-session-controls { margin-top: 8px; padding-top: 8px; border-top: 1px solid #e2e8f2; }
.board-session-card [data-session-timer] { color: #155eef; font-weight: 750; font-variant-numeric: tabular-nums; }
.board-session-card [data-session-timer].expired { color: #bd3b45; }
.board-announcement { margin: 0 0 14px; padding: 12px 14px; border-radius: 11px; background: #fff5d9; color: #694b00; font-size: 13px; font-weight: 650; line-height: 1.45; }
.board-mobile-side, .board-side-mobile-close, .board-more-tool { display: none; }
.board-cursor { z-index: 30; display: flex; align-items: center; gap: 4px; width: max-content; transform: translate(3px, 3px); box-shadow: 0 3px 10px #15203d24; }
.board-cursor i { position: absolute; left: -7px; top: -7px; width: 0; height: 0; border-right: 9px solid transparent; border-bottom: 14px solid currentColor; transform: rotate(-20deg); color: inherit; }
.board-cursor span { position: relative; color: #fff; white-space: nowrap; }
.board-object.remote-selected { box-shadow: 0 0 0 3px var(--remote-color, #8759e8) !important; }
.remote-object-user { position: absolute; right: 0; top: -27px; max-width: 150px; padding: 4px 7px; border-radius: 6px 6px 0 6px; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 700 10px Manrope; }
@media (max-width: 900px) {
  .board-mobile-side, .board-more-tool { display: block; }
  .board-top { padding: 0 10px; gap: 8px; }
  .board-top > div { min-width: 0; }
  .board-top h2 { max-width: 32vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .board-top #boardConnection, .board-top .participants { display: none; }
  .board-mobile-side { margin-left: auto; padding: 8px 10px; border: 1px solid #d9e1ee; border-radius: 8px; background: #fff; color: #263451; font: 650 11px Manrope; }
  .board-side { display: none; top: 70px; bottom: 78px; left: 12px; right: 12px; max-height: none; width: auto; }
  .board-side.mobile-open { display: block; }
  .board-toolbox button:nth-child(n+9):not(.board-more-tool) { display: none; }
  .board-toolbox.expanded { flex-wrap: wrap; justify-content: center; overflow: visible; }
  .board-toolbox.expanded button:nth-child(n+9) { display: block; }
}
@media (max-width: 600px) {
  .board-dialog-grid { grid-template-columns: 1fr; }
  .board-top #boardBack { max-width: 76px; overflow: hidden; white-space: nowrap; }
  .board-toolbox button { flex: 0 0 40px; width: 40px; height: 40px; }
}
.board-size-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.board-size-grid label{margin:0}.board-size-grid input{width:100%;box-sizing:border-box}
.board-object.teacher-hidden{outline:2px dashed #8e9ab1;filter:saturate(.55)}.board-hidden-badge{position:absolute;left:8px;bottom:-23px;padding:3px 7px;border-radius:6px;background:#263451;color:#fff;font:700 9px Manrope;white-space:nowrap}.board-visibility-check{margin:14px 0!important;padding:10px;border:1px solid #dbe3ef;border-radius:9px;background:#f7f9fd}
.board-history-modal>section{width:min(720px,calc(100vw - 32px));max-height:min(760px,calc(100vh - 40px));display:flex;flex-direction:column;padding:24px;border-radius:18px;background:#fff;box-shadow:0 28px 80px #11193635}.board-history-modal header{display:flex;align-items:flex-start;justify-content:space-between}.board-history-modal header h2{margin:3px 0 18px}.board-history-modal header button{border:0;background:transparent;font-size:24px}.board-history-list{display:grid;overflow:auto;border:1px solid #e0e6f0;border-radius:12px}.board-history-list article{display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;padding:13px 15px;border-bottom:1px solid #e7ebf3}.board-history-list article:last-child{border-bottom:0}.board-history-list span{display:grid;gap:4px}.board-history-list small,.board-history-list em{color:#7786a2;font:500 11px Manrope}.board-history-list button{padding:7px 10px;border:1px solid #cad7ef;border-radius:8px;background:#fff;color:#174ed8;font:700 11px Manrope}
.board-mini-map{position:absolute;left:18px;bottom:18px;width:146px;height:86px;overflow:hidden;border:1px solid #d8e0ed;border-radius:11px;background:#fff;box-shadow:0 9px 28px #2735521c;z-index:4}.board-mini-map i{position:absolute;min-width:2px;min-height:2px;border-radius:2px;opacity:.7}.board-mini-map i.room{background:transparent!important;border:1px dashed #6482cc}.board-mini-map span{display:grid;height:100%;place-items:center;color:#8491a8;font:600 10px Manrope}@media(max-width:900px){.board-mini-map{display:none}}

/* Compact collaborative-board workspace */
.board-app{grid-template-rows:66px 1fr;background:#f8faff}.board-top{gap:12px;padding:0 16px;border-color:#e4e9f2;box-shadow:none}.board-top>div{display:grid;gap:2px}.board-top h2{font-size:14px;font-weight:750}.board-top .save-state{font-size:11px}.board-top .secondary{min-height:42px;padding:0 17px;border:1px solid #dce3ee;border-radius:11px;background:#f7f9fc;color:#17213a;font-weight:700}.board-workspace{background:#f8faff}.board-canvas{background-color:#f9fbff;background-image:radial-gradient(#c9d7ed 1px,transparent 1px);background-size:24px 24px}
.board-toolbox{left:14px;top:14px;bottom:14px;width:50px;box-sizing:border-box;display:flex;flex-direction:column;gap:2px;padding:5px;border-color:#dfe6f1;border-radius:15px;overflow-y:auto;overflow-x:visible;scrollbar-width:none}.board-toolbox::-webkit-scrollbar{display:none}.board-toolbox button{position:relative;flex:0 0 40px;width:40px;height:40px;display:grid;place-items:center;border-radius:9px;color:#1a2640}.board-toolbox button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.board-toolbox button[data-board-tool="sticky"] svg{fill:#fff2a9}.board-toolbox button.active,.board-toolbox button:hover{background:#eaf1ff;color:#155eef}.board-toolbox button::after{content:attr(data-tooltip);position:absolute;left:48px;top:50%;z-index:30;transform:translate(5px,-50%);padding:7px 9px;border-radius:7px;background:#17213a;color:#fff;box-shadow:0 7px 20px #111a2f30;opacity:0;pointer-events:none;white-space:nowrap;font:650 11px Manrope;transition:.14s ease}.board-toolbox button:hover::after,.board-toolbox button:focus-visible::after{opacity:1;transform:translate(0,-50%)}
.board-side{right:0;top:0;width:300px;max-height:none;height:100%;box-sizing:border-box;border-width:0 0 0 1px;border-radius:0;box-shadow:none;padding:18px 16px;background:#fff}.board-bottom{bottom:14px;padding:5px;border-radius:10px;box-shadow:0 8px 24px #26365a12}.board-bottom button{padding:7px 10px;background:#fff}.board-mini-map{left:76px;bottom:14px}
.board-object{cursor:grab;touch-action:none}.board-object:active{cursor:grabbing}.board-object.text{min-width:80px;padding:4px;font-family:Manrope,sans-serif;font-weight:600;line-height:1.38}.board-object.sticky{padding:18px 17px 24px;border:0;border-radius:3px;background:linear-gradient(145deg,var(--object-color,#fff1a8),color-mix(in srgb,var(--object-color,#fff1a8),#e6c864 8%));box-shadow:1px 3px 1px #7d6b2630,0 12px 24px #4b432226;font-family:Manrope,sans-serif;font-weight:550;line-height:1.42}.board-object.sticky:after{content:'';position:absolute;left:8px;right:8px;bottom:5px;height:8px;background:linear-gradient(180deg,transparent,#7a642512);filter:blur(4px);pointer-events:none}.board-object.frame,.board-object.room{pointer-events:auto}.board-object.frame>.board-inline-editor,.board-object.room>.board-inline-editor{position:absolute;left:8px;top:-36px;width:280px;height:30px;background:#fff;border:1px solid #dce4ef;border-radius:8px}.board-inline-editor{width:100%;height:100%;min-width:0;box-sizing:border-box;overflow:auto;outline:0;white-space:pre-wrap;word-break:break-word;cursor:text}.board-inline-editor:empty:before{content:attr(data-placeholder);color:#8a97ad}.board-object.editing{cursor:text;outline:2px solid #1764ff;outline-offset:3px}
.board-object.pdf{display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;padding:0;border:1px solid #d9e1ed;border-radius:10px;background:#fff;box-shadow:0 12px 34px #24355e22}.board-pdf-head{height:46px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:center;padding:0 12px;border-bottom:1px solid #e3e8f1;background:#fff;font:650 11px Manrope}.board-pdf-head span{display:grid;place-items:center;width:30px;height:30px;border-radius:7px;background:#f14c5d;color:#fff;font-size:10px}.board-pdf-head b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-pdf-head em{color:#73819a;font-style:normal}.board-pdf-page{min-height:0;background:#dfe3e9}.board-pdf-page iframe{display:block;width:100%;height:100%;border:0;background:#fff;pointer-events:none}.board-pdf-controls{height:42px;display:flex;align-items:center;justify-content:center;gap:10px;border-top:1px solid #e3e8f1;background:#fff;font:650 11px Manrope}.board-pdf-controls button,.board-pdf-controls a{width:28px;height:28px;display:grid;place-items:center;border:1px solid #dbe3ef;border-radius:7px;background:#fff;color:#1b2b4b;text-decoration:none;font-size:18px;cursor:pointer}.board-pdf-controls a{font-size:14px}.board-object.pdf.selected{outline-offset:4px}
.board-font-control{display:grid;grid-template-columns:1fr 32px 38px 32px;gap:5px;align-items:center;margin:12px 0;color:#64738f;font-size:12px}.board-font-control button{height:32px;border:1px solid #dbe3ef;border-radius:7px;background:#fff;font-size:17px}.board-font-control output{display:grid;place-items:center;height:32px;border:1px solid #e1e7f0;border-radius:7px;background:#f7f9fd;color:#1c2944;font-weight:700}
.board-composer{position:absolute;z-index:50;left:76px;top:18px;width:min(360px,calc(100vw - 100px));display:grid;gap:12px;padding:16px;border:1px solid #dce4ef;border-radius:14px;background:#fff;box-shadow:0 18px 52px #17213a2c}.board-composer header,.board-composer footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.board-composer header button{border:0;background:transparent;font-size:22px}.board-composer label{display:grid;gap:6px;color:#667590;font-size:12px;font-weight:650}.board-composer input,.board-composer textarea{width:100%;box-sizing:border-box;padding:11px 12px;border:1px solid #d9e1ed;border-radius:9px;font:500 13px Manrope}.board-composer textarea{min-height:96px;resize:vertical}.board-composer footer{justify-content:flex-end}.board-composer footer button{padding:9px 13px;border:1px solid #d9e1ed;border-radius:8px;background:#fff;font:700 12px Manrope}.board-composer footer .primary{border-color:#155eef;background:#155eef;color:#fff}
@media(max-width:900px){.board-toolbox{top:auto;bottom:12px;left:12px;right:12px;width:auto;height:52px;max-width:none;transform:none;flex-direction:row;overflow-x:auto;overflow-y:hidden}.board-toolbox button::after{display:none}.board-side{top:70px;bottom:70px;left:12px;right:12px;width:auto;height:auto;border:1px solid #dce4ef;border-radius:14px;box-shadow:0 15px 45px #22304f2b}.board-composer{left:12px;top:12px;width:calc(100vw - 56px)}}
.board-floating-tooltip{position:fixed;z-index:999;transform:translateY(-50%);padding:7px 9px;border-radius:7px;background:#17213a;color:#fff;box-shadow:0 7px 20px #111a2f30;pointer-events:none;white-space:nowrap;font:650 11px Manrope}
