:root{--ink: #19212b;--muted: #5f6a73;--line: #ddd6ca;--cream: #fff8f0;--panel: rgba(255, 255, 255, .82);--panel-solid: rgba(255, 255, 255, .96);--orange: #d9782d;--orange-deep: #b85b17;--sand: #ead3b7;--teal: #225f67;--sea: #d8ecec;--danger: #b63d2e;--ok: #177953;--champagne: #f7ecdf;--wood: #6d5135}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:Manrope,sans-serif;color:var(--ink);background:radial-gradient(circle at 12% 10%,rgba(217,120,45,.15),transparent 24%),radial-gradient(circle at 92% 8%,rgba(34,95,103,.12),transparent 22%),linear-gradient(180deg,#fffbf6,#f2ede5)}button,input,select{font:inherit;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background-color .16s ease}.kiosk-shell,.admin-shell{min-height:100vh}.kiosk-shell{position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.portal-main{min-height:100vh;display:grid;place-items:center;padding:32px 20px;position:relative;z-index:1}.portal-page{width:min(100%,820px);display:grid;gap:26px;position:relative}.portal-header{text-align:center;display:grid;justify-items:center;gap:12px;animation:riseIn .75s ease both}.portal-logo-wrap{--logo-float-distance: 3px;--logo-float-duration: 10.5s;position:relative;display:inline-grid;place-items:center;animation:floatLogo var(--logo-float-duration) ease-in-out infinite;will-change:transform;transform:translateZ(0);backface-visibility:hidden}.portal-logo{width:132px;height:132px;object-fit:contain;border-radius:34px;padding:14px;background:linear-gradient(180deg,#fffffff5,#f8f0e7f2);border:1px solid rgba(239,227,212,.95);box-shadow:0 28px 60px #3628141f,inset 0 1px #fffffff0}.portal-header h2{margin:0;font-family:"Baloo 2",cursive;font-size:clamp(2.4rem,5vw,4.2rem);line-height:.92;letter-spacing:-.02em}.portal-copy{margin:0;max-width:460px;color:var(--muted);font-size:1.05rem;line-height:1.6;animation:riseIn .9s ease both}.portal-eyebrow{margin-top:8px;color:var(--wood)}.portal-stage-glow{position:absolute;inset:auto 50% 88px;width:min(72vw,680px);height:200px;transform:translate(-50%);border-radius:50%;background:radial-gradient(circle,rgba(233,201,164,.26) 0%,rgba(233,201,164,.08) 42%,transparent 72%);filter:blur(8px);pointer-events:none}.trail-dots{position:absolute;inset:0;pointer-events:none}.trail-dot{position:absolute;width:10px;height:10px;border-radius:999px;background:#d9782d1a;box-shadow:0 0 0 4px #d9782d0a;animation:trailGlow 7s ease-in-out infinite}.dot-1{left:20%;top:20%;animation-delay:.4s}.dot-2{left:26%;top:25%;animation-delay:1s}.dot-3{left:31%;top:31%;animation-delay:1.8s}.dot-4{right:24%;bottom:29%;animation-delay:2.6s}.dot-5{right:18%;bottom:24%;animation-delay:3.4s}.dot-6{right:13%;bottom:20%;animation-delay:4.2s}.paw-trail{position:absolute;inset:0;pointer-events:none}.paw{position:absolute;width:54px;height:54px;opacity:0;animation:pawFade 10.8s ease-in-out infinite}.paw:before{content:"";position:absolute;left:15px;top:22px;width:24px;height:20px;border-radius:50% 50% 48% 48%;background:#d9782d21;transform:rotate(-8deg)}.paw i{position:absolute;width:10px;height:14px;border-radius:50%;background:#d9782d21}.paw i:nth-child(1){left:10px;top:12px;transform:rotate(-22deg)}.paw i:nth-child(2){left:20px;top:6px}.paw i:nth-child(3){left:31px;top:8px;transform:rotate(18deg)}.paw i:nth-child(4){left:39px;top:16px;transform:rotate(30deg)}.paw-1{left:16%;top:16%;transform:rotate(-22deg) scale(.9);animation-delay:0s}.paw-2{left:22%;top:22%;transform:rotate(-12deg) scale(.95);animation-delay:.8s}.paw-3{right:18%;bottom:24%;transform:rotate(18deg) scale(1);animation-delay:1.6s}.paw-4{right:12%;bottom:18%;transform:rotate(24deg) scale(.92);animation-delay:2.4s}.paw-5{left:29%;top:30%;transform:rotate(-6deg) scale(.88);animation-delay:3.2s}.paw-6{right:24%;bottom:30%;transform:rotate(14deg) scale(.86);animation-delay:4s}.paw-7{left:8%;bottom:16%;transform:rotate(12deg) scale(.94);animation-delay:4.8s}.paw-8{right:10%;top:11%;transform:rotate(-18deg) scale(.9);animation-delay:5.6s}.paw-9{left:36%;top:12%;transform:rotate(-10deg) scale(.82);animation-delay:6.4s}.paw-10{right:34%;bottom:12%;transform:rotate(16deg) scale(.84);animation-delay:7.2s}.eyebrow{margin:0 0 4px;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;color:var(--orange-deep)}.admin-topbar{padding:18px 26px}.admin-brand{display:flex;align-items:center;gap:14px}.admin-brand h1{margin:0;font-family:"Baloo 2",cursive;font-size:2rem;line-height:.95}.admin-logo{width:66px;height:66px;object-fit:contain;border-radius:18px;background:linear-gradient(180deg,#fffffffa,#faf3ebf5);padding:8px;box-shadow:0 16px 32px #1e191214}.main-content{padding:26px}.page{display:grid;gap:22px}.hero-panel,.kiosk-card,.panel-card,.login-card,.metric-card{background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(246,238,227,.92);box-shadow:0 24px 50px #261f1412,inset 0 1px #ffffffb8}.hero-panel{border-radius:28px;padding:28px;display:flex;justify-content:space-between;gap:24px}.hero-panel h2{margin:0;font-family:"Baloo 2",cursive;font-size:clamp(2rem,4vw,3.2rem);line-height:.95}.hero-copy{margin:10px 0 0;max-width:760px;line-height:1.65;color:var(--muted)}.hero-badge-stack{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;justify-content:flex-end}.ghost-button,.link-button{border:0;border-radius:999px;padding:12px 16px;background:#fff;color:var(--ink)}.kiosk-card{border-radius:32px;padding:22px}.welcome-card{width:min(100%,640px);margin:0 auto;background:linear-gradient(180deg,#fffbf6fa,#fffffff2);box-shadow:0 30px 76px #3022121c,inset 0 1px #fffc;animation:riseIn .95s ease both}.role-tabs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;padding:6px;border-radius:26px;background:linear-gradient(180deg,#f3ece2e0,#f7f2eceb)}.role-tab{border:0;border-radius:22px;background:transparent;padding:16px;font-size:1rem;font-weight:800;color:var(--muted)}.role-tab.active{background:linear-gradient(135deg,var(--orange),#ff9a4d);color:#fff;box-shadow:0 14px 24px #b85b1733}.kiosk-panel{border-radius:28px;background:linear-gradient(180deg,#fffcf8fc,#fffffff7);padding:24px;border:1px solid rgba(236,224,209,.85);position:relative}.field-label{display:block;margin-bottom:8px;font-weight:800;color:var(--wood)}.name-helper{margin:-2px 0 12px;color:var(--muted);font-size:.95rem}.autofill-decoy{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;inset:auto}.name-input,.login-form input,.person-form input,.person-form select,.filter-row select,.filter-row input,.person-card input,.report-search{width:100%;border:1px solid var(--line);border-radius:18px;padding:16px;background:#fff;box-shadow:inset 0 1px #fffc}.name-input{font-size:1.08rem;padding:18px;border-radius:20px;border-width:2px;box-shadow:0 18px 34px #231d160a,inset 0 1px #ffffffeb}.name-input::placeholder,.login-form input::placeholder,.person-form input::placeholder,.person-card input::placeholder{color:#8d98a3}.name-input:focus,.login-form input:focus,.person-form input:focus,.person-form select:focus,.filter-row select:focus,.filter-row input:focus,.person-card input:focus,.report-search:focus{outline:none;border-color:#d9782d8c;box-shadow:0 0 0 6px #d9782d1f,0 18px 34px #231d1614,inset 0 1px #ffffffe6}.suggestions{display:grid;gap:10px;margin-top:12px;animation:fadeScaleIn .18s ease both}.suggestion{border:1px solid var(--line);border-radius:18px;background:#fff;padding:14px 16px;text-align:left;box-shadow:0 10px 24px #1b21270a;display:grid;gap:4px}.suggestion:hover{transform:translateY(-1px);border-color:#d9782d3d;box-shadow:0 16px 28px #1b212714}.suggestion-name{font-weight:800;color:var(--ink)}.suggestion-meta{color:var(--muted);font-size:.86rem}.empty-suggestion-hint,.error-card{margin-top:14px;padding:14px 16px;border-radius:18px;display:grid;gap:6px}.empty-suggestion-hint{border:1px dashed rgba(217,120,45,.28);background:#fff9f2f0}.empty-suggestion-hint strong,.error-card strong{font-size:.98rem}.empty-suggestion-hint p,.error-card p{margin:0;color:var(--muted)}.error-card{border:1px solid rgba(182,61,46,.18);background:linear-gradient(180deg,#fff6f4fa,#ffeeeaf5)}.status-line{color:var(--muted)}.kiosk-actions,.filter-row{display:flex;gap:12px;flex-wrap:wrap}.kiosk-actions{margin-top:22px}.action-button,.ghost-button,.link-button{cursor:pointer}.action-button{border:0;border-radius:20px;padding:17px 20px;font-weight:800;box-shadow:0 12px 24px #17202b14;letter-spacing:.01em}.action-button.primary{background:linear-gradient(135deg,var(--orange),#ef9d53);color:#fff}.action-button.secondary{background:linear-gradient(135deg,var(--teal),#4fa1a9);color:#fff}.action-button:hover,.ghost-button:hover,.link-button:hover{transform:translateY(-1px)}.action-button:active,.ghost-button:active,.link-button:active{transform:translateY(1px) scale(.985)}.status-stack{min-height:64px}.status-line{margin:14px 0 0;font-weight:700}.status-line.success{color:var(--ok);animation:successPulse .55s ease}.status-line.error{color:var(--danger)}.success-screen{position:fixed;inset:0;display:grid;place-items:center;padding:24px;pointer-events:none;z-index:30}.success-screen-card{width:min(100%,520px);border-radius:34px;padding:34px 28px;text-align:center;background:linear-gradient(180deg,#f1fff9fa,#e6f9f1f5);border:1px solid rgba(23,121,83,.16);box-shadow:0 30px 70px #1145322e,0 0 0 12px #17795314;animation:successScreenIn .22s ease both}.success-check{width:86px;height:86px;margin:0 auto 18px;border-radius:999px;display:grid;place-items:center;background:radial-gradient(circle,#fffffff5,#d6f4e5f5);box-shadow:0 16px 32px #17795324}.success-check svg{width:34px;height:34px;stroke:var(--ok);fill:none;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.success-screen-label{margin:0;color:var(--ok);font-weight:800;letter-spacing:.04em;text-transform:uppercase;font-size:.84rem}.success-screen strong{display:block;margin-top:10px;font-size:clamp(2rem,4vw,3rem);line-height:1.02}.kiosk-corner-link{position:fixed;right:16px;bottom:14px;border:0;background:transparent;color:#19212b8a;font-size:.82rem;font-weight:700;letter-spacing:.02em;cursor:pointer;padding:6px 8px;z-index:12}.kiosk-corner-link:hover{color:#19212bcc}.login-card,.panel-card{border-radius:28px;padding:24px}.login-form,.person-form,.person-card{display:grid;gap:12px}.overview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.metric-card{border-radius:24px;padding:20px;background:var(--panel-solid);border:1px solid rgba(238,228,216,.9)}.metric-card p,.metric-card strong{margin:0}.metric-card p{color:var(--muted)}.metric-card strong{display:block;margin-top:6px;font-size:clamp(2rem,3vw,2.8rem)}.admin-grid,.live-columns,.people-grid,.records-grid{display:grid;gap:18px}.admin-grid{grid-template-columns:1.2fr 1fr}.live-columns{grid-template-columns:1fr 1fr}.records-grid{grid-template-columns:1.25fr .75fr;align-items:start}.records-section{display:grid;gap:18px}.records-section-head{display:grid;gap:14px}.records-section-head h3{margin:0}.records-section-head p{margin:4px 0 0;color:var(--muted)}.records-controls{display:grid;grid-template-columns:minmax(220px,1.2fr) repeat(2,minmax(180px,220px));gap:12px;width:100%;align-items:start}.filter-picker{display:grid;gap:8px;padding:14px 16px;border-radius:20px;border:1px solid rgba(228,214,198,.95);background:linear-gradient(180deg,#fffbf6fa,#faf4ecf0);box-shadow:0 14px 30px #261f160d}.month-picker-label{font-size:.76rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--orange-deep)}.filter-picker select{border:0;background:transparent;padding:0;min-height:36px;font-size:1rem;font-weight:700;color:var(--text);box-shadow:none;appearance:none;cursor:pointer}.filter-picker select:focus{outline:none}.admin-role-tabs{margin-bottom:0;padding:4px;border-radius:20px;align-self:stretch}.admin-role-tabs .role-tab{padding:10px 14px;font-size:.92rem;border-radius:18px}.subtle-role-tabs{margin-bottom:2px;padding:4px;border-radius:18px;background:linear-gradient(180deg,#f5efe8db,#f8f4efe6)}.subtle-role-tabs .role-tab{padding:8px 12px;font-size:.88rem;font-weight:700;border-radius:14px}.subtle-role-tabs .role-tab.active{box-shadow:0 10px 18px #b85b1729}.records-card{background:#ffffffd1}.panel-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.panel-head h3,.panel-head h4{margin:0}.panel-head p{margin:4px 0 0;color:var(--muted)}.pill-list,.activity-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.pill-list li,.activity-list li,.person-card{border:1px solid var(--line);border-radius:18px;padding:14px 16px;background:#ffffffe6;box-shadow:0 12px 30px #1f1c160a}.live-group{display:grid;gap:12px}.live-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.live-group-head p{margin:4px 0 0;color:var(--muted);font-size:.92rem}.live-count{min-width:36px;padding:6px 10px;border-radius:999px;background:#d9782d1f;color:var(--orange-deep);font-size:.88rem;font-weight:800;text-align:center}.live-list,.recent-list,.person-cards{max-height:340px;overflow-y:auto;padding-right:4px}.live-assignment-board{display:grid;gap:16px}.unassigned-lane,.teacher-lane{border-radius:24px;padding:18px;border:1px solid rgba(230,220,206,.95);box-shadow:inset 0 1px #ffffff73}.unassigned-lane{background:linear-gradient(180deg,#f8f9fbfa,#f1f4f7f2)}.teacher-lanes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.teacher-lane{background:linear-gradient(180deg,#eef8f9fa,#e3f1f6f0);min-height:220px}.teacher-lane.is-drop-target,.unassigned-lane.is-drop-target{border-color:#d9782d8c;box-shadow:0 0 0 4px #d9782d1f,inset 0 0 0 2px #d9782d2e;outline:2px dashed rgba(217,120,45,.35);outline-offset:-10px}.teacher-lane-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.teacher-lane-title,.student-live-head{display:flex;align-items:flex-start;gap:10px;min-width:0}.card-focus-button{border:0;background:transparent;padding:0;margin:0;font:inherit;text-align:left;cursor:pointer;color:inherit}.teacher-lane-head h4{margin:0;font-size:1.05rem}.teacher-lane-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.teacher-badge{min-width:0;padding:6px 8px;border-radius:999px;background:#297c8824;color:#1b6a76;font-weight:800;text-align:center;white-space:nowrap;font-size:.84rem}.teacher-lane-time{display:block;margin-top:8px;color:var(--muted)}.teacher-student-stack,.unassigned-student-stack{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;align-items:flex-start}.student-live-card{display:grid;gap:10px;padding:12px 14px;border-radius:18px;border:1px solid rgba(234,196,155,.95);background:linear-gradient(180deg,#fffcf8fa,#fff5eafa);cursor:grab;box-shadow:0 12px 24px #1d170e0f;width:min(100%,238px);align-content:start}.student-live-card.assigned{border-color:#83cbd6f2;background:linear-gradient(180deg,#f7fdfffa,#eaf8fbfa)}.student-live-card strong,.student-live-card small{display:block}.student-live-card small{margin-top:4px;color:var(--muted)}.student-live-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;opacity:.88}.student-live-card:hover .student-live-actions,.student-live-card:focus-within .student-live-actions{opacity:1}.mini-link-button,.mini-ghost-button{border:0;background:transparent;padding:4px 0;font-size:.84rem;font-weight:700;cursor:pointer}.mini-link-button{color:var(--orange-deep)}.mini-ghost-button{color:var(--muted)}.lane-empty{margin:0;color:var(--muted);font-size:.95rem;padding:14px 16px;border-radius:16px;background:#ffffff94;border:1px dashed rgba(170,165,156,.45)}.empty-teacher-lane{background:linear-gradient(180deg,#f5f7f9fa,#eff3f7f2)}.role-glyph{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:12px;flex:0 0 auto}.role-glyph svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.role-glyph.student{background:#f1a85429;color:#a85b1a}.role-glyph.teacher{background:#4a99a826;color:#226874}.live-overflow{margin:0;color:var(--muted);font-size:.92rem;font-weight:700}.panel-card{background:linear-gradient(180deg,#fffffff5,#fbf8f3eb)}.pill-list li{display:grid;gap:6px}.activity-list li{display:flex;justify-content:space-between;gap:16px}.activity-list strong,.pill-list span{display:block}.table-wrap{overflow-x:auto}.history-table-wrap{max-height:540px;overflow:auto}table{width:100%;border-collapse:collapse}thead th{position:sticky;top:0;background:#fbf8f3f5;z-index:1}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line)}th{font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.table-action-cell{width:1%;white-space:nowrap;text-align:right}.table-edit-button{border:0;background:transparent;color:var(--muted);font-size:.9rem;font-weight:700;padding:6px 8px;border-radius:12px}.table-edit-button:hover{color:var(--orange-deep);background:#d9782d14}.modal-backdrop{position:fixed;inset:0;display:grid;place-items:center;padding:20px;background:#0f172057;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:20}.modal-card{width:min(100%,560px);border-radius:28px;padding:24px;background:linear-gradient(180deg,#fffffffa,#faf5eefa);border:1px solid rgba(231,219,204,.92);box-shadow:0 24px 60px #0f172029}.teacher-gate-card{width:min(100%,430px);padding:26px;display:grid;gap:18px;background:radial-gradient(circle at top,rgba(237,244,248,.92),transparent 48%),linear-gradient(180deg,#fffffffa,#f6f2ebfa)}.teacher-gate-lock{width:62px;height:62px;display:grid;place-items:center;border-radius:20px;background:linear-gradient(180deg,#1c7a8f29,#1c7a8f0f);color:#1c7a8f;box-shadow:inset 0 0 0 1px #1c7a8f1f}.teacher-gate-lock svg{width:28px;height:28px;stroke:currentColor;stroke-width:1.8;fill:none;stroke-linecap:round;stroke-linejoin:round}.teacher-gate-copy h3{margin:6px 0 8px}.teacher-gate-copy p:last-child{margin:0;color:var(--muted)}.teacher-gate-form,.session-edit-form{display:grid;gap:14px}.session-edit-actions{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap}.people-grid{grid-template-columns:1.2fr .8fr}.people-side,.person-cards{display:grid;gap:16px}.report-card{gap:16px}.report-search{border-radius:16px;padding:14px 16px}.person-card-head p,.muted-line{margin:4px 0 0;color:var(--muted)}.full-width{width:100%}@keyframes floatLogo{0%,to{transform:translateZ(0)}50%{transform:translate3d(0,calc(var(--logo-float-distance) * -1),0)}}@keyframes riseIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeScaleIn{0%{opacity:0;transform:translateY(6px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pawFade{0%,18%,to{opacity:0}8%,12%{opacity:.88}}@keyframes successPulse{0%{transform:scale(.98);opacity:.6}60%{transform:scale(1.02);opacity:1}to{transform:scale(1)}}@keyframes successScreenIn{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:1120px){.overview-grid,.admin-grid,.people-grid,.live-columns,.records-grid,.teacher-lanes-grid{grid-template-columns:1fr}}@media(max-width:720px){.main-content{padding:16px}.portal-main{padding:18px 14px 22px}.portal-logo{width:108px;height:108px}.hero-panel,.kiosk-card,.panel-card,.login-card{padding:18px;border-radius:22px}.kiosk-actions,.filter-row,.panel-head,.records-section-head,.activity-list li{display:grid}.teacher-lane-head{display:grid;gap:10px}.teacher-lane-meta{justify-content:flex-start}.student-live-card{width:100%}.student-live-actions{justify-content:flex-start}.records-controls{min-width:0;grid-template-columns:1fr}.success-screen-card{padding:28px 20px}}:fullscreen .portal-main{padding:18px}:fullscreen .portal-page{width:min(100%,960px);gap:20px}:fullscreen .welcome-card{width:min(100%,720px)}:fullscreen .portal-logo-wrap{--logo-float-distance: 1.5px;--logo-float-duration: 16s}
