@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;600&family=Spline+Sans+Mono:wght@500&display=swap";:root{font-family:Space Grotesk,Segoe UI,sans-serif;color:#1a2902;background:radial-gradient(circle at top,#fafff4,#f0f7e6 45%,#e8f5d8);min-height:100vh}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:transparent}*{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}canvas{touch-action:none}html,body,#app,.app,.board-screen{height:100%;width:100%;overflow:hidden}#app{min-height:100vh}[hidden]{display:none!important}.app{min-height:100vh}.auth-screen{display:grid;grid-template-columns:minmax(0,1.05fr);gap:2rem;padding:2.5rem;min-height:100vh;align-items:center}.auth-card{background:#ffffffd9;border-radius:24px;border:1px solid rgba(90,107,69,.35);box-shadow:0 24px 60px #1a290226;padding:2rem}.auth-header{margin-bottom:1.5rem}.auth-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem;margin-bottom:1.5rem}.auth-tab{border:1px solid rgba(90,107,69,.4);background:transparent;padding:.6rem .9rem;border-radius:999px;cursor:pointer;font-weight:600;color:#1a2902}.auth-tab.is-active{background:#9acd32;color:#fcfef9;border-color:transparent}.auth-panel form{display:grid;gap:1rem}.auth-panel label{display:grid;gap:.45rem;color:#1a2902;font-weight:600}.auth-panel input{padding:.7rem .9rem;border-radius:12px;border:1px solid rgba(90,107,69,.6);font-size:.95rem}.auth-panel button{border:none;background:#9acd32;color:#fcfef9;font-weight:600;padding:.7rem 1.1rem;border-radius:12px;cursor:pointer}.auth-panel button.secondary{background:#1a290214;color:#1a2902}.auth-panel button.link-button{background:transparent;color:#9acd32;padding:0;text-align:left}.auth-message{margin-top:1.2rem;font-weight:600;min-height:1.5rem}.auth-message[data-tone=error]{color:#b91c1c}.auth-message[data-tone=success]{color:#9acd32}.auth-aside{background:linear-gradient(135deg,#1a2902eb,#6b9023d9);color:#fcfef9;padding:2.5rem;border-radius:28px;box-shadow:0 24px 60px #1a290259}.auth-aside h2{margin:0 0 1rem;font-size:2rem}.auth-aside p{margin:0 0 1.2rem;color:#f8fafccc}.auth-aside ul{margin:0;padding-left:1.2rem;display:grid;gap:.6rem}.board-screen{position:relative;height:100%}.topbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1.5rem;align-items:center;padding:1.5rem 2rem 1rem}.brand{display:flex;gap:1rem;align-items:center}.brand-mark{width:44px;height:44px;border-radius:16px;background:linear-gradient(135deg,#9acd32,#6b9023);box-shadow:0 10px 24px #6b902340}.brand h1{margin:0;font-size:1.6rem;letter-spacing:.02em}.brand p{margin:.2rem 0 0;color:#5a6b45;font-size:.95rem}.stroke-color input[type=color]::-webkit-color-swatch{border:none;border-radius:50%;box-shadow:0 0 0 2px #1a290226}.stroke-color input[type=color]::-webkit-color-swatch-wrapper{padding:0}.board-toolbar{position:absolute;top:1rem;right:1rem;display:flex;flex-direction:column;align-items:center;gap:.6rem;z-index:7}.connection-error{position:absolute;top:1rem;left:50%;transform:translate(-50%);z-index:7;background:#fee2e2eb;color:#b91c1c;border:1px solid rgba(248,113,113,.45);border-radius:999px;padding:.45rem 1rem;font-weight:600;font-size:.85rem;box-shadow:0 12px 28px #b91c1c33;max-width:min(90vw,480px);text-align:center}.stroke-loading{position:absolute;inset:0;display:grid;place-items:center;z-index:8;pointer-events:none}.stroke-loading-card{display:flex;align-items:center;gap:.65rem;padding:.6rem 1rem;border-radius:999px;background:#ffffffeb;border:1px solid rgba(90,107,69,.35);box-shadow:0 16px 36px #1a29022e;font-weight:600;color:#1a2902;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.stroke-loading-spinner{width:18px;height:18px;border-radius:50%;border:3px solid rgba(26,41,2,.2);border-top-color:#6b9023;animation:stroke-spin .9s linear infinite}.stroke-loading-text{font-size:.9rem}@keyframes stroke-spin{to{transform:rotate(360deg)}}.stroke-color{display:grid;place-items:center;gap:0;color:#5a6b45}.stroke-color input[type=color]{width:52px;height:52px;padding:0;border:none;border-radius:50%;background:transparent;cursor:pointer}.board-actions{display:flex;flex-direction:column;align-items:center;gap:.75rem;justify-self:end}.user-action{position:relative}.user-avatar{width:52px;height:52px;border-radius:50%;border:2px solid rgba(26,41,2,.15);background:#fff;padding:0;overflow:hidden;display:grid;place-items:center;cursor:pointer;box-shadow:0 12px 24px #1a290226}.user-avatar svg{width:100%;height:100%;display:block}.student-button{width:52px;height:52px;border-radius:50%;border:2px solid rgba(26,41,2,.15);background:#fff;padding:0;overflow:hidden;display:grid;place-items:center;cursor:pointer;box-shadow:0 12px 24px #1a290226}.student-button svg{width:100%;height:100%;display:block}.student-button.is-active{border-color:#9acd32b3;box-shadow:0 0 0 2px #9acd3233,0 12px 24px #1a290226}.user-menu{position:absolute;top:70px;right:0;min-width:220px;background:#fffffff5;border:1px solid rgba(90,107,69,.35);border-radius:18px;padding:.85rem;display:grid;gap:.65rem;box-shadow:0 18px 40px #1a290233;z-index:6}.user-email{font-weight:600;font-size:.9rem;color:#1a2902;word-break:break-word}.user-menu button{border:none;background:#1a290214;color:#1a2902;font-weight:600;padding:.5rem 1rem;border-radius:999px;cursor:pointer}.pdf-button{width:52px;height:52px;border-radius:50%;border:2px solid rgba(26,41,2,.2);background:#f8fafcf2;display:grid;place-items:center;cursor:pointer;box-shadow:0 12px 24px #1a290226}.pdf-button.is-active{border-color:#9acd32b3;box-shadow:0 0 0 2px #9acd3233,0 12px 24px #1a290226}.pdf-button-icon{width:52px;height:52px;object-fit:cover;padding:2px;position:relative;left:-12px}.pdf-button-icon:after{display:none}.pdf-button.is-active .pdf-button-icon{border-color:#fcfef9}.pdf-button.is-active .pdf-button-icon:after{background:#fcfef9}.eraser-button{width:52px;height:52px;border-radius:50%;border:2px solid rgba(26,41,2,.2);background:#f8fafcf2;display:grid;place-items:center;cursor:pointer;box-shadow:0 12px 24px #1a290226}.eraser-button.is-active{border-color:#9acd32b3;box-shadow:0 0 0 2px #9acd3233,0 12px 24px #1a290226}.eraser-icon{width:45px;height:45px;object-fit:cover;padding:2px;position:relative;left:-11px}.eraser-icon:after{display:none}.eraser-button.is-active .eraser-icon{filter:brightness(1.2)}.eraser-button.is-active .eraser-icon:after{background:#fcfef9}.polygon-button{width:52px;height:52px;border-radius:50%;border:2px solid rgba(26,41,2,.2);background:#f8fafcf2;display:grid;place-items:center;cursor:pointer;box-shadow:0 12px 24px #1a290226;transition:all .2s ease}.polygon-button:hover{border-color:#9acd3280;transform:translateY(-1px);box-shadow:0 14px 28px #1a290233}.polygon-button.is-active{border-color:#9acd32b3;box-shadow:0 0 0 2px #9acd3233,0 12px 24px #1a290226}.polygon-icon{width:45px;height:45px;padding:2px;object-fit:contain;display:block}.polygon-button.is-active .polygon-icon{filter:brightness(1.1)}.lasso-button{width:52px;height:52px;border-radius:50%;border:2px solid rgba(26,41,2,.2);background:#f8fafcf2;display:grid;place-items:center;cursor:pointer;box-shadow:0 12px 24px #1a290226;transition:all .2s ease}.lasso-button:hover{border-color:#0088ff80;transform:translateY(-1px);box-shadow:0 14px 28px #1a290233}.lasso-button.is-active{border-color:#0088ffb3;background:#0088ff1a;box-shadow:0 0 0 2px #08f3,0 12px 24px #1a290226}.lasso-icon{width:24px;height:24px;display:block;color:#1a2902cc}.lasso-button.is-active .lasso-icon{color:#08f}.eraser-indicator{position:absolute;width:32px;height:32px;pointer-events:none;transform:translate(-50%,-50%);z-index:10000;transition:opacity .15s ease-out;will-change:transform,opacity}.eraser-indicator:before{content:"";position:absolute;top:50%;left:50%;width:100%;height:100%;transform:translate(-50%,-50%);background:radial-gradient(circle,#ff69b4,#ff8dc7cc,#ffb6db80 60%,#ffb6db33);border-radius:50%;filter:blur(2px)}.eraser-indicator:after{content:"";position:absolute;top:50%;left:50%;width:3px;height:3px;transform:translate(-50%,-50%);background:#ff1744;border:1px solid white;border-radius:50%;box-shadow:0 0 4px #ff1744cc}.export-button{width:52px;height:52px;border-radius:50%;border:2px solid rgba(26,41,2,.2);background:#f8fafcf2;display:grid;place-items:center;cursor:pointer;box-shadow:0 12px 24px #1a290226;transition:all .2s ease}.export-button:hover{background:#6b9023;border-color:transparent;transform:translateY(-2px)}.export-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.export-icon{font-size:24px;color:#1a2902}.export-button:hover .export-icon{color:#fcfef9}.undo-button,.redo-button{width:52px;height:52px;border-radius:50%;border:2px solid rgba(26,41,2,.2);background:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 12px 24px #1a290226;transition:all .2s ease}.undo-button:hover:not(:disabled),.redo-button:hover:not(:disabled){border-color:#9acd32b3;box-shadow:0 0 0 2px #9acd3233,0 12px 24px #1a290226}.undo-button:disabled,.redo-button:disabled{opacity:.3;cursor:not-allowed;transform:none}.undo-icon,.redo-icon{width:42px;height:42px;object-fit:contain;position:relative;left:-5px}.redo-icon-flipped{transform:scaleX(-1)}.undo-button:hover:not(:disabled) .undo-icon,.redo-button:hover:not(:disabled) .redo-icon{filter:brightness(.9)}.undo-button:disabled .undo-icon,.redo-button:disabled .redo-icon{opacity:.5}.pdf-panel,.student-panel{position:absolute;top:1.5rem;right:1.5rem;width:min(380px,92%);max-height:80vh;background:#fffffff5;border:1px solid rgba(90,107,69,.35);border-radius:22px;padding:1rem;display:flex;flex-direction:column;gap:.85rem;overflow:hidden;box-shadow:0 24px 60px #1a29022e;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:6}.pdf-panel-header,.student-panel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.pdf-panel-header h2,.student-panel-header h2{margin:0;font-size:1.1rem}.pdf-panel-header p,.student-panel-header p{margin:.2rem 0 0;font-size:.85rem;color:#6b7756}.pdf-panel-close,.student-panel-close{border:none;background:transparent;font-size:1.4rem;line-height:1;cursor:pointer;color:#5a6b45}.pdf-panel-search input,.student-panel-search input{width:100%;padding:.65rem .85rem;border-radius:12px;border:1px solid rgba(90,107,69,.5);background:#fcfef9;font-size:.9rem}.pdf-panel-filters{display:flex;gap:.75rem;flex-wrap:wrap;padding:.5rem 0}.pdf-filter-checkbox{display:flex;align-items:center;gap:.35rem;cursor:pointer;font-size:.85rem;color:#1a2902;-webkit-user-select:none;user-select:none}.pdf-filter-checkbox input[type=checkbox]{cursor:pointer;width:16px;height:16px}.pdf-panel-status,.student-panel-status{font-size:.8rem;min-height:1.2rem;color:#6b7756}.pdf-panel-status[data-tone=error],.student-panel-status[data-tone=error]{color:#b91c1c}.pdf-panel-status[data-tone=success],.student-panel-status[data-tone=success]{color:#9acd32}.pdf-results{display:grid;gap:.6rem;overflow:auto;padding-right:.2rem;flex:1 1 auto;min-height:0}.pdf-result{text-align:left;border:1px solid rgba(90,107,69,.4);background:#fffffff2;border-radius:14px;padding:.6rem .8rem;cursor:pointer;display:grid;gap:.2rem}.pdf-result:hover{border-color:#6b902399;box-shadow:0 10px 24px #6b90231f}.pdf-result.is-edited{background:#e6f0dcf2;border-color:#6b902380}.pdf-result.is-edited:hover{background:#dcebd2f2;border-color:#6b9023b3}.pdf-result-title{font-weight:600;font-size:.9rem;color:#1a2902}.pdf-result-meta{font-size:.75rem;color:#6b7756}.student-results{display:grid;gap:.6rem;overflow:auto;padding-right:.2rem;flex:1 1 auto;min-height:0}.student-result{text-align:left;border:1px solid rgba(90,107,69,.4);background:#fffffff2;border-radius:14px;padding:.6rem .8rem;cursor:pointer;display:grid;gap:.2rem}.student-result.is-selected{border-color:#9acd32;box-shadow:0 0 0 3px #9acd3259,0 12px 24px #1a29021f;background:#9acd3226}.student-result.is-selected .student-result-title{color:#9acd32}.student-result:hover{border-color:#6b902399;box-shadow:0 10px 24px #6b90231f}.student-result-title{font-weight:600;font-size:.9rem;color:#1a2902}.student-result-meta{font-size:.75rem;color:#6b7756}.student-panel-clear{width:100%;padding:.65rem;margin-bottom:.75rem;border:1px solid rgba(220,53,69,.5);border-radius:12px;background:#dc35450d;color:#dc3545;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease}.student-panel-clear:hover{background:#dc35451a;border-color:#dc3545b3}.pdf-layer{position:absolute;inset:0;z-index:1;opacity:0;transition:opacity .2s ease}.pdf-layer.is-active{opacity:1}.pdf-sidebar{position:absolute;top:0;bottom:0;left:0;width:140px;padding:.7rem .45rem;background:#1a290214;border-right:1px solid rgba(90,107,69,.35);display:grid;gap:.6rem;overflow:auto;pointer-events:auto;z-index:4}.current-student-display{position:fixed;right:1rem;bottom:1rem;left:auto;top:auto;padding:.65rem 1rem;background:#fffffff2;border:1px solid rgba(90,107,69,.3);border-radius:12px;font-size:.85rem;font-weight:600;color:#1a2902;box-shadow:0 4px 12px #1a29021a;z-index:9;max-width:min(320px,calc(100% - 2rem));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pdf-viewer{position:absolute;inset:0 0 0 140px;display:flex;align-items:center;justify-content:center;pointer-events:none;background:#fff6}.pdf-thumb{border:1px solid rgba(90,107,69,.4);background:#ffffffe6;border-radius:12px;padding:.4rem;display:grid;gap:.4rem;justify-items:center;cursor:pointer}.pdf-thumb.is-active{border-color:#9acd32;box-shadow:0 0 0 2px #9acd3233}.pdf-thumb.drop-target{border:3px dashed #0088ff;background-color:#0088ff1a;box-shadow:0 0 0 2px #0088ff4d}.pdf-thumb canvas{display:block;border-radius:8px}.pdf-thumb-label{font-size:.7rem;color:#5a6b45}.board{position:relative;margin:0;width:100%;height:100%;background:#ffffffbf;border-radius:0;border:none;box-shadow:none;overflow:hidden}.board canvas{width:100%;height:100%;display:block;position:relative;z-index:2}.board canvas[draggable=true]{cursor:move}@media(max-width:960px){.auth-screen{grid-template-columns:1fr;padding:1.5rem}.board-toolbar{top:.75rem;right:.75rem;flex-direction:row}.connection-error{top:.75rem;left:50%;transform:translate(-50%)}.pdf-panel,.student-panel{left:1rem;right:1rem;width:auto}.pdf-sidebar{width:96px}.pdf-viewer{left:96px}}.pdf-panel-clear{align-self:flex-start;border:none;background:#1a290214;color:#1a2902;font-weight:600;padding:.4rem .85rem;border-radius:999px;cursor:pointer}.pdf-panel-clear:hover{background:#1a290229}
