@import"https://fonts.googleapis.com/css2?family=Caveat:wght@500;700&family=Lora:wght@400;500;600;700&display=swap";:root{--paper: #faf7f2;--paper-lines: rgba(52, 73, 94, .06);--paper-margin: rgba(231, 76, 60, .18);--ink: #2f2a28;--muted-ink: #5c5653;--coffee: #3e2723;--tab-blue: #9ab8d3;--tab-yellow: #f6d58f;--tab-green: #b9d7b5;--accent: #be7f4a;--primary: #3e2723;--primary-ink: #ffffff;--ring: rgba(0,0,0,.08);--card-shadow: 0 6px 20px rgba(62,39,35,.15);--soft-shadow: 0 2px 8px rgba(0,0,0,.08);--success: #2e7d32;--danger: #c62828;--sticky-yellow: #fff3b0;--sticky-blue: #e6f0ff;--sticky-pink: #ffe3ea}*{box-sizing:border-box}html,body{height:100%}body{margin:0;color:var(--ink);background:radial-gradient(200px 100% at 0% 50%,rgba(0,0,0,.06),transparent 60%),linear-gradient(180deg,#f2ebe5 0%,#efe6dd 100%);font-family:Lora,serif;line-height:1.45}.container{max-width:1400px;margin:40px auto;padding:24px;position:relative}#appContent,#authSection .auth-card{background:linear-gradient(90deg,var(--paper-margin) 60px,transparent 60px) 0 0/100% 100%,repeating-linear-gradient(to bottom,var(--paper) 0px,var(--paper) 34px,var(--paper-lines) 35px);border:1px solid rgba(0,0,0,.08);border-radius:18px;box-shadow:var(--card-shadow);position:relative}#appContent:before,#authSection .auth-card:before{content:"";position:absolute;left:-22px;top:22px;width:14px;height:calc(100% - 44px);background:radial-gradient(circle at 50% 20px,#c8c8c8 0 6px,transparent 7px) 0 0/14px 64px,radial-gradient(circle at 50% 52px,#c8c8c8 0 6px,transparent 7px) 0 0/14px 64px,radial-gradient(circle at 50% 84px,#c8c8c8 0 6px,transparent 7px) 0 0/14px 64px,radial-gradient(circle at 50% 116px,#c8c8c8 0 6px,transparent 7px) 0 0/14px 64px,radial-gradient(circle at 50% 148px,#c8c8c8 0 6px,transparent 7px) 0 0/14px 64px;border-left:6px solid var(--ring);border-right:6px solid var(--ring);border-radius:12px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.15))}#user-name{display:flex;align-items:center;justify-content:flex-end;background:#fffdf700;border-bottom:2px dashed rgb(104,105,111);padding:10px 20px;margin:0;font-family:Lora,serif;color:#3e2723;font-weight:900;font-size:22px;letter-spacing:.4px;box-shadow:inset 0 -2px #3e27230f}#user-name p{background:#fff3b0;padding:6px 14px;border-radius:10px;border:1px dashed rgba(0,0,0,.15);margin:0;font-size:16px;color:#4b3f35;box-shadow:1px 1px #0000000d;transform:rotate(-.4deg);transition:all .2s ease}#user-name p:hover{transform:rotate(0) translateY(-2px);box-shadow:2px 4px 6px #00000014}#user-name+.container{border-top:3px double rgba(0,0,0,.08)}header{position:sticky;top:0;z-index:20;padding:16px 20px;border-bottom:2px solid rgba(0,0,0,.06);background:linear-gradient(0deg,rgba(255,255,255,.7),rgba(255,255,255,.7)),repeating-linear-gradient(45deg,rgba(90,56,45,.08) 0 6px,rgba(90,56,45,.12) 6px 12px);border-top-left-radius:18px;border-top-right-radius:18px;display:flex;align-items:center;justify-content:space-between}.logo{display:flex;align-items:center;gap:12px;color:var(--coffee)}.logo i{font-size:24px}.logo h1{margin:0;font-weight:700;letter-spacing:.4px}.header-controls{display:flex;align-items:center;gap:16px}.date-time{text-align:right;font-size:14px;color:var(--muted-ink)}header:after{content:"";position:absolute;right:-10px;top:14px;width:10px;height:80px;background:linear-gradient(var(--tab-blue),var(--tab-blue)) 0 0/100% 24px no-repeat,linear-gradient(var(--tab-yellow),var(--tab-yellow)) 0 28px/100% 24px no-repeat,linear-gradient(var(--tab-green),var(--tab-green)) 0 56px/100% 24px no-repeat;border-top-right-radius:6px;border-bottom-right-radius:6px;box-shadow:var(--soft-shadow)}button,.btn-primary,.btn-secondary,.add-btn,.sign-out-btn,.auth-btn{cursor:pointer;border:1px solid rgba(0,0,0,.12);padding:10px 14px;border-radius:10px;background:#fff;color:var(--ink);font-family:inherit;transition:transform .06s ease,box-shadow .12s ease,background .2s ease;box-shadow:0 1px #0000000a}.btn-primary{background:linear-gradient(#68443b,#3e2723);color:var(--primary-ink);border-color:#3e2723}.btn-secondary{background:#fff7ef;border-color:#e0c6ad;color:#5a3d2f}.sign-out-btn{background:linear-gradient(#b86f3b,#8d4e27);color:#fff;border-color:#7a4321}.add-btn{background:#fffdf6;border-color:#eadfb5}button:hover{transform:translateY(-1px);box-shadow:0 6px 18px #00000014}button:active{transform:translateY(0)}.dashboard{display:grid;grid-template-columns:repeat(12,1fr);gap:18px;padding:8px 20px 20px}.card{grid-column:span 6;background:linear-gradient(transparent,transparent) padding-box,repeating-linear-gradient(to bottom,transparent 0 34px,rgba(62,39,35,.06) 35px);border:1px solid rgba(0,0,0,.08);border-radius:16px;box-shadow:var(--soft-shadow);position:relative;overflow:hidden}.card-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 8px}.card-title{margin:0;font-weight:700;letter-spacing:.2px}.card-icon i{color:#8e6b5d}.card-content{padding:0 18px 18px}.card[aria-labelledby=eventsTitle]{grid-column:span 7}.card[aria-labelledby=tasksTitle]{grid-column:span 5}.card[aria-labelledby=historyTitle]{grid-column:span 12}.empty-state{background:var(--sticky-yellow);border:1px dashed rgba(0,0,0,.15);border-radius:10px;padding:18px;color:#4b3f35;box-shadow:2px 2px #0000000f;transform:rotate(-.4deg)}.empty-state i{opacity:.6;margin-right:8px}#classesContainer .class-item,#tasksContainer .task-item,#notesContainer .note-item,#eventsContainer .event-item,#goalsContainer .goal-item{background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:12px;padding:12px;margin:10px 0;box-shadow:var(--soft-shadow)}.class-item .class-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.class-item .class-title{font-weight:700}.class-item .class-grade{background:#fff7e3;border:1px solid #efd8ac;padding:4px 10px;border-radius:999px;font-weight:600;color:#5a3d2f}.class-details{color:var(--muted-ink);font-size:14px;display:flex;gap:10px;flex-wrap:wrap}.class-progress .progress-bar{background:#f2ece4;height:8px;border-radius:999px;overflow:hidden;margin-top:8px}.class-progress .progress-fill{height:100%;background:linear-gradient(90deg,#c4b28c,#8f6f46)}.task-item{display:grid;grid-template-columns:28px 1fr auto auto;gap:10px;align-items:center}.task-item .task-checkbox{width:22px;height:22px;border:2px solid #7a5a4a;border-radius:4px;display:grid;place-items:center;background:#fff}.task-item .task-checkbox.checked{background:#7a5a4a;color:#fff;border-color:#7a5a4a}.task-text{font-weight:600}.task-text.completed{text-decoration:line-through;color:#8c817c}.task-priority{font-size:12px;padding:4px 8px;border-radius:999px;background:#fff;border:1px solid rgba(0,0,0,.08)}.priority-high{background:#ffe7e7;border-color:#ffc8c8;color:#9f2a2a}.priority-medium{background:#fff5da;border-color:#fde6a9;color:#7a5a2a}.priority-low{background:#e9f7e9;border-color:#cfe9cf;color:#2d6b2d}.task-time-display{font-size:12px;color:#6a5e59;margin-top:2px}.event-item{display:flex;align-items:center;gap:12px;justify-content:space-between}.event-time{font-weight:700;color:#5b463a;background:#fff2d9;border:1px solid #eed2a8;padding:4px 10px;border-radius:8px}.note-item .note-title{font-weight:700;margin-bottom:4px}.note-item .note-content{color:var(--muted-ink)}.goal-item{display:flex;align-items:center;gap:12px}.goal-progress{position:relative;width:44px;height:44px}.goal-circle{width:44px;height:44px;border-radius:50%;background:conic-gradient(#7a5a4a 0% 0%,#e7dbd2 0% 100%);border:3px solid #efe3db}.goal-percent{font-size:12px;font-weight:700;color:#5a4137;position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center}.goal-details .goal-title{font-weight:700}.add-item{margin-top:10px;display:flex;gap:10px;align-items:center}.add-input,.modal-input,.auth-input,.grade-input{width:100%;padding:10px 12px;border-radius:10px;border:1px solid rgba(0,0,0,.12);background:#fffdfa;font-family:inherit}.add-input:focus,.modal-input:focus,.auth-input:focus,.grade-input:focus{outline:2px solid #e5d2b7;border-color:#caa779}.gpa-display{text-align:center;padding:8px 0 14px}.current-gpa{font-size:44px;font-weight:800;letter-spacing:.6px;color:#3e2723}.gpa-label,.total-credits{color:var(--muted-ink)}.grade-inputs{display:grid;grid-template-columns:1fr 120px 130px;gap:10px}#gradeList .grade-row{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border:1px dashed rgba(0,0,0,.12);border-radius:10px;background:#fff;margin:6px 0}.remove-grade{border:none;background:#ffe9e9;color:#7a1f1f;border:1px solid #f7c7c7;border-radius:8px;padding:4px 8px;font-weight:700;cursor:pointer}.result-item{display:flex;align-items:center;justify-content:space-between;margin-top:8px}.result-label{color:var(--muted-ink)}.result-value{font-weight:800}.auth-section{display:flex;align-items:center;justify-content:center;padding:32px 16px}.auth-container{width:100%;max-width:560px}.auth-card{padding:20px 18px 18px}.auth-card h1{margin:0 0 10px;display:flex;align-items:center;gap:10px;font-weight:800}.auth-tabs{display:flex;gap:10px;margin:10px 0 6px}.auth-tab{background:#fffef7;border-color:#eadfb5}.auth-form{display:none;gap:10px;flex-direction:column}.auth-form.active{display:flex}.auth-btn{background:linear-gradient(#68443b,#3e2723);color:#fff;border-color:#3e2723}.modal{position:fixed;top:0;right:0;bottom:0;left:0;display:none;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:16px}.modal-content{width:100%;max-width:560px;background:linear-gradient(90deg,var(--paper-margin) 60px,transparent 60px) 0 0/100% 100%,repeating-linear-gradient(to bottom,var(--paper) 0 34px,var(--paper-lines) 35px);border:1px solid rgba(0,0,0,.12);border-radius:16px;box-shadow:var(--card-shadow);overflow:hidden}.modal-header,.modal-footer{padding:12px 14px;background:rgba(255,255,255,.6)}.modal-body{padding:14px}.close-modal{background:#fff3f3;border-color:#f0caca;color:#7a1f1f;font-weight:800}footer{padding:10px 18px 18px;color:var(--muted-ink)}.btn-delete{background:#fff2f2;border-color:#f2cccc;color:#9a2a2a;width:34px;height:34px;display:grid;place-items:center;border-radius:10px}.calendar-sync-prompt{margin-bottom:12px}@media (max-width: 1100px){.dashboard{grid-template-columns:repeat(8,1fr)}.card,.card[aria-labelledby=eventsTitle],.card[aria-labelledby=tasksTitle]{grid-column:span 8}}@media (max-width: 720px){.container{margin:16px auto;padding:12px}header{border-radius:12px 12px 0 0}.dashboard{grid-template-columns:1fr;gap:14px;padding:14px}.grade-inputs{grid-template-columns:1fr 1fr}}body.mode-auth #authSection{display:flex!important}body.mode-auth #appContent,body.mode-app #authSection{display:none!important}body.mode-app #appContent{display:block!important}
