:root{--ink:#14213d;--muted:#64748b;--line:#e4e9f2;--blue:#3857e8;--blue-deep:#253fc7;--sky:#eef4ff;--paper:#f6f8fc;--card:#fff;--shadow:0 18px 50px rgba(23,39,75,0.1);--radius:16px}*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;min-width:320px;background:radial-gradient(circle at 5% 0,#e5efff 0,transparent 28%),var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}.primary,.secondary,.upload,button{min-height:40px;border:1px solid transparent;border-radius:10px;padding:.58rem .9rem;font:600 .9rem/1.2 inherit;transition:transform .16s ease,box-shadow .16s ease,background .16s ease;cursor:pointer}.primary:hover,.secondary:hover,.upload:hover,button:hover{transform:translateY(-1px)}.upload:focus-within,a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid #9fbbff;outline-offset:2px}.primary,.upload{color:#fff;background:linear-gradient(135deg,var(--blue),#5374f5);box-shadow:0 8px 18px rgba(56,87,232,.24)}.primary:hover,.upload:hover{background:linear-gradient(135deg,var(--blue-deep),var(--blue))}.secondary{background:#fff;border-color:#d9e1f0;color:#30405e}.eyebrow{display:inline-flex;align-items:center;gap:.5rem;margin:0;color:var(--blue);font-size:.78rem;font-weight:800;letter-spacing:.14em}.eyebrow:before{content:"";width:.6rem;height:.6rem;border-radius:50%;background:#29bf87;box-shadow:0 0 0 5px #dbf8eb}.muted{color:var(--muted)!important}.text-link{color:var(--blue);font-size:.78rem;font-weight:700}.landing{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr;grid-gap:4.5rem;gap:4.5rem;align-items:center;max-width:1160px;margin:auto;padding:4rem 2rem}.landing h1{margin:.8rem 0 1.35rem;font-size:clamp(3.2rem,8.5vw,6.5rem);line-height:.86;letter-spacing:-.075em}.lede{max-width:32rem;color:#53627d;font-size:1.22rem;line-height:1.65}.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}.landing aside{position:relative;overflow:hidden;min-height:330px;padding:2.3rem;border-radius:26px;background:linear-gradient(145deg,#162a6a,#385ce4);box-shadow:0 24px 60px rgba(30,55,145,.25);color:#fff;display:flex;flex-direction:column;gap:1.2rem}.landing aside:after{position:absolute;right:-65px;bottom:-75px;width:230px;height:230px;border:35px solid rgba(255,255,255,.13);border-radius:50%;content:""}.landing aside span{font-size:.8rem;font-weight:800;letter-spacing:.12em;opacity:.75}.landing aside strong{max-width:16rem;font-size:2rem;line-height:1.05;letter-spacing:-.04em}.landing aside p{position:relative;z-index:1;max-width:20rem;color:#dbe6ff;line-height:1.6}.dashboard{min-height:100vh;background:#f7f9fc}.dashboard-header{height:76px;gap:2.2rem;padding:0 3rem;background:#fff;border-bottom:1px solid var(--line)}.brand,.dashboard-header{display:flex;align-items:center}.brand{gap:.7rem;margin-right:auto;font-size:.7rem;font-weight:800;letter-spacing:.08em;line-height:1.35}.brand small{font-size:.58rem;color:#8290a9;letter-spacing:.13em}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;color:#fff;background:var(--blue);font-size:1.1rem;letter-spacing:0}.dashboard-header nav{display:flex;gap:1.7rem;color:#75839a;font-size:.88rem;font-weight:650}.dashboard-header nav a{padding:1.4rem 0}.dashboard-header nav .nav-active{color:var(--ink);border-bottom:2px solid var(--blue)}.dashboard-shell{display:grid;grid-template-columns:224px minmax(0,1fr);max-width:1440px;margin:auto}.dashboard-sidebar{min-height:calc(100vh - 76px);padding:2.1rem 1rem;border-right:1px solid var(--line);background:#fbfcfe;display:flex;flex-direction:column;gap:.3rem}.sidebar-label{padding:0 .85rem;margin:.5rem 0 .45rem;color:#98a4b8;font-size:.67rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.dashboard-sidebar a{display:flex;align-items:center;gap:.8rem;padding:.7rem .85rem;border-radius:9px;color:#687892;font-size:.9rem}.dashboard-sidebar .sidebar-active,.dashboard-sidebar a:hover{color:var(--blue);background:#edf2ff}.sidebar-spacer{margin-top:1.6rem}.sidebar-footer{display:flex;flex-direction:column;gap:.25rem;margin-top:auto;padding:1rem .85rem;border-top:1px solid var(--line);color:#52627e;font-size:.82rem}.sidebar-footer span{color:#9aa6b8;font-size:.74rem}.dashboard-content{max-width:1120px;width:100%;padding:3rem 3.5rem}.dashboard-welcome{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:2rem}.dashboard-welcome h1{margin:.65rem 0 .45rem;font-size:2rem;letter-spacing:-.045em}.dashboard-welcome p:not(.eyebrow){margin:0;color:var(--muted)}.status-pill{display:flex;align-items:center;gap:.45rem;padding:.5rem .7rem;border:1px solid #cfeede;border-radius:20px;color:#228457;background:#f1fcf6;font-size:.76rem;font-weight:700}.status-pill span{width:7px;height:7px;border-radius:50%;background:#29bf87}.dashboard-grid{display:grid;grid-template-columns:1fr 1.3fr;grid-gap:1.2rem;gap:1.2rem}.dashboard-panel{padding:1.45rem;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 24px rgba(23,39,75,.035)}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between}.panel-heading h2{margin:.4rem 0 0;font-size:1.06rem;letter-spacing:-.02em}.panel-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;color:var(--blue);background:#eef2ff}.quick-actions{display:grid;grid-gap:.65rem;gap:.65rem;margin-top:1.3rem}.quick-actions a{display:flex;align-items:center;gap:.75rem;padding:.65rem;border:1px solid #edf0f5;border-radius:10px}.quick-actions a:hover{border-color:#bac8fa;background:#fbfcff}.action-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;font-size:1.2rem}.blue-icon{color:#3857e8;background:#e9efff}.purple-icon{color:#8c52cf;background:#f4eaff}.lesson-copy small,.lesson-copy strong,.quick-actions small,.quick-actions strong{display:block}.quick-actions strong{font-size:.83rem}.lesson-copy small,.quick-actions small{margin-top:.18rem;color:#8b97aa;font-size:.7rem}.quick-actions b{margin-left:auto;color:#aab4c4}.stats{display:flex;gap:1.8rem;margin:1.45rem 0 1.35rem}.stats div{display:flex;flex-direction:column;gap:.25rem}.stats strong{font-size:1.35rem;letter-spacing:-.04em}.days,.stats span{color:#8b97aa;font-size:.68rem}.activity-bar{display:flex;align-items:flex-end;height:40px;gap:.38rem;border-bottom:1px solid #edf0f5}.activity-bar span{flex:1 1;min-height:10px;border-radius:3px 3px 0 0;background:#dce5ff}.activity-bar span:first-child{height:55%}.activity-bar span:nth-child(2){height:85%;background:#9eb3ff}.activity-bar span:nth-child(3){height:68%}.activity-bar span:nth-child(4){height:100%;background:var(--blue)}.activity-bar span:nth-child(5){height:78%;background:#819aff}.activity-bar span:nth-child(6){height:44%}.activity-bar span:nth-child(7){height:25%}.days{display:flex;justify-content:space-between;padding-top:.45rem}.lessons-panel{margin-top:1.2rem}.lesson-list{margin-top:1.1rem;border-top:1px solid #eef1f5}.lesson-row{display:flex;align-items:center;gap:.85rem;padding:.8rem 0;border-bottom:1px solid #eef1f5}.lesson-row:hover .lesson-copy strong{color:var(--blue)}.lesson-thumb{display:grid;place-items:center;width:48px;height:40px;border-radius:7px;font-size:1.1rem}.lesson-thumb.blue{color:#4865e8;background:#e9efff}.lesson-thumb.green{color:#2a9c78;background:#e4f7ed}.lesson-thumb.orange{color:#d28738;background:#fff0df}.lesson-copy{flex:1 1}.lesson-copy strong{font-size:.82rem}.lesson-more{color:#96a2b4;letter-spacing:.14em}.lower-grid{margin-top:1.2rem;grid-template-columns:1.3fr 1fr}.announcement-panel p:not(.eyebrow),.storage-panel p:not(.eyebrow){color:#77859c;font-size:.8rem;line-height:1.6}.announcement-panel .text-link,.storage-panel .text-link{display:inline-block;margin-top:.35rem}.storage-number{color:var(--blue);font-size:1.2rem}.storage-track{height:7px;margin:1.4rem 0 .7rem;overflow:hidden;border-radius:4px;background:#edf0f6}.storage-track span{display:block;width:24%;height:100%;border-radius:inherit;background:var(--blue)}.auth-page{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;max-width:1000px;margin:auto;padding:5rem 1.5rem;grid-gap:2rem;gap:2rem;align-items:center}.auth-page aside,.auth-page section{background:rgba(255,255,255,.94);border:1px solid #e4e9f2;border-radius:var(--radius);padding:2.25rem;box-shadow:var(--shadow)}.auth-page h1{margin:.8rem 0;font-size:2.5rem;letter-spacing:-.055em}.auth-page h2{margin-top:0;letter-spacing:-.035em}.auth-page p{color:var(--muted);line-height:1.6}.sign-in{gap:1rem;margin-top:1.8rem}.sign-in,.sign-in label{display:flex;flex-direction:column}.sign-in label{gap:.45rem;color:#40506b;font-size:.86rem;font-weight:750}.sign-in input{height:44px;padding:.7rem .8rem;border:1px solid #d9e1f0;border-radius:9px;background:#fbfcff;font:inherit}.sign-in input:focus{border-color:#90a7f7;background:#fff;outline:none}.tabs{display:flex;gap:.45rem;padding:.3rem;border-radius:10px;background:#f1f4fa}.tabs button{flex:1 1;min-height:34px;padding:.4rem;background:transparent;color:var(--muted)}.tabs .active{background:#fff;color:var(--blue);box-shadow:0 2px 7px rgba(36,51,86,.1)}.sign-in small{color:var(--muted);line-height:1.5}.phone-qr{width:220px;height:220px;display:block;padding:.65rem;border:1px solid var(--line);border-radius:12px;background:#fff}.mobile-upload{min-height:100vh;max-width:520px;margin:auto;padding:4rem 1.5rem;display:flex;gap:1.4rem;flex-direction:column}.mobile-upload h1{font-size:2rem;letter-spacing:-.04em}.mobile-upload small{color:var(--muted);line-height:1.5}.empty{max-width:560px;margin:auto;text-align:center;padding:4rem 2rem}.empty h1{margin:0 0 .8rem;font-size:2rem;letter-spacing:-.04em}.empty p{color:var(--muted);line-height:1.6}.dashboard .empty{margin-top:10vh}@media (max-width:900px){.dashboard-header{padding:0 1.5rem}.dashboard-shell{grid-template-columns:72px minmax(0,1fr)}.dashboard-sidebar{padding:2rem .7rem}.dashboard-sidebar a{justify-content:center}.dashboard-sidebar a span,.sidebar-footer,.sidebar-label{display:none}.dashboard-content{padding:2rem 1.5rem}}@media (max-width:680px){.dashboard-header{height:auto;min-height:68px;gap:.7rem;padding:.75rem 1rem}.dashboard-header nav{display:none}.dashboard-header .primary{padding:.55rem .65rem;font-size:.75rem}.dashboard-content{padding:1.5rem 1rem}.dashboard-welcome{align-items:flex-start;flex-direction:column;gap:1rem}.dashboard-welcome h1{font-size:1.65rem}.dashboard-grid,.lower-grid{grid-template-columns:1fr}.stats{gap:1rem;justify-content:space-between}.stats strong{font-size:1.15rem}.stats span{max-width:70px;line-height:1.3}.brand{font-size:.62rem}}@media (max-width:760px){.landing{grid-template-columns:1fr;gap:2rem;padding:3rem 1.3rem}.landing aside{min-height:230px}.auth-page{grid-template-columns:1fr;padding:1.5rem 1rem}.auth-page aside{order:-1}.auth-page aside,.auth-page section{padding:1.5rem}.mobile-upload{padding:2.5rem 1.25rem}}.viewer{display:grid;grid-template-rows:48px 1fr;height:100dvh;overflow:hidden;background:#0f172a}.viewer-header{display:flex;align-items:center;gap:.75rem;height:48px;min-height:48px;padding:0 1rem;background:#ffffff;border-bottom:1px solid #e2e8f0;box-shadow:0 1px 4px rgba(15,23,42,.06);overflow:hidden}.viewer-brand{flex-shrink:0;font-size:.72rem;font-weight:800;letter-spacing:.06em;color:#1e293b;white-space:nowrap}.viewer-brand span{color:var(--blue)}.document-title{display:flex;flex-direction:column;gap:.1rem;flex:1 1;min-width:0;max-width:320px;overflow:hidden}.document-title strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;color:#0f172a}.document-title small{color:#2a9465;font-size:.65rem;font-weight:600}.header-file-actions{display:flex;align-items:center;gap:.4rem;flex-shrink:0}.header-action-btn{display:inline-flex;align-items:center;gap:.3rem;height:32px;min-height:32px;padding:0 .75rem;border:1px solid #d1d5db;border-radius:8px;background:#f8fafc;color:#334155;font-size:.75rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .12s ease,border-color .12s ease}.header-action-btn:hover{background:#eef3ff;border-color:var(--blue);color:var(--blue)}.header-export-btn{background:var(--blue);border-color:var(--blue);color:#ffffff;box-shadow:0 3px 10px rgba(37,99,235,.22)}.header-export-btn:hover{background:#1d4ed8;border-color:#1d4ed8;color:#ffffff;box-shadow:0 4px 14px rgba(37,99,235,.38)}.header-undo-redo{display:flex;align-items:center;gap:.2rem;flex-shrink:0}.header-undo-redo button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;min-height:30px;padding:0;border:1px solid #e2e8f0;border-radius:7px;background:#f8fafc;color:#475569;font-size:1rem;cursor:pointer;transition:all .12s ease}.header-undo-redo button:hover:not(:disabled){background:#eef3ff;border-color:var(--blue);color:var(--blue)}.header-undo-redo button:disabled{opacity:.35;cursor:not-allowed}.header-present-actions{flex-shrink:0;margin-left:auto}.present-btn{display:inline-flex;align-items:center;gap:.3rem;height:34px;min-height:34px;padding:0 1rem;border:none;border-radius:8px;background:var(--blue);color:#ffffff;font-size:.8rem;font-weight:750;cursor:pointer;white-space:nowrap;box-shadow:0 4px 12px rgba(37,99,235,.3);transition:background .12s ease,box-shadow .12s ease}.present-btn:hover{background:#1d4ed8;box-shadow:0 6px 16px rgba(37,99,235,.45)}.status-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.12rem .45rem;border-radius:999px;background:rgba(37,99,235,.08);color:var(--blue);font-size:.65rem;font-weight:700;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-badge.has-error{background:rgba(220,38,38,.1);color:#dc2626}.status-dismiss{display:inline-grid;place-items:center;flex-shrink:0;width:16px;height:16px;min-height:16px;padding:0;border:0;border-radius:50%;background:transparent;color:currentColor;font-size:.65rem;cursor:pointer;opacity:.7}.status-dismiss:hover{opacity:1;background:rgba(0,0,0,.1)}.viewer-body{display:grid;grid-template-columns:200px minmax(0,1fr);height:calc(100dvh - 48px);min-height:0;overflow:hidden;transition:grid-template-columns .2s ease}.viewer-body.sidebar-collapsed{grid-template-columns:40px minmax(0,1fr)}.presenting .viewer-body{grid-template-columns:0 minmax(0,1fr)}.page-sidebar{display:flex;flex-direction:column;gap:.6rem;overflow-y:auto;overflow-x:hidden;padding:.8rem .6rem 3rem;background:#f8faff;border-right:1px solid #e2e8f0;min-height:0}.page-sidebar.sidebar-collapsed{padding:.5rem .25rem;align-items:center;overflow:hidden}.page-sidebar>strong{padding:0 .2rem;color:#8490a4;font-size:.65rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.sidebar-toggle{position:-webkit-sticky;position:sticky;top:0;z-index:2;display:grid;place-items:center;width:28px;height:28px;min-height:28px;margin:0 auto .5rem;padding:0;border:1px solid #cbd6ef;border-radius:7px;background:#ffffff;color:#405381;font-size:.68rem;cursor:pointer;flex-shrink:0}.sidebar-toggle:hover{border-color:var(--blue);color:var(--blue);background:#eef3ff}.page-thumb{display:flex;flex-direction:column;align-items:center;gap:.22rem;width:100%;padding:.4rem;border:2px solid #d1d9ef;border-radius:9px;background:#ffffff;color:#6b7a99;font-size:.62rem;cursor:pointer;transition:all .15s ease;flex-shrink:0}.page-thumb:hover{border-color:var(--blue);transform:translateY(-1px);box-shadow:0 4px 12px rgba(37,99,235,.12)}.page-thumb.active{border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.2);background:#f0f5ff;color:var(--blue)}.page-thumb canvas{display:block;width:100%;height:auto;border-radius:5px;background:#fff;box-shadow:0 1px 4px rgba(20,33,61,.1)}.page-thumb-num{display:block;margin-top:.2rem;font-size:.68rem;font-weight:750;color:#334155}.collapsed-page-list{display:flex;flex-direction:column;align-items:center;gap:.4rem;width:100%;margin-top:.3rem;overflow-y:auto;overflow-x:hidden}.page-num-pill{display:flex;align-items:center;justify-content:center;width:30px;height:30px;min-height:30px;padding:0;border-radius:50%;border:1.5px solid #cbd6ef;background:#ffffff;color:#334155;font-size:.72rem;font-weight:800;cursor:pointer;transition:all .15s ease;flex-shrink:0}.page-num-pill.active,.page-num-pill:hover{border-color:var(--blue);background:var(--blue);color:#ffffff;box-shadow:0 4px 10px rgba(37,99,235,.3)}.page-sidebar-actions{display:grid;grid-gap:.25rem;gap:.25rem}.page-sidebar-actions button{min-height:24px;padding:.2rem .3rem;border:1px solid #d9e2f3;border-radius:6px;color:#52627e;background:#fff;font-size:.58rem;cursor:pointer}.page-sidebar-actions button:hover:not(:disabled){border-color:var(--blue);color:var(--blue);background:#eef3ff}.page-sidebar-actions button:disabled{opacity:.4;cursor:not-allowed}.page-sidebar-actions .delete-page-btn{color:#dc2626;border-color:#fca5a5}.page-sidebar-actions .delete-page-btn:hover:not(:disabled){background:#fef2f2;border-color:#f87171}.viewer-workspace{flex-direction:column;height:100%;overflow:clip}.viewer-workspace,.viewer-workspace .stage{position:relative;display:flex;min-height:0;touch-action:none}.viewer-workspace .stage{flex:1 1;align-items:center;justify-content:center;padding:.75rem 1rem;background:#0f172a;overflow:visible}.viewer-workspace .page-frame{display:flex;align-items:center;justify-content:center;width:100%;height:100%;max-width:100%;max-height:100%;touch-action:none}.viewer-workspace .page{position:relative;width:100%;max-width:min(100%,calc((100vh - 48px - 80px) * 16 / 9));max-height:calc(100vh - 48px - 80px);aspect-ratio:16/9;margin:auto;box-shadow:0 14px 45px rgba(0,0,0,.55);border-radius:6px;overflow:visible;touch-action:none}.viewer-workspace .page canvas{display:block;width:100%!important;height:100%!important;object-fit:contain;touch-action:none;border-radius:6px;position:relative;z-index:0}.viewer-workspace .page svg:not(.drawing-overlay){position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.viewer-workspace .page svg.drawing-overlay{position:absolute;top:-30%;left:-30%;width:160%;height:160%;z-index:1;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;overflow:visible}.page-counter{position:absolute;top:.65rem;left:50%;z-index:20;display:flex;align-items:center;gap:.3rem;transform:translateX(-50%);padding:.2rem .3rem;border:1px solid rgba(203,214,239,.9);border-radius:999px;background:rgba(255,255,255,.95);box-shadow:0 4px 12px rgba(36,51,86,.12);color:#4d5f80;font-size:.7rem;font-weight:750;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility .3s ease}.page-counter.visible{opacity:1;visibility:visible;pointer-events:auto}.page-counter button{display:grid;place-items:center;width:22px;height:22px;min-height:22px;padding:0;border:0;border-radius:50%;color:var(--blue);background:transparent;font-size:.95rem;cursor:pointer}.page-counter button:hover{background:#eef3ff}.page-counter button:disabled{opacity:.3;cursor:not-allowed}.zoom-controls-wrapper{position:absolute;top:.75rem;right:1.25rem;z-index:70}.zoom-toggle-btn{display:inline-flex;align-items:center;gap:.3rem;min-height:30px;padding:.25rem .65rem;border:1px solid rgba(203,214,239,.9);border-radius:999px;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 4px 12px rgba(36,51,86,.1);color:#30405e;font-size:.72rem;font-weight:750;cursor:pointer;transition:all .12s ease}.zoom-toggle-btn.active,.zoom-toggle-btn:hover{border-color:var(--blue);color:var(--blue);background:#fff}.zoom-popover-menu{position:absolute;top:calc(100% + .4rem);right:0;min-width:165px;display:flex;flex-direction:column;gap:.3rem;padding:.45rem;border:1px solid #cbd6ef;border-radius:11px;background:#ffffff;box-shadow:0 10px 28px rgba(15,23,42,.18);z-index:71;animation:zoomMenuFade .12s ease-out}@keyframes zoomMenuFade{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.zoom-menu-row{display:flex;align-items:center;justify-content:space-between;gap:.2rem}.zoom-menu-row button{display:grid;place-items:center;width:26px;height:26px;min-height:26px;padding:0;border:1px solid #d9e2f3;border-radius:5px;background:#f8fafc;color:#30405e;font-size:.85rem;font-weight:700;cursor:pointer}.zoom-menu-row button:hover{border-color:var(--blue);color:var(--blue);background:#eef3ff}.zoom-menu-row .zoom-val{font-size:.73rem;font-weight:800;color:#1e293b;cursor:pointer;padding:.15rem .35rem;border-radius:4px}.zoom-menu-row .zoom-val:hover{background:#f1f5f9}.zoom-menu-divider{height:1px;background:#e2e8f0;margin:.1rem 0}.zoom-menu-item{width:100%;display:flex;align-items:center;gap:.35rem;padding:.35rem .55rem;border:0;border-radius:5px;background:transparent;color:#334155;font-size:.7rem;font-weight:700;cursor:pointer;text-align:left;transition:background .1s ease}.zoom-menu-item:hover{background:#eef3ff;color:var(--blue)}.floating-dock-wrapper{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);z-index:60;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:auto;width:auto;max-width:calc(100vw - 32px)}.floating-dock-wrapper.dock-free{position:fixed;bottom:auto;left:auto;top:auto;transform:none}.properties-popover{position:relative;display:flex;align-items:flex-start;flex-wrap:wrap;gap:.65rem;padding:.75rem 1.1rem;border-radius:16px;background:#ffffff;border:1.5px solid #cbd5e1;box-shadow:0 18px 48px rgba(15,23,42,.2),0 4px 12px rgba(0,0,0,.04);color:#0f172a;max-width:min(900px,calc(100vw - 32px));max-height:38vh;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#94a3b8 transparent;mask-image:linear-gradient(180deg,black calc(100% - 20px),transparent);-webkit-mask-image:linear-gradient(180deg,black calc(100% - 20px),transparent);animation:popoverSlideUp .16s ease-out}.properties-popover:not(:hover){mask-image:none;-webkit-mask-image:none}.properties-popover::-webkit-scrollbar{width:5px}.properties-popover::-webkit-scrollbar-thumb{background:#94a3b8;border-radius:4px}@keyframes popoverSlideUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.properties-popover label{display:flex;align-items:center;gap:.4rem;color:#475569;font-size:.68rem;font-weight:700;white-space:nowrap;flex-wrap:wrap}.properties-popover output{min-width:32px;color:#405381;font-size:.65rem}.properties-popover input[type=range]{width:72px;accent-color:var(--blue)}.properties-popover input[type=color]{width:26px;height:26px;padding:1px;border:1px solid var(--line);border-radius:5px;cursor:pointer}.properties-popover select{font-size:.68rem;padding:.2rem .3rem;border:1px solid #d1d5db;border-radius:5px}.properties-popover button:not(.color-swatch){background:#f1f5f9;color:#0f172a;border:1px solid #cbd5e1;font-size:.72rem}.properties-popover button:not(.color-swatch):hover:not(:disabled){background:var(--blue);border-color:var(--blue);color:#ffffff}.properties-popover .delete-action{color:#dc2626!important;border-color:rgba(239,68,68,.4)!important;background:#fef2f2!important}.properties-popover .delete-action:hover{background:#dc2626!important;color:#ffffff!important}.eraser-options{display:flex;flex-direction:column;gap:.5rem}.eraser-options label{display:flex;flex-direction:column;gap:.25rem}.eraser-options label span{font-size:.68rem;font-weight:700}.clear-options{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;padding-top:.3rem;border-top:1px solid rgba(0,0,0,.08)}.clear-options strong{font-size:.68rem}.control-dock{position:relative;display:flex;align-items:center;gap:.5rem;padding:.4rem .85rem;border:1.5px solid #cbd5e1;border-radius:999px;background:rgba(255,255,255,.97);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 12px 32px rgba(15,23,42,.2),0 2px 6px rgba(0,0,0,.04);transition:opacity .2s ease,transform .25s cubic-bezier(.16,1,.3,1);max-width:calc(100vw - 32px);overflow-x:auto}.control-dock.collapsed{opacity:0;pointer-events:none;transform:translateY(12px)}.dock-grip{display:grid;grid-template-columns:repeat(2,5px);grid-template-rows:repeat(3,5px);grid-gap:3px;gap:3px;padding:6px 4px;margin-right:2px;cursor:-webkit-grab;cursor:grab;flex-shrink:0;border-radius:6px;transition:background .12s ease;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none}.dock-grip:hover{background:#f1f5f9}.dock-grip:active{cursor:-webkit-grabbing;cursor:grabbing;background:#e2e8f0}.dock-grip span{display:block;width:4px;height:4px;border-radius:50%;background:#94a3b8;transition:background .12s ease}.dock-grip:hover span{background:#64748b}.tool-group{display:flex;align-items:center;gap:.25rem}.drawing-tools-group{flex:1 1;overflow-x:auto}.presentation-tools-group{flex-shrink:0}.tool-group button{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:.25rem .45rem;border-radius:9px;border:1px solid #e2e8f0;background:#f8fafc;color:#334155;font-size:.75rem;font-weight:750;cursor:pointer;transition:all .12s ease;white-space:nowrap}.tool-group button span{font-size:1.1rem}.tool-group button small{font-size:.56rem;font-weight:700}.tool-group button:hover{background:#eff6ff;color:var(--blue);border-color:#93c5fd}.tool-group button.active,.tool-group button.tool-active{background:var(--blue);color:#ffffff;border-color:var(--blue);box-shadow:0 4px 12px rgba(37,99,235,.3)}.dock-divider{display:inline-block;width:1px;height:22px;background:#cbd5e1;margin:0 .25rem;flex-shrink:0}.dock-group-divider{width:1.5px;height:28px;background:#94a3b8;margin:0 .3rem}.dock-pagination{display:inline-flex;align-items:center;gap:.3rem;font-size:.76rem;font-weight:750;color:#334155}.dock-pagination button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;min-height:30px;padding:0;border-radius:50%;border:1px solid #cbd5e1;background:#f1f5f9;color:#1e293b;font-size:.95rem;font-weight:800;cursor:pointer;transition:all .12s ease}.dock-pagination button:hover:not(:disabled){background:var(--blue);border-color:var(--blue);color:#ffffff}.dock-pagination button:disabled{opacity:.3;cursor:not-allowed}.tool-dropdown-container{position:relative}.tool-dropdown-menu{position:absolute;bottom:calc(100% + 8px);left:0;z-index:65;display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.35rem;gap:.35rem;padding:.55rem;border-radius:12px;background:rgba(15,23,42,.97);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1.5px solid rgba(255,255,255,.15);box-shadow:0 12px 32px rgba(0,0,0,.4);min-width:170px;animation:dropUpFade .12s ease-out}@keyframes dropUpFade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.tool-dropdown-menu button{display:flex;align-items:center;gap:.35rem;padding:.4rem .65rem;border-radius:7px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:#ffffff;font-size:.72rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .1s ease}.tool-dropdown-menu button.active,.tool-dropdown-menu button:hover{background:var(--blue);border-color:#60a5fa;color:#ffffff}.tool-dropdown-menu.shapes-grid{grid-template-columns:repeat(3,1fr);width:270px}.shapes-section-label{grid-column:1/-1;padding:.2rem .1rem .08rem;font-size:.58rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.4);border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:.05rem;pointer-events:none}.dock-edge-target{position:absolute;bottom:0;left:0;right:0;height:14px;z-index:61;cursor:pointer}.dock-trigger-pill{position:relative;display:flex;align-items:center;gap:.4rem;min-height:44px;padding:.45rem 1.4rem;border:1.5px solid #cbd5e1;border-radius:999px;background:#ffffff;color:#1e293b;font-size:.82rem;font-weight:800;box-shadow:0 8px 24px rgba(15,23,42,.18);cursor:pointer;touch-action:manipulation;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .15s ease}.dock-trigger-pill:active,.dock-trigger-pill:hover{background:var(--blue);color:#ffffff;border-color:var(--blue);transform:scale(1.04)}.transform-handle{fill:#ffffff;stroke:var(--blue);stroke-width:2;cursor:pointer;transition:r .1s ease}.transform-handle:hover{fill:var(--blue)}.handle-nw,.handle-se{cursor:nwse-resize}.handle-ne,.handle-sw{cursor:nesw-resize}.handle-n,.handle-s{cursor:ns-resize}.handle-e,.handle-w{cursor:ew-resize}.handle-rotate{cursor:-webkit-grab;cursor:grab;fill:#16a34a;stroke:#ffffff}.transform-box{fill:none;stroke:var(--blue);stroke-width:1.5;stroke-dasharray:4 4;pointer-events:none}.transform-line{stroke:#16a34a;stroke-width:1.5;stroke-dasharray:2 2}.annotation{cursor:pointer}.annotation.selected{filter:drop-shadow(0 0 4px rgba(56,87,232,.9))}.draft-path{fill:none}.color-swatches,.stroke-presets{display:flex;align-items:center;gap:.28rem;flex-wrap:wrap}.color-swatch{position:relative;width:20px;height:20px;min-height:20px;padding:0;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #d9e2f3;cursor:pointer;transition:transform .1s ease}.color-swatch.active{transform:scale(1.22);box-shadow:0 0 0 2px var(--blue)}.color-swatch:hover{transform:scale(1.38)!important;z-index:10}.color-swatch:after{content:attr(data-hex);position:absolute;bottom:calc(100% + 5px);left:50%;transform:translateX(-50%);background:#0f172a;color:#fff;padding:2px 5px;border-radius:4px;font-size:.6rem;font-weight:600;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s ease;z-index:20}.color-swatch:hover:after{opacity:1}.stroke-btn{min-height:24px!important;padding:.15rem .45rem!important;font-size:.63rem!important;border-radius:5px!important}.stroke-btn.active{background:var(--blue)!important;color:#fff!important;border-color:var(--blue)!important}.viewer-loading-overlay{position:fixed;inset:0;z-index:200;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:rgba(15,23,42,.6);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#ffffff;font-size:.9rem;font-weight:700}.viewer-loading-spinner{width:40px;height:40px;border:4px solid rgba(255,255,255,.2);border-top-color:#ffffff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.confirm-backdrop{position:fixed;inset:0;z-index:300;display:grid;place-items:center;background:rgba(15,23,42,.45);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.confirm-card{width:min(360px,calc(100vw - 32px));padding:1.5rem;border-radius:14px;background:#ffffff;border:1px solid #e2e8f0;box-shadow:0 20px 50px rgba(0,0,0,.3);animation:popoverSlideUp .16s ease-out}.confirm-card p{margin:0 0 1.2rem;color:#0f172a;font-size:.9rem;line-height:1.55}.confirm-actions{display:flex;justify-content:flex-end;gap:.5rem}.confirm-actions .secondary{background:#f1f5f9;border-color:#d1d5db;color:#334155}.danger-confirm{min-height:36px;padding:.4rem 1rem;background:#dc2626;border:none;border-radius:8px;color:#ffffff;font-size:.82rem;font-weight:700;cursor:pointer;transition:background .12s ease}.danger-confirm:hover{background:#b91c1c}.text-dialog-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:rgba(20,33,61,.35);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.text-dialog{display:flex;min-width:min(380px,calc(100vw - 32px));flex-direction:column;gap:.9rem;padding:1.2rem;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 18px 50px rgba(23,39,75,.2)}.text-dialog h2{margin:0;font-size:.95rem}.text-dialog label{display:flex;flex-direction:column;gap:.35rem;color:#53627d;font-size:.73rem;font-weight:750}.text-dialog input,.text-dialog select{height:40px;padding:.55rem .65rem;border:1px solid #d9e1f0;border-radius:7px;font:inherit;font-size:.85rem}.text-dialog input:focus,.text-dialog select:focus{border-color:var(--blue);outline:none}.text-dialog>div{display:flex;justify-content:flex-end;gap:.45rem}.text-dialog button{min-height:34px;font-size:.78rem}.settings-modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:rgba(15,23,42,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:modalFadeIn .14s ease-out}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.settings-modal-card{width:min(600px,calc(100vw - 24px));max-height:calc(100dvh - 48px);display:flex;flex-direction:column;border-radius:18px;background:#ffffff;border:1px solid #e2e8f0;box-shadow:0 28px 70px rgba(15,23,42,.22),0 4px 16px rgba(0,0,0,.06);overflow:hidden;animation:cardSlideUp .18s ease-out}@keyframes cardSlideUp{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}.settings-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.4rem .75rem;border-bottom:1px solid #f1f5f9;flex-shrink:0}.settings-modal-header h3{margin:0;font-size:1.05rem;font-weight:800;color:#0f172a;letter-spacing:-.02em}.sm-close-btn{display:grid;place-items:center;width:30px;height:30px;min-height:30px;padding:0;border:1px solid #e2e8f0;border-radius:50%;background:#f8fafc;color:#64748b;font-size:.82rem;font-weight:700;cursor:pointer;transition:all .12s ease}.sm-close-btn:hover{background:#fee2e2;border-color:#fca5a5;color:#dc2626}.settings-tabs{display:flex;gap:0;padding:0 1.4rem;border-bottom:1px solid #e2e8f0;background:#f8fafc;flex-shrink:0;overflow-x:auto}.settings-tab-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.65rem .9rem;border:none;border-bottom:2.5px solid transparent;background:transparent;color:#64748b;font-size:.78rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:color .12s ease,border-color .12s ease;margin-bottom:-1px}.settings-tab-btn:hover{color:var(--blue)}.settings-tab-btn.active{color:var(--blue);border-bottom-color:var(--blue)}.settings-modal-body{flex:1 1;padding:1.1rem 1.4rem;display:flex;flex-direction:column;gap:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}.settings-modal-body::-webkit-scrollbar{width:5px}.settings-modal-body::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.settings-section{padding:.9rem 0;border-bottom:1px solid #f1f5f9;display:flex;flex-direction:column;gap:.55rem}.settings-section:last-child{border-bottom:none}.settings-section h4{margin:0;font-size:.7rem;font-weight:800;color:#94a3b8;text-transform:uppercase;letter-spacing:.08em}.settings-danger-zone{background:#fff5f5;border-radius:10px;padding:.9rem;margin:0 -.2rem;border:1px solid #fee2e2!important}.settings-danger-zone h4{color:#dc2626!important}.sm-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.sm-label{font-size:.75rem;font-weight:600;color:#475569}.sm-value-badge{display:inline-flex;align-items:center;justify-content:center;min-width:44px;padding:.15rem .5rem;border-radius:999px;background:#f1f5f9;border:1px solid #e2e8f0;color:#334155;font-size:.72rem;font-weight:800}.sm-doc-name{flex:1 1;font-size:.85rem;color:#1e293b;overflow:hidden;text-overflow:ellipsis}.sm-btn,.sm-doc-name{font-weight:700;white-space:nowrap}.sm-btn{display:inline-flex;align-items:center;gap:.3rem;height:34px;min-height:34px;padding:0 .9rem;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;color:#334155;font-size:.76rem;cursor:pointer;transition:all .12s ease}.sm-btn:hover{background:#f1f5f9;border-color:#cbd5e1}.sm-btn-primary{background:var(--blue)!important;border-color:var(--blue)!important;color:#ffffff!important}.sm-btn-primary:hover{background:#1d4ed8!important;border-color:#1d4ed8!important}.sm-btn-danger{background:#fef2f2!important;border-color:#fca5a5!important;color:#dc2626!important}.sm-btn-danger:hover{background:#dc2626!important;border-color:#dc2626!important;color:#ffffff!important}.sm-btn-row{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.sm-text-input{flex:1 1;height:36px;padding:.4rem .65rem;border:1.5px solid #d1d5db;border-radius:8px;font:inherit;font-size:.85rem;color:#0f172a;outline:none;transition:border-color .12s ease;min-width:0}.sm-text-input:focus{border-color:var(--blue)}.sm-swatch-row{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.sm-color-swatch{width:24px;height:24px;min-height:24px;padding:0;border-radius:50%;cursor:pointer;transition:transform .1s ease,box-shadow .1s ease;box-shadow:0 0 0 1.5px #d1d5db}.sm-color-swatch:hover{transform:scale(1.25)}.sm-color-swatch.active{box-shadow:0 0 0 3px var(--blue);transform:scale(1.15)}.sm-color-input{width:30px;height:30px;padding:2px;border:1.5px solid #d1d5db;border-radius:7px;cursor:pointer}.sm-chip-row{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.sm-chip{display:inline-flex;align-items:center;height:30px;min-height:30px;padding:0 .75rem;border:1.5px solid #e2e8f0;border-radius:999px;background:#f8fafc;color:#475569;font-size:.73rem;font-weight:700;cursor:pointer;transition:all .12s ease}.sm-chip:hover{border-color:var(--blue);color:var(--blue);background:#eff6ff}.sm-chip.active{background:var(--blue);border-color:var(--blue);color:#ffffff}.sm-bg-presets{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.sm-bg-swatch{width:36px;height:36px;min-height:36px;padding:0;border-radius:50%;border:2.5px solid #e2e8f0;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.sm-bg-swatch:hover{transform:scale(1.15)}.sm-bg-swatch.active{border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.25);transform:scale(1.12)}.sm-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.55rem .75rem;background:#f8fafc;border:1px solid #f1f5f9;border-radius:10px}.sm-toggle-label{display:flex;flex-direction:column;gap:.1rem;flex:1 1;min-width:0}.sm-toggle-label strong{font-size:.82rem;font-weight:700;color:#1e293b}.sm-toggle-label small{font-size:.68rem;color:#94a3b8;line-height:1.3}.sm-toggle-btn{position:relative;flex-shrink:0;width:44px;height:26px;min-height:26px;padding:0;border:none;border-radius:999px;background:#cbd5e1;cursor:pointer;transition:background .2s ease}.sm-toggle-btn.on{background:var(--blue)}.sm-toggle-thumb{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#ffffff;box-shadow:0 1px 4px rgba(0,0,0,.2);transition:left .2s ease}.sm-toggle-btn.on .sm-toggle-thumb{left:21px}.sm-info-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:.5rem;gap:.5rem}.sm-info-item{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.65rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}.sm-info-val{font-size:1.4rem;font-weight:800;color:var(--blue);line-height:1}.sm-info-lbl{font-size:.65rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.06em}.settings-modal-footer{padding:.8rem 1.4rem;background:#f8fafc;border-top:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;gap:1rem}.sm-footer-hint{font-size:.68rem;color:#94a3b8;font-weight:600}.grid-overlay{pointer-events:none}.page-smooth{transition:opacity .2s ease}.viewer-empty{display:grid;place-items:center;min-height:calc(100dvh - 48px);text-align:center;background:#f7f9fc}.viewer-empty>div{max-width:420px;padding:2rem}.empty-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 1rem;border-radius:16px;color:var(--blue);background:#e7edff;font-size:2.1rem}.viewer-empty h1{margin:.4rem 0;font-size:1.6rem;letter-spacing:-.04em}.viewer-empty p{margin:0 0 1.4rem;color:var(--muted);line-height:1.6}.presenting .floating-dock-wrapper,.presenting .page-sidebar{display:none}.presenting .viewer-body{grid-template-columns:minmax(0,1fr)!important}.presenting .viewer-workspace .stage{padding:0}.presenting .viewer-workspace .page{max-width:100%;max-height:100vh}.presenting .page-counter{top:1.2rem}#nextjs__container,[data-nextjs-dialog-overlay],nextjs-portal{display:none!important;opacity:0!important;pointer-events:none!important}@media (max-width:900px){.viewer-body{grid-template-columns:160px minmax(0,1fr)}.viewer-body.sidebar-collapsed{grid-template-columns:38px minmax(0,1fr)}.document-title{max-width:180px}.properties-popover{max-width:calc(100vw - 16px)}}@media (max-width:600px){.viewer-header{gap:.4rem;padding:0 .6rem}.viewer-brand{font-size:.65rem}.viewer-brand span{display:none}.document-title{max-width:120px}.document-title small{display:none}.header-file-actions{gap:.25rem}.header-export-btn{padding:0 .55rem;font-size:.68rem}.viewer-body{grid-template-columns:56px minmax(0,1fr)}.viewer-body.sidebar-collapsed{grid-template-columns:34px minmax(0,1fr)}.page-thumb canvas{width:44px}.control-dock{padding:.35rem .6rem;gap:.25rem}.tool-group button{min-width:38px;min-height:38px}.tool-group button small{display:none}.zoom-controls-wrapper{top:.4rem;right:.6rem}.properties-popover{max-height:45vh}}.shapes-panel{position:fixed;top:72px;right:16px;z-index:80;width:224px;max-height:calc(100dvh - 96px);display:flex;flex-direction:column;background:#ffffff;border:1.5px solid #e2e8f0;border-radius:14px;box-shadow:0 16px 40px rgba(15,23,42,.18),0 4px 12px rgba(0,0,0,.06);overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent;animation:popoverSlideUp .16s ease-out;-moz-user-select:none;user-select:none;-webkit-user-select:none}.shapes-panel::-webkit-scrollbar{width:4px}.shapes-panel::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.presenting .shapes-panel{display:none}.shapes-panel-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem .85rem;background:#f8fafc;border-bottom:1px solid #e2e8f0;border-radius:14px 14px 0 0;cursor:-webkit-grab;cursor:grab;flex-shrink:0;touch-action:none}.shapes-panel-header:active{cursor:-webkit-grabbing;cursor:grabbing;background:#f1f5f9}.shapes-panel-title{font-size:.78rem;font-weight:800;color:#1e293b;pointer-events:none}.shapes-panel-close{display:grid;place-items:center;width:22px;height:22px;min-height:22px;padding:0;border:none;border-radius:50%;background:transparent;color:#94a3b8;font-size:.75rem;cursor:pointer;transition:background .1s ease,color .1s ease}.shapes-panel-close:hover{background:#fee2e2;color:#dc2626}.shapes-panel-section{padding:.55rem .75rem;border-bottom:1px solid #f1f5f9;flex-shrink:0}.shapes-panel-section:last-child{border-bottom:none;padding-bottom:.75rem}.shapes-panel-label{display:block;margin-bottom:.35rem;font-size:.6rem;font-weight:800;color:#94a3b8;text-transform:uppercase;letter-spacing:.08em}.shapes-panel-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:.3rem;gap:.3rem}.shapes-panel-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;padding:.5rem .2rem;border:1.5px solid #e2e8f0;border-radius:9px;background:#f8fafc;color:#334155;cursor:pointer;transition:all .12s ease;min-height:52px}.shapes-panel-btn:hover{background:#eff6ff;border-color:#93c5fd;color:var(--blue);transform:translateY(-1px);box-shadow:0 3px 8px rgba(37,99,235,.12)}.shapes-panel-btn.active{background:var(--blue);border-color:var(--blue);color:#ffffff;box-shadow:0 4px 12px rgba(37,99,235,.3)}.sp-icon{font-size:1.2rem;line-height:1}.sp-icon,.sp-label{pointer-events:none}.sp-label{font-size:.56rem;font-weight:700;text-align:center;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}@media (max-width:600px){.shapes-panel{width:calc(100vw - 32px);top:auto;right:16px;bottom:80px;max-height:50dvh}.shapes-panel-grid{grid-template-columns:repeat(4,1fr)}}.activity-summary{margin:.7rem 0 0;color:#8b97aa;font-size:.68rem}.permanent-undo-redo{display:inline-flex;align-items:center;gap:.3rem}.permanent-undo-redo button{display:inline-flex;align-items:center;gap:.2rem;min-height:30px;padding:.25rem .65rem;border-radius:7px;border:1px solid #cbd6ef;background:#ffffff;color:#334155;font-size:.72rem;font-weight:750;cursor:pointer;transition:all .12s ease}.permanent-undo-redo button:hover:not(:disabled){border-color:var(--blue);color:var(--blue);background:#eef3ff}.permanent-undo-redo button:disabled{opacity:.35;cursor:not-allowed}