:root{color-scheme:light;--surface: #F7F5F0;--surface-card: #FEFDFB;--surface-hover: #EFECE4;--surface-active: #E6E2D8;--ink: #2A2620;--ink-secondary: #6B6560;--ink-muted: #9E9890;--ink-faint: #C8C3BA;--grid-line: #EAE6DC;--grid-line-hour: #DDD8CD;--border: #E0DCD3;--border-strong: #D0CBC0;--accent: #00563F;--accent-hover: #004532;--accent-light: #E6F2EE;--accent-gold: #FFC62B;--accent-gold-hover: #EBB520;--available: #00563F;--available-hover:#004532;--if-needed: #FFC62B;--if-needed-hover:#EBB520;--meeting-slot: #2FA8E8;--danger: #EF4444;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 10px;--time-gutter-left-width: 52px;--time-gutter-right-width: 52px;--shadow-sm: 0 1px 2px rgba(42,38,32,.04);--shadow-md: 0 2px 8px rgba(42,38,32,.06);--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--surface: #171512;--surface-card: #1E1B17;--surface-hover: #27221C;--surface-active: #2F2922;--ink: #F3EEE4;--ink-secondary: #D1C9BB;--ink-muted: #ADA495;--ink-faint: #7E7669;--grid-line: #393229;--grid-line-hour: #433A31;--border: #3D352C;--border-strong: #51483D;--accent: #2A9E79;--accent-hover: #1E8665;--accent-light: #183027;--accent-gold: #E5BA4A;--accent-gold-hover: #CFA63F;--available: #2A9E79;--available-hover:#1E8665;--if-needed: #E5BA4A;--if-needed-hover:#CFA63F;--meeting-slot: #66D0FF;--danger: #F87171;--shadow-sm: 0 1px 2px rgba(0,0,0,.32);--shadow-md: 0 2px 8px rgba(0,0,0,.38)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%}body{font-family:var(--font);background:var(--surface);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.loading-screen{display:flex;align-items:center;justify-content:center;height:100%}.loading-spinner{width:28px;height:28px;border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.entry-screen{display:flex;align-items:center;justify-content:center;height:100%;padding:24px}.entry-card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:48px 40px;max-width:380px;width:100%;text-align:center;box-shadow:var(--shadow-md)}.entry-icon{font-size:44px;margin-bottom:16px;line-height:1}.entry-title{font-size:26px;font-weight:700;letter-spacing:-.4px;margin-bottom:6px}.entry-subtitle{font-size:14px;color:var(--ink-secondary);margin-bottom:32px;line-height:1.55}.entry-flow{margin:14px 0 0;border:1px solid var(--grid-line);border-radius:var(--radius-md);background:var(--surface);padding:10px 12px;text-align:left}.entry-flow-title{font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--ink-muted);margin-bottom:6px}.entry-flow ol{margin-left:16px;display:flex;flex-direction:column;gap:2px}.entry-flow li{font-size:12px;color:var(--ink-secondary);line-height:1.35}.entry-form{display:flex;flex-direction:column;gap:12px}.entry-input{font-family:var(--font);font-size:15px;padding:11px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);outline:none;transition:border-color .15s,box-shadow .15s}.entry-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #3b6fd41a}.entry-input::placeholder{color:var(--ink-faint)}.entry-button{font-family:var(--font);font-size:14px;font-weight:600;padding:11px 24px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;transition:background .15s,transform .1s}.entry-button:hover:not(:disabled){background:var(--accent-hover)}.entry-button:active:not(:disabled){transform:scale(.98)}.entry-button:disabled{opacity:.45;cursor:not-allowed}.entry-error{color:var(--danger);font-size:12px;margin-top:6px}.app-layout{display:flex;flex-direction:column;height:100%;overflow:hidden}.top-bar{display:flex;flex-direction:column;background:var(--surface-card);border-bottom:1px solid var(--border);flex-shrink:0}.top-bar-main{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;gap:12px}.top-bar-left{display:flex;align-items:center;gap:14px}.top-bar-right{display:flex;align-items:center;gap:10px}.app-title{font-size:17px;font-weight:700;letter-spacing:-.3px}.student-badge{-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:var(--font);display:flex;align-items:center;gap:7px;padding:3px 11px 3px 7px;border:1.5px solid;border-radius:20px;background:transparent;font-size:12px;font-weight:500;color:var(--ink-secondary);cursor:pointer;transition:background-color .12s,border-color .12s}.student-badge:hover{background:var(--surface-hover)}.student-badge-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.sign-out-btn{font-family:var(--font);font-size:11px;font-weight:500;padding:5px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:transparent;color:var(--ink-muted);cursor:pointer;transition:all .15s}.sign-out-btn:hover{color:var(--ink-secondary);border-color:var(--border-strong)}.main-content{flex:1;overflow:hidden;display:flex;flex-direction:column}.workflow-panel{display:flex;align-items:center;gap:12px;padding:8px 16px;border-top:1px solid var(--grid-line);background:transparent;flex-shrink:0}.workflow-steps{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.workflow-step{-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:var(--font);display:inline-flex;align-items:center;gap:6px;border:1px solid var(--grid-line);border-radius:999px;background:var(--surface);color:var(--ink-muted);padding:4px 8px;font-size:10px;font-weight:600;letter-spacing:.2px;min-width:0;cursor:pointer;transition:border-color .12s,color .12s,background-color .12s;text-align:left}.workflow-step:hover{border-color:var(--border-strong);color:var(--ink-secondary)}.workflow-step:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.workflow-step-label{line-height:1.2}.workflow-step-marker{width:16px;height:16px;border-radius:50%;border:1px solid var(--border-strong);display:inline-flex;align-items:center;justify-content:center;font-size:10px;color:var(--ink-secondary);background:var(--surface-card)}.workflow-step.done{border-color:#00563f4d;color:var(--accent)}.workflow-step.done .workflow-step-marker,.workflow-step.active{border-color:var(--accent);background:var(--accent-light);color:var(--accent)}.workflow-next{margin-left:auto;display:flex;align-items:center;gap:10px;min-width:320px}.workflow-next-text{display:flex;flex-direction:column;min-width:0}.workflow-next-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.workflow-next-kicker{font-size:9px;font-weight:700;letter-spacing:.35px;text-transform:uppercase;color:var(--ink-faint)}.workflow-next-title{font-size:12px;font-weight:700;color:var(--ink)}.workflow-next-detail{font-size:11px;color:var(--ink-muted);line-height:1.35}.workflow-next-btn{flex-shrink:0;border:1px solid var(--accent);border-radius:6px;background:var(--accent-light);color:var(--accent);padding:6px 10px;font-size:11px;font-weight:700;cursor:pointer}.workflow-next-btn:hover{background:var(--accent);color:#fff}.workflow-next-btn.secondary{border-color:var(--border-strong);background:var(--surface);color:var(--ink-secondary)}.workflow-next-btn.secondary:hover{border-color:var(--accent);background:var(--accent-light);color:var(--accent)}.input-area{display:flex;flex-direction:column;height:100%;overflow:hidden}.input-area .calendar-row{border-bottom:none;background-image:linear-gradient(to bottom,transparent calc(100% - 1px),var(--grid-line) calc(100% - 1px));background-repeat:no-repeat}.input-area .calendar-row.row-noon{border-top:none;box-shadow:inset 0 1.5px 0 var(--border-strong)}.input-area .calendar-body{flex:0 0 auto}.input-toolbar{display:flex;align-items:center;padding:8px 20px;border-bottom:1px solid var(--grid-line);background:var(--surface-card);flex-shrink:0}.brush-picker{display:flex;gap:6px}.brush-btn{display:flex;align-items:center;gap:6px;font-family:var(--font);font-size:13px;font-weight:500;padding:7px 16px;border-radius:var(--radius-md);border:2px solid var(--border);background:var(--surface-card);color:var(--ink-secondary);cursor:pointer;transition:all .15s}.brush-btn:hover{border-color:var(--border-strong);color:var(--ink)}.brush-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:4px;font-size:12px;font-weight:700;line-height:1}.brush-btn.brush-available .brush-icon{background:var(--available);color:#fff}.brush-btn.brush-available.active{border-color:var(--available);background:#00563f0f;color:var(--ink)}.brush-btn.brush-if_needed .brush-icon{background:var(--if-needed);color:#fff}.brush-btn.brush-if_needed.active{border-color:var(--if-needed);background:#ffc62b14;color:var(--ink)}.brush-btn.brush-eraser .brush-icon{background:var(--surface);color:var(--ink-muted);border:1px dashed var(--border-strong);font-size:11px}.brush-btn.brush-eraser.active{border-color:var(--ink-muted);background:var(--surface);color:var(--ink)}.calendar-grid{display:flex;flex-direction:column;flex:1;overflow:auto;-webkit-user-select:none;user-select:none;-webkit-overflow-scrolling:touch;position:relative}.calendar-header{display:grid;grid-template-columns:var(--time-gutter-left-width, 52px) repeat(7,1fr) var(--time-gutter-right-width, 52px);width:max-content;min-width:100%;border-bottom:1px solid var(--grid-line-hour);position:sticky;top:0;background:var(--surface-card);z-index:10;flex-shrink:0}.day-header{padding:10px 6px;text-align:center;display:flex;flex-direction:column;gap:1px;border-left:1px solid var(--grid-line)}.day-header:nth-child(2){border-left:none}.day-header:nth-child(odd):not(:first-child):not(:last-child){background-color:#00000003}.day-name{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--ink-muted)}.day-date{font-size:12px;font-weight:600;color:var(--ink)}.calendar-body{flex:1}.calendar-row{display:grid;grid-template-columns:var(--time-gutter-left-width, 52px) repeat(7,1fr) var(--time-gutter-right-width, 52px);width:max-content;min-width:100%;border-bottom:1px solid var(--grid-line)}.calendar-row.row-noon{border-top:1.5px solid var(--border-strong)}.time-label{padding:2px 6px 0;height:44px;font-size:10px;font-weight:500;color:var(--ink-muted);display:flex;align-items:flex-start;justify-content:flex-end;position:sticky;left:0;z-index:4;background:var(--surface-card);border-right:1px solid var(--grid-line)}.time-label-right{padding:2px 6px 0;height:44px;font-size:10px;font-weight:500;color:var(--ink-faint);display:flex;align-items:flex-start;justify-content:flex-start;position:sticky;right:0;z-index:4;background:var(--surface-card);border-left:1px solid var(--grid-line)}.cell{height:44px;border-left:1px solid var(--grid-line);position:relative}.cell.day-start{border-left:1.5px solid var(--border-strong)}.cell.day-even{background-color:#00000003}.input-cell{cursor:pointer;transition:background-color .08s,box-shadow .08s;touch-action:manipulation}.range-label{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;letter-spacing:.3px;pointer-events:none;z-index:2}.range-label-available{color:#fff;text-shadow:0 1px 2px rgba(0,40,20,.5)}.range-label-if_needed{color:#3d2e00;text-shadow:0 0 3px rgba(255,198,43,.4);background-image:repeating-linear-gradient(-45deg,transparent,transparent 4px,rgba(255,255,255,.35) 4px,rgba(255,255,255,.35) 7px)}.input-cell.cell-available{background:var(--available)}.input-cell.cell-available{color:#fff}.input-cell.cell-if_needed{background:var(--if-needed)}.input-cell.hover-available:hover{box-shadow:inset 0 0 0 2px var(--available);background:#00563f1a}.input-cell.hover-available.cell-available:hover{box-shadow:none;background:var(--available-hover)}.input-cell.hover-if-needed:hover{box-shadow:inset 0 0 0 2px var(--if-needed);background:#ffc62b1f}.input-cell.hover-if-needed.cell-if_needed:hover{box-shadow:none;background-color:var(--if-needed-hover)}.input-cell.hover-eraser:hover{box-shadow:inset 0 0 0 2px var(--danger);background:#ef44440d}.input-cell.hover-eraser.cell-available:hover{background:#00563f73}.input-cell.hover-eraser.cell-if_needed:hover{background:#ffc62b66}.aggregate-area{display:flex;flex-direction:column;height:100%;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.day-nav{display:flex;align-items:center;gap:12px;padding:8px 16px;border-bottom:1px solid var(--grid-line);background:var(--surface-card);flex-shrink:0;flex-wrap:wrap}.scope-panel{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0;margin-right:8px}.scope-label{font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--ink-muted)}.scope-switch{display:flex;flex-wrap:wrap;gap:4px;max-width:720px}.day-nav-right{display:flex;align-items:center;gap:12px;margin-left:auto;flex-wrap:wrap;justify-content:flex-end}.day-nav-spans{display:flex;gap:4px}.span-btn{padding:4px 12px;border-radius:6px;font-size:12px;font-weight:600;border:1px solid var(--grid-line);background:var(--surface-card);color:var(--ink-muted);cursor:pointer;transition:all .12s}.span-btn:hover{border-color:var(--border-strong);color:var(--ink)}.span-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.scope-btn{padding:4px 10px;border-radius:6px;font-size:11px;font-weight:600;border:1px solid var(--grid-line);background:var(--surface-card);color:var(--ink-muted);cursor:pointer;transition:all .12s}.scope-btn:hover{border-color:var(--border-strong);color:var(--ink)}.scope-btn.active{border-color:var(--accent);background:var(--accent-light);color:var(--accent)}.scope-btn.mine{border-style:dashed}.day-nav-arrows{display:flex;align-items:center;gap:8px;margin-left:auto}.nav-arrow{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid var(--grid-line);background:var(--surface-card);font-size:14px;color:var(--ink-muted);cursor:pointer;transition:all .12s}.nav-arrow:hover:not(:disabled){border-color:var(--border-strong);color:var(--ink)}.nav-arrow:disabled{opacity:.35;cursor:default}.nav-label{font-size:13px;font-weight:600;color:var(--ink);min-width:120px;text-align:center}.heat-legend{display:flex;align-items:center;gap:6px}.heat-legend-bar{width:80px;height:10px;border-radius:3px;background:linear-gradient(to right,#fff,#a8e6c3,#00563f);border:1px solid var(--grid-line)}.heat-legend-label{font-size:10px;font-weight:600;color:var(--ink-muted)}.heat-legend-suffix{font-size:10px;color:var(--ink-faint);margin-left:2px}.legend-action-btn{border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-muted);padding:5px 10px;border-radius:6px;font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .12s}.legend-action-btn:hover{border-color:var(--accent);color:var(--accent)}.aggregate-content{display:flex;flex:1;overflow:hidden}.scope-banner{display:flex;flex-direction:column;gap:6px;padding:10px 16px;border-bottom:1px solid var(--grid-line);background:var(--surface-card)}.scope-banner-title{font-size:12px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--accent)}.scope-banner-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.scope-action-btn{border:1px solid var(--grid-line);background:var(--surface);color:var(--ink);padding:5px 10px;border-radius:6px;font-size:11px;font-weight:600;cursor:pointer}.scope-action-btn.active{border-color:var(--accent);background:var(--accent);color:#fff}.scope-action-btn.secondary{border-color:var(--border-strong);color:var(--ink-muted)}.scope-meeting-pill{font-size:11px;font-weight:600;color:var(--ink);border:1px solid var(--grid-line);border-radius:999px;padding:4px 10px;background:var(--surface)}.scope-view-only{font-size:11px;color:var(--ink-muted)}.aggregate-grid-layout{display:flex;flex:1;min-height:0;overflow:hidden}.aggregate-grid-layout .calendar-grid{flex:1;min-height:0}.profile-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:260;background:#00000073;display:flex;align-items:center;justify-content:center;padding:16px}.profile-modal{width:min(360px,calc(100vw - 24px));border:1px solid var(--border);border-radius:12px;background:var(--surface-card);box-shadow:var(--shadow-md);padding:12px;display:flex;flex-direction:column;gap:10px}.profile-modal-title{font-size:12px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--ink-muted)}.profile-form{display:flex;flex-direction:column;gap:8px}.profile-input{font-family:var(--font);font-size:14px;padding:9px 10px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--ink)}.profile-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #3b6fd429}.profile-error{font-size:11px;color:var(--danger)}.profile-actions{display:flex;justify-content:flex-end;gap:8px}.profile-btn{border:1px solid var(--grid-line);border-radius:6px;padding:7px 12px;font-size:12px;font-weight:700;cursor:pointer}.profile-btn.secondary{background:var(--surface);color:var(--ink-secondary)}.profile-btn.save{border-color:var(--accent);background:var(--accent);color:#fff}.profile-btn:disabled{opacity:.5;cursor:default}.group-build-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:220;background:#00000075;display:flex;align-items:center;justify-content:center;padding:16px}.group-build-modal{width:min(420px,calc(100vw - 24px));max-height:calc(100vh - 28px);border:1px solid var(--border);border-radius:12px;background:var(--surface-card);box-shadow:var(--shadow-md);padding:12px;display:flex;flex-direction:column;overflow-y:auto;gap:8px}.meeting-confirm-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:230;background:#00000080;display:flex;align-items:center;justify-content:center;padding:16px}.meeting-confirm-modal{width:min(560px,calc(100vw - 24px));max-height:calc(100vh - 28px);border:1px solid var(--border);border-radius:12px;background:var(--surface-card);box-shadow:var(--shadow-md);padding:12px;display:flex;flex-direction:column;gap:10px;overflow-y:auto}.meeting-confirm-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.meeting-confirm-title{font-size:12px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--ink-muted)}.meeting-confirm-slot{font-size:13px;font-weight:700;color:var(--ink)}.meeting-confirm-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.meeting-confirm-block{border:1px solid var(--grid-line);border-radius:8px;padding:8px;background:var(--surface)}.meeting-confirm-block.before{border-color:var(--border-strong)}.meeting-confirm-block.after{border-color:var(--meeting-slot);background:#2fa8e81a;box-shadow:inset 0 0 0 1px #ffffffb3,0 0 0 1px #2fa8e859,0 0 10px #2fa8e833}.meeting-confirm-block.after .meeting-confirm-block-title,.meeting-confirm-block.after .meeting-confirm-block-slot{color:var(--meeting-slot)}.meeting-confirm-block-title{font-size:10px;font-weight:700;letter-spacing:.35px;text-transform:uppercase;color:var(--ink-muted)}.meeting-confirm-block-slot{margin-top:3px;font-size:12px;font-weight:600;color:var(--ink)}.meeting-confirm-summary{border:1px solid var(--grid-line);border-radius:8px;background:var(--surface);padding:8px}.meeting-confirm-summary-title{font-size:10px;font-weight:700;letter-spacing:.35px;text-transform:uppercase;color:var(--ink-muted);margin-bottom:6px}.meeting-confirm-member-list{margin-top:6px;display:flex;flex-direction:column;gap:4px}.meeting-confirm-member-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.meeting-confirm-member-name{font-size:12px;font-weight:500;color:var(--ink)}.meeting-confirm-member-state{font-size:10px;font-weight:700;letter-spacing:.25px;text-transform:uppercase;border:1px solid var(--grid-line);border-radius:999px;padding:2px 7px;white-space:nowrap}.meeting-confirm-member-state.available{color:var(--available);border-color:var(--available);background:var(--accent-light)}.meeting-confirm-member-state.if-needed{color:#9a7000;border-color:#c99600;background:#ffc62b26}.meeting-confirm-member-state.unavailable{color:var(--ink-muted);border-color:var(--border-strong);background:var(--surface)}.meeting-confirm-note{border:1px solid var(--border-strong);border-radius:6px;background:var(--surface);padding:7px 9px;font-size:11px;color:var(--ink-muted)}.meeting-confirm-actions{display:flex;justify-content:flex-end;gap:8px}.meeting-confirm-btn{border:1px solid var(--grid-line);border-radius:6px;font-size:12px;font-weight:700;padding:7px 12px;cursor:pointer}.meeting-confirm-btn.secondary{background:var(--surface);color:var(--ink-secondary)}.meeting-confirm-btn.save{border-color:var(--accent);background:var(--accent);color:#fff}.meeting-confirm-btn.unset{border-color:var(--danger);background:transparent;color:var(--danger)}.meeting-confirm-btn.unset:hover{background:#ef444414}.meeting-confirm-btn:disabled{opacity:.5;cursor:default}.group-build-header{display:flex;align-items:center;justify-content:space-between}.group-build-title{font-size:12px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--ink-muted)}.group-build-close{border:1px solid var(--grid-line);background:var(--surface);color:var(--ink-muted);padding:3px 8px;border-radius:5px;font-size:11px;cursor:pointer}.group-build-slot{font-size:12px;font-weight:700;color:var(--ink)}.group-build-self{font-size:11px;color:var(--accent);font-weight:600}.group-build-self-lock{display:flex;align-items:center;gap:6px;border:1px solid var(--grid-line);border-radius:6px;background:var(--surface);padding:6px 8px;font-size:12px;color:var(--ink)}.group-build-self-identity{display:flex;flex-direction:column;min-width:0}.group-build-self-email{font-size:10px;color:var(--ink-muted);line-height:1.3}.group-build-required{margin-left:auto;font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--accent)}.group-build-disabled-note{border:1px solid var(--border-strong);background:var(--surface);color:var(--ink-muted);border-radius:6px;padding:7px 9px;font-size:11px}.group-build-section{border-top:1px solid var(--grid-line);padding-top:7px}.group-build-label{font-size:10px;font-weight:600;color:var(--ink-muted);letter-spacing:.4px;text-transform:uppercase;margin-bottom:4px}.group-build-person{width:100%;display:flex;align-items:flex-start;gap:7px;border:1px solid transparent;background:transparent;color:var(--ink);border-radius:6px;padding:5px 6px;font-size:12px;cursor:pointer;text-align:left}.group-build-person-meta{display:flex;flex-direction:column;min-width:0}.group-build-person-name{font-size:12px;font-weight:500;color:var(--ink)}.group-build-person-email{font-size:10px;color:var(--ink-muted);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-build-person:hover{background:var(--surface-hover)}.group-build-person.selected{border-color:var(--accent);background:var(--accent-light)}.group-build-person.locked{cursor:default;opacity:.8}.group-build-person.locked:hover{background:transparent}.group-build-person.disabled{opacity:.55}.group-build-open-group{border:1px dashed var(--border-strong);border-radius:6px;padding:7px;margin-bottom:5px}.group-build-open-group-head{display:flex;justify-content:space-between;font-size:11px;color:var(--ink-muted);margin-bottom:4px}.group-build-open-members{display:flex;flex-direction:column;gap:4px;margin-bottom:6px}.group-build-open-member{display:flex;align-items:flex-start;gap:7px}.group-build-open-member-meta{display:flex;flex-direction:column;min-width:0}.group-build-open-member-name{font-size:11px;font-weight:600;color:var(--ink)}.group-build-open-member-email{font-size:10px;color:var(--ink-muted);line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-build-join{width:100%;padding:4px 9px;font-size:11px;font-weight:600;border:1px solid var(--accent);background:var(--accent-light);color:var(--accent);border-radius:5px;cursor:pointer}.group-build-form{margin-top:4px;width:100%;padding:8px 12px;border:none;border-radius:6px;font-size:12px;font-weight:700;background:var(--accent);color:#fff;cursor:pointer}.group-build-form:disabled{opacity:.45;cursor:default}.group-build-hint,.group-build-empty{font-size:11px;color:var(--ink-muted)}.heat-cell{height:44px;border-left:1px solid var(--grid-line);position:relative;cursor:default;transition:background-color .1s}.heat-cell.is-clickable{cursor:pointer}.heat-cell.mine-available{box-shadow:inset 0 0 0 2px var(--available)}.heat-cell.mine-if-needed{box-shadow:inset 0 0 0 2px #b8860b}.heat-cell.is-active{outline:2px solid var(--ink);outline-offset:-2px}.heat-cell.meeting-slot{outline:3px solid var(--meeting-slot);outline-offset:-3px;box-shadow:inset 0 0 0 1px #ffffffeb,inset 0 0 0 999px #2fa8e824,0 0 0 1px #2fa8e8a6,0 0 14px #2fa8e873;z-index:2}.heat-cell.meeting-slot:before{content:"MEETING";position:absolute;top:2px;left:2px;border-radius:4px;padding:1px 4px;font-size:8px;font-weight:800;letter-spacing:.25px;line-height:1.15;color:#fff;background:var(--meeting-slot);border:1px solid rgba(255,255,255,.45);pointer-events:none;z-index:3}.heat-cell:hover{filter:brightness(.92)}.heat-label{position:absolute;left:0;right:0;top:3px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;pointer-events:none;gap:1px}.heat-members{position:absolute;left:4px;right:4px;bottom:4px;display:flex;justify-content:center;flex-wrap:wrap;gap:2px;pointer-events:none}.heat-member-dot{width:7px;height:7px;border-radius:999px;border:1px solid rgba(255,255,255,.7);box-shadow:0 0 0 1px #00000014}.heat-member-dot.if-needed{border-color:#facc15;box-shadow:0 0 0 1px #00000014,0 0 0 1px #facc1580}.heat-avail{color:#00563f}.heat-ifn{color:#b8860b;font-size:10px;font-weight:600}.heat-label.on-dark .heat-avail{color:#fff}.heat-label.on-dark .heat-ifn{color:#ffe69a}@media(prefers-color-scheme:dark){.heat-legend-bar{background:linear-gradient(to right,#1e1b17,#234a3f,#2a9e79);border-color:var(--border)}.my-slot-chip{background:#00000038}.heat-avail{color:#b6f2dc}.heat-ifn{color:#f2d591}.heat-label.on-dark .heat-avail{color:#f6fff9}.heat-label.on-dark .heat-ifn{color:#ffefc5}}.heat-tooltip{position:absolute;z-index:100;background:var(--surface-card);border:1px solid var(--border-strong);border-radius:8px;padding:10px 14px;box-shadow:0 6px 20px #0000001f;pointer-events:auto;min-width:160px;max-width:240px}.heat-tooltip-header{font-size:12px;font-weight:700;color:var(--ink);margin-bottom:6px;padding-bottom:5px;border-bottom:1px solid var(--grid-line)}.heat-tooltip-self{margin-bottom:6px;font-size:11px;font-weight:700;color:var(--accent)}.heat-tooltip-section{margin-top:4px}.heat-tooltip-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-muted);margin-bottom:2px}.heat-tooltip-name{font-size:12px;color:var(--ink);padding:1px 0;display:flex;align-items:center;gap:6px}.heat-dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex-shrink:0}.heat-dot.person{border:1px solid rgba(255,255,255,.7);box-shadow:0 0 0 1px #00000014}.heat-dot.person.if-needed{border-color:#facc15;box-shadow:0 0 0 1px #00000014,0 0 0 1px #facc1580}.heat-dot.available{background:var(--accent)}.heat-dot.if-needed{background:var(--if-needed)}.student-legend{width:196px;flex-shrink:0;border-left:1px solid var(--border);background:var(--surface-card);padding:14px;overflow-y:auto}.legend-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;color:var(--ink-muted);margin-bottom:10px}.legend-list{display:flex;flex-direction:column;gap:1px}.legend-student{display:flex;align-items:center;gap:8px;padding:5px 7px;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s}.legend-student:hover{background:var(--surface-hover)}.legend-student.dimmed{opacity:.25}.legend-color{width:11px;height:11px;border-radius:3px;flex-shrink:0}.legend-name{font-size:12px;font-weight:500;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;align-items:center;gap:5px}.you-badge{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;color:var(--accent);background:var(--accent-light);padding:1px 4px;border-radius:3px}.legend-count{font-size:10px;color:var(--ink-muted);font-weight:500}.empty-aggregate{display:flex;align-items:center;justify-content:center;flex:1;padding:48px;color:var(--ink-muted);font-size:14px;text-align:center}.you-tag{font-size:10px;color:var(--accent);font-weight:600}.tooltip-group-section{border-left:3px solid var(--accent);padding-left:8px;margin-left:-4px}.tooltip-group-label{display:flex;align-items:center;gap:6px}.tooltip-group-spots{font-size:9px;font-weight:500;color:var(--ink-faint);text-transform:none;letter-spacing:0}.tooltip-join-btn{margin-top:4px;padding:3px 10px;font-size:11px;font-weight:600;border:1px solid var(--accent);background:var(--accent-light);color:var(--accent);border-radius:4px;cursor:pointer;transition:all .12s}.tooltip-join-btn:hover{background:var(--accent);color:#fff}.group-list{flex-shrink:0;border-top:1px solid var(--border);padding:14px 20px;background:var(--surface)}.group-list-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--ink-muted);margin-bottom:10px}.group-cards{display:flex;gap:12px;flex-wrap:wrap}.group-card{border:1px solid var(--border);border-radius:8px;padding:12px 16px;background:var(--surface-card);min-width:220px;max-width:280px}.group-card.active{border-style:solid;border-color:var(--accent);background:var(--accent-light);box-shadow:inset 0 0 0 1px #00563f38}.group-card.full{border-color:var(--accent);background:#00563f08}.group-card.open{border-style:dashed}.group-card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:8px;gap:8px}.group-card-heading{display:flex;flex-direction:column;gap:2px;min-width:0}.group-card-meta{display:flex;align-items:flex-start;justify-content:flex-end;min-width:0}.group-card-title{font-size:12px;font-weight:700;color:var(--ink)}.group-status-badge{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}.group-card.full .group-status-badge{color:var(--accent)}.group-card.open .group-status-badge{color:var(--if-needed)}.group-member-count{font-size:11px;font-weight:600;color:var(--ink-muted)}.group-active-indicator{display:inline-flex;align-items:center;margin-bottom:8px;font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--accent);border:1px solid rgba(0,86,63,.35);border-radius:999px;padding:2px 8px;background:#00563f14}.group-active-indicator.in-header{margin-bottom:0}.group-meeting-status{display:flex;flex-direction:column;gap:2px;margin-bottom:8px;font-size:11px;color:var(--ink-muted)}.group-meeting-status.missing{border:1px solid rgba(255,198,43,.42);background:#ffc62b1a;border-radius:6px;padding:7px 8px}.group-meeting-missing-title{font-size:12px;font-weight:700;color:var(--ink)}.group-meeting-help{font-size:10px;line-height:1.35;color:var(--ink-secondary)}.group-members-label{font-size:10px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--ink-muted);margin-bottom:6px}.group-members{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.group-member{display:flex;align-items:flex-start;gap:7px;font-size:12px;color:var(--ink)}.group-member.empty{opacity:.4}.group-member-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.empty-dot{border:1.5px dashed var(--ink-muted);background:transparent}.group-member-name{font-size:12px;font-weight:600;line-height:1.3}.group-member-info{display:flex;flex-direction:column;gap:1px;min-width:0}.group-member-email{font-size:11px;color:var(--ink-secondary);text-decoration:none;line-height:1.3;white-space:normal;word-break:break-word}.group-member-email:hover{color:var(--accent);text-decoration:underline}.empty-name{font-style:italic;color:var(--ink-muted)}.group-card-actions{display:flex;gap:6px;flex-wrap:wrap}.ungrouped-students{margin-top:14px;border:1px solid var(--border);border-radius:8px;background:var(--surface-card);padding:10px 12px}.ungrouped-students-title{font-size:10px;font-weight:700;letter-spacing:.35px;text-transform:uppercase;color:var(--ink-muted);margin-bottom:8px}.ungrouped-students-empty{font-size:11px;color:var(--ink-muted)}.ungrouped-students-list{display:flex;flex-direction:column;gap:6px}.ungrouped-student-row{display:flex;align-items:flex-start;gap:7px}.ungrouped-student-meta{display:flex;flex-direction:column;min-width:0}.group-action-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;padding:4px 10px;font-size:11px;font-weight:600;border-radius:4px;border:1px solid;cursor:pointer;transition:all .12s}.group-action-btn.join{border-color:var(--accent);background:var(--accent-light);color:var(--accent)}.group-action-btn.join:hover{background:var(--accent);color:#fff}.group-action-btn.plan{border-color:var(--border-strong);background:var(--surface);color:var(--ink)}.group-action-btn.plan:hover{border-color:var(--accent);color:var(--accent)}.group-action-btn.email{border-color:var(--border-strong);background:var(--surface);color:var(--ink-secondary)}.group-action-btn.email:hover{border-color:var(--accent);color:var(--accent)}.group-action-btn.leave{border-color:var(--danger);background:transparent;color:var(--danger)}.group-action-btn.leave:hover{background:var(--danger);color:#fff}.group-action-btn.disband{border-color:var(--danger);background:transparent;color:var(--danger)}.group-action-btn.disband:hover{background:var(--danger);color:#fff}@media(max-width:760px){:root{--time-gutter-right-width: 0px}.top-bar{align-items:stretch}.top-bar-main{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:nowrap;padding:10px 12px;gap:8px}.top-bar-left{width:auto;min-width:0;flex:1 1 auto;justify-content:flex-start}.top-bar-right{width:auto;justify-content:flex-end;flex-wrap:nowrap;gap:8px;flex:0 0 auto}.app-title{font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scope-panel{width:100%;margin-right:0}.scope-switch{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px;max-width:100%}.scope-btn{flex:0 0 auto;white-space:nowrap;font-size:12px;padding:6px 10px}.student-badge{max-width:44vw;font-size:11px;padding:3px 9px 3px 7px}.student-badge span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sign-out-btn{padding:5px 9px;font-size:11px;white-space:nowrap}.input-toolbar{padding:8px 12px;overflow-x:auto}.workflow-panel{padding:8px 10px 10px;gap:8px;flex-direction:column;align-items:stretch}.workflow-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;overflow:visible;padding-bottom:0}.workflow-step{width:100%;border-radius:8px;padding:6px 8px;min-height:34px}.workflow-next{margin-left:0;min-width:0;width:100%;flex-direction:column;align-items:stretch;gap:8px}.workflow-next-actions{width:100%;flex-direction:column;align-items:stretch;gap:6px}.workflow-next-btn{width:100%;padding:8px 10px;font-size:12px}.brush-picker{width:max-content;padding-bottom:2px}.brush-btn{padding:8px 12px;font-size:12px;flex-shrink:0}.brush-icon{width:18px;height:18px}.calendar-header>.time-gutter-header:last-child,.time-label-right{display:none}.day-nav{padding:8px 10px;gap:8px}.scope-label{width:100%}.day-nav-right{width:100%;margin-left:0;gap:8px;justify-content:flex-start}.heat-legend{width:100%;overflow-x:auto;padding-bottom:2px}.legend-action-btn{width:100%;padding:8px 10px;font-size:12px}.day-nav-spans{width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}.span-btn{flex:0 0 auto;padding:6px 10px;font-size:12px}.day-nav-arrows{width:100%;margin-left:0;justify-content:space-between}.nav-label{min-width:0;flex:1;font-size:12px}.scope-banner{padding:8px 10px;gap:8px}.scope-banner-actions{width:100%;gap:6px}.scope-action-btn{width:100%;padding:8px 10px;font-size:12px}.scope-meeting-pill{width:100%;text-align:left;border-radius:8px}.aggregate-content{min-height:280px}.group-build-modal-backdrop{align-items:flex-end;padding:0}.group-build-modal{width:100%;max-height:82vh;border-radius:14px 14px 0 0;border-bottom:none;padding:10px}.meeting-confirm-modal-backdrop{align-items:flex-end;padding:0}.meeting-confirm-modal{width:100%;max-height:82vh;border-radius:14px 14px 0 0;border-bottom:none;padding:10px}.meeting-confirm-compare{grid-template-columns:1fr}.meeting-confirm-actions{flex-direction:column-reverse}.meeting-confirm-btn{width:100%}.group-list{padding:12px}.group-cards{flex-direction:column;gap:10px}.group-card{width:100%;max-width:none}.group-card-actions{display:flex;flex-direction:column;gap:8px}.group-action-btn{width:100%;padding:7px 10px;font-size:12px}}
