:root{--color-brand:#1e3a8a;--color-accent:#2563eb;--color-accent-hover:#1e3a8a;--color-accent-bg:#eff6ff;--color-accent-bg-soft:#f5f8ff;--color-bg:#f5f7fb;--color-surface:#fff;--color-surface-muted:#f3f4f6;--color-text-strong:#111827;--color-text-secondary:#374151;--color-text-muted:#6b7280;--color-text-subtle:#9ca3af;--color-border:#e5e7eb;--color-border-input:#d1d5db;--color-danger:#e03a3a;--color-danger-bright:#ef4444;--color-danger-bg:#fee2e2;--color-danger-border:#fecaca;--color-danger-text:#991b1b;--color-success-text:#047857;--color-success-text-strong:#166534;--color-success-bg:#ecfdf5;--color-success-bg-strong:#dcfce7;--color-success-border:#a7f3d0;--color-info-text:#1e40af;--color-info-bg:#dbeafe;--color-info-border:#bfdbfe;--color-goal-text:#6b21a8;--color-goal-bg:#faf5ff;--color-goal-border:#e9d5ff;--color-checkin:#0f766e;--color-checkin-hover:#0b5a54;--color-star:#f59e0b;--color-warning-text:#b45309;--color-warning-bg:#fff7ed;--shadow-color-faint:#0000000d;--shadow-color-soft:#0000000f;--shadow-color-medium:#0f172a1a;--shadow-color-strong:#0f172a2e;--shadow-card:0 4px 14px var(--shadow-color-soft);--shadow-card-hover:0 8px 24px var(--shadow-color-medium);--overlay-white-soft:#ffffff14;--overlay-white-medium:#ffffff1f;--overlay-white-strong:#ffffff29;--focus-ring-on-brand:#bfdbfed9;--border-on-brand:#dbeafeb8;--border-on-brand-strong:#dbeafef2;--radius-sm:6px;--radius:8px;--radius-lg:12px;--radius-pill:999px;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text-strong);margin:0}.navbar{background:var(--color-brand);color:#fff;justify-content:space-between;align-items:center;min-height:72px;padding:16px 32px;display:flex}.logo{color:#fff;font-size:24px;font-weight:700;text-decoration:none}.nav-links{align-items:center;gap:10px;display:flex}.nav-links a{color:#fff;border-radius:8px;align-items:center;min-height:40px;padding:0 10px;font-weight:700;line-height:1;text-decoration:none;transition:background .18s,color .18s,box-shadow .18s;display:inline-flex}.nav-links a:hover{background:var(--overlay-white-medium);color:#fff;box-shadow:inset 0 0 0 1px var(--overlay-white-soft)}.nav-links a:focus-visible,.nav-links .user-menu-trigger:focus-visible{outline:3px solid var(--focus-ring-on-brand);outline-offset:3px}.user-menu{align-items:center;margin-left:2px;display:flex;position:relative}.nav-links .user-menu-trigger{border:1px solid var(--border-on-brand);background:var(--overlay-white-medium);color:#fff;cursor:pointer;width:40px;height:40px;font:inherit;border-radius:999px;justify-content:center;align-items:center;padding:0;font-weight:700;line-height:1;transition:background .18s,border-color .18s,box-shadow .18s;display:flex;overflow:hidden}.nav-links .user-menu-trigger:hover{background:var(--overlay-white-strong);border-color:var(--border-on-brand-strong);box-shadow:0 0 0 4px var(--overlay-white-soft)}.user-menu-trigger img{object-fit:cover;width:100%;height:100%}.user-dropdown{min-width:220px;color:var(--color-text-strong);border:1px solid var(--color-border);box-shadow:0 14px 32px var(--shadow-color-strong);z-index:50;background:#fff;border-radius:8px;padding:8px;position:absolute;top:calc(100% + 12px);right:0}.user-dropdown-header{border-bottom:1px solid var(--color-border);flex-direction:column;gap:2px;margin-bottom:6px;padding:8px 10px 10px;display:flex}.user-dropdown-header small{color:var(--color-text-muted);overflow-wrap:anywhere}.nav-links .user-dropdown-item{width:100%;color:var(--color-brand);cursor:pointer;font:inherit;text-align:left;background:0 0;border:none;border-radius:6px;padding:10px 12px;font-weight:700}.nav-links .user-dropdown-item:hover{background:var(--color-accent-bg);box-shadow:none;transform:none}.page{max-width:1200px;margin:40px auto;padding:0 24px}.session-form-page{max-width:688px}h1{margin-bottom:12px;font-size:36px}h2{margin-top:0}.form{box-shadow:0 4px 14px var(--shadow-color-soft);background:#fff;border-radius:12px;flex-direction:column;gap:12px;padding:24px;display:flex}.form label{font-weight:700}.form input,.form select{border:1px solid var(--color-border-input);border-radius:8px;padding:12px;font-size:16px}.field-label-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.field-limit{color:var(--color-text-muted);white-space:nowrap;font-weight:400}.form button,.primary-button{cursor:pointer;background:var(--color-accent);color:#fff;border:none;border-radius:8px;margin-top:8px;padding:12px 16px;font-size:16px;text-decoration:none;transition:background .2s,transform .2s,box-shadow .2s}.form button:hover,.primary-button:hover{background:var(--color-accent-hover);box-shadow:0 4px 12px var(--shadow-color-strong)}.button-row{gap:12px;margin-top:20px;display:flex}.card{box-shadow:0 4px 14px var(--shadow-color-soft);background:#fff;border-radius:12px;margin-top:20px;padding:20px}.study-space-card{border:1px solid #0000;margin-top:0;transition:border-color .2s,box-shadow .2s,transform .2s}.study-space-card:hover{border-color:var(--color-text-subtle);box-shadow:0 8px 24px var(--shadow-color-medium)}.study-space-card h3{margin-top:0;margin-bottom:16px}.study-space-card p{margin:8px 0}.message{margin-top:16px;font-weight:700}.warning{color:var(--color-warning-text);background:var(--color-warning-bg);border-radius:8px;padding:12px}.map-container{margin-top:20px}.map{border-radius:12px;width:100%;height:550px}.study-spaces-section{margin-top:32px}.study-spaces-heading h2,.discovery>h2{font-family:inherit;font-size:24px;font-weight:700}.study-spaces-heading h2{margin-bottom:0}.study-spaces-heading{align-items:baseline;gap:12px;margin-bottom:16px;display:flex}.study-spaces-filter-toggle{color:var(--color-accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700}.study-spaces-filter-toggle:hover,.study-spaces-filter-toggle.active,.all-sessions-filter-toggle:hover,.all-sessions-filter-toggle.active{color:var(--color-brand);text-decoration:underline}.study-spaces-layout.filters-visible{grid-template-columns:260px minmax(0,1fr);align-items:start;gap:24px;display:grid}.study-space-results{min-width:0}.study-space-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-items:start;gap:20px;display:grid}.space-filter-group-label{font-weight:700}.space-amenity-filters .session-filter-checkbox{font-weight:400}.session-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-items:start;gap:20px;display:grid}.all-sessions-heading{align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.all-sessions-heading h1{margin:0}.all-sessions-filter-toggle{color:var(--color-accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700}.all-sessions-layout{margin-top:24px}.all-sessions-layout.filters-visible{grid-template-columns:260px minmax(0,1fr);align-items:start;gap:24px;display:grid}.session-filters{border:1px solid var(--color-border);box-shadow:0 4px 14px var(--shadow-color-soft);background:#fff;border-radius:12px;padding:20px;position:sticky;top:24px}.session-filters-header{justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:16px;display:flex}.session-filters-header h2{margin:0;font-size:20px}.session-filters-header button{color:var(--color-accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:14px;font-weight:700}.session-filters-header button:hover{color:var(--color-brand);text-decoration:underline}.session-filter-group{flex-direction:column;gap:8px;padding:10px 0;display:flex}.session-filter-group:last-child{border-bottom:0;padding-bottom:0}.session-filter-group label{font-weight:700}.session-filter-checkbox{cursor:pointer;align-items:center;gap:10px;display:flex}.session-filter-group .session-filter-checkbox input{width:18px;height:18px;accent-color:var(--color-accent);cursor:pointer;margin:0;padding:0}.session-filter-group input,.session-filter-group select{border:1px solid var(--color-border-input);width:100%;min-width:0;color:var(--color-text-strong);font:inherit;background:#fff;border-radius:8px;padding:10px 12px;font-size:14px}.session-filter-input-wrapper{position:relative}.session-filter-input-wrapper input{padding-right:42px}.module-code-filter-input-wrapper input{padding-right:12px}.module-code-filter-input-wrapper .session-filter-clear{right:40px}.session-filter-clear{width:24px;height:24px;color:var(--color-accent);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:0;font-size:24px;line-height:1;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.session-filter-clear:hover{color:var(--color-accent);box-shadow:0 4px 12px var(--shadow-color-strong);background:0 0}.session-filter-group small{color:var(--color-text-muted);font-size:12px;line-height:1.4}.session-results{min-width:0}.session-result-count{color:var(--color-text-muted);margin:0 0 12px;font-size:14px;font-weight:700}.session-empty-state{border:1px solid var(--color-border);text-align:center;background:#fff;border-radius:12px;padding:40px 24px}.session-empty-state h2{margin-bottom:8px}.session-empty-state p{color:var(--color-text-muted);margin-bottom:0}@media (width<=800px){.all-sessions-layout.filters-visible,.study-spaces-layout.filters-visible{grid-template-columns:1fr}.session-filters{position:static}}.session-card{cursor:pointer;border:1px solid #0000;margin-top:0;transition:border-color .2s,box-shadow .2s,transform .2s}.session-card:hover{border-color:var(--color-text-subtle);box-shadow:0 8px 24px var(--shadow-color-medium)}.session-card h2,.session-card h3{margin-top:0;margin-bottom:16px}.session-card p{margin:8px 0}.session-labels{flex-wrap:wrap;gap:8px;margin:16px 0 0;display:flex}.session-label{overflow-wrap:anywhere;border:1px solid #0000;border-radius:999px;align-items:center;max-width:100%;min-height:28px;padding:4px 10px;font-size:13px;font-weight:700;line-height:1.35;display:inline-flex}.module-label{color:var(--color-info-text);background:var(--color-accent-bg);border-color:var(--color-info-border)}.goal-label{color:var(--color-goal-text);background:var(--color-goal-bg);border-color:var(--color-goal-border)}.mode-label{color:var(--color-success-text);background:var(--color-success-bg);border-color:var(--color-success-border)}.session-actions{flex-wrap:wrap;gap:10px;margin-top:18px;display:flex}.details-actions{justify-content:center}.session-action-button{cursor:pointer;border:none;border-radius:8px;min-width:60px;min-height:34px;padding:0 12px;font-size:14px;font-weight:700}.session-action-button:disabled:not(.full-button){opacity:.55;cursor:not-allowed}.back-button{color:var(--color-accent);background:#fff;border:1px solid #0000;transition:background .2s,color .2s,border-color .2s,box-shadow .2s}.back-button:hover{background:var(--color-border);border:1px solid var(--color-border);box-shadow:0 4px 14px var(--shadow-color-soft)}.edit-button,.join-button{background:var(--color-accent);color:#fff;border:1px solid #0000;transition:background .2s,color .2s,border-color .2s,box-shadow .2s}.edit-button:hover:not(:disabled),.join-button:hover:not(:disabled){background:var(--color-accent-hover);border:1px solid var(--color-accent-hover);box-shadow:0 4px 14px var(--shadow-color-soft)}.full-button{background:var(--color-border);color:var(--color-text-muted);border:1px solid var(--color-border-input);cursor:not-allowed}.full-button:hover{background:var(--color-border);color:var(--color-text-muted);border:1px solid var(--color-border-input);box-shadow:none}.cancel-button{background:var(--color-bg);color:var(--color-danger);border:1px solid var(--color-danger-border);transition:background .2s,color .2s,border-color .2s,box-shadow .2s}.cancel-button:hover:not(:disabled){background:var(--color-danger);color:#fff;border:1px solid var(--color-danger);box-shadow:0 4px 14px var(--shadow-color-soft)}.session-details-card{text-align:left;max-width:640px;margin:20px auto 0}.session-detail-list{gap:10px;margin:0;display:grid}.session-detail-list div{grid-template-columns:120px minmax(0,1fr);gap:16px;display:grid}.session-detail-list dt{font-weight:700}.session-detail-list dd{margin:0}.participant-list{flex-direction:column;gap:10px;margin:16px 0 0;padding:0;list-style:none;display:flex}.participant-item{border:1px solid var(--color-border);border-radius:8px;grid-template-columns:minmax(0,1fr) max-content;align-items:center;gap:12px;min-height:44px;padding:6px 12px;display:grid}.participant-name,.participant-item small{line-height:1.5}.participant-item small{text-align:right;color:var(--color-text-muted);justify-self:end;font-size:14px}.participant-meta{color:var(--color-text-muted);font-size:13px;display:block}.edit-participants-dropdown summary{cursor:pointer}.participant-edit-item{grid-template-columns:minmax(0,1fr) max-content 24px;align-items:center;line-height:.8}.form .remove-participant-button{width:24px;min-width:24px;height:24px;min-height:24px;color:var(--color-danger);background:0 0;border-radius:999px;justify-content:center;place-self:center;align-items:center;margin:0;padding:0;font-size:24px;line-height:1;display:flex}.form .remove-participant-button:hover{color:var(--color-danger);background:0 0}.form .remove-participant-button:disabled{color:var(--color-text-muted);box-shadow:none;cursor:not-allowed;border:none}.participant-name-with-badge{align-items:center;gap:8px;display:inline-flex}.participant-owner-badge{height:24px;color:var(--color-success-text);background-color:var(--color-success-bg);border:1px solid var(--color-success-border);white-space:nowrap;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;padding:0 8px;font-size:12px;font-weight:600;line-height:1;display:inline-flex}.my-sessions-section{margin-top:2rem}.my-sessions-section+.my-sessions-section{margin-top:3.5rem}.my-sessions-section h2{margin-bottom:1.5rem}.notification-bell{color:#fff;border-radius:999px;justify-content:center;align-items:center;width:40px;height:40px;text-decoration:none;transition:background .18s,box-shadow .18s;display:inline-flex;position:relative}.notification-bell:hover{background:var(--overlay-white-strong);box-shadow:inset 0 0 0 1px var(--overlay-white-soft)}.notification-bell:focus-visible{outline:3px solid var(--focus-ring-on-brand);outline-offset:3px}.notification-bell-icon{display:block}.notification-badge{background:var(--color-danger-bright);color:#fff;text-align:center;min-width:18px;height:18px;box-shadow:0 0 0 2px var(--color-brand);border-radius:999px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px;position:absolute;top:2px;right:2px}.notifications-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.notifications-header h1{margin-top:0}.notification-list{flex-direction:column;gap:10px;margin:20px 0 0;padding:0;list-style:none;display:flex}.notification-item{border:1px solid var(--color-border);box-shadow:0 4px 14px var(--shadow-color-faint);cursor:pointer;background:#fff;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;transition:border-color .18s,box-shadow .18s,transform .18s;display:flex}.notification-item:hover{border-color:var(--color-text-subtle);box-shadow:0 8px 24px var(--shadow-color-medium)}.notification-item.unread{border-left:4px solid var(--color-brand);background:var(--color-accent-bg-soft)}.notification-content{align-items:flex-start;gap:10px;display:flex}.notification-dot{background:var(--color-brand);border-radius:999px;flex-shrink:0;width:10px;height:10px;margin-top:6px}.notification-message{color:var(--color-text-strong);margin:0;font-weight:600}.notification-time{color:var(--color-text-muted)}.mark-read-button{border:1px solid var(--color-brand);color:var(--color-brand);font:inherit;cursor:pointer;background:0 0;border-radius:8px;flex-shrink:0;padding:8px 12px;font-weight:600;transition:background .2s,color .2s,border-color .2s,box-shadow .2s}.mark-read-button:hover{background:var(--color-brand);color:#fff;border:1px solid var(--color-brand);box-shadow:0 4px 14px var(--shadow-color-soft)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.star-rating{align-items:center;gap:2px;line-height:1;display:inline-flex}.star{flex-shrink:0;width:16px;height:16px}.star-filled{fill:var(--color-star)}.star-empty{fill:var(--color-border-input)}.star-rating-input .star{width:26px;height:26px}.star-button{cursor:pointer;background:0 0;border:none;border-radius:4px;padding:0;line-height:0}.star-button:disabled{cursor:not-allowed}.star-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.study-space-card .space-rating,.recommendation-space-card .space-rating{align-items:center;gap:8px;margin:0 0 16px;font-size:14px;display:flex}.space-rating-value{color:var(--color-text-strong);font-weight:700}.space-rating-count{color:var(--color-text-muted)}.study-space-card .space-rating-empty,.recommendation-space-card .space-rating-empty{color:var(--color-text-muted);font-size:14px}.review-toggle{border:1px solid var(--color-border-input);width:100%;color:var(--color-accent);font:inherit;cursor:pointer;background:#fff;border-radius:8px;margin-top:16px;padding:10px 12px;font-size:14px;font-weight:700;transition:background .2s,border-color .2s}.review-toggle:hover{background:var(--color-accent-bg);border-color:var(--color-accent)}.review-toggle:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.space-reviews{border-top:1px solid var(--color-border);text-align:left;margin-top:16px;padding-top:16px}.space-reviews h4{color:var(--color-text-strong);margin:0 0 10px;font-size:14px}.other-reviews{border-top:1px solid var(--color-border);margin-top:20px;padding-top:16px}.review-status{color:var(--color-text-muted);font-size:14px}.review-error{color:var(--color-danger);margin:10px 0 0;font-size:13px}.review-form-rating{align-items:center;gap:10px;margin-bottom:12px;display:flex}.review-form-hint{color:var(--color-text-muted);font-size:13px}.review-comment-label{color:var(--color-text-strong);margin-bottom:6px;font-size:13px;font-weight:700;display:block}.review-comment-input{border:1px solid var(--color-border-input);width:100%;font:inherit;resize:vertical;border-radius:8px;padding:10px 12px;font-size:14px}.review-comment-input:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.review-form-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;display:flex}.review-char-count{color:var(--color-text-muted);font-size:12px}.review-actions{flex-wrap:wrap;gap:8px;display:flex}.own-review-summary .review-actions{margin-top:12px}.review-list{flex-direction:column;gap:16px;margin:0;padding:0;list-style:none;display:flex}.review-item-header{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.review-author{color:var(--color-text-strong);font-size:14px;font-weight:700}.review-time{color:var(--color-text-muted);white-space:nowrap;font-size:12px}.study-space-card .review-comment{color:var(--color-text-secondary);overflow-wrap:anywhere;margin:6px 0 0;font-size:14px;line-height:1.5}.review-show-more{border:1px solid var(--color-border-input);width:100%;color:var(--color-accent);font:inherit;cursor:pointer;background:#fff;border-radius:8px;margin-top:14px;padding:8px 12px;font-size:13px;font-weight:700}.review-show-more:hover{background:var(--color-accent-bg);border-color:var(--color-accent)}.discovery{margin-top:28px}.discovery>h2{margin-bottom:4px}.discovery-group{margin-top:24px}.discovery-group>h3{color:var(--color-text-strong);margin-bottom:12px;font-size:16px}.discovery-error{color:var(--color-danger)}.discovery-empty{color:var(--color-text-muted);font-size:14px}.recommendation-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));align-items:start;gap:16px;display:grid}.recommendation-card{cursor:pointer;border:1px solid #0000;margin-top:0;transition:border-color .2s,box-shadow .2s}.recommendation-card:hover{border-color:var(--color-accent);box-shadow:0 6px 18px var(--shadow-color-soft)}.recommendation-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.recommendation-card h3,.recommendation-card h4{margin:0 0 10px}.recommendation-card p{margin:0 0 6px;font-size:14px}.recommendation-reasons{flex-wrap:wrap;gap:6px;margin:12px 0 0;padding:0;list-style:none;display:flex}.recommendation-reasons li{color:var(--color-brand);font-size:12px}.recommendation-space-mode{color:var(--color-text-muted)}.link-button{color:var(--color-accent);font:inherit;font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.link-button:hover{color:var(--color-brand)}.session-action-button.checkin-button{background:var(--color-checkin);color:#fff}.session-action-button.checkin-button:hover:not(:disabled){background:var(--color-checkin-hover)}.attendance-summary-card .attendance-stats{flex-wrap:wrap;gap:28px;margin-top:12px;display:flex}.attendance-stat{flex-direction:column;gap:4px;display:flex}.attendance-stat-value{color:var(--color-text-strong);font-size:28px;font-weight:700}.attendance-stat-label{color:var(--color-text-muted);font-size:13px}.attendance-record-list{flex-direction:column;gap:10px;margin:12px 0 0;padding:0;list-style:none;display:flex}.attendance-record{border:1px solid var(--color-border);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;transition:border-color .2s,box-shadow .2s;display:flex}.attendance-record:hover{border-color:var(--color-accent);box-shadow:0 4px 12px var(--shadow-color-soft)}.attendance-record:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.attendance-record-main{flex-direction:column;gap:2px;display:flex}.attendance-record-space{color:var(--color-text-strong);font-weight:700}.attendance-record-when{color:var(--color-text-muted);font-size:13px}.attendance-tag{background:var(--color-surface-muted);color:var(--color-text-secondary);border-radius:999px;flex-shrink:0;padding:4px 10px;font-size:12px;font-weight:700}.attendance-tag-attended{background:var(--color-success-bg-strong);color:var(--color-success-text-strong)}.attendance-tag-in{background:var(--color-info-bg);color:var(--color-info-text)}.attendance-tag-missed{background:var(--color-danger-bg);color:var(--color-danger-text)}.attendance-tag-upcoming{background:var(--color-surface-muted);color:var(--color-text-muted)}.attendance-tag-cancelled{background:var(--color-surface-muted);color:var(--color-text-muted);text-decoration:line-through}.profile-identity-card{flex-direction:column;gap:16px;display:flex}.profile-identity-header{align-items:center;gap:14px;display:flex}.profile-avatar{border-radius:var(--radius-pill);background:var(--color-accent-bg);width:56px;height:56px;color:var(--color-accent);flex:none;justify-content:center;align-items:center;font-size:22px;font-weight:600;display:flex}.profile-identity-text{flex:1;min-width:0}.profile-identity-text h2{margin:0}.profile-email{color:var(--color-text-muted);word-break:break-all;margin:2px 0 0;font-size:14px}.profile-detail-list{border-top:1px solid var(--color-border);flex-wrap:wrap;gap:28px;margin:0;padding-top:14px;display:flex}.profile-detail-list dt{color:var(--color-text-muted);font-size:13px}.profile-detail-list dd{margin:4px 0 0;font-size:16px}.profile-edit-form{border-top:1px solid var(--color-border);flex-direction:column;gap:10px;padding-top:14px;display:flex}.profile-edit-actions{gap:10px;margin-top:4px;display:flex}.card:focus-visible,.session-card:focus-visible,.study-space-card:focus-visible,.notification-item:focus-visible,.attendance-record:focus-visible,.session-action-button:focus-visible,.form button:focus-visible,.primary-button:focus-visible,.mark-read-button:focus-visible,.review-show-more:focus-visible,.link-button:focus-visible,.user-dropdown-item:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}@media (width<=640px){.navbar{flex-wrap:wrap;gap:12px;padding:12px 16px}.nav-links{flex-wrap:wrap;gap:6px;width:100%}.nav-links a{padding:0 8px}}@media (width<=480px){.study-space-grid,.session-list,.recommendation-grid{grid-template-columns:1fr}}.session-card.session-inactive{background:var(--color-surface-muted);border-color:var(--color-border)}.session-card.session-inactive h3,.session-card.session-inactive p{color:var(--color-text-muted)}.session-card-header{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px;display:flex}.session-card-header h3{margin:0}.status-pill{border-radius:var(--radius-pill);white-space:nowrap;flex-shrink:0;padding:3px 10px;font-size:12px;font-weight:700}.status-pill-active{color:var(--color-success-text-strong);background:var(--color-success-bg-strong)}.status-pill-completed{color:var(--color-text-muted);background:var(--color-surface-muted)}.status-pill-cancelled{color:var(--color-danger-text);background:var(--color-danger-bg)}.session-when{color:var(--color-text-strong);margin:0 0 6px;font-size:14px}.session-meta{color:var(--color-text-muted);margin:0 0 6px;font-size:14px}.space-meta{color:var(--color-text-muted);margin:0 0 4px;font-size:13px}.space-amenities{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.amenity-chip{border-radius:var(--radius);padding:4px 10px;font-size:12px;font-weight:600}.amenity-chip.present{color:var(--color-success-text-strong);background:var(--color-success-bg-strong)}.amenity-chip.absent{color:var(--color-text-subtle);background:var(--color-surface-muted);text-decoration:line-through}.dialog-overlay{z-index:100;background:#0f172a66;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.dialog-box{background:var(--color-surface);border-radius:var(--radius-lg);width:100%;max-width:380px;padding:22px;box-shadow:0 20px 50px #0f172a4d}.dialog-title{color:var(--color-text-strong);margin:0 0 8px;font-size:17px}.dialog-message{color:var(--color-text-muted);margin:0 0 18px;font-size:14px;line-height:1.5}.dialog-actions{justify-content:flex-end;gap:10px;display:flex}.dialog-button{font:inherit;border-radius:var(--radius);cursor:pointer;border:1px solid #0000;padding:8px 16px;font-size:14px;font-weight:700}.dialog-cancel{background:var(--color-surface);color:var(--color-accent);border-color:var(--color-border)}.dialog-cancel:hover{background:var(--color-accent-bg)}.dialog-confirm{background:var(--color-accent);color:#fff}.dialog-confirm:hover{background:var(--color-accent-hover)}.dialog-confirm-destructive{background:var(--color-danger);color:#fff}.dialog-confirm-destructive:hover{background:var(--color-danger-text)}.dialog-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.home-hero{background:linear-gradient(135deg, var(--color-brand) 0%, var(--color-accent) 100%);border-radius:var(--radius-lg);color:#fff;padding:28px 24px}.home-hero h1{color:#fff;margin:0 0 10px;font-size:26px}.home-hero p{color:#ffffffd9;margin:0 0 18px;font-size:15px;line-height:1.5}.home-hero-actions{flex-wrap:wrap;gap:10px;display:flex}.home-hero-button{font:inherit;border-radius:var(--radius);cursor:pointer;border:1px solid #0000;padding:9px 18px;font-size:14px;font-weight:700;text-decoration:none;transition:background .2s,color .2s,border-color .2s}.home-hero-button.primary{color:var(--color-brand);background:#fff}.home-hero-button.secondary{color:#fff;background:#ffffff26;border-color:#fff6}.home-hero-button.primary:hover{background:var(--color-accent-bg);color:var(--color-accent-hover);border-color:var(--border-on-brand-strong)}.home-hero-button.secondary:hover{background:var(--overlay-white-soft)}.home-hero-button:focus-visible{outline:3px solid var(--focus-ring-on-brand);outline-offset:3px}
