@import url("https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap");:root{--primary:#3b82f6;--primary-hover:#2563eb;--bg-main:#f8fafc;--card-bg:#ffffff;--text-main:#1e293b;--text-muted:#64748b;--text-placeholder:#94a3b8;--border:#e2e8f0;--input-bg:#ffffff;--toggle-inactive:#f1f5f9;--radius-lg:16px;--radius-md:12px;--radius-sm:8px;--transition:all 0.3s cubic-bezier(0.4,0,0.2,1);--shadow-premium:0 20px 25px -5px rgba(0,0,0,0.05),0 8px 10px -6px rgba(0,0,0,0.05)}*,:after,:before{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{font-family:Outfit,sans-serif;background-color:var(--bg-main);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}.login-page{min-height:100vh;justify-content:center;position:relative;overflow:hidden;padding:1rem}.login-container,.login-page{width:100%;display:flex;align-items:center}.login-container{max-width:440px;padding:1.5rem;flex-direction:column;gap:1.5rem;animation:fadeIn .8s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.header-logo{position:absolute;top:1.25rem;left:1.25rem;display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:1.125rem;color:var(--text-main)}.header-logo svg{width:22px;height:22px;color:var(--primary)}.login-titles{text-align:center;display:flex;flex-direction:column;gap:.5rem}.login-titles h1{font-size:clamp(1.5rem,5vw,1.875rem);font-weight:600;letter-spacing:-.025em}.login-titles p{color:var(--text-muted);font-size:.9375rem}.login-card{background:var(--card-bg);width:100%;padding:clamp(1.5rem,5vw,2.5rem);border-radius:var(--radius-lg);box-shadow:var(--shadow-premium);display:flex;flex-direction:column;gap:1.25rem;border:1px solid rgba(255,255,255,.8)}.role-toggle{display:flex;background:var(--toggle-inactive);padding:4px;border-radius:var(--radius-md)}.role-toggle button{flex:1 1;padding:.625rem .5rem;border:none;background:transparent;font-family:inherit;font-size:.875rem;font-weight:500;cursor:pointer;z-index:1;display:flex;align-items:center;justify-content:center;gap:.4rem;color:var(--text-muted);transition:var(--transition);white-space:nowrap}.role-toggle button.active{color:var(--text-main);background:var(--card-bg);box-shadow:0 4px 6px -1px rgba(0,0,0,.05);border-radius:calc(var(--radius-md) - 2px)}.input-group{display:flex;flex-direction:column;gap:.5rem}.input-group label{font-size:.875rem;font-weight:500;color:var(--text-main)}.input-group input{width:100%;padding:.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:inherit;font-size:1rem;outline:none;transition:var(--transition);background:var(--input-bg);-webkit-appearance:none;-moz-appearance:none;appearance:none}.input-group input:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(59,130,246,.1)}.input-group input::placeholder{color:var(--text-placeholder)}.signin-button{width:100%;padding:.875rem;background-color:var(--primary);color:white;border:none;border-radius:var(--radius-sm);font-family:inherit;font-size:1rem;font-weight:600;cursor:pointer;transition:var(--transition);margin-top:.25rem;touch-action:manipulation}.signin-button:hover{background-color:var(--primary-hover);transform:translateY(-1px)}.signin-button:active{transform:translateY(0)}.signin-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.central-icon{width:52px;height:52px;color:var(--primary);background:#eff6ff;padding:11px;border-radius:var(--radius-md);margin-bottom:-.75rem}.central-icon svg{width:100%;height:100%}.footer-note{text-align:center;font-size:.75rem;color:var(--text-muted);line-height:1.5}.error-box{display:flex;gap:.75rem;padding:.875rem 1rem;background-color:#fef2f2;border:1px solid #fecaca;border-radius:var(--radius-sm);margin-bottom:1rem;color:#dc2626}.error-box svg{flex-shrink:0;color:#dc2626;width:18px;height:18px;margin-top:1px}.error-box p{margin:0;font-size:.875rem;line-height:1.5}.success-box{display:flex;gap:.75rem;padding:.875rem 1rem;background-color:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--radius-sm);margin-bottom:1rem;color:#16a34a}.success-box p{margin:0;font-size:.875rem;line-height:1.5}.info-box{display:flex;gap:1rem;padding:.875rem 1rem;background-color:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--radius-sm);margin-top:1.25rem;color:#065f46}.info-box svg{flex-shrink:0;color:#10b981;width:18px;height:18px;margin-top:1px}.info-box>div{flex:1 1}.info-title{margin:0 0 .25rem;font-weight:600;font-size:.875rem}.info-text{margin:0;font-size:.8125rem;line-height:1.5;opacity:.9}.demo-section{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--border)}.demo-label{font-size:.75rem;font-weight:600;color:#6b7280;margin:0 0 .625rem;text-transform:uppercase;letter-spacing:.05em}.demo-buttons{display:flex;gap:.625rem;flex-wrap:wrap}.demo-btn{flex:1 1;min-width:120px;padding:.75rem 1rem;border:1px solid #d1d5db;border-radius:var(--radius-sm);font-family:inherit;font-size:.875rem;font-weight:500;cursor:pointer;transition:var(--transition);display:flex;align-items:center;justify-content:center;gap:.5rem;background-color:#f9fafb;color:#374151;touch-action:manipulation}.demo-btn svg{width:16px;height:16px;flex-shrink:0}.demo-btn:hover:not(:disabled){background-color:#f3f4f6;border-color:#9ca3af}.demo-btn:disabled{opacity:.6;cursor:not-allowed}.demo-intern{border-color:#bfdbfe;background-color:#eff6ff;color:#1e40af}.demo-intern:hover:not(:disabled){background-color:#dbeafe;border-color:#93c5fd}.demo-supervisor{border-color:#fcd34d;background-color:#fef3c7;color:#92400e}.demo-supervisor:hover:not(:disabled){background-color:#fce7a0;border-color:#fbbf24}.dashboard-container{display:flex;min-height:100vh;width:100%;background-color:var(--bg-main)}.sidebar{width:260px;background:white;border-right:1px solid var(--border);display:flex;flex-direction:column;padding:1.5rem 0;position:-webkit-sticky;position:sticky;top:0;height:100vh;flex-shrink:0;transition:transform .3s ease,width .3s ease;z-index:100}.sidebar-logo{padding:0 1.5rem 1.75rem;display:flex;align-items:center;gap:.75rem;font-weight:700;font-size:1.125rem;color:var(--text-main)}.sidebar-logo svg{width:22px;height:22px;color:var(--primary);flex-shrink:0}.menu-section{flex:1 1;padding:0 .75rem;overflow-y:auto}.menu-label{font-size:.6875rem;font-weight:600;color:var(--text-placeholder);text-transform:uppercase;letter-spacing:.06em;padding:0 .75rem .625rem}.menu-item{display:flex;align-items:center;gap:.75rem;padding:.6875rem .75rem;border-radius:var(--radius-sm);color:var(--text-muted);text-decoration:none;font-size:.9375rem;font-weight:500;transition:var(--transition);cursor:pointer;white-space:nowrap;overflow:hidden}.menu-item:hover{background:var(--bg-main);color:var(--text-main)}.menu-item svg{width:20px;height:20px;flex-shrink:0}.menu-item.active{background:#eff6ff;color:var(--primary)}.sidebar-footer{padding:1.25rem 1.5rem;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:1rem}.user-profile{gap:.75rem;min-width:0}.user-avatar,.user-profile{display:flex;align-items:center}.user-avatar{width:36px;height:36px;background:#eff6ff;color:var(--primary);border-radius:50%;justify-content:center;flex-shrink:0}.user-info{display:flex;flex-direction:column;min-width:0}.user-name{font-size:.875rem;font-weight:600;color:var(--text-main)}.user-name,.user-role{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.75rem;color:var(--text-muted)}.user-email{display:block;color:#6b7280;font-size:.75rem;word-break:break-all}.sign-out{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--text-muted);text-decoration:none;cursor:pointer;transition:var(--transition)}.sign-out:hover{color:#ef4444}.main-content{flex:1 1;padding:clamp(1.5rem,4vw,3rem);min-width:0;width:100%;max-width:1200px;margin:0 auto}.dashboard-header h1{font-size:clamp(1.5rem,4vw,2rem);font-weight:700;margin-bottom:.375rem}.dashboard-header p{color:var(--text-muted);font-size:.9375rem}.dashboard-grid{display:grid;grid-template-columns:1fr 340px;grid-gap:1.75rem;gap:1.75rem;margin-top:2rem;align-items:start}.report-card{background:white;padding:clamp(1.25rem,3vw,2rem);border-radius:var(--radius-lg);border:1px solid var(--border);gap:1.25rem}.form-group,.report-card{display:flex;flex-direction:column}.form-group{gap:.875rem}.form-group label{font-size:.9375rem;font-weight:600}.form-group textarea{width:100%;min-height:180px;padding:1rem 1.125rem;border:1px solid var(--border);border-radius:var(--radius-md);font-family:inherit;font-size:.9375rem;color:var(--text-main);resize:vertical;background:#fdfdfd;outline:none;transition:var(--transition)}.form-group textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(59,130,246,.1)}.upload-zone{border:2px dashed var(--border);border-radius:var(--radius-md);padding:clamp(1.5rem,4vw,2.5rem);text-align:center;display:flex;flex-direction:column;align-items:center;gap:.625rem;transition:var(--transition);cursor:pointer}.upload-zone:hover{border-color:var(--primary);background:#f8fafc}.upload-icon{color:var(--text-placeholder);margin-bottom:.25rem}.upload-text{font-size:.9375rem;color:var(--text-muted)}.upload-text span{color:var(--primary);font-weight:500}.upload-hint{font-size:.75rem;color:var(--text-placeholder)}.report-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;margin-top:.75rem}.late-submission{display:flex;align-items:center;gap:.5rem;color:var(--text-muted)}.late-submission,.submit-btn{font-size:.9375rem;cursor:pointer}.submit-btn{background:#eff6ff;color:var(--primary);padding:.75rem 1.75rem;border-radius:var(--radius-md);border:none;font-family:inherit;font-weight:600;transition:var(--transition);touch-action:manipulation}.submit-btn:hover{background:#dbeafe}.info-column{display:flex;flex-direction:column;gap:1.25rem}.info-card{background:white;padding:1.25rem 1.5rem;border-radius:var(--radius-lg);border:1px solid var(--border)}.info-header{display:flex;align-items:center;gap:.75rem;font-weight:600;margin-bottom:1rem}.info-item{display:flex;gap:.875rem}.info-item-content h4{font-size:.9375rem;font-weight:600;margin-bottom:.25rem}.info-item-content p{font-size:.8125rem;color:var(--text-muted);line-height:1.45}.alert-box{background:#f0f7ff;padding:1rem 1.125rem;border-radius:var(--radius-md);display:flex;gap:.75rem;margin-top:1.25rem}.alert-box svg{color:var(--primary);flex-shrink:0}.alert-box p{font-size:.8125rem;color:var(--primary);line-height:1.6;font-weight:500}.history-list{margin-top:1.75rem}.history-list,.submission-card{display:flex;flex-direction:column;gap:1.25rem}.submission-card{background:white;border:1px solid var(--border);border-radius:var(--radius-lg);padding:clamp(1.25rem,3vw,1.75rem);transition:var(--transition)}.submission-card:hover{border-color:var(--primary);box-shadow:var(--shadow-premium)}.submission-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;flex-wrap:wrap}.submission-date{display:flex;align-items:center;gap:.625rem;font-weight:600;color:var(--text-main);font-size:.9375rem}.submission-date span{color:var(--text-muted);font-weight:400}.status-badge{padding:.25rem .6875rem;border-radius:999px;font-size:.75rem;font-weight:600;display:flex;align-items:center;gap:.375rem;white-space:nowrap}.status-badge.on-time{background:#f0fdf4;color:#166534}.status-badge.late{background:#fef2f2;color:#b91c1c}.status-badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.report-section-label{font-size:.75rem;font-weight:700;color:var(--text-placeholder);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.625rem}.report-body{font-size:.9375rem;line-height:1.6;color:var(--text-main)}.ai-summary-box{background:#f8fafc;border-radius:var(--radius-md);padding:1rem 1.125rem;display:flex;flex-direction:column;gap:.625rem}.ai-summary-header{display:flex;align-items:center;gap:.5rem;font-size:.8125rem;font-weight:600;color:var(--text-main)}.ai-summary-icon{color:#fbbf24}.ai-summary-text{font-size:.875rem;color:var(--text-muted);line-height:1.5}.tag-container{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.25rem}.tag{background:#eff6ff;color:#2563eb;padding:.1875rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:1.25rem;gap:1.25rem;margin-top:1.75rem}.stat-card{background:white;padding:1.25rem;border-radius:var(--radius-lg);border:1px solid var(--border);gap:1rem}.stat-card,.stat-icon{display:flex;align-items:center}.stat-icon{width:44px;height:44px;border-radius:var(--radius-md);justify-content:center;flex-shrink:0}.stat-info{display:flex;flex-direction:column;min-width:0}.stat-label{font-size:.75rem;color:var(--text-muted);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-value{font-size:1.5rem;font-weight:700;color:var(--text-main);line-height:1.2}.charts-grid{display:grid;grid-template-columns:1fr 1.5fr;grid-gap:1.75rem;gap:1.75rem;margin-top:1.75rem}.chart-card{background:white;padding:clamp(1.25rem,3vw,2rem);border-radius:var(--radius-lg);border:1px solid var(--border);height:360px;display:flex;flex-direction:column}.chart-header{font-weight:600;font-size:.9375rem;margin-bottom:1.5rem}.donut-chart-container{flex:1 1;flex-direction:column;gap:1.5rem}.donut-chart,.donut-chart-container{display:flex;align-items:center;justify-content:center}.donut-chart{width:130px;height:130px;border-radius:50%;background:conic-gradient(#10b981 0 45%,#ef4444 45% 75%,#f59e0b 75% 100%);position:relative;flex-shrink:0}.donut-chart:after{content:"";width:75px;height:75px;background:white;border-radius:50%}.chart-legend{display:flex;gap:.875rem;font-size:.8125rem;flex-wrap:wrap;justify-content:center}.legend-item{display:flex;align-items:center;gap:.375rem;color:var(--text-muted)}.legend-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}.bar-chart-container{flex:1 1;display:flex;align-items:flex-end;justify-content:space-around;padding-top:1rem;gap:.75rem}.bar-group{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:.625rem;height:100%;justify-content:flex-end}.bar{width:100%;max-width:56px;background:#fca5a5;border-radius:4px 4px 0 0;transition:var(--transition)}.bar:hover{background:#ef4444}.bar-label{font-size:.6875rem;color:var(--text-placeholder);white-space:nowrap}.supervisor-list-header{display:flex;justify-content:space-between;align-items:center;margin-top:2.5rem;flex-wrap:wrap;gap:1rem}.view-all-link{color:var(--primary);font-size:.875rem;font-weight:500;text-decoration:none;cursor:pointer;white-space:nowrap}.search-container{position:relative;width:280px;max-width:100%}.search-input{width:100%;padding:.5625rem 1rem .5625rem 2.375rem;border:1px solid var(--border);border-radius:var(--radius-md);font-family:inherit;font-size:.875rem;outline:none;background:#fff;transition:var(--transition)}.search-input:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(59,130,246,.1)}.search-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--text-placeholder);pointer-events:none}.intern-avatar{width:38px;height:38px;border-radius:50%;background:#eff6ff;color:var(--primary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8125rem;flex-shrink:0}.landing-page{display:grid;grid-template-rows:minmax(500px,46dvh) 1fr auto}.landing-hero{background:#d8e7f3;flex-direction:column;justify-content:center;padding:1.5rem 1.25rem;position:relative;overflow:hidden}.landing-brand,.landing-hero{display:flex;align-items:center}.landing-brand{position:absolute;top:1.25rem;gap:.375rem;font-weight:700;font-size:1rem;color:#1f2937}.landing-brand svg{width:18px;height:18px;color:#3b82f6;flex-shrink:0}.landing-hero-content{margin-top:150px;max-width:700px;text-align:center;padding:0 1rem}.landing-hero-content h1{font-size:clamp(1.75rem,5.5vw,3.35rem);line-height:1.1;color:#0f172a;letter-spacing:-.02em}.landing-hero-content h1 span{color:#4f95cf}.landing-hero-content p{margin:1rem auto 0;max-width:540px;color:#5b6775;line-height:1.6;font-size:.9375rem}.landing-actions{margin-top:1.375rem;display:flex;gap:.625rem;justify-content:center;flex-wrap:wrap}.landing-btn{border:1px solid transparent;border-radius:10px;padding:.6875rem 1.125rem;font-family:inherit;font-weight:600;font-size:.875rem;cursor:pointer;transition:var(--transition);display:inline-flex;align-items:center;gap:.375rem;touch-action:manipulation}.landing-btn.primary{background:#4999d9;color:white}.landing-btn.primary:hover{background:#3e89c5}.landing-btn.secondary{background:#eef0f2;color:#334155;border-color:#d8dee4}.landing-btn.secondary:hover{background:#e4e8ec}.landing-features{max-width:1100px;width:100%;margin:0 auto;padding:clamp(1rem,3vw,2rem) 1.25rem;align-self:center}.landing-features h2{text-align:center;font-size:clamp(1.5rem,4vw,1.95rem);margin-bottom:1rem;margin-top:clamp(2rem,8vw,6rem);color:#1f2937}.landing-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:1rem;gap:1rem}.landing-feature-card{background:white;border:1px solid #e5e7eb;border-radius:12px;padding:1rem;text-align:center;margin-bottom:clamp(1rem,4vw,3rem)}.landing-feature-icon{width:40px;height:40px;margin:0 auto .625rem;border-radius:10px;background:#eaf2fb;color:#3b82f6;display:flex;align-items:center;justify-content:center;flex-shrink:0}.landing-feature-card h3{font-size:1rem;color:#1f2937;margin-bottom:.375rem}.landing-feature-card p{font-size:.84rem;color:#64748b;line-height:1.5}.landing-footer{position:fixed;left:0;bottom:0;width:100%;text-align:center;background:#d8e7f3;color:#3b556f;padding:.5rem 1rem;font-size:.875rem;z-index:1000}.modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;z-index:9999;padding:1rem;animation:fadeIn .2s ease}.modal-card{width:100%;max-width:700px;max-height:85vh;background:#ffffff;border-radius:16px;padding:clamp(1.25rem,4vw,1.75rem) clamp(1.25rem,4vw,2rem);box-shadow:0 10px 30px rgba(0,0,0,.15),0 2px 8px rgba(0,0,0,.05);overflow-y:auto;animation:scaleIn .2s ease;-webkit-overflow-scrolling:touch}.modal-card h2{font-size:clamp(1.125rem,3vw,1.4rem);font-weight:600;color:#111827}.modal-card p{font-size:.9375rem;line-height:1.55;color:#374151}.modal-section{margin-top:1.375rem;padding-top:1rem;border-top:1px solid #f1f5f9}.modal-section h3{font-size:.9375rem;font-weight:600;color:#111827;margin-bottom:.5rem}.close-btn{margin-top:1.375rem;background:#111827;color:white;border:none;border-radius:10px;padding:.625rem 1rem;font-family:inherit;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;touch-action:manipulation}.close-btn:hover{background:#1f2937;transform:translateY(-1px)}.modal-card::-webkit-scrollbar{width:5px}.modal-card::-webkit-scrollbar-thumb{background:#e5e7eb;border-radius:10px}@keyframes scaleIn{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}@media (max-width:1100px){.stats-grid{grid-template-columns:repeat(2,1fr)}.charts-grid{grid-template-columns:1fr}.chart-card{height:320px}}@media (max-width:900px){.dashboard-grid{grid-template-columns:1fr}.info-column{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:1.25rem;gap:1.25rem}.landing-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:768px){.dashboard-container{flex-direction:column}.sidebar{width:100%;height:auto;position:relative;border-right:none;border-bottom:1px solid var(--border);padding:1rem 0;top:0}.sidebar-logo{padding:0 1rem 1rem}.menu-section{padding:0 .5rem;display:flex;flex-wrap:wrap;gap:.25rem}.menu-label{display:none}.menu-item{padding:.5rem .625rem;font-size:.875rem}.sidebar-footer{padding:1rem;flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.main-content{padding:1.5rem 1rem}.charts-grid{grid-template-columns:1fr}.supervisor-list-header{flex-direction:column;align-items:flex-start}.search-container{width:100%}}@media (max-width:480px){.login-container{padding:1rem;gap:1.25rem}.login-card{padding:1.375rem 1.25rem;gap:1rem;border-radius:var(--radius-md)}.role-toggle button{font-size:.8125rem;padding:.5rem .375rem;gap:.25rem}.stats-grid{grid-template-columns:1fr 1fr;gap:.875rem}.stat-value{font-size:1.25rem}.chart-card{height:280px;padding:1rem}.chart-header{margin-bottom:1rem}.demo-buttons{flex-direction:column}.demo-btn{width:100%}.error-box,.info-box{flex-direction:column;gap:.5rem}.landing-feature-grid{grid-template-columns:1fr}.landing-hero-content{margin-top:70px}.landing-actions{flex-direction:column;align-items:center}.landing-btn{width:100%;max-width:260px;justify-content:center}.report-footer{flex-direction:column;align-items:stretch}.submit-btn{text-align:center;width:100%}.submission-header{flex-direction:column;align-items:flex-start}.modal-card{max-height:90vh;border-radius:var(--radius-md)}.bar-label{font-size:.625rem}}@media (max-width:360px){.stats-grid{grid-template-columns:1fr}.header-logo span,.role-toggle button span{display:none}}@media (hover:none) and (pointer:coarse){.close-btn,.demo-btn,.landing-btn,.menu-item,.signin-button,.submit-btn{min-height:44px}.close-btn:hover,.landing-btn.primary:hover,.signin-button:hover{transform:none}}