@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&family=Plus+Jakarta+Sans:wght@300;400;500;600;700&display=swap";:root{--bg-primary: #0b0e14;--bg-secondary: #161b22;--bg-tertiary: #21262d;--border-subtle: #30363d;--border-active: #484f58;--accent-primary: #10b981;--accent-secondary: #059669;--accent-glow: rgba(16, 185, 129, .15);--text-primary: #f0f6fc;--text-secondary: #8b949e;--text-tertiary: #6e7681;--font-heading: "Outfit", sans-serif;--font-body: "Plus Jakarta Sans", sans-serif;--sidebar-width: 280px;--header-height: 70px;--transition-fast: .2s cubic-bezier(.4, 0, .2, 1);--transition-smooth: .4s cubic-bezier(.25, 1, .5, 1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-body);background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;letter-spacing:-.02em}.app-container{display:flex;min-height:100vh;background:var(--bg-primary)}.sidebar{width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border-subtle);height:100vh;position:sticky;top:0;display:flex;flex-direction:column;padding:24px;z-index:50}.brand{display:flex;align-items:center;gap:12px;padding:0 12px;margin-bottom:32px;cursor:pointer;color:inherit}.brand-logo{font-family:var(--font-heading);font-size:1.5rem;font-weight:800;color:#fff;letter-spacing:-.5px}.brand-dot{width:8px;height:8px;background:var(--accent-primary);border-radius:50%;box-shadow:0 0 12px var(--accent-primary)}.nav-section{display:flex;flex-direction:column;gap:8px}.nav-label{font-size:.75rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-tertiary);margin-bottom:12px;margin-left:12px;font-weight:700}.nav-group{margin-bottom:4px}.nav-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:8px;color:var(--text-secondary);font-weight:500;transition:var(--transition-fast);cursor:default;border:1px solid transparent}.nav-item:hover{background:var(--bg-tertiary);color:#fff}.nav-item.active{background:#10b98114;color:var(--accent-primary);border-color:#10b98133}.nav-expand-btn{background:transparent;border:none;color:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px;border-radius:4px;transition:transform var(--transition-fast)}.nav-expand-btn:hover{background:#ffffff1a}.nav-expand-btn.expanded{transform:rotate(90deg)}.nav-link-text{flex:1;text-decoration:none;color:inherit;cursor:pointer;padding:4px 0}.nav-subgrid{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--transition-smooth);overflow:hidden}.nav-subgrid.expanded{grid-template-rows:1fr}.nav-subgrid>*{min-height:0}.nav-subitem{display:flex;align-items:center;gap:10px;padding:8px 12px 8px 44px;color:var(--text-tertiary);text-decoration:none;font-size:.9rem;transition:var(--transition-fast);border-left:2px solid transparent;margin-left:20px}.nav-subitem:hover{color:var(--text-primary)}.nav-subitem.active{color:var(--accent-primary);border-left-color:var(--accent-primary);background:linear-gradient(90deg,rgba(16,185,129,.05) 0%,transparent 100%)}.subitem-dot{width:4px;height:4px;background:currentColor;border-radius:50%;opacity:.6}.main-content{flex:1;padding:40px;overflow-y:auto;max-width:1600px;margin:0 auto}.dashboard-hero{margin-bottom:60px;border-bottom:1px solid var(--border-subtle);padding-bottom:40px}.hero-title{font-size:3rem;margin-bottom:16px;background:linear-gradient(180deg,#fff,#a0a0a0);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.hero-subtitle{color:var(--text-secondary);font-size:1.25rem;max-width:600px;line-height:1.6}.subject-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:24px}.bento-card{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:16px;padding:30px;transition:var(--transition-fast);cursor:pointer;display:flex;flex-direction:column;height:100%;position:relative;overflow:hidden}.bento-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:4px;background:var(--accent-primary);opacity:0;transition:var(--transition-fast)}.bento-card:hover{transform:translateY(-4px);border-color:var(--accent-primary);box-shadow:0 20px 40px -10px #00000080}.bento-card:hover:before{opacity:1}.card-icon-wrapper{width:56px;height:56px;background:var(--bg-tertiary);border-radius:12px;display:flex;align-items:center;justify-content:center;margin-bottom:24px;border:1px solid var(--border-subtle);color:var(--text-primary);font-size:1.5rem;transition:var(--transition-fast)}.bento-card:hover .card-icon-wrapper{background:var(--accent-primary);border-color:var(--accent-primary);color:#000}.card-title{font-size:1.5rem;margin-bottom:10px;color:var(--text-primary)}.card-desc{color:var(--text-secondary);font-size:.95rem;line-height:1.6;flex:1}.card-meta{margin-top:24px;display:flex;align-items:center;justify-content:space-between;padding-top:20px;border-top:1px solid var(--border-subtle)}.meta-tag{font-size:.75rem;font-weight:600;color:var(--text-tertiary);background:var(--bg-primary);padding:6px 12px;border-radius:6px;border:1px solid var(--border-subtle)}.arrow-link{color:var(--accent-primary);opacity:0;transform:translate(-10px);transition:var(--transition-fast)}.bento-card:hover .arrow-link{opacity:1;transform:translate(0)}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:60px}.header-content h1{font-size:3.5rem;margin-bottom:16px;line-height:1}.header-content p{color:var(--text-secondary);font-size:1.2rem;max-width:700px}.back-link{display:flex;align-items:center;gap:8px;color:var(--text-secondary);text-decoration:none;font-weight:500;padding:12px 24px;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-secondary);transition:var(--transition-fast)}.back-link:hover{border-color:var(--accent-primary);color:var(--accent-primary)}.unit-block{margin-bottom:50px}.unit-title-row{display:flex;align-items:center;gap:16px;margin-bottom:24px}.unit-marker{width:4px;height:24px;background:var(--accent-primary);border-radius:2px}.unit-name{font-size:1.25rem;color:var(--text-primary)}.materials-stack{display:flex;flex-direction:column;gap:12px}.material-item{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:12px;transition:var(--transition-fast);text-decoration:none}.material-item:hover{border-color:var(--accent-primary);background:#1c2128;transform:translate(4px)}.file-info{display:flex;align-items:center;gap:16px}.file-icon{color:var(--text-tertiary);transition:var(--transition-fast)}.material-item:hover .file-icon{color:var(--accent-primary)}.file-name{color:var(--text-primary);font-weight:500;font-size:1rem}.action-icon{color:var(--text-tertiary);opacity:0;transition:var(--transition-fast)}.material-item:hover .action-icon{opacity:1;color:var(--accent-primary)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-active);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.mobile-menu-btn{display:none;position:fixed;top:16px;left:16px;z-index:1001;background:var(--bg-secondary);border:1px solid var(--border-subtle);color:var(--text-primary);padding:8px;border-radius:8px;cursor:pointer;align-items:center;justify-content:center;box-shadow:0 4px 12px #0003}.mobile-overlay{position:fixed;inset:0;background:#0009;z-index:999;opacity:0;pointer-events:none;transition:opacity var(--transition-fast);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.mobile-overlay.open{opacity:1;pointer-events:auto}@media(max-width:1024px){.app-container{flex-direction:column}.mobile-menu-btn{display:flex}.main-content{padding:80px 20px 40px}.sidebar{position:fixed;top:0;left:0;height:100vh;width:280px;transform:translate(-100%);transition:transform var(--transition-smooth);z-index:1000;border-right:1px solid var(--border-subtle);box-shadow:20px 0 40px #0000004d}.sidebar.open{transform:translate(0)}.hero-title{font-size:2rem}.hero-subtitle{font-size:1rem}.header-content h1{font-size:2rem}.subject-grid{grid-template-columns:1fr;gap:16px}.detail-header{flex-direction:column;gap:24px}.header-title-row{flex-wrap:wrap}.back-link{width:100%;justify-content:center}.material-item{padding:16px;flex-direction:column;align-items:flex-start;gap:12px}.file-info{width:100%}.action-icon{display:none}}
