/* assets/css/glass-theme.css */ /* --- Core Theme & Animated Background --- */ :root { --primary-font: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; --title-font: 'Lexend Deca', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; --text-color: #f0f0f0; --text-muted: #a0a0a0; --accent-color: #8a2be2; /* Dark Orchid Purple */ --accent-hover: #9932cc; /* Medium Orchid */ --background-start: #000000; --background-mid: #050510; --background-end: #100510; --glass-bg: rgba(10, 5, 20, 0.45); --glass-border: rgba(255, 255, 255, 0.1); --glass-shadow: rgba(0, 0, 0, 0.5); --glass-blur: 10px; } @import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&family=Lexend+Deca&display=swap'); /* --- Animations --- */ @keyframes blue-purple-glow { 0% { box-shadow: 0 0 20px 3px rgba(0, 100, 255, 0.4), 0 0 30px 8px rgba(75, 0, 130, 0.3); } 50% { box-shadow: 0 0 25px 5px rgba(75, 0, 130, 0.4), 0 0 35px 10px rgba(0, 100, 255, 0.3); } 100% { box-shadow: 0 0 20px 3px rgba(0, 100, 255, 0.4), 0 0 30px 8px rgba(75, 0, 130, 0.3); } } @keyframes float-effect { 0% { transform: translateY(0px); } 50% { transform: translateY(-6px); } 100% { transform: translateY(0px); } } body { font-family: var(--primary-font); background: linear-gradient(-45deg, var(--background-start), var(--background-mid), var(--background-end)); background-size: 400% 400%; animation: gradientBG 20s ease infinite; color: var(--text-color); margin: 0; padding: 2rem; min-height: 100vh; display: flex; align-items: center; justify-content: center; } @keyframes gradientBG { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } } /* --- Main App Container --- */ .app-container { width: 100%; max-width: 1200px; height: 90vh; display: flex; background: rgba(0,0,0,0.2); border-radius: 30px; /* More rounded */ overflow: hidden; border: 1px solid var(--glass-border); box-shadow: 0 15px 35px var(--glass-shadow); } /* --- Sidebar Navigation --- */ .sidebar { width: 240px; background: rgba(0,0,0,0.15); padding: 2rem 0; flex-shrink: 0; border-right: 1px solid var(--glass-border); } .sidebar .logo { text-align: center; font-family: var(--title-font); font-size: 1.8rem; font-weight: 700; color: #fff; margin-bottom: 3rem; padding: 0 1rem; text-shadow: 0 0 12px var(--accent-hover); } .sidebar .nav-menu { list-style: none; padding: 0; margin: 0; } .sidebar .nav-menu .nav-item a { display: block; padding: 1rem 2rem; color: var(--text-muted); text-decoration: none; font-weight: 500; font-size: 1rem; position: relative; transition: color 0.3s ease, background 0.3s ease; } .sidebar .nav-menu .nav-item a:hover { color: #fff; background: rgba(138, 43, 226, 0.15); } .sidebar .nav-menu .nav-item.active a { color: #fff; font-weight: 700; } .sidebar .nav-menu .nav-item.active a::before { content: ''; position: absolute; left: 0; top: 0; height: 100%; width: 4px; background: var(--accent-color); border-radius: 0 4px 4px 0; box-shadow: 0 0 8px var(--accent-color); } .sidebar .logout-link { position: absolute; bottom: 2rem; width: 240px; text-align: center; } .sidebar .logout-link a { color: var(--text-muted); text-decoration: none; font-weight: 500; transition: color 0.3s ease; } .sidebar .logout-link a:hover { color: #fff; } /* --- Main Content Area --- */ .main-content { flex-grow: 1; padding: 3rem; overflow-y: auto; } .main-content h1 { font-family: var(--title-font); font-size: 2.5rem; color: #fff; margin-bottom: 2rem; text-shadow: 0 0 10px rgba(255,255,255,0.2); } /* --- Glass Panel Style (with Blue/Purple Glow) --- */ .glass-panel { background: var(--glass-bg); backdrop-filter: blur(var(--glass-blur)); -webkit-backdrop-filter: blur(var(--glass-blur)); border: 1px solid var(--glass-border); border-radius: 25px; /* More rounded */ padding: 2.5rem; animation: blue-purple-glow 10s linear infinite; } /* --- Form Elements --- */ .form-group { margin-bottom: 1.5rem; } .form-group label { display: block; margin-bottom: 0.5rem; color: var(--text-muted); font-weight: 500; } .form-control { width: 100%; padding: 1rem 1.2rem; background: rgba(0, 0, 0, 0.4); border: 1px solid var(--glass-border); border-radius: 15px; /* More rounded */ color: var(--text-color); font-size: 1rem; transition: border-color 0.3s ease, box-shadow 0.3s ease; } .form-control:focus { outline: none; border-color: var(--accent-color); box-shadow: 0 0 0 3px rgba(138, 43, 226, 0.3); } .form-control:disabled { background: rgba(0, 0, 0, 0.5); cursor: not-allowed; } /* --- Buttons (with Float and Glow) --- */ .btn { padding: 1rem 2rem; border: 1px solid transparent; border-radius: 50px; /* Pill shape */ font-size: 1rem; font-weight: 700; cursor: pointer; transition: all 0.4s ease; text-transform: uppercase; letter-spacing: 1px; position: relative; overflow: hidden; animation: float-effect 6s ease-in-out infinite; } .btn-primary { background-color: var(--accent-color); color: #fff; border-color: var(--accent-hover); animation: blue-purple-glow 8s linear infinite alternate, float-effect 6s ease-in-out infinite; } .btn-primary:hover { background-color: var(--accent-hover); transform: translateY(-2px) scale(1.05); /* Keep hover effect, float is separate */ box-shadow: 0 8px 25px rgba(153, 50, 204, 0.6); } /* --- Notes Grid --- */ .notes-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 2rem; margin-top: 2rem; } .note-card { background: var(--glass-bg); backdrop-filter: blur(var(--glass-blur)); border: 1px solid var(--glass-border); border-radius: 25px; /* More rounded */ padding: 1.5rem; transition: transform 0.4s ease, box-shadow 0.4s ease, background 0.4s ease; position: relative; overflow: hidden; animation: blue-purple-glow 12s linear infinite; } .note-card:hover { transform: translateY(-10px) scale(1.03); background: rgba(20, 10, 30, 0.7); animation-play-state: paused; /* Pause the glow to show a specific hover shadow */ box-shadow: 0 10px 40px rgba(138, 43, 226, 0.5); } .note-card-content { color: var(--text-color); margin-bottom: 1rem; max-height: 150px; overflow: hidden; text-overflow: ellipsis; } .note-card-content a { color: var(--accent-hover); text-decoration: none; font-weight: 600; } .note-card-content a:hover { text-decoration: underline; } .note-card-footer { display: flex; justify-content: space-between; align-items: center; } .note-card-date { font-size: 0.8rem; color: var(--text-muted); } .delete-note-btn { background: none; border: none; color: var(--text-muted); font-size: 1.2rem; cursor: pointer; transition: color 0.3s ease; padding: 5px; } .delete-note-btn:hover { color: #ff4757; } /* Add Note Button */ .add-note-card { display: flex; align-items: center; justify-content: center; flex-direction: column; min-height: 200px; cursor: pointer; border-style: dashed; border-width: 2px; border-radius: 25px; /* More rounded */ background: rgba(255, 255, 255, 0.02); animation: blue-purple-glow 15s linear infinite reverse; } .add-note-card:hover { background: rgba(138, 43, 226, 0.1); border-color: var(--accent-hover); } .add-note-icon { font-size: 3rem; color: var(--text-muted); transition: color 0.3s ease; } .add-note-card:hover .add-note-icon { color: var(--accent-hover); } .add-note-text { margin-top: 1rem; font-weight: 500; color: var(--text-muted); transition: color 0.3s ease; } .add-note-card:hover .add-note-text { color: var(--accent-hover); } /* Note Editor Modal */ #note-editor-modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.7); display: none; /* Hidden by default */ align-items: center; justify-content: center; z-index: 1000; backdrop-filter: blur(10px); } #note-editor-modal.show { display: flex; } .note-editor-panel { width: 90%; max-width: 700px; height: 70vh; display: flex; flex-direction: column; animation: blue-purple-glow 9s linear infinite; border-radius: 25px; /* More rounded */ } #note-editor-textarea { flex-grow: 1; background: rgba(0,0,0,0.5); border: 1px solid var(--glass-border); color: var(--text-color); padding: 1.5rem; font-size: 1.1rem; line-height: 1.6; resize: none; border-radius: 25px 25px 0 0; } #note-editor-textarea:focus { outline: none; border-color: var(--accent-color); } .note-editor-footer { display: flex; justify-content: flex-end; padding: 1rem; background: var(--glass-bg); border-top: 1px solid var(--glass-border); border-radius: 0 0 25px 25px; }