@import"https://fonts.googleapis.com/css2?family=Sora:wght@300;400;500;600;700&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,400&display=swap";@import"https://fonts.googleapis.com/css2?family=Sora:wght@400;600;700&family=DM+Sans:wght@400;500;600&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{text-decoration:none}button{font-family:inherit;cursor:pointer}:root{--primary: #1a3a6e;--primary-mid: #1e4d96;--primary-light: #2563eb;--accent: #3b82f6;--accent-glow: rgba(59, 130, 246, .25);--bg: #f0f4ff;--card-bg: rgba(255, 255, 255, .92);--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--border: #e2e8f0;--border-focus: #2563eb;--error-bg: #fef2f2;--error-color: #dc2626;--success: #059669;--radius-card: 20px;--radius-input: 12px;--radius-btn: 12px;--shadow-card: 0 20px 60px rgba(26, 58, 110, .12), 0 4px 16px rgba(26, 58, 110, .06);--shadow-btn: 0 8px 24px rgba(37, 99, 235, .35);--font-display: "Sora", sans-serif;--font-body: "DM Sans", sans-serif}.auth-root{font-family:var(--font-body);min-height:100vh;position:relative;overflow:hidden;background:var(--bg)}.auth-bg{position:fixed;inset:0;z-index:0;pointer-events:none}.auth-bg-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.55;animation:orbFloat 12s ease-in-out infinite}.orb-1{width:600px;height:600px;background:radial-gradient(circle,#bfdbfe,#dbeafe);top:-200px;right:-100px;animation-delay:0s}.orb-2{width:400px;height:400px;background:radial-gradient(circle,#c7d2fe,#e0e7ff);bottom:-100px;left:-100px;animation-delay:-4s}.orb-3{width:300px;height:300px;background:radial-gradient(circle,#bae6fd,#e0f2fe);top:40%;left:50%;animation-delay:-8s}.auth-grid-overlay{position:absolute;inset:0;background-image:linear-gradient(rgba(26,58,110,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(26,58,110,.03) 1px,transparent 1px);background-size:48px 48px}@keyframes orbFloat{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-30px) scale(1.05)}66%{transform:translate(-20px,20px) scale(.96)}}.auth-split{position:relative;z-index:1;display:flex;min-height:100vh}.auth-left{width:42%;background:linear-gradient(145deg,#0f2654,#1a3a6e 40%,#1e4d96 75%,#1d4ed8);display:flex;align-items:center;justify-content:center;padding:60px 48px;position:relative;overflow:hidden;flex-shrink:0}.auth-left:before{content:"";position:absolute;top:-60px;right:-60px;width:300px;height:300px;border-radius:50%;background:#ffffff0a;border:1px solid rgba(255,255,255,.08)}.auth-left:after{content:"";position:absolute;bottom:-80px;left:-40px;width:250px;height:250px;border-radius:50%;background:#ffffff08;border:1px solid rgba(255,255,255,.06)}.auth-left-inner{position:relative;z-index:1;max-width:340px;animation:fadeSlideUp .7s ease both}.brand-mark{display:inline-flex;margin-bottom:24px;animation:fadeSlideUp .6s ease both}.auth-left-text{margin-bottom:4px}.auth-brand-name{font-family:var(--font-display);font-size:2.4rem;font-weight:700;color:#fff;line-height:1;margin:0;letter-spacing:-.03em}.auth-brand-sub{font-size:.875rem;color:#ffffff8c;margin:6px 0 0;letter-spacing:.01em}.auth-left-divider{width:48px;height:2px;background:#ffffff40;border-radius:2px;margin:28px 0}.auth-left-tagline{font-size:1.05rem;color:#fffc;line-height:1.65;margin:0 0 28px;font-weight:300}.auth-features{list-style:none;padding:0;margin:0 0 40px;display:flex;flex-direction:column;gap:14px}.auth-features li{display:flex;align-items:center;gap:12px;color:#ffffffbf;font-size:.9rem;font-weight:400}.feature-icon{color:#60a5fa;font-size:.75rem;flex-shrink:0}.auth-left-footer{margin-top:auto}.auth-left-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);border-radius:100px;font-size:.75rem;color:#fff9;letter-spacing:.02em}.auth-right{flex:1;display:flex;align-items:center;justify-content:center;padding:48px 32px}.auth-card{background:var(--card-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:var(--radius-card);box-shadow:var(--shadow-card);border:1px solid rgba(255,255,255,.8);padding:44px 40px;width:100%;max-width:440px;animation:fadeSlideUp .5s ease both .1s}.register-card{max-width:480px}.auth-card-header{margin-bottom:28px}.auth-title{font-family:var(--font-display);font-size:1.875rem;font-weight:700;color:var(--text-primary);margin:0 0 6px;letter-spacing:-.03em}.auth-subtitle{font-size:.9rem;color:var(--text-secondary);margin:0;font-weight:400}.auth-error{display:flex;align-items:center;gap:10px;background:var(--error-bg);border:1px solid #fecaca;color:var(--error-color);padding:12px 16px;border-radius:10px;font-size:.875rem;margin-bottom:20px;animation:errorSlide .3s ease}@keyframes errorSlide{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.auth-form{display:flex;flex-direction:column;gap:18px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field-group{display:flex;flex-direction:column;gap:7px}.field-label{font-size:.825rem;font-weight:600;color:var(--text-primary);letter-spacing:.01em}.field-wrap{position:relative;display:flex;align-items:center}.field-icon{position:absolute;left:14px;color:var(--text-muted);pointer-events:none;transition:color .2s ease;z-index:1}.field-wrap:focus-within .field-icon{color:var(--primary-light)}.field-input{width:100%;padding:12px 14px 12px 44px;background:#f8faff;border:1.5px solid var(--border);border-radius:var(--radius-input);font-family:var(--font-body);font-size:.9rem;color:var(--text-primary);outline:none;transition:all .2s ease;box-sizing:border-box}.field-input--no-icon{padding-left:14px}.field-input::-moz-placeholder{color:var(--text-muted)}.field-input::placeholder{color:var(--text-muted)}.field-input:focus{border-color:var(--border-focus);background:#fff;box-shadow:0 0 0 3px var(--accent-glow)}.field-toggle{position:absolute;right:14px;background:none;border:none;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;padding:0;transition:color .2s ease}.field-toggle:hover{color:var(--primary-light)}.strength-meter{display:flex;align-items:center;gap:10px;margin-top:4px}.strength-bars{display:flex;gap:4px;flex:1}.strength-bar{height:3px;flex:1;border-radius:2px;transition:background .3s ease}.strength-label{font-size:.75rem;font-weight:600;min-width:40px;text-align:right;transition:color .3s ease}.role-selector{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:#f1f5f9;padding:5px;border-radius:14px}.role-pill{display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 16px;border-radius:10px;border:none;cursor:pointer;font-family:var(--font-body);font-size:.875rem;font-weight:500;color:var(--text-secondary);background:transparent;transition:all .22s ease}.role-pill:hover{background:#ffffffb3;color:var(--text-primary)}.role-pill--active{background:#fff;color:var(--primary-light);box-shadow:0 2px 12px #2563eb1f,0 1px 4px #0000000f}.auth-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 24px;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);color:#fff;border:none;border-radius:var(--radius-btn);font-family:var(--font-display);font-size:.95rem;font-weight:600;cursor:pointer;transition:all .22s ease;box-shadow:var(--shadow-btn);letter-spacing:.01em;margin-top:4px}.auth-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 32px #2563eb73}.auth-btn:active:not(:disabled){transform:translateY(0)}.auth-btn:disabled{opacity:.7;cursor:not-allowed}.btn-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.auth-switch{text-align:center;font-size:.875rem;color:var(--text-secondary);margin:22px 0 0}.auth-link{color:var(--primary-light);font-weight:600;text-decoration:none;transition:color .2s ease}.auth-link:hover{color:var(--primary);text-decoration:underline}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.auth-left{display:none}.auth-split{justify-content:center}.auth-right{padding:32px 16px}}@media(max-width:520px){.auth-card{padding:28px 20px;border-radius:14px}.field-row{grid-template-columns:1fr}}:root{--primary: #1a3a6e;--primary-light: #2563eb;--accent: #3b82f6;--bg: #f0f4ff;--sidebar-bg: #ffffff;--nav-bg: #ffffff;--card-bg: #ffffff;--text-primary: #0f172a;--text-secondary: #475569;--text-muted: #94a3b8;--border: #e8eef6;--sidebar-width: 248px;--nav-height: 68px;--font-display: "Sora", sans-serif;--font-body: "DM Sans", sans-serif}.dash-root{font-family:var(--font-body);display:flex;min-height:100vh;background:var(--bg);color:var(--text-primary)}.sidebar{width:var(--sidebar-width);background:var(--sidebar-bg);border-right:1px solid var(--border);display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;z-index:100;transition:transform .28s cubic-bezier(.4,0,.2,1)}.sidebar-overlay{display:none;position:fixed;inset:0;background:#0f172a59;z-index:99;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:20px 20px 18px;border-bottom:1px solid var(--border)}.sidebar-logo{display:flex;flex-shrink:0}.sidebar-brand-name{font-family:var(--font-display);font-size:1.05rem;font-weight:700;color:var(--primary);display:block;letter-spacing:-.02em;line-height:1.1}.sidebar-brand-sub{font-size:.7rem;color:var(--text-muted);display:block;margin-top:2px}.sidebar-nav{flex:1;padding:20px 12px;display:flex;flex-direction:column;gap:4px;overflow-y:auto}.sidebar-section-label{font-size:.68rem;font-weight:700;color:var(--text-muted);letter-spacing:.1em;text-transform:uppercase;padding:0 8px;margin:0 0 10px}.sidebar-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:10px;cursor:pointer;transition:all .18s ease;position:relative;font-size:.875rem;font-weight:500;color:var(--text-secondary)}.sidebar-item--active{background:#eff6ff;color:var(--primary-light)}.sidebar-item--active .sidebar-item-icon{color:var(--primary-light)}.sidebar-item--disabled{opacity:.5;cursor:not-allowed}.sidebar-item:not(.sidebar-item--disabled):not(.sidebar-item--active):hover{background:#f8faff;color:var(--text-primary)}.sidebar-item-icon{display:flex;flex-shrink:0;color:currentColor}.sidebar-item-label{flex:1}.sidebar-soon{font-size:.65rem;font-weight:700;color:var(--text-muted);background:#f1f5f9;padding:2px 7px;border-radius:100px;letter-spacing:.03em}.sidebar-footer{padding:16px 20px;border-top:1px solid var(--border)}.sidebar-sprint-badge{display:flex;align-items:center;gap:7px;font-size:.72rem;color:var(--text-muted);font-weight:500}.dash-main{flex:1;margin-left:var(--sidebar-width);display:flex;flex-direction:column;min-height:100vh}.dash-nav{height:var(--nav-height);background:var(--nav-bg);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:50;gap:16px}.dash-nav-left{display:flex;align-items:center;gap:12px}.hamburger{display:none;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--text-secondary);padding:6px;border-radius:8px;transition:background .2s ease}.hamburger:hover{background:#f1f5f9;color:var(--text-primary)}.dash-nav-title{font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--text-primary)}.dash-nav-right{display:flex;align-items:center;gap:16px}.nav-date{font-size:.8rem;color:var(--text-muted);white-space:nowrap}.nav-user{display:flex;align-items:center;gap:10px}.nav-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:.875rem;font-weight:700;flex-shrink:0}.nav-user-info{display:flex;flex-direction:column;align-items:flex-start}.nav-user-email{font-size:.8rem;font-weight:500;color:var(--text-primary);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-role-badge,.info-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:100px;font-size:.68rem;font-weight:700;letter-spacing:.03em}.badge--student{background:#dbeafe;color:#1d4ed8}.badge--lecturer{background:#ede9fe;color:#6d28d9}.logout-btn{display:flex;align-items:center;gap:7px;padding:8px 16px;background:none;border:1.5px solid #fecaca;color:#ef4444;border-radius:10px;font-family:var(--font-body);font-size:.825rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.logout-btn:hover{background:#fef2f2;border-color:#ef4444}.dash-content{flex:1;padding:36px 32px;display:flex;flex-direction:column;gap:24px;max-width:1100px;width:100%}.dash-greeting{animation:fadeSlideUp .4s ease both}.greeting-title{font-family:var(--font-display);font-size:1.875rem;font-weight:700;color:var(--text-primary);margin:0 0 6px;letter-spacing:-.03em}.greeting-name{background:linear-gradient(90deg,var(--primary) 0%,var(--primary-light) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.greeting-sub{font-size:.9rem;color:var(--text-secondary);margin:0}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;animation:fadeSlideUp .4s ease both .1s}.stat-card{background:var(--card-bg);border-radius:16px;padding:22px 22px 20px;border:1px solid var(--border);display:flex;align-items:flex-start;gap:16px;position:relative;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 8px 32px #1a3a6e1a}.stat-card-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-card--blue .stat-card-icon{background:#dbeafe;color:#1d4ed8}.stat-card--green .stat-card-icon{background:#d1fae5;color:#065f46}.stat-card--purple .stat-card-icon{background:#ede9fe;color:#5b21b6}.stat-card-content{flex:1}.stat-label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin:0 0 4px}.stat-value{font-family:var(--font-display);font-size:1.35rem;font-weight:700;color:var(--text-primary);margin:0 0 4px;letter-spacing:-.02em}.stat-desc{font-size:.75rem;color:var(--text-muted);margin:0}.stat-card-glow{position:absolute;top:-30px;right:-30px;width:90px;height:90px;border-radius:50%;opacity:.06}.stat-card--blue .stat-card-glow{background:#2563eb}.stat-card--green .stat-card-glow{background:#059669}.stat-card--purple .stat-card-glow{background:#7c3aed}.info-card{background:var(--card-bg);border-radius:16px;border:1px solid var(--border);overflow:hidden;animation:fadeSlideUp .4s ease both .2s}.info-card-header{padding:18px 24px;border-bottom:1px solid var(--border);background:#fafbff}.info-card-title{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:.95rem;font-weight:700;color:var(--text-primary)}.info-card-title svg{color:var(--primary-light)}.info-rows{display:flex;flex-direction:column}.info-row{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-bottom:1px solid var(--border);transition:background .15s ease}.info-row:hover{background:#fafbff}.info-row--last{border-bottom:none}.info-row-label{font-size:.825rem;font-weight:500;color:var(--text-muted)}.info-row-value{font-size:.875rem;font-weight:500;color:var(--text-primary)}.info-row-value-wrap{display:flex;align-items:center;gap:10px}.info-row-mono{font-family:Courier New,monospace;font-size:.825rem;color:var(--text-secondary)}.copy-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:#f1f5f9;border:none;border-radius:6px;cursor:pointer;color:var(--text-muted);transition:all .15s ease}.copy-btn:hover{background:#e2e8f0;color:var(--text-primary)}.welcome-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-light) 100%);border-radius:14px;padding:18px 22px;animation:fadeSlideUp .4s ease both .25s}.banner-content{display:flex;align-items:center;gap:16px}.banner-icon{font-size:1.5rem;flex-shrink:0}.banner-title{font-family:var(--font-display);font-size:.95rem;font-weight:700;color:#fff;margin:0 0 3px}.banner-sub{font-size:.8rem;color:#ffffffb3;margin:0}.banner-close{background:#ffffff1f;border:none;width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fffc;flex-shrink:0;transition:all .2s ease}.banner-close:hover{background:#ffffff38;color:#fff}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1024px){.stats-grid{grid-template-columns:repeat(2,1fr)}.nav-date{display:none}}@media(max-width:768px){.sidebar{transform:translate(-100%)}.nav-user-info{display:none}.sidebar--open{transform:translate(0)}.sidebar-overlay{display:block}.dash-main{margin-left:0}.hamburger{display:flex}.dash-content{padding:24px 16px}.stats-grid{grid-template-columns:1fr}.nav-user-info,.nav-date{display:none}}@media(max-width:480px){.dash-nav{padding:0 16px}.logout-btn span{display:none}.greeting-title{font-size:1.4rem}}.quick-nav-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;animation:fadeSlideUp .4s ease both .15s}.quick-nav-card{background:var(--card-bg);border-radius:14px;border:1px solid var(--border);padding:18px 20px;display:flex;align-items:center;gap:14px;cursor:pointer;transition:all .2s ease}.quick-nav-card:hover{transform:translateY(-2px);box-shadow:0 6px 24px #1a3a6e1a;border-color:#bfdbfe}.quick-nav-icon{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.quick-nav-icon--blue{background:#dbeafe;color:#1d4ed8}.quick-nav-icon--purple{background:#ede9fe;color:#5b21b6}.quick-nav-icon--green{background:#d1fae5;color:#065f46}.quick-nav-text{flex:1}.quick-nav-title{font-family:var(--font-display);font-size:.875rem;font-weight:700;color:var(--text-primary);margin:0 0 2px}.quick-nav-sub{font-size:.75rem;color:var(--text-muted);margin:0}.quick-nav-arrow{color:var(--text-muted);flex-shrink:0;transition:transform .2s ease,color .2s ease}.quick-nav-card:hover .quick-nav-arrow{transform:translate(3px);color:var(--primary-light)}@media(max-width:900px){.quick-nav-grid{grid-template-columns:1fr}}.setup-root{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f0f4ff;position:relative;overflow:hidden;font-family:DM Sans,sans-serif}.setup-bg{position:fixed;inset:0;pointer-events:none}.setup-orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.5}.setup-orb.orb-a{width:500px;height:500px;background:radial-gradient(#bfdbfe,#dbeafe);top:-150px;right:-100px}.setup-orb.orb-b{width:350px;height:350px;background:radial-gradient(#c7d2fe,#e0e7ff);bottom:-100px;left:-80px}.setup-center{position:relative;z-index:1;width:100%;max-width:480px;padding:24px}.setup-card{background:#ffffffeb;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:20px;box-shadow:0 20px 60px #1a3a6e1f;border:1px solid rgba(255,255,255,.8);padding:44px 40px;animation:fadeUp .5s ease both}.setup-icon{display:flex;justify-content:center;margin-bottom:20px}.setup-title{font-family:Sora,sans-serif;font-size:1.6rem;font-weight:700;color:#0f172a;text-align:center;margin:0 0 8px;letter-spacing:-.03em}.setup-sub{font-size:.9rem;color:#475569;text-align:center;margin:0 0 28px;line-height:1.6}.setup-error{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:12px 16px;border-radius:10px;font-size:.875rem;margin-bottom:20px}.setup-form{display:flex;flex-direction:column;gap:22px}.setup-field-group{display:flex;flex-direction:column;gap:10px}.setup-label{font-size:.825rem;font-weight:600;color:#0f172a}.setup-pills{display:flex;gap:10px;flex-wrap:wrap}.setup-pill{flex:1;padding:11px 16px;border-radius:10px;border:1.5px solid #e2e8f0;background:#f8faff;font-family:DM Sans,sans-serif;font-size:.875rem;font-weight:500;color:#475569;cursor:pointer;transition:all .2s ease}.setup-pill:hover{border-color:#2563eb;color:#2563eb}.setup-pill--active{background:#eff6ff;border-color:#2563eb;color:#2563eb;font-weight:700;box-shadow:0 0 0 3px #3b82f626}.setup-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;background:linear-gradient(135deg,#1a3a6e,#2563eb);color:#fff;border:none;border-radius:12px;font-family:Sora,sans-serif;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 8px 24px #2563eb59}.setup-btn:hover:not(:disabled){transform:translateY(-2px)}.setup-btn:disabled{opacity:.7;cursor:not-allowed}.setup-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.subjects-root{padding:36px 32px;font-family:DM Sans,sans-serif;max-width:1100px}.subjects-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:28px;gap:16px;flex-wrap:wrap}.subjects-title{font-family:Sora,sans-serif;font-size:1.875rem;font-weight:700;color:#0f172a;margin:0 0 6px;letter-spacing:-.03em}.subjects-sub{font-size:.9rem;color:#475569;margin:0}.subjects-header-actions{display:flex;gap:10px}.subjects-btn{padding:10px 20px;background:linear-gradient(135deg,#1a3a6e,#2563eb);color:#fff;border:none;border-radius:10px;font-family:Sora,sans-serif;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 16px #2563eb4d}.subjects-btn:hover{transform:translateY(-1px)}.subjects-btn-outline{padding:10px 20px;background:#fff;color:#2563eb;border:1.5px solid #bfdbfe;border-radius:10px;font-family:Sora,sans-serif;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.subjects-btn-outline:hover{background:#eff6ff}.subjects-form-card{background:#fff;border-radius:16px;border:1px solid #e8eef6;padding:24px;margin-bottom:24px;box-shadow:0 4px 20px #1a3a6e0f}.subjects-form-title{font-family:Sora,sans-serif;font-size:1rem;font-weight:700;color:#0f172a;margin:0 0 16px}.subjects-error{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:10px 14px;border-radius:8px;font-size:.875rem;margin-bottom:16px}.subjects-form{display:flex;flex-direction:column;gap:14px}.subjects-form-row{display:flex;gap:12px;flex-wrap:wrap}.subjects-field{display:flex;flex-direction:column;gap:6px;flex:1}.subjects-label{font-size:.8rem;font-weight:600;color:#0f172a}.subjects-input{padding:10px 13px;border:1.5px solid #e2e8f0;border-radius:10px;font-family:DM Sans,sans-serif;font-size:.875rem;color:#0f172a;background:#f8faff;outline:none;transition:all .2s}.subjects-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #3b82f626;background:#fff}.subjects-color-row{display:flex;align-items:center;gap:16px}.subjects-colors{display:flex;gap:8px}.subjects-color-btn{width:28px;height:28px;border-radius:50%;border:3px solid transparent;cursor:pointer;transition:all .2s}.subjects-color-btn--active{border-color:#1a3a6e;transform:scale(1.2);box-shadow:0 0 0 2px #fff,0 0 0 4px #1a3a6e}.subjects-loading,.subjects-empty{text-align:center;padding:60px;color:#94a3b8;font-size:.9rem}.subjects-empty p{margin:4px 0}.subjects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}.subject-card{background:#fff;border-radius:16px;border:1px solid #e8eef6;overflow:hidden;transition:all .2s ease;display:flex;flex-direction:column}.subject-card:hover{transform:translateY(-2px);box-shadow:0 8px 32px #1a3a6e1a}.subject-card-accent{height:5px;background:var(--sub-color)}.subject-card-body{padding:20px 20px 12px;flex:1}.subject-card-code{font-family:Courier New,monospace;font-size:.75rem;font-weight:700;color:var(--sub-color);background:color-mix(in srgb,var(--sub-color) 12%,transparent);padding:3px 9px;border-radius:6px}.subject-card-name{font-family:Sora,sans-serif;font-size:1rem;font-weight:700;color:#0f172a;margin:10px 0 6px;letter-spacing:-.02em}.subject-card-credits{font-size:.75rem;color:#94a3b8}.subject-card-btn{display:block;width:100%;padding:12px;background:#f8faff;border:none;border-top:1px solid #e8eef6;font-family:DM Sans,sans-serif;font-size:.825rem;font-weight:600;color:var(--sub-color);cursor:pointer;transition:all .2s}.subject-card-btn:hover{background:color-mix(in srgb,var(--sub-color) 8%,transparent)}@media(max-width:640px){.subjects-root{padding:24px 16px}.subjects-form-row{flex-direction:column}}.ws-root{padding:36px 32px;font-family:DM Sans,sans-serif;max-width:1100px}.ws-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:28px;gap:16px;flex-wrap:wrap}.ws-title{font-family:Sora,sans-serif;font-size:1.875rem;font-weight:700;color:#0f172a;margin:0 0 6px;letter-spacing:-.03em}.ws-sub{font-size:.9rem;color:#475569;margin:0}.ws-btn{padding:10px 20px;background:linear-gradient(135deg,#1a3a6e,#2563eb);color:#fff;border:none;border-radius:10px;font-family:Sora,sans-serif;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 4px 16px #2563eb4d}.ws-btn:hover{transform:translateY(-1px)}.ws-error{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:12px 16px;border-radius:10px;font-size:.875rem;margin-bottom:20px}.ws-form-card{background:#fff;border-radius:16px;border:1px solid #e8eef6;padding:24px;margin-bottom:24px;box-shadow:0 4px 20px #1a3a6e0f}.ws-form-title{font-family:Sora,sans-serif;font-size:1rem;font-weight:700;color:#0f172a;margin:0 0 16px}.ws-create-form{display:flex;flex-direction:column;gap:14px}.ws-form-row{display:flex;gap:12px;flex-wrap:wrap}.ws-field{display:flex;flex-direction:column;gap:6px;flex:1}.ws-label{font-size:.8rem;font-weight:600;color:#0f172a}.ws-input{padding:10px 13px;border:1.5px solid #e2e8f0;border-radius:10px;font-family:DM Sans,sans-serif;font-size:.875rem;color:#0f172a;background:#f8faff;outline:none;transition:all .2s}.ws-input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #3b82f626;background:#fff}.ws-loading{text-align:center;padding:60px;color:#94a3b8}.ws-loading-full{display:flex;align-items:center;justify-content:center;min-height:50vh}.ws-empty{text-align:center;padding:80px 40px;color:#94a3b8}.ws-empty-icon{font-size:2.5rem;margin-bottom:16px;opacity:.4}.ws-empty p{margin:4px 0;font-size:.9rem}.ws-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}.ws-card{background:#fff;border-radius:16px;border:1px solid #e8eef6;padding:22px;cursor:pointer;transition:all .2s ease;border-left:4px solid var(--ws-color)}.ws-card:hover{transform:translateY(-2px);box-shadow:0 8px 32px #1a3a6e1a}.ws-card-top{margin-bottom:12px}.ws-card-top--with-actions{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.ws-card-actions--minimal{display:inline-flex;align-items:center;gap:0;flex-shrink:0;margin:-2px 0 0}.ws-card-mini-btn{background:none;border:none;padding:2px 4px;margin:0;font-family:DM Sans,sans-serif;font-size:.68rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:#b4bcc6;cursor:pointer;transition:color .15s ease,opacity .15s ease;opacity:.85}.ws-card-mini-btn:hover{color:#7c8796;opacity:1}.ws-card-mini-btn:focus-visible{outline:1px solid #cbd5e1;outline-offset:2px;border-radius:2px}.ws-card-mini-btn--delete{color:#b8b2b2}.ws-card-mini-btn--delete:hover{color:#9a8f8f}.ws-card-mini-sep{color:#d1d5db;font-size:.65rem;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:0 1px}.ws-card:hover .ws-card-mini-btn{color:#94a3b8;opacity:1}.ws-card:hover .ws-card-mini-btn--delete{color:#a8a29e}.ws-card:hover .ws-card-mini-btn--delete:hover{color:#8b8181}.ws-card-code{font-family:Courier New,monospace;font-size:.75rem;font-weight:700;color:var(--ws-color);background:color-mix(in srgb,var(--ws-color) 12%,transparent);padding:3px 9px;border-radius:6px}.ws-card-name{font-family:Sora,sans-serif;font-size:1.05rem;font-weight:700;color:#0f172a;margin:0 0 6px}.ws-card-subject{font-size:.8rem;color:#64748b;margin:0 0 16px}.ws-card-footer{border-top:1px solid #f1f5f9;padding-top:12px}.ws-card-open{font-size:.825rem;font-weight:600;color:var(--ws-color)}.ws-detail-header{margin-bottom:28px}.ws-back-btn{background:none;border:none;color:#2563eb;font-family:DM Sans,sans-serif;font-size:.875rem;font-weight:600;cursor:pointer;padding:0;margin-bottom:16px;transition:color .2s}.ws-back-btn:hover{color:#1a3a6e}.ws-detail-desc{font-size:.9rem;color:#64748b;margin:6px 0 12px}.ws-detail-meta{display:flex;gap:10px;flex-wrap:wrap}.ws-meta-pill{display:inline-flex;align-items:center;padding:4px 12px;background:#f1f5f9;border-radius:100px;font-size:.775rem;color:#475569;font-weight:500}.ws-workspace-with-dock{box-sizing:border-box}.ws-chat-dock{position:fixed;top:var(--nav-height, 68px);right:0;bottom:0;z-index:1000;display:flex;flex-direction:column;background:#f8fafc;border-left:1px solid #e2e8f0;box-shadow:-6px 0 32px #0f172a12;transition:width .3s ease;overflow:hidden;max-width:min(420px,calc(100vw - 48px))}.ws-chat-dock--collapsed{max-width:56px}.ws-chat-dock-inner{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.ws-chat-dock-toggle{position:absolute;left:0;top:50%;transform:translate(-50%,-50%);z-index:3;width:36px;height:36px;border-radius:50%;border:1px solid #e2e8f0;background:#fff;box-shadow:0 4px 14px #0f172a1f;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#475569;font-size:1.1rem;font-weight:700;line-height:1;padding:0;transition:background .2s ease,color .2s ease}.ws-chat-dock-toggle:hover{background:#eff6ff;color:#2563eb}.ws-chat-dock-toggle-icon{display:block;margin-top:-1px}.ws-chat-dock-collapsed{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:12px 4px;pointer-events:none}.ws-chat-dock-collapsed-emoji{font-size:1.35rem;opacity:.9}.ws-chat-dock-collapsed-text{font-family:Sora,sans-serif;font-size:.7rem;font-weight:700;color:#64748b;writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:.12em;text-transform:uppercase}.ws-coming-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px;margin-top:8px}.ws-coming-card{background:#fafbff;border-radius:16px;border:1px dashed #e2e8f0;padding:28px 22px;display:flex;flex-direction:column;align-items:center;text-align:center}.ws-coming-icon{font-size:2rem;margin-bottom:12px}.ws-coming-title{font-family:Sora,sans-serif;font-size:.95rem;font-weight:700;color:#0f172a;margin:0 0 8px}.ws-coming-desc{font-size:.825rem;color:#94a3b8;margin:0;line-height:1.6}@media(max-width:768px){.ws-root{padding:24px 16px}.ws-coming-grid{grid-template-columns:1fr 1fr}}@media(max-width:480px){.ws-coming-grid{grid-template-columns:1fr}}.ws-btn--sm{padding:6px 12px;font-size:.8rem;box-shadow:none}.ws-btn--ghost{background:#fff;color:#2563eb;border:1.5px solid #bfdbfe;box-shadow:none}.ws-btn--ghost:hover{background:#eff6ff}.ws-btn.ws-btn--ghost-danger{background:#fff;color:#dc2626;border:1.5px solid #f87171;box-shadow:none}.ws-btn.ws-btn--ghost-danger:hover{background:#fef2f2;color:#b91c1c;border-color:#ef4444}.ws-btn--danger{background:linear-gradient(135deg,#991b1b,#dc2626);box-shadow:0 4px 16px #dc262640}.ws-btn--danger-confirm{animation:ws-pulse .6s ease}@keyframes ws-pulse{0%,to{transform:translateY(0)}50%{transform:translateY(-1px)}}.ws-modal-backdrop{position:fixed;inset:0;z-index:2000;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:24px;box-sizing:border-box}.ws-modal{width:100%;max-width:480px;max-height:min(90vh,720px);overflow:auto;margin:0}.ws-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.ws-modal-close{background:none;border:none;font-size:1.5rem;line-height:1;color:#94a3b8;cursor:pointer;padding:0 4px}.ws-modal-close:hover{color:#0f172a}.ws-modal-actions{margin-top:4px}.ws-danger-zone{margin-top:24px;padding-top:20px;border-top:1px solid #fecaca}.ws-danger-label{font-size:.8rem;font-weight:700;color:#991b1b;margin:0 0 6px}.ws-danger-hint{font-size:.78rem;color:#94a3b8;margin:0 0 12px;line-height:1.5}.ws-btn-text{margin-left:10px;background:none;border:none;color:#64748b;font-size:.85rem;cursor:pointer;text-decoration:underline}.ws-btn-text:hover{color:#0f172a}.goals-btn{display:inline-flex;align-items:center;gap:7px;padding:10px 18px;border:none;border-radius:10px;font-family:Sora,sans-serif;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.goals-btn:disabled{opacity:.45;cursor:not-allowed;transform:none!important}.goals-btn--ai{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;box-shadow:0 4px 16px #4f46e559}.goals-btn--ai:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 24px #4f46e573}.goals-btn--guidance{background:linear-gradient(135deg,#0ea5e9,#2563eb);color:#fff;box-shadow:0 4px 14px #0ea5e959}.goals-btn--guidance:hover:not(:disabled){transform:translateY(-1px)}.goals-btn--create{background:linear-gradient(135deg,#059669,#10b981);color:#fff;padding:12px 28px;font-size:.9rem;box-shadow:0 4px 16px #05966959}.goals-btn--create:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 24px #05966973}.goals-card{background:#fff;border-radius:16px;border:1px solid #e8eef6;box-shadow:0 4px 20px #1a3a6e0f;overflow:hidden;animation:goalsFadeIn .3s ease both}.goals-card-header{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;background:#fafbff;border-bottom:1px solid #e8eef6}.goals-close-btn{background:none;border:none;color:#94a3b8;cursor:pointer;font-size:1rem;width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .15s}.goals-close-btn:hover{background:#f1f5f9;color:#ef4444}.goals-ai-icon{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;box-shadow:0 3px 10px #4f46e559}.goals-ai-icon-sm{color:#4f46e5;font-size:1rem}.goals-ai-banner{padding:12px 24px;background:linear-gradient(to right,#eef2ff,#f5f3ff);border-bottom:1px solid #c7d2fe;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.goals-ai-quality{display:flex;align-items:center;gap:10px}.goals-ai-quality-bar-track{width:100px;height:6px;background:#e0e7ff;border-radius:100px;overflow:hidden}.goals-ai-quality-bar{height:6px;border-radius:100px;transition:width .6s ease}.goals-ai-tag{display:inline-flex;align-items:center;padding:1px 7px;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border-radius:100px;font-size:.6rem;font-weight:700;letter-spacing:.05em;margin-left:6px;vertical-align:middle}.goals-upload-zone{border:2px dashed #c7d2fe;border-radius:14px;background:#f5f7ff;padding:44px 24px;text-align:center;cursor:pointer;transition:all .22s ease;-webkit-user-select:none;-moz-user-select:none;user-select:none}.goals-upload-zone:hover,.goals-upload-zone--active{border-color:#6366f1;background:#eef2ff;transform:scale(1.005)}.goals-upload-icon{width:64px;height:64px;border-radius:16px;background:#e0e7ff;color:#4f46e5;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;transition:background .2s}.goals-upload-zone:hover .goals-upload-icon,.goals-upload-zone--active .goals-upload-icon{background:#c7d2fe}.goals-upload-title{margin:0 0 6px;font-family:Sora,sans-serif;font-size:1rem;font-weight:700;color:#0f172a}.goals-upload-sub{margin:0 0 16px;font-size:.875rem;color:#64748b}.goals-upload-badges{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}.goals-badge{padding:3px 10px;background:#e0e7ff;color:#4338ca;border-radius:100px;font-size:.72rem;font-weight:700;letter-spacing:.03em}.goals-badge--light{background:#f1f5f9;color:#64748b}.goals-processing{display:flex;align-items:center;gap:24px;padding:36px 24px}.goals-processing-spinner{position:relative;width:64px;height:64px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.goals-spinner-ring{position:absolute;inset:0;border-radius:50%;border:3px solid #e0e7ff;border-top-color:#6366f1;animation:goalsSpinRing 1s linear infinite}.goals-ai-pulse{font-size:1.4rem;color:#6366f1;animation:goalsAiPulse 1.8s ease-in-out infinite}.goals-processing-title{margin:0 0 4px;font-family:Sora,sans-serif;font-size:1.05rem;font-weight:700;color:#0f172a}.goals-processing-sub{margin:0 0 4px;font-size:.875rem;color:#334155}.goals-processing-hint{margin:0;font-size:.78rem;color:#94a3b8;font-style:italic}.goals-section-label{display:flex;align-items:center;gap:8px;font-size:.75rem;font-weight:700;color:#1d4ed8;letter-spacing:.07em;text-transform:uppercase;margin-bottom:14px}.goals-step-count{background:#dbeafe;color:#1d4ed8;padding:2px 8px;border-radius:100px;font-size:.68rem;font-weight:700;margin-left:auto}.goals-steps-list{display:flex;flex-direction:column;gap:10px;max-height:340px;overflow-y:auto;padding-right:4px;scrollbar-width:thin;scrollbar-color:#e2e8f0 transparent}.goals-step-item{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;background:#f8faff;border:1px solid #e8eef6;border-radius:10px;transition:border-color .15s}.goals-step-item:hover{border-color:#bfdbfe}.goals-step-number{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,#1d4ed8,#2563eb);color:#fff;font-size:.72rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:Sora,sans-serif}.goals-step-number--sm{width:22px;height:22px;font-size:.65rem;border-radius:6px}.goals-step-text{margin:0;font-size:.875rem;color:#334155;line-height:1.6}.goals-submission-box{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;padding:14px 16px;font-size:.875rem;color:#166534;line-height:1.65}.goals-guidance-empty{text-align:center;padding:24px;color:#94a3b8;font-size:.875rem;font-style:italic}.goals-goal-card{background:#fff;border-radius:14px;border:1px solid #e8eef6;overflow:hidden;transition:all .2s ease;animation:goalsFadeIn .25s ease both}.goals-goal-card:hover{box-shadow:0 6px 24px #1a3a6e14;border-color:#cbd5e1}.goals-goal-main{padding:18px 20px;display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.goals-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;margin-top:4px}.goals-goal-name{margin:0;font-family:Sora,sans-serif;font-size:1rem;font-weight:700;color:#0f172a}.goals-semester-tag{display:inline-flex;align-items:center;padding:2px 9px;background:#eef2ff;color:#4338ca;border-radius:100px;font-size:.7rem;font-weight:700}.goals-ai-indicator{display:inline-flex;align-items:center;padding:2px 8px;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border-radius:100px;font-size:.65rem;font-weight:700;letter-spacing:.03em}.goals-goal-desc{margin:6px 0 10px 20px;font-size:.825rem;color:#64748b;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.goals-goal-meta{display:flex;gap:18px;margin-left:20px;flex-wrap:wrap}.goals-meta-item{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;color:#94a3b8;font-weight:500}.goals-goal-guidance{padding:16px 20px;border-top:1px dashed #e2e8f0;background:#fafbff;animation:goalsFadeIn .2s ease both}.goals-guidance-section-title{margin:0 0 10px;font-size:.78rem;font-weight:700;color:#475569;letter-spacing:.04em;text-transform:uppercase}.goals-inline-step{display:flex;gap:10px;align-items:flex-start;margin-bottom:8px}.goals-error-msg{display:flex;align-items:center;gap:8px;margin-top:14px;padding:10px 14px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;font-size:.825rem;color:#dc2626}@keyframes goalsFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes goalsSpinRing{to{transform:rotate(360deg)}}@keyframes goalsAiPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.85)}}.gc-container{margin-top:0;background:#fff;border-radius:18px;border:1px solid #e2e8f0;box-shadow:0 4px 24px #0f172a0f;display:flex;flex-direction:column;height:min(520px,70vh);min-height:360px;overflow:hidden;font-family:DM Sans,system-ui,sans-serif}.gc-container--dock{flex:1;min-height:0;height:auto;max-height:none;border-radius:0;border:none;box-shadow:none}.gc-header{background:linear-gradient(135deg,#eff6ff,#f0fdf4);padding:14px 18px;display:flex;align-items:center;gap:12px;border-bottom:1px solid #e2e8f0;flex-shrink:0}.gc-header-icon{width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#3b82f6,#22c55e);display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:0 4px 12px #3b82f640}.gc-header-title{margin:0;font-size:1rem;font-weight:700;color:#0f172a;font-family:Sora,sans-serif}.gc-header-sub{margin:2px 0 0;font-size:.8rem;color:#64748b}.gc-messages{flex:1;overflow-y:auto;padding:16px 16px 10px;background:linear-gradient(180deg,#f8fafc,#f1f5f9);scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}.gc-messages::-webkit-scrollbar{width:6px}.gc-messages::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:6px}.gc-msg{display:flex;gap:10px;margin-bottom:12px;animation:gc-fadein .2s ease}.gc-msg--mine{flex-direction:row-reverse}@keyframes gc-fadein{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.gc-avatar{width:34px;height:34px;min-width:34px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;align-self:flex-end;margin-bottom:2px;text-transform:uppercase;letter-spacing:.02em;border:2px solid rgba(255,255,255,.9);box-shadow:0 2px 8px #0f172a14}.gc-avatar--other{background:linear-gradient(135deg,#818cf8,#6366f1)}.gc-avatar--mine{background:linear-gradient(135deg,#38bdf8,#2563eb)}.gc-bubble{max-width:78%;padding:10px 14px;border-radius:16px;line-height:1.5}.gc-bubble--other{background:#fff;border:1px solid #e2e8f0;border-bottom-left-radius:6px;box-shadow:0 1px 3px #0f172a0d}.gc-bubble--mine{background:linear-gradient(135deg,#3b82f6,#2563eb);border-bottom-right-radius:6px;color:#fff;box-shadow:0 4px 14px #2563eb40}.gc-sender{margin:0 0 4px;font-size:.7rem;font-weight:700;color:#475569;letter-spacing:.02em}.gc-text{margin:0;font-size:.875rem;color:#1e293b;white-space:pre-wrap;word-break:break-word}.gc-msg--mine .gc-text{color:#f8fafc}.gc-time{display:block;font-size:.65rem;color:#94a3b8;margin-top:6px;text-align:right}.gc-msg--mine .gc-time{color:#ffffffd9;text-align:left}.gc-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:32px 20px}.gc-empty-icon{font-size:2.5rem;margin-bottom:12px;filter:grayscale(.2)}.gc-empty-title{margin:0 0 6px;font-size:1rem;font-weight:700;color:#334155;font-family:Sora,sans-serif}.gc-empty-sub{margin:0;font-size:.85rem;color:#64748b;line-height:1.55;max-width:280px}.gc-input-wrap{display:flex;align-items:flex-end;gap:10px;padding:12px 14px;border-top:1px solid #e2e8f0;background:#fff;flex-shrink:0}.gc-input{flex:1;background:#f8fafc;border:1.5px solid #e2e8f0;border-radius:14px;padding:10px 14px;font-size:.875rem;color:#0f172a;resize:none;outline:none;font-family:inherit;line-height:1.5;max-height:120px;overflow-y:auto;transition:border-color .2s,box-shadow .2s}.gc-input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626;background:#fff}.gc-input::-moz-placeholder{color:#94a3b8}.gc-input::placeholder{color:#94a3b8}.gc-input:disabled{opacity:.65;cursor:not-allowed}.gc-send-btn{width:44px;height:44px;min-width:44px;border-radius:14px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:opacity .15s,transform .15s;box-shadow:0 4px 14px #2563eb4d}.gc-send-btn:hover:not(:disabled){transform:translateY(-1px)}.gc-send-btn:disabled{opacity:.45;cursor:not-allowed;transform:none}.gc-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:12px}.gc-spinner{width:32px;height:32px;border:3px solid #e2e8f0;border-top:3px solid #3b82f6;border-radius:50%;animation:gc-spin .75s linear infinite}@keyframes gc-spin{to{transform:rotate(360deg)}}.gc-loading-text{font-size:.875rem;color:#64748b}.gc-error{background:#fef2f2;border:1px solid #fecaca;border-radius:10px;padding:10px 12px;font-size:.8rem;color:#b91c1c;margin:8px 0}.gc-date-sep{display:flex;align-items:center;gap:12px;margin:14px 0}.gc-date-sep:before,.gc-date-sep:after{content:"";flex:1;height:1px;background:#cbd5e1}.gc-date-label{font-size:.65rem;color:#64748b;font-weight:600;letter-spacing:.06em;text-transform:uppercase}@media(max-width:768px){.gc-container:not(.gc-container--dock){min-height:320px;height:min(480px,65vh);border-radius:16px}.gc-bubble{max-width:88%}}
