/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.relative{position:relative}.start{inset-inline-start:var(--spacing)}.table{display:table}}:root{--ink:#25342e;--muted:#718078;--paper:#fffdf8;--cream:#f6f2e8;--line:#e5e2d8;--green:#3d765e;--green-dark:#2c5b47;--coral:#ed846f;--shadow:0 16px 40px #323f361f}*{box-sizing:border-box}html,body{min-height:100%}body{color:var(--ink);background:var(--cream);font-family:var(--font-nunito), "Trebuchet MS", sans-serif;margin:0;font-size:15px}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}.app-shell{min-height:100vh;display:flex;overflow:hidden}.sidebar{z-index:20;background:#fffdf9;border-right:1px solid #3a49401c;flex-direction:column;flex:0 0 286px;width:286px;height:100vh;padding:24px 20px 18px;display:flex;position:relative}.sidebar-header{justify-content:space-between;align-items:center;display:flex}.brand{letter-spacing:-.5px;align-items:center;gap:11px;margin-bottom:28px;font-size:20px;font-weight:900;display:flex}.brand-mark{color:#fff;background:var(--green);border-radius:11px 11px 15px;flex:none;justify-content:center;align-items:center;width:36px;height:36px;font-size:13px;font-weight:1000;display:inline-flex;transform:rotate(-2deg);box-shadow:inset 0 -3px #0000001f}.field-label{color:#77847d;letter-spacing:.09em;text-transform:uppercase;margin:0 0 7px;font-size:11px;font-weight:900;display:block}select,input,textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #dbddd6;border-radius:12px;outline:none;transition:all .18s}select{height:44px;padding:0 38px 0 12px;font-weight:800}input{height:46px;padding:0 13px}textarea{resize:vertical;padding:13px;line-height:1.55}select:focus,input:focus,textarea:focus{border-color:#7ca991;box-shadow:0 0 0 4px #4d82681f}.primary-button,.secondary-button,.danger-button{cursor:pointer;border:0;border-radius:12px;min-height:42px;padding:0 17px;font-weight:900;transition:transform .15s,box-shadow .15s,background .15s}.primary-button{color:#fff;background:var(--green);box-shadow:0 5px #315f4c,0 9px 18px #2d654c33}.primary-button:hover:not(:disabled){background:#366c56;transform:translateY(-1px)}.primary-button:active:not(:disabled){transform:translateY(2px);box-shadow:0 2px #315f4c}.primary-button:disabled{opacity:.42;cursor:not-allowed;box-shadow:none}.secondary-button{background:#fff;border:1px solid #d9ddd5;box-shadow:0 2px 5px #323c370d}.secondary-button:hover{background:#f7f7f3}.danger-button{color:#fff;background:#bb554e}.create-class{width:100%;margin:10px 0 24px}.class-heading{justify-content:space-between;align-items:center;margin:0 2px 10px;display:flex}.class-heading>div{text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:8px;font-size:13px;font-weight:900;display:flex}.class-heading small{color:#657169;background:#eef0eb;border-radius:7px;place-items:center;min-width:22px;height:22px;font-size:11px;display:grid}.class-heading-actions{align-items:center;gap:6px;display:flex}.class-heading-actions .text-button{padding:2px 0;font-size:11px}.class-heading-actions .roster-filter{color:#78857e}.text-button{color:var(--green);cursor:pointer;background:0 0;border:0;font-size:13px;font-weight:900}.student-roster{scrollbar-width:thin;border-radius:12px;flex:1;min-height:0;margin:0 -8px;padding:0 8px 12px;transition:background .15s,box-shadow .15s;overflow:auto}.student-roster.drag-over{background:#eef7f1;box-shadow:inset 0 0 0 2px #6f9c83}.roster-drop-hint{z-index:3;text-align:center;color:#35644d;background:#edf8f1;border:1px dashed #6e9a81;border-radius:10px;margin:3px 1px 7px;padding:10px;font-size:10px;font-weight:1000;position:sticky;top:3px;box-shadow:0 4px 12px #3156431f}.roster-row{border-radius:10px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:5px;min-height:43px;padding:3px 3px 3px 5px;display:grid}.roster-row:hover{background:#f4f3ee}.roster-student-button{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:29px minmax(0,1fr);align-items:center;gap:9px;min-width:0;padding:2px 0;display:grid}.roster-student-button[draggable=true]{cursor:grab}.roster-student-button[draggable=true]:active{cursor:grabbing}.roster-student-button.selected{background:#fff5d2;border-radius:8px;outline:3px solid #f0ca66}.roster-name{flex-direction:column;min-width:0;display:flex}.roster-name>span{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:700;overflow:hidden}.roster-name small{color:#7f8d85;font-size:9px;font-weight:900}.roster-actions{align-items:center;gap:3px;display:flex}.roster-actions button{color:#637169;cursor:pointer;background:#eef0eb;border:0;border-radius:7px;min-height:26px;padding:0 6px;font-size:8px;font-weight:1000}.roster-actions .roster-rules{color:#416b57;background:#e3f0e8}.roster-actions .remove-student{color:#9a504b;background:#f7e8e5}.roster-actions button:hover,.roster-actions button:focus-visible{filter:brightness(.96);box-shadow:0 0 0 2px #3d765e1f}.avatar{border-radius:50%;flex:none;place-items:center;width:29px;height:29px;font-size:9px;font-weight:1000;display:inline-grid}.color-0{color:#8a4839;background:#f8c9bc}.color-1{color:#35634d;background:#c6ddcf}.color-2{color:#795e1c;background:#f4dfaa}.color-3{color:#3f5e8b;background:#cdd8ef}.color-4{color:#67447e;background:#dfccec}.color-5{color:#2e6862;background:#bfe3df}.roster-empty{text-align:center;color:#8d9791;padding:24px 0}.empty-smile{border:1px dashed #cbd1ca;border-radius:50%;place-items:center;width:36px;height:36px;margin:auto;font-size:22px;display:grid}.roster-empty p{margin:8px 0;font-size:13px}.class-actions{border-top:1px solid #ecece7;justify-content:center;gap:14px;padding:11px 0 17px;display:flex}.class-actions button{color:#818b85;cursor:pointer;background:0 0;border:0;font-size:11px}.class-actions .danger-link{color:#a55c55}.account{border-top:1px solid #e7e8e2;grid-template-columns:38px 1fr 25px;align-items:center;gap:10px;padding:14px 7px 0;display:grid}.account-avatar{color:#fff;background:#586d7a;border-radius:13px;place-items:center;width:38px;height:38px;font-size:11px;font-weight:900;display:grid}.account>span:nth-child(2){flex-direction:column;min-width:0;display:flex}.account strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.account small{color:#8a948e;font-size:10px}.account a,.account-signout{color:#8b948f;font-size:16px;text-decoration:none}.account-signout{cursor:pointer;background:0 0;border:0;padding:4px}.workspace{background:#efede6;flex-direction:column;flex:1;min-width:0;height:100vh;display:flex;position:relative}.control-bar{z-index:8;background:#fffdf8f7;border-bottom:1px solid #434b451f;justify-content:flex-start;align-items:center;gap:11px;min-height:78px;padding:12px 18px;display:flex;position:relative;box-shadow:0 3px 16px #373e390f}.group-generator{white-space:nowrap;background:#f8f7f2;border:1px solid #d9ddd5;border-radius:15px;flex:none;align-items:center;gap:7px;height:58px;padding:5px 10px 5px 5px;display:flex;box-shadow:0 3px 10px #303e350f}.group-sentence-word{color:#65736b;font-size:12px;font-weight:900}.group-stepper{align-items:center;gap:3px;display:flex}.group-stepper button{color:#58655d;cursor:pointer;background:#f1f2ee;border:0;border-radius:9px;width:31px;height:31px;font-size:18px}.group-stepper strong{text-align:center;width:31px;font-size:16px}.generate-button{min-height:46px;padding:0 18px}.generate-button span{color:#fbdd8e}.clear-groups-button{text-align:left;color:#5f554e;cursor:pointer;background:#fffaf5;border:1px solid #e0e1dc;border-radius:13px;grid-template-columns:30px 1fr;align-items:center;gap:8px;min-width:130px;height:54px;padding:0 11px;display:grid}.clear-groups-button:disabled{opacity:.42;cursor:not-allowed}.clear-groups-button>span:first-child{color:#976558;background:#f3ded5;border-radius:9px;place-items:center;width:30px;height:30px;font-size:18px;display:grid}.clear-groups-button>span:last-child{flex-direction:column;font-size:11px;font-weight:1000;display:flex}.clear-groups-button small{color:#9a8b82;text-transform:uppercase;letter-spacing:.06em;font-size:8px}.tools-menu{flex:none;position:relative}.tools-button{text-align:left;color:#35473e;cursor:pointer;background:#fff;border:1px solid #e0e1dc;border-radius:13px;grid-template-columns:34px minmax(0,1fr) 13px;align-items:center;gap:9px;min-width:158px;height:54px;padding:0 10px;display:grid}.tools-button[aria-expanded=true]{background:#f7fbf8;border-color:#84a492;box-shadow:0 0 0 3px #3d765e1a}.tools-button>span:first-child{color:#466b5a;background:#dcece3;border-radius:10px;place-items:center;width:34px;height:34px;font-size:21px;display:grid}.tools-button>span:nth-child(2){flex-direction:column;font-size:12px;font-weight:1000;display:flex}.tools-button small{color:#86908a;text-transform:uppercase;letter-spacing:.06em;font-size:9px}.tools-button>b{color:#8c948f;font-size:11px}.tools-popover{z-index:30;background:#fffdf9;border:1px solid #dfe2da;border-radius:15px;flex-direction:column;gap:4px;width:270px;padding:7px;display:flex;position:absolute;top:calc(100% + 8px);left:0;box-shadow:0 18px 45px #222f2833}.tools-popover>button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:11px;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:10px;min-height:60px;padding:8px 10px;display:grid}.tools-popover>button:hover:not(:disabled),.tools-popover>button:focus-visible{background:#f1f6f2;outline:none}.tools-popover>button:disabled{opacity:.42;cursor:not-allowed}.tools-popover>button>span:first-child{color:#4a705e;background:#e0eee6;border-radius:10px;place-items:center;width:38px;height:38px;font-size:19px;display:grid}.tools-popover>button>span:last-child{flex-direction:column;gap:2px;min-width:0;display:flex}.tools-popover strong{font-size:12px}.tools-popover small{color:#758179;font-size:9px;line-height:1.35}.theme-button,.layout-button{text-align:left;cursor:pointer;background:#fff;border:1px solid #e0e1dc;border-radius:13px;grid-template-columns:34px 1fr 15px;align-items:center;gap:9px;min-width:208px;height:54px;padding:0 11px;display:grid}.theme-button>span:nth-child(2),.layout-button>span:nth-child(2){flex-direction:column;font-size:12px;font-weight:900;display:flex}.theme-button small,.layout-button small{color:#86908a;text-transform:uppercase;letter-spacing:.06em;font-size:9px}.theme-button b,.layout-button b{color:#8c948f}.layout-button{grid-template-columns:34px 1fr 15px;min-width:166px}.layout-icon{color:#765646;background:#f1dfc8;border-radius:9px;place-items:center;width:34px;height:34px;font-size:19px;display:grid}.theme-swatch{border-radius:9px;width:34px;height:34px;display:block;box-shadow:inset 0 0 0 1px #0000001a}.theme-swatch.cozy{background:linear-gradient(135deg,#eacda4 50%,#a36543 51%)}.theme-swatch.chalk{background:linear-gradient(135deg,#355f51 50%,#a16e47 51%)}.theme-swatch.outdoor{background:linear-gradient(135deg,#acd58c 50%,#98714c 51%)}.theme-swatch.space{background:radial-gradient(circle at 70% 25%,#f8cb68 0 8%,#0000 9%),#343061}.classroom{--scene:#dfcda9;--desk:#a66d45;--desk-edge:#835134;--chair:#6c5441;--card:#fffdf8;isolation:isolate;background-color:var(--scene);background-image:radial-gradient(circle at 12% 8%,#ffffff7a,#0000 24%),repeating-linear-gradient(90deg,#0000 0 53px,#664c300e 53px 54px),linear-gradient(#eadfc7 0 64%,#c9ad80 64% 66%,#b98a5c 66% 100%);flex:1;padding:54px 34px 42px;position:relative;overflow:auto;box-shadow:inset 0 0 90px #4a392714;container-type:inline-size}.theme-cozy .classroom{background-image:radial-gradient(circle at 84% 16%,#fff4c2d1 0 5%,#0000 15%),linear-gradient(90deg,#7053320e 1px,#0000 1px),linear-gradient(#7053320a 1px,#0000 1px),linear-gradient(#eadfc7 0 64%,#c9ad80 64% 66%,#b98a5c 66% 100%);background-size:auto,54px 54px,54px 54px,auto}.theme-chalk .classroom{--scene:#31594d;--desk:#996640;--desk-edge:#754c31;--chair:#583f31;--card:#fff6dc;background-image:radial-gradient(at 17% 17%,#ffffff14,#0000 19%),radial-gradient(at 72% 35%,#ffffff0e,#0000 24%),repeating-linear-gradient(176deg,#0000 0 46px,#ecf1e209 47px,#0000 49px),linear-gradient(#31594d 0 70%,#223e36 70% 72%,#29453b 72% 100%);box-shadow:inset 0 0 110px #0a1c1747}.theme-outdoor .classroom{--scene:#b6d896;--desk:#a97c4e;--desk-edge:#805c39;--chair:#74573c;--card:#fffdf8;background-image:radial-gradient(circle at 84% 12%,#ffef96f2 0 4%,#ffef9638 5% 10%,#0000 11%),radial-gradient(at 18% 15%,#ffffffb8 0 5%,#0000 5.5%),radial-gradient(at 24% 18%,#ffffff94 0 6%,#0000 6.5%),radial-gradient(#ffffff29 0 2px,#0000 3px),linear-gradient(#a9d9d5 0 38%,#c6dea0 38% 43%,#9ac474 43% 100%);background-size:auto,auto,auto,32px 29px,auto;box-shadow:inset 0 -70px 100px #40673424}.theme-space .classroom{--scene:#242342;--desk:#62658b;--desk-edge:#454965;--chair:#8a8db3;--card:#f9f7f1;background-image:radial-gradient(at 20% 20%,#8952b157,#0000 23%),radial-gradient(at 76% 72%,#3e7fb147,#0000 27%),radial-gradient(circle,#ffffffd1 0 1px,#0000 2px),radial-gradient(circle,#ffd575a6 0 1px,#0000 2px),linear-gradient(145deg,#18172f,#28264d 48%,#18182f);background-size:auto,auto,76px 76px,113px 113px,auto;box-shadow:inset 0 0 130px #0405137a}.size-note{z-index:4;color:#5e655f;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);white-space:nowrap;background:#ffffffbd;border-radius:9px;max-width:90%;margin:0;padding:7px 12px;font-size:11px;font-weight:800;position:absolute;top:13px;left:50%;transform:translate(-50%)}.theme-chalk .size-note,.theme-space .size-note{color:#e9eee8;background:#18221f7a}.scene-decor{z-index:-1;pointer-events:none;opacity:.88;position:absolute}.decor-a{background:#80a66f;border:9px solid #58785c;border-radius:50% 35% 50% 45%;width:52px;height:52px;top:24px;left:25px;box-shadow:12px -5px 0 -6px #638c5c,-7px 10px 0 -5px #a5be79}.decor-b{background:#d88667;border-radius:8px;width:66px;height:42px;bottom:26px;right:35px;transform:rotate(-6deg);box-shadow:inset 0 7px #edaa78,-14px 8px 0 -7px #f0c665}.decor-c{background:#99c5cc;border:7px double #6d93aa;border-radius:50%;width:42px;height:42px;bottom:25px;left:38px;transform:rotate(12deg)}.theme-chalk .decor-a{width:100px;height:40px;box-shadow:none;opacity:.22;background:0 0;border:0;border-top:3px solid #fff;border-bottom:2px solid #fff;border-radius:0;transform:rotate(-7deg)}.theme-chalk .decor-b{background:#d9c7a2;border-radius:5px;width:74px;height:30px;transform:rotate(3deg);box-shadow:inset 0 -7px #b38b62,-19px 9px 0 -5px #e7dfc8}.theme-chalk .decor-c{background:#ffffff0f;border-color:#ecf1e28c;box-shadow:inset 0 0 0 3px #ffffff14}.theme-outdoor .decor-a{background:#8ebe63;border-color:#5d9658}.theme-outdoor .decor-b{width:56px;height:56px;box-shadow:none;background:radial-gradient(circle at 30% 25%,#fff4af 0 8%,#e48d88 9% 25%,#0000 26%),radial-gradient(circle at 70% 65%,#fff4af 0 8%,#8bbf77 9% 25%,#0000 26%);border-radius:50%}.theme-outdoor .decor-c{background:radial-gradient(circle at 34% 35%,#f6f1c7 0 11%,#0000 12%),#7bc3d0;border-color:#5d9ab1;box-shadow:0 7px #4a694729}.theme-space .decor-a{background:#bd7fca;border:0;width:65px;height:65px;box-shadow:inset -12px -9px #352c5f66,-18px 8px 0 -11px #efd177}.theme-space .decor-b{background:#e0a966;border-radius:50%;box-shadow:0 0 0 8px #efcd7e24}.theme-space .decor-c{background:#445280;border-color:#8bb7db;box-shadow:0 0 0 4px #75abd32e,inset -8px -5px #141d494d}.desk-grid{z-index:2;grid-template-columns:repeat(3,minmax(245px,1fr));align-content:center;align-items:start;gap:52px 46px;width:min(1280px,100%);min-height:100%;margin:auto;display:grid;position:relative}.desk-grid.groups-1{grid-template-columns:minmax(360px,610px);justify-content:center}.desk-grid.groups-2{grid-template-columns:repeat(2,minmax(320px,1fr))}.desk-grid.groups-4{grid-template-columns:repeat(2,minmax(320px,510px));justify-content:center}.desk-cluster{border-radius:35px;min-height:244px;padding:24px 20px;transition:background .18s,transform .18s;position:relative}.desk-cluster.drag-over,.desk-cluster.select-target:hover{background:#ffffff40;transform:scale(1.015);box-shadow:0 0 0 3px #ffffff80}.desk-surface{z-index:2;color:#3f2e25;background-color:var(--desk);border:3px solid #5b361f38;border-bottom:9px solid var(--desk-edge);background-image:repeating-linear-gradient(92deg,#ffffff0a 0 2px,#0000 2px 26px);border-radius:42px 42px 38px 38px;flex-direction:column;min-height:196px;padding:16px 18px 18px;display:flex;position:relative;box-shadow:0 17px 20px #3931272e,inset 0 3px #ffffff29}.theme-space .desk-surface{color:#f5f2ff;background-image:linear-gradient(135deg,#ffffff14,#0000);border-color:#c2cbff40}.desk-title{color:#37251abd;justify-content:space-between;align-items:baseline;margin:0 8px 13px;display:flex}.theme-space .desk-title{color:#ffffffd1}.desk-title span{text-transform:uppercase;letter-spacing:.08em;font-size:13px;font-weight:1000}.desk-title small{font-size:10px;font-weight:800}.desk-students{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));align-content:center;gap:8px;display:grid}.student-card{text-align:left;color:#34433c;background:var(--card);cursor:grab;border:1px solid #43392e1f;border-radius:11px;grid-template-columns:29px minmax(0,1fr) 10px;align-items:center;gap:8px;min-width:0;min-height:45px;padding:6px 8px;transition:transform .15s,box-shadow .15s;display:grid;box-shadow:0 4px #4c372621,0 7px 10px #2b231d1c}.student-card:hover{transform:translateY(-2px)rotate(-.3deg);box-shadow:0 6px #4c37261f,0 10px 14px #2b231d21}.student-card:active{cursor:grabbing}.student-card>span:nth-child(2){white-space:normal;overflow-wrap:break-word;word-break:normal;min-width:0;font-size:12px;font-weight:900;line-height:1.16;overflow:visible}.student-card b{color:#a4aaa4;font-size:13px}.student-card.dragging{opacity:.45;transform:rotate(3deg)scale(1.04)}.student-card.selected{outline:3px solid #f4d483;transform:translateY(-3px)}.desk-cluster.random-preview{transform:translateY(-4px)scale(1.02)}.desk-cluster.random-preview .desk-surface{box-shadow:0 0 0 6px #f7d36d,0 0 42px #ffde71b8,0 17px 20px #3931272e,inset 0 3px #ffffff29}.student-card.random-preview{z-index:4;outline:4px solid #f7d36d;transform:translateY(-4px)scale(1.035);box-shadow:0 0 0 7px #fff0ab80,0 10px 24px #372c1d47}.roster-row.random-preview{background:#fff0b9;border-radius:12px;box-shadow:0 0 0 3px #f1c54a47}.desk-empty{color:#ffffffb8;grid-column:1/-1;place-self:center;font-size:12px;font-weight:800}.chair{z-index:1;background:var(--chair);border-bottom:7px solid #261f1b47;border-radius:17px 17px 10px 10px;width:50px;height:44px;position:absolute;box-shadow:0 8px 10px #2c27212e,inset 0 3px #ffffff1c}.chair-top{top:4px;left:calc(50% - 25px)}.chair-bottom{bottom:1px;left:calc(50% - 25px);transform:rotate(180deg)}.chair-left{top:calc(50% - 22px);left:0;transform:rotate(-90deg)}.chair-right{top:calc(50% - 22px);right:0;transform:rotate(90deg)}.empty-state,.no-class-state,.center-message{z-index:2;text-align:center;width:min(470px,100% - 32px);box-shadow:var(--shadow);background:#fffdf8e6;border-radius:24px;margin:auto;padding:34px;position:relative}.empty-state h1,.no-class-state h1,.center-message h1{letter-spacing:-.5px;margin:14px 0 7px;font-size:clamp(22px,3vw,30px);line-height:1.18}.empty-state p,.no-class-state>p:not(.eyebrow){color:var(--muted);margin:0 auto 20px;line-height:1.5}.empty-state .demo-link{color:var(--green);cursor:pointer;background:0 0;border:0;margin:17px auto 0;font-size:12px;font-weight:900;display:block}.empty-illustration{justify-content:center;align-items:end;gap:7px;height:70px;display:flex}.empty-illustration span{background:#aa714d;border-bottom:7px solid #805239;border-radius:18px 18px 8px 8px;width:45px;height:48px;box-shadow:-13px -7px 0 -6px #69825f}.empty-illustration span:nth-child(2){background:#d39465;height:62px}.empty-desks{justify-content:center;align-items:center;gap:7px;height:62px;display:flex}.empty-desks i{background:#b77a50;border:4px solid #8f6044;border-radius:18px;width:69px;height:42px;display:block;box-shadow:0 7px #72503d}.empty-desks i:nth-child(2){transform:translateY(-8px)}.no-class-state{align-self:center}.eyebrow{color:var(--coral);letter-spacing:.12em;text-transform:uppercase;font-size:11px;font-weight:1000}.schoolhouse{clip-path:polygon(50% 0,100% 35%,91% 35%,91% 100%,9% 100%,9% 35%,0 35%);background:#edb477;border-radius:10px;place-items:end center;width:95px;height:72px;margin:0 auto 21px;display:grid;box-shadow:inset 0 -12px #d18a61,0 8px 16px #543c271f}.schoolhouse span{color:#fff;background:var(--green);place-items:center;width:32px;height:35px;font-size:10px;font-weight:1000;display:grid}.center-message{box-shadow:none;background:0 0;align-self:center}.loader{border:4px solid #d6d9d2;border-top-color:var(--green);border-radius:50%;width:42px;height:42px;margin:auto;animation:.8s linear infinite spin;display:block}@keyframes spin{to{transform:rotate(360deg)}}.modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#1e262275;place-items:center;padding:18px;animation:.16s fadeIn;display:grid;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}}.modal{background:#fffdf9;border-radius:20px;width:min(470px,100%);max-height:calc(100vh - 36px);padding:23px;animation:.18s rise;overflow:auto;box-shadow:0 25px 80px #1a221e4d}@keyframes rise{0%{opacity:0;transform:translateY(8px)scale(.98)}}.modal-title-row{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-title-row h2{margin:0;font-size:21px}.icon-button{color:#6b7770;cursor:pointer;background:#f0f1ed;border:0;border-radius:10px;width:34px;height:34px;font-size:20px}.modal-copy{color:var(--muted);margin:-8px 0 14px;line-height:1.5}.modal-actions{justify-content:flex-end;gap:10px;margin-top:19px;display:flex}.theme-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.theme-option{text-align:left;cursor:pointer;background:#fff;border:1px solid #e2e2dc;border-radius:14px;grid-template-columns:52px 1fr;align-items:center;gap:10px;padding:10px;display:grid;position:relative}.theme-option:hover,.theme-option.active{border-color:#75a18a;box-shadow:0 0 0 3px #4d77601a}.theme-option>span:nth-child(2){flex-direction:column;display:flex}.theme-option strong{font-size:12px}.theme-option small{color:var(--muted);font-size:10px}.theme-option>b{color:#fff;background:var(--green);border-radius:50%;place-items:center;width:18px;height:18px;font-size:10px;display:grid;position:absolute;top:6px;right:7px}.theme-preview{border-radius:10px;justify-content:center;align-items:center;gap:3px;width:52px;height:48px;display:flex}.theme-preview i{background:#aa7048;border-radius:4px;width:10px;height:18px;box-shadow:0 3px #00000026}.theme-option.cozy .theme-preview{background:#e7d2aa}.theme-option.chalk .theme-preview{background:#31594d}.theme-option.outdoor .theme-preview{background:#b6d896}.theme-option.space .theme-preview{background:radial-gradient(circle at 15% 20%,#fff 0 1px,#0000 2px),#282747}.theme-option.chalk i{background:#9a6844}.theme-option.outdoor i{background:#a37a4f}.theme-option.space i{background:#76799d}.random-picker-modal{width:min(520px,100%)}.random-choice-list{flex-direction:column;gap:8px;display:flex}.random-choice{cursor:pointer;background:#fff;border:1px solid #e1e3dc;border-radius:14px;grid-template-columns:42px minmax(0,1fr) 20px;align-items:center;gap:11px;min-height:68px;padding:10px 12px;transition:border-color .15s,box-shadow .15s,transform .15s;display:grid;position:relative}.random-choice:hover{border-color:#9db5a7;transform:translateY(-1px)}.random-choice.active{background:#f7fbf8;border-color:#56836d;box-shadow:0 0 0 3px #4d77601a}.random-choice.disabled{opacity:.48;cursor:not-allowed;transform:none}.random-choice input{opacity:0;pointer-events:none;position:absolute}.random-choice-icon{color:#715343;background:#f1dec2;border-radius:12px;place-items:center;width:42px;height:42px;font-size:20px;display:grid}.random-choice>span:nth-of-type(2){flex-direction:column;gap:3px;min-width:0;display:flex}.random-choice strong{font-size:13px}.random-choice small{color:var(--muted);font-size:10px;line-height:1.35}.random-choice>b{border:2px solid #c8cec8;border-radius:50%;width:17px;height:17px}.random-choice.active>b{border:5px solid var(--green);background:#fff}.random-group-field{color:#59665f;flex-direction:column;gap:6px;margin:14px 0 0;font-size:11px;font-weight:900;display:flex}.random-animation-toggle{cursor:pointer;background:#f5f2e9;border-radius:13px;grid-template-columns:minmax(0,1fr) 39px;align-items:center;gap:13px;margin-top:14px;padding:13px;display:grid;position:relative}.random-animation-toggle>span:first-child{flex-direction:column;gap:3px;display:flex}.random-animation-toggle strong{font-size:12px}.random-animation-toggle small{color:var(--muted);font-size:10px;line-height:1.35}.random-animation-toggle input{opacity:0;pointer-events:none;position:absolute}.random-animation-toggle input:checked+.toggle{background:var(--green)}.random-animation-toggle input:checked+.toggle i{transform:translate(16px)}.random-animation-toggle input:focus-visible+.toggle{outline:3px solid #3d765e40}.random-pick-button{min-width:145px}.random-result-modal{width:min(410px,100%)}.random-result{text-align:center;flex-direction:column;align-items:center;padding:5px 10px 25px;display:flex}.random-result>span{color:#76533f;background:#f4d885;border-radius:18px;place-items:center;width:58px;height:58px;margin-bottom:16px;font-size:28px;display:grid;box-shadow:0 7px #d9b65a,0 13px 25px #5e482329}.random-result p{color:var(--coral);letter-spacing:.11em;text-transform:uppercase;margin:0 0 6px;font-size:10px;font-weight:1000}.random-result h3{letter-spacing:-1.2px;margin:0;font-size:clamp(28px,6vw,40px);line-height:1.08}.random-result small{max-width:330px;color:var(--muted);margin-top:10px;line-height:1.45}.random-result-actions{justify-content:center;gap:10px;display:flex}.pairing-modal{width:min(540px,100%)}.pairing-choice-icon{color:#416b57;background:#dfeee5}.pairing-note{color:#76827b;margin:14px 2px 0;font-size:10px;line-height:1.45}.pairing-result-modal{width:min(680px,100%)}.pairing-result-summary{background:#eaf4ee;border-radius:14px;align-items:center;gap:12px;margin:-7px 0 16px;padding:12px 14px;display:flex}.pairing-result-summary>span{color:#365f4b;background:#cfe5d7;border-radius:11px;flex:none;place-items:center;width:39px;height:39px;font-size:20px;font-weight:1000;display:grid}.pairing-result-summary p{flex-direction:column;gap:2px;margin:0;display:flex}.pairing-result-summary strong{font-size:13px}.pairing-result-summary small{color:#66756d;font-size:10px}.pairing-sections{flex-direction:column;gap:14px;max-height:min(500px,55vh);padding-right:3px;display:flex;overflow:auto}.pairing-section{background:#faf9f5;border:1px solid #e1e3dc;border-radius:14px;padding:12px}.pairing-section-title{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:9px;display:flex}.pairing-section-title h3{text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:13px}.pairing-section-title small{color:#7b8780;font-size:10px;font-weight:900}.pairing-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.pair-card{background:#fff;border:1px solid #e2e3dd;border-radius:11px;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);align-items:center;gap:4px;min-width:0;padding:8px;display:grid;box-shadow:0 3px 8px #303d350d}.pair-card>span{align-items:center;gap:6px;min-width:0;display:flex}.pair-card .avatar{width:26px;height:26px;font-size:8px;font-style:normal}.pair-card strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:10px;overflow:hidden}.pair-card>b{text-align:center;color:#83a291;font-size:12px}.pairing-empty{text-align:center;color:#7d8982;border:1px dashed #d9ddd5;border-radius:10px;margin:0;padding:12px;font-size:11px}.pairing-unpaired,.pairing-ungrouped{color:#8a6258;margin:9px 1px 0;font-size:10px;line-height:1.45}.pairing-ungrouped{background:#f8eee9;border-radius:11px;margin:13px 0 0;padding:10px 12px}.rules-intro{background:#f5f2e9;border-radius:13px;align-items:center;gap:12px;margin:-7px 0 20px;padding:13px;display:flex}.rules-intro .avatar{width:38px;height:38px;font-size:11px}.rules-intro p{color:#66736c;margin:0;font-size:12px;line-height:1.45}.rules-section-title{text-transform:uppercase;letter-spacing:.05em;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px;font-weight:1000;display:flex}.rules-section-title small{color:#8b958f;font-size:10px}.rule-list{background:#fff;border:1px solid #e3e4de;border-radius:14px;max-height:min(430px,48vh);overflow:auto}.rule-row{cursor:pointer;border-bottom:1px solid #eeefe9;grid-template-columns:31px 1fr 41px;align-items:center;gap:10px;min-height:50px;padding:7px 11px;display:grid;position:relative}.rule-row:last-child{border-bottom:0}.rule-row:hover{background:#faf9f4}.rule-row>span:nth-child(2){font-size:13px;font-weight:800}.rule-row input{opacity:0;pointer-events:none;position:absolute}.toggle{background:#d9ddd7;border-radius:13px;width:39px;height:23px;transition:all .16s;position:relative;box-shadow:inset 0 1px 2px #2b37301f}.toggle i{background:#fff;border-radius:50%;width:17px;height:17px;transition:all .16s;position:absolute;top:3px;left:3px;box-shadow:0 2px 5px #2d373138}.rule-row input:checked+.toggle{background:#c56c5b}.rule-row input:checked+.toggle i{transform:translate(16px)}.rule-row input:focus-visible+.toggle{outline:3px solid #3d765e40}.rules-footnote{color:#7c8781;margin:12px 2px 0;font-size:11px;line-height:1.45}.layouts-header{justify-content:space-between;align-items:center;gap:15px;margin:-7px 0 18px;display:flex}.layouts-header p{color:var(--muted);margin:0;font-size:12px;line-height:1.45}.layouts-header .primary-button{flex:none}.layout-list{flex-direction:column;gap:8px;display:flex}.saved-layout-row{background:#fff;border:1px solid #e2e3dd;border-radius:14px;grid-template-columns:minmax(0,1fr) 35px;align-items:center;gap:5px;padding:5px;display:grid}.saved-layout-row:hover{border-color:#a9bcae;box-shadow:0 4px 12px #323f3612}.saved-layout-main{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:78px minmax(0,1fr);align-items:center;gap:12px;min-width:0;padding:5px;display:grid}.saved-layout-main>span:last-child{flex-direction:column;min-width:0;display:flex}.saved-layout-main strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.saved-layout-main small{color:var(--muted);font-size:10px}.saved-layout-preview{background:#e7d4b1;border-radius:9px;grid-template-columns:repeat(3,1fr);gap:3px;height:48px;padding:5px;display:grid}.saved-layout-preview i{color:#fff;background:#9c6948;border-radius:4px;place-items:center;font-size:8px;font-style:normal;font-weight:1000;display:grid}.layout-delete{color:#9a8279;cursor:pointer;background:#f5f2ed;border:0;border-radius:9px;width:31px;height:31px}.layouts-empty{text-align:center;background:#faf9f5;border:1px dashed #d9ddd5;border-radius:14px;padding:31px 20px}.layouts-empty>span{color:#7d604f;background:#f0dfc8;border-radius:12px;place-items:center;width:42px;height:42px;margin:0 auto 10px;font-size:22px;display:grid}.layouts-empty strong{font-size:14px;display:block}.layouts-empty p{color:var(--muted);margin:4px 0 0;font-size:11px}.layout-summary{background:#f5f2e9;border-radius:13px;align-items:center;gap:11px;margin-top:16px;padding:12px;display:flex}.layout-summary>span{color:#765646;background:#ead6bc;border-radius:10px;place-items:center;width:36px;height:36px;font-size:19px;display:grid}.layout-summary p{flex-direction:column;margin:0;display:flex}.layout-summary strong{font-size:12px}.layout-summary small{color:var(--muted);font-size:10px}.toast{z-index:120;color:#fff;max-width:360px;box-shadow:var(--shadow);cursor:pointer;background:#4c5f55;border:0;border-radius:12px;align-items:center;gap:20px;padding:13px 15px;display:flex;position:fixed;bottom:22px;right:22px}.toast span{font-size:18px}.mobile-menu,.mobile-close,.sidebar-scrim{display:none}.auth-shell{background:#faf7ef;grid-template-columns:1.08fr .92fr;min-height:100vh;display:grid}.auth-scene{color:#f8f5e9;isolation:isolate;background:#416e5c;flex-direction:column;padding:38px 52px;display:flex;position:relative;overflow:hidden}.auth-scene:before{content:"";z-index:-1;background:radial-gradient(circle at 12% 22%,#ffffff14,#0000 25%),linear-gradient(155deg,#0000 58%,#193b2c59 58%);position:absolute;inset:0}.auth-brand{align-items:center;gap:11px;font-size:19px;font-weight:1000;display:flex}.auth-brand .brand-mark{color:#3e6f59;background:#f7e9c4;box-shadow:inset 0 -3px #d5c49b}.auth-copy{max-width:540px;margin:auto 0 30px}.auth-copy .eyebrow{color:#f6c27e}.auth-copy h1{letter-spacing:-3px;max-width:520px;margin:14px 0 18px;font-size:clamp(42px,5.3vw,73px);line-height:.99}.auth-copy>p:last-child{color:#d9e5dd;max-width:475px;font-size:18px;line-height:1.55}.mini-classroom{justify-content:center;align-items:center;gap:64px;min-height:220px;display:flex;position:relative;transform:perspective(500px)rotateX(12deg)}.mini-desk{background:#b8794d;border-bottom:13px solid #805339;border-radius:50px;width:220px;height:115px;position:relative;box-shadow:0 24px 35px #1c302745}.mini-desk.second{transform:scale(.9)rotate(4deg)}.mini-desk i{background:#f8f3e7;border-radius:13px;width:45px;height:36px;position:absolute;box-shadow:0 5px #23302926}.mini-desk i:first-child{top:24px;left:35px}.mini-desk i:nth-child(2){top:24px;right:35px}.mini-desk i:nth-child(3){bottom:18px;left:35px}.mini-desk i:nth-child(4){bottom:18px;right:35px}.auth-card{place-items:center;padding:34px;display:grid}.auth-form{width:min(400px,100%)}.auth-form h2{letter-spacing:-1.2px;margin:0 0 8px;font-size:35px}.auth-form>p{color:var(--muted);line-height:1.55}.auth-button{justify-content:center;align-items:center;width:100%;min-height:50px;margin:20px 0 18px;text-decoration:none;display:flex}.auth-fields{flex-direction:column;gap:13px;margin-top:24px;display:flex}.auth-fields label{color:#56635c;letter-spacing:.04em;flex-direction:column;gap:6px;font-size:11px;font-weight:900;display:flex}.auth-fields input{letter-spacing:normal;font-size:14px;font-weight:700}.auth-error{background:#fbe9e5;border-radius:10px;padding:10px 12px;font-size:11px;font-weight:800;color:#8d3f3b!important;margin:0!important}.auth-switch{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:12px;display:flex}.auth-switch button{color:var(--green);cursor:pointer;background:0 0;border:0;padding:0;font-weight:900}.auth-form .privacy-note{border-top:1px solid #e3e3dc;margin-top:45px;padding-top:18px;font-size:11px}.auth-mobile-mark{margin-bottom:20px;display:none}.recovery-card{text-align:center}.recovery-check{color:#fff;background:var(--green);border-radius:16px;place-items:center;width:48px;height:48px;margin:0 auto 18px;font-size:24px;font-weight:1000;display:grid;box-shadow:0 6px #315f4c}.recovery-card p{color:var(--muted);line-height:1.55}.recovery-card code{color:#493b32;letter-spacing:.08em;background:#f6eedc;border:1px dashed #b9aa8b;border-radius:12px;margin:22px 0 12px;padding:16px 10px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:17px;font-weight:900;display:block}.copy-code{width:100%}.auth-loading-shell{background:#faf7ef;flex-direction:column;justify-content:center;align-items:center;gap:18px;min-height:100vh;display:flex}.auth-loading-shell .brand-mark{width:48px;height:48px}.auth-loading-shell .loader{width:30px;height:30px}.auth-loading-shell p{color:var(--muted);margin:0;font-size:12px;font-weight:900}@container (width<=1100px){.desk-grid:not(.groups-1):not(.groups-2):not(.groups-4){grid-template-columns:repeat(2,minmax(280px,1fr))}}@media (width<=1120px){.desk-grid{grid-template-columns:repeat(2,minmax(260px,1fr))}.control-bar{justify-content:flex-start}.theme-button{min-width:175px}.layout-button{min-width:150px}.auth-scene{padding:34px}.mini-classroom{gap:20px;transform:scale(.82)}}@media (width<=820px){.app-shell{overflow:visible}.workspace{height:100vh}.sidebar{transition:transform .22s;position:fixed;top:0;left:0;transform:translate(-105%);box-shadow:18px 0 50px #1f292433}.sidebar.open{transform:translate(0)}.mobile-close{margin-top:-28px;display:block}.sidebar-scrim{z-index:15;background:#1c242061;border:0;display:block;position:fixed;inset:0}.mobile-menu{z-index:12;cursor:pointer;background:#fff;border:1px solid #36423b24;border-radius:12px;place-items:center;width:42px;height:42px;display:grid;position:fixed;top:15px;left:14px;box-shadow:0 4px 14px #27302a1f}.control-bar{min-height:72px;padding-left:67px;overflow-x:auto}.theme-button,.layout-button,.tools-button,.clear-groups-button{grid-template-columns:34px;width:54px;min-width:54px}.theme-button>span:nth-child(2),.theme-button b,.layout-button>span:nth-child(2),.layout-button b,.tools-button>span:nth-child(2),.tools-button>b,.clear-groups-button>span:last-child{display:none}.tools-popover{position:fixed;top:76px;left:72px}.desk-grid,.desk-grid.groups-2,.desk-grid.groups-4{grid-template-columns:repeat(2,minmax(260px,1fr));align-content:start;width:max(100%,580px)}.classroom{padding-left:20px;padding-right:20px}.auth-shell{grid-template-columns:1fr}.auth-scene{display:none}.auth-mobile-mark{display:inline-flex}}@media (width<=580px){.control-bar{flex-wrap:wrap;align-content:center;gap:8px;min-height:128px;padding:12px 12px 12px 65px}.group-generator{order:-1;justify-content:center;width:100%}.generate-button{width:auto}.tools-popover{width:min(270px,100vw - 77px);top:136px;left:65px}.classroom{padding-top:58px}.desk-grid,.desk-grid.groups-1,.desk-grid.groups-2,.desk-grid.groups-4{grid-template-columns:minmax(270px,1fr);gap:42px;width:100%}.desk-cluster{min-height:224px;padding-left:13px;padding-right:13px}.desk-students{grid-template-columns:1fr}.size-note{white-space:normal;text-align:center}.theme-grid{grid-template-columns:1fr}.modal-actions{flex-direction:column-reverse}.modal-actions button{width:100%}.random-result-actions{flex-direction:column-reverse}.random-result-actions button{width:100%}.pairing-grid{grid-template-columns:1fr}.auth-card{padding:24px}.auth-form h2{font-size:30px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
