:root{font-family:DM Sans,Inter,system-ui,sans-serif;--radius: 12px;--text-main: #111827;--text-muted: #4b5563;--text-light: #6b7280;--bg-main: #f9fafb;--bg-card: #ffffff;--bg-sidebar: #ffffff;--bg-hover: #f3f4f6;--bg-active: #eff6ff;--border: #e5e7eb;--border-hover: #d1d5db;--accent: #4f46e5;--accent-hover: #4338ca;--blue: #2563eb;--green: #10b981;--red: #ef4444;--error-bg: #fef2f2;--error-border: #fecaca;--badge-draft-bg: #f3f4f6;--badge-draft-text: #4b5563;--badge-sub-bg: #e0e7ff;--badge-sub-text: #4338ca;--badge-app-bg: #d1fae5;--badge-app-text: #047857;--badge-rej-bg: #fee2e2;--badge-rej-text: #b91c1c;--badge-trk-bg: #e0f2fe;--badge-trk-text: #0369a1;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--modal-backdrop: rgba(17, 24, 39, .6);--input-bg: #ffffff;--btn-sec-bg: #ffffff;--btn-text: #ffffff}[data-theme=dark]{--text-main: #f9fafb;--text-muted: #9ca3af;--text-light: #6b7280;--bg-main: #111827;--bg-card: #1f2937;--bg-sidebar: #1f2937;--bg-hover: #374151;--bg-active: #312e81;--border: #374151;--border-hover: #4b5563;--accent: #818cf8;--accent-hover: #6366f1;--blue: #60a5fa;--green: #34d399;--red: #f87171;--error-bg: #450a0a;--error-border: #7f1d1d;--badge-draft-bg: #374151;--badge-draft-text: #d1d5db;--badge-sub-bg: #312e81;--badge-sub-text: #818cf8;--badge-app-bg: #064e3b;--badge-app-text: #34d399;--badge-rej-bg: #7f1d1d;--badge-rej-text: #f87171;--badge-trk-bg: #0c4a6e;--badge-trk-text: #38bdf8;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .5);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .6), 0 2px 4px -1px rgba(0, 0, 0, .5);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .6), 0 4px 6px -2px rgba(0, 0, 0, .5);--modal-backdrop: rgba(0, 0, 0, .75);--input-bg: #111827;--btn-sec-bg: #1f2937;--btn-text: #111827}[data-theme=dark]{--btn-text: #111827}:root{--btn-text: #ffffff}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg-main);color:var(--text-main)}.app-layout{display:flex;min-height:100vh}.app-sidebar{width:260px;background:var(--bg-sidebar);border-right:1px solid var(--border);padding:1.5rem;position:sticky;top:0;height:100vh;overflow-y:auto;flex-shrink:0;display:flex;flex-direction:column}.sidebar-logo{font-size:1.25rem;font-weight:800;color:var(--text-main);margin-bottom:2rem;padding:0 .5rem;display:flex;align-items:center;gap:.5rem}.sidebar-logo svg{color:var(--accent)}.nav-section{margin-bottom:1.5rem}.nav-section-title{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-light);font-weight:700;margin-bottom:.5rem;padding:0 .5rem}.nav-menu{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.25rem}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.6rem .75rem;border-radius:8px;color:var(--text-muted);text-decoration:none;font-weight:600;font-size:.95rem;transition:all .2s ease;cursor:pointer;border:none;background:transparent;width:100%;text-align:left}.nav-item:hover{background:var(--bg-hover);color:var(--text-main)}.nav-item.active{background:var(--bg-active);color:var(--accent)}.nav-item svg{width:20px;height:20px;color:inherit;opacity:.7}.nav-item:hover svg,.nav-item.active svg{opacity:1}.sidebar-footer{margin-top:auto;padding-top:1rem;border-top:1px solid var(--border)}.user-profile{display:flex;align-items:center;gap:.75rem;padding:.5rem}.user-avatar{width:36px;height:36px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.9rem}.user-info{display:flex;flex-direction:column;overflow:hidden}.user-name{font-weight:600;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text-main)}.app-main{flex:1;padding:2.5rem;display:flex;justify-content:center}.main-content-inner{width:100%;max-width:760px}.page-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.page-header h1{margin:.25rem 0 0;font-size:1.8rem;font-weight:800;letter-spacing:-.02em;color:var(--text-main)}.eyebrow{margin:0;text-transform:uppercase;letter-spacing:.05em;font-size:.8rem;font-weight:700;color:var(--accent)}.header-actions{display:flex;gap:.75rem;align-items:center}.card{background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);padding:1.75rem;margin-bottom:1.5rem;box-shadow:var(--shadow-sm);transition:transform .2s ease,box-shadow .2s ease}.card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}.section-header h2{margin:0;font-size:1.25rem;font-weight:700;color:var(--text-main)}.section-header span{color:var(--text-light);font-size:.9rem;font-weight:500}.summary-meta{display:flex;justify-content:space-between;margin-bottom:.75rem}.summary-year{font-weight:700;font-size:1.1rem;color:var(--text-main)}.summary-status{font-weight:700;text-transform:capitalize;padding:.2rem .6rem;border-radius:6px;font-size:.85rem}.progress-wrap{height:8px;background:var(--bg-hover);border-radius:9999px;overflow:hidden;margin-bottom:.75rem}.progress-bar{height:100%;background:var(--accent);border-radius:9999px;transition:width .8s cubic-bezier(.4,0,.2,1)}.summary-numbers{display:flex;justify-content:space-between;font-size:.95rem;color:var(--text-muted);font-weight:500}.summary-deadline{margin:.75rem 0 0;font-size:.85rem;color:var(--text-light)}.activity-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.activity-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;border-radius:8px;border:1px solid var(--border);background:var(--bg-card);transition:all .2s ease}.activity-row:hover{background:var(--bg-hover);border-color:var(--border-hover)}.activity-main{display:flex;flex-direction:column;gap:.25rem}.activity-main strong{font-size:1rem;color:var(--text-main)}.activity-meta{font-size:.85rem;color:var(--text-light);font-weight:500}.activity-right{display:flex;align-items:center;gap:1rem;flex-shrink:0}.activity-hours{font-weight:700;color:var(--text-main);background:var(--bg-hover);padding:.2rem .6rem;border-radius:6px;font-size:.85rem}.activity-date{font-size:.85rem;color:var(--text-light);font-weight:500}.badge{font-size:.75rem;padding:.25rem .6rem;border-radius:9999px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.badge-draft{background:var(--badge-draft-bg);color:var(--badge-draft-text)}.badge-submitted{background:var(--badge-sub-bg);color:var(--badge-sub-text)}.badge-approved,.badge-compliant{background:var(--badge-app-bg);color:var(--badge-app-text)}.badge-rejected,.badge-at-risk{background:var(--badge-rej-bg);color:var(--badge-rej-text)}.badge-on-track{background:var(--badge-trk-bg);color:var(--badge-trk-text)}.badge-not-started{background:var(--badge-draft-bg);color:var(--text-light)}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:var(--bg-main);position:relative;overflow:hidden}.login-card{width:100%;max-width:440px;padding:3rem 2.5rem;border-radius:var(--radius);background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-lg);text-align:center;position:relative;z-index:1}.login-card h1{margin:.5rem 0 1.25rem;font-size:2rem;font-weight:800;letter-spacing:-.02em;color:var(--text-main)}.login-subtitle{color:var(--text-muted);margin-bottom:2rem;font-size:.95rem;line-height:1.5}.login-error{background:var(--error-bg);color:var(--red);padding:.75rem 1rem;border-radius:8px;margin-bottom:1.5rem;font-size:.9rem;font-weight:500;border:1px solid var(--error-border)}.btn-primary{display:inline-flex;align-items:center;justify-content:center;padding:.65rem 1.25rem;background:var(--accent);color:var(--btn-text);border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;width:auto;box-shadow:0 1px 2px #0000000d}.btn-primary:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.login-card .btn-primary{width:100%;padding:.8rem;font-size:1rem}.login-form{display:flex;flex-direction:column;gap:1rem;text-align:left}.input{width:100%;padding:.75rem 1rem;border:1px solid var(--border);border-radius:8px;font-size:1rem;outline:none;transition:all .2s ease;box-sizing:border-box;background:var(--input-bg);color:var(--text-main)}.input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #4f46e526}.input::placeholder{color:var(--text-light)}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;padding:.65rem 1.25rem;background:var(--btn-sec-bg);color:var(--text-main);border:1px solid var(--border);border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;width:100%;box-shadow:0 1px 2px #0000000d}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-light)}.btn-ghost{padding:.6rem 1.1rem;background:transparent;color:var(--text-muted);border:1px solid transparent;border-radius:8px;font-size:.9rem;cursor:pointer;font-weight:600;transition:all .2s ease}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-main)}.link-btn{background:none;border:none;color:var(--accent);cursor:pointer;font-size:inherit;padding:0;font-weight:600}.link-btn:hover{text-decoration:underline}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--modal-backdrop);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:100;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-card);border-radius:var(--radius);width:100%;max-width:560px;max-height:90vh;overflow-y:auto;padding:2rem;box-shadow:var(--shadow-lg);animation:slideUp .3s cubic-bezier(.16,1,.3,1)}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.75rem}.modal-header h2{margin:0;font-size:1.5rem;font-weight:800;letter-spacing:-.01em;color:var(--text-main)}.modal-close{background:var(--bg-hover);border:none;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-muted);border-radius:50%;transition:all .2s}.modal-close:hover{background:var(--border);color:var(--text-main)}.modal-form{display:flex;flex-direction:column;gap:1.25rem}.modal-form label{display:flex;flex-direction:column;gap:.5rem;font-size:.9rem;font-weight:600;color:var(--text-main)}.modal-form input,.modal-form select,.modal-form textarea{padding:.65rem .85rem;border:1px solid var(--border);border-radius:8px;font-size:.95rem;font-family:inherit;color:var(--text-main);background:var(--input-bg);transition:all .2s ease;box-shadow:0 1px 2px #00000005}.modal-form input:focus,.modal-form select:focus,.modal-form textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #4f46e526}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.optional{font-weight:400;color:var(--text-light);font-size:.85rem}.form-error{background:var(--error-bg);color:var(--red);padding:.65rem .85rem;border-radius:8px;font-size:.88rem;border:1px solid var(--error-border);font-weight:500}.modal-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1rem;padding-top:1.5rem;border-top:1px solid var(--border)}.loading-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-main)}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s cubic-bezier(.4,0,.2,1) infinite;display:block}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{color:var(--text-light);text-align:center;padding:3rem 1.5rem;background:var(--bg-main);border-radius:8px;border:1px dashed var(--border-hover)}
