@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--bg:#f6f7fa;--surface:#fff;--text:#262a3c;--muted:#85899b;--line:#eceef4;--primary:#7764d9;--primary-dark:#6351c7;--primary-soft:#f0edfc;--purple-text:#7967bc;--sidebar:#fff;--input:#fafbfe;--ring-bg:#e7e0f8;--shadow:0 4px 20px #27203d03;--green:#3c9e83;--orange:#d28d57;color-scheme:light;font-family:'DM Sans',system-ui,sans-serif;font-synthesis:none}
:root[data-theme=dark]{--bg:#151720;--surface:#202330;--text:#e9e9f3;--muted:#9b9fb5;--line:#303344;--primary:#a492f2;--primary-dark:#8c79d9;--primary-soft:#332e48;--purple-text:#c2b4f4;--sidebar:#1c1f2b;--input:#252938;--ring-bg:#413750;--shadow:none;color-scheme:dark}
*{box-sizing:border-box}body{margin:0;-webkit-font-smoothing:antialiased;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:'Manrope',system-ui,sans-serif;letter-spacing:-.025em}h1{font-size:30px;line-height:1.35;font-weight:750}h2{font-size:18px;font-weight:750}h3{font-size:15px;font-weight:750}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--primary);outline-offset:3px}button{transition:background .16s,color .16s,border-color .16s,transform .16s}button:hover:not(:disabled){filter:brightness(.98)}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:10px 15px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--text);font-size:12px;font-weight:600;white-space:nowrap;line-height:1.4;min-height:38px}.button:hover:not(:disabled){border-color:#cdc5e9}.button.primary{background:var(--primary);border-color:var(--primary);color:white;box-shadow:0 4px 10px #7363d718}.button.primary:hover:not(:disabled){background:var(--primary-dark)}.button.subtle{border-color:transparent;background:transparent;color:var(--muted);box-shadow:none}.button.icon-button{width:32px;height:32px;min-height:32px;padding:6px;background:transparent;border-color:transparent}.button.danger,.danger{color:#ce6676}.button.full-width{width:100%}.muted{color:var(--muted);font-size:12px}.text-button{color:var(--primary);border:0;background:none;padding:0;font-size:12px;font-weight:600;text-align:left}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-fieldset{padding:0;margin:0;border:0;min-width:0}.brand{display:flex;align-items:center;gap:10px;font-family:'Manrope',sans-serif;font-size:23px;font-weight:800;letter-spacing:-1px;white-space:nowrap}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:35px;height:36px;background:var(--primary);color:#fff;border-radius:11px;font-size:23px;font-weight:800;font-style:italic;line-height:1;font-family:Georgia,serif;box-shadow:0 5px 10px #7463d51a}.brand-dot{color:var(--primary);margin-left:-9px}.app-shell{display:flex;min-height:100vh}.sidebar{width:238px;flex-shrink:0;position:fixed;inset:0 auto 0 0;background:var(--sidebar);border-right:1px solid var(--line);padding:30px 20px 18px;display:flex;flex-direction:column;z-index:30}.sidebar .brand{padding:0 10px;margin-bottom:45px}.nav-label{color:#a3a6b4;font-size:9px;letter-spacing:1.8px;font-weight:650;padding-left:14px;margin-bottom:14px}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:9px;color:#7c8096;font-size:12px;font-weight:500;position:relative;margin-bottom:6px}.nav-item:hover{background:var(--bg);color:var(--text)}.nav-item.active{background:var(--primary-soft);color:var(--primary);font-weight:650}.nav-item.active:before{content:'';width:3px;height:18px;background:var(--primary);position:absolute;left:-20px;border-radius:0 4px 4px 0}.nav-count{margin-left:auto;border-radius:5px;background:var(--bg);padding:1px 6px;font-size:10px}.nav-arrow{margin-left:auto}.sidebar-bottom{margin-top:auto;padding-top:25px}.flow-tip{padding:18px 15px;background:linear-gradient(125deg,var(--primary-soft),var(--bg));border:1px solid var(--line);border-radius:12px;margin-bottom:20px}.tip-icon{display:block;color:var(--primary);font-size:25px;margin-bottom:8px}.flow-tip strong{font-size:12px}.flow-tip p{font-size:11px;color:var(--muted);margin:7px 0 14px;line-height:1.7}.flow-tip .button{background:var(--surface);width:100%;border:0;justify-content:space-between;min-height:32px;font-size:10px;padding:8px 11px}.profile{border-top:1px solid var(--line);padding-top:18px;display:flex;align-items:center;gap:10px;margin-top:12px}.avatar,.top-avatar{background:#eee9fb;color:#7e68b8;border-radius:50%;width:33px;height:33px;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}.profile>div{min-width:0;flex:1}.profile strong{font-size:10px;font-weight:700;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.profile div span{display:block;font-size:8px;color:var(--muted);margin-top:2px}.profile>a{color:var(--muted);display:flex}.workspace{margin-left:238px;flex:1;min-width:0}.topbar{height:77px;border-bottom:1px solid var(--line);padding:0 36px;display:flex;align-items:center;justify-content:space-between;background:var(--surface);gap:15px}.breadcrumb{display:flex;align-items:center;gap:11px;color:var(--muted);font-size:11px;white-space:nowrap}.breadcrumb strong{color:#61667b;font-weight:500}.topbar-actions{display:flex;align-items:center;gap:18px}.search{display:flex;align-items:center;gap:9px;color:var(--muted);width:190px}.search input{border:0;background:transparent;font-size:11px;outline-offset:4px;padding:5px;min-width:0;width:100%;color:var(--text)}.search input::placeholder{color:#a4a7b5}.search button,.toast button{background:transparent;border:0;color:inherit;display:flex;padding:3px}.sync-status{display:flex;align-items:center;gap:6px;font-size:9px;color:var(--muted);white-space:nowrap}.top-avatar{width:31px;height:31px;font-size:12px}.mobile-toggle{display:none!important}.main-content{max-width:1600px;margin:auto;padding:35px 36px 20px}.page-title{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:26px}.eyebrow{display:block;font-size:9px;font-weight:650;color:var(--muted);letter-spacing:1.5px;line-height:1.5;text-transform:uppercase}.page-title .eyebrow{margin-bottom:9px;letter-spacing:.9px;font-size:10px}.page-title h1{font-size:25px}.page-title p{margin-top:7px;color:var(--muted);font-size:12px}.title-actions{display:flex;gap:9px;align-items:center}.welcome-panel{background:linear-gradient(105deg,#ece8fb 0%,#f0edfc 58%,#f6f2fd 100%);border:1px solid #e8e3f5;border-radius:15px;padding:29px 35px;display:flex;align-items:center;justify-content:space-between;position:relative;overflow:hidden;gap:20px;min-height:236px}.welcome-copy{z-index:1}.small-pill{font-size:8px;letter-spacing:1px;font-weight:600;display:inline-flex;align-items:center;gap:6px;color:#8d7abb;background:var(--surface);border-radius:5px;padding:5px 8px}.small-pill>span{width:4px;height:4px;background:#a390cd;border-radius:50%}.welcome-copy h2{font-size:30px;line-height:1.27;font-weight:750;color:#403458;margin:13px 0 9px;letter-spacing:-1px}.welcome-copy p{color:#9586ab;font-size:11px;margin-bottom:19px}.welcome-copy .button{color:#715c9b;border-color:#dcd3ee;background:#faf8ff;font-size:10px;min-height:33px;padding:8px 12px}.goal-area{display:flex;align-items:center;gap:24px;padding-right:22px;z-index:1}.goal-ring{width:139px;height:139px;padding:10px;border-radius:50%;display:grid;place-items:center;transform:rotate(-10deg);box-shadow:0 0 0 9px #ede6f855}.goal-ring>div{border-radius:50%;background:#f3effc;width:119px;height:119px;display:flex;align-items:center;justify-content:center;flex-direction:column;transform:rotate(10deg)}.goal-ring span{font-family:'Manrope',sans-serif;font-size:37px;font-weight:750;color:#655189;line-height:1.25}.goal-ring small{font-size:21px;margin-left:2px}.goal-ring em{font-style:normal;color:#9c8baf;font-size:9px}.goal-area>div:last-child strong{display:block;color:#66517e;font-size:11px;font-weight:650}.goal-area>div:last-child>span{display:block;color:#a292b5;font-size:10px;margin:6px 0 13px}.goal-area .text-button{color:#8a72ad;font-size:9px}.welcome-spark{position:absolute;color:#d5c8ef;pointer-events:none}.spark-one{right:24px;top:20px;font-size:35px;transform:rotate(10deg)}.spark-two{right:42%;bottom:12px;font-size:47px;opacity:.5}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:22px;margin-bottom:25px}.stat-card{padding:18px 19px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.stat-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.stat-top>span:first-child{font-size:10px;font-weight:500;color:var(--muted)}.stat-icon{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;border-radius:9px;flex-shrink:0}.stat-icon.purple{color:#9c80d6;background:#f4effc}.stat-icon.orange{color:#d9a172;background:#fff4e9}.stat-icon.blue{color:#86a6d4;background:#edf4fd}.stat-icon.green{color:#7baf9d;background:#edf7f3}.stat-value{display:block;font-family:'Manrope',sans-serif;font-size:27px;letter-spacing:-.8px;font-weight:750;line-height:1.35}.stat-note{display:block;font-size:9px;color:#a4a6b4;margin-top:7px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);padding:23px}.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px}.panel-heading h2{font-size:15px}.panel-heading p{font-size:10px;color:var(--muted);margin-top:5px}.panel-heading .button{font-size:10px;padding:5px 8px;min-height:28px}.dashboard-columns{display:grid;grid-template-columns:1.12fr 1fr;gap:21px}.week-chart{display:flex;gap:16px;padding:10px 18px 0;min-height:180px;justify-content:space-between;border-bottom:1px solid var(--line);position:relative}.chart-column{display:flex;flex:1;align-items:center;flex-direction:column;gap:13px;font-size:9px;color:#a3a7b6;min-width:20px;padding-bottom:12px;z-index:1}.chart-value{font-size:8px;white-space:nowrap;height:12px}.bar-track{height:105px;width:30px;max-width:100%;display:flex;align-items:flex-end;background:linear-gradient(0deg,#f4f1fb00,#f7f5fd);border-radius:6px}.bar{background:#d6ceef;width:100%;border-radius:6px 6px 3px 3px;min-height:3px}.chart-column.today .bar{background:#9b86d2}.chart-column.today>span:last-child{color:var(--primary);font-weight:700}.chart-footer{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:9px;margin-top:14px}.chart-footer>span:first-child{display:flex;align-items:center;gap:6px}.legend-dot{display:inline-block;width:6px;height:6px;background:#c9bce7;border-radius:50%;flex-shrink:0}.legend-dot.exam{background:#d7a788}.legend-dot.deadline{background:#c988a0}.legend-dot.event{background:#87aaa4}.agenda-item{width:100%;border:0;background:none;display:flex;align-items:center;gap:13px;padding:12px 0;color:var(--text);text-align:left;border-bottom:1px solid var(--line)}.agenda-item:last-child{border-bottom:0}.agenda-date{height:47px;width:42px;background:var(--primary-soft);color:#8c79ae;display:flex;flex-shrink:0;flex-direction:column;align-items:center;justify-content:center;border-radius:8px;line-height:1.25}.agenda-date strong{font-size:17px;font-family:'Manrope',sans-serif;font-weight:700}.agenda-date span{font-size:8px;text-transform:uppercase}.agenda-date.exam{background:#fff3e8;color:#c0916d}.agenda-date.deadline{background:#f9edf3;color:#bd8ca1}.agenda-text{flex:1;min-width:0}.agenda-text strong{display:block;font-size:11px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agenda-text>span{display:block;font-size:9px;color:var(--muted);margin-top:5px}.agenda-item>svg{color:#afb2c1}.deck-preview{margin-top:22px}.deck-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.deck-mini{text-align:left;border:1px solid var(--line);border-radius:10px;background:var(--surface);padding:20px;position:relative;color:var(--text)}.deck-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:39px;border-radius:10px;background:var(--primary-soft);color:#9c85c5;flex-shrink:0}.deck-mini h3{margin:15px 0 7px;font-size:13px}.deck-mini>span:not(.deck-icon):not(.deck-mini-arrow){font-size:9px;color:var(--muted)}.deck-mini-arrow{position:absolute;bottom:20px;right:18px;color:#a3a5b5}.color-1 .deck-icon,.deck-icon.color-1{background:#eaf4f2;color:#8cafaa}.color-2 .deck-icon,.deck-icon.color-2{background:#fff3e9;color:#c8a383}.empty{text-align:center;padding:30px 15px}.empty-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:49px;background:var(--primary-soft);border-radius:14px;color:#ab9bcf;margin-bottom:14px;flex-shrink:0}.empty h3{font-size:14px;margin-bottom:8px}.empty p{font-size:11px;color:var(--muted);max-width:350px;margin:0 auto 16px;line-height:1.8}.empty .button{font-size:11px}.dashboard-columns .empty{padding:17px 10px}.dashboard-columns .empty-icon{width:35px;height:36px}.inline-empty{display:flex;align-items:center;gap:18px;padding:10px 0}.inline-empty .empty-icon{margin-bottom:0}.inline-empty>div{flex:1}.inline-empty h3{font-size:13px}.inline-empty p{font-size:10px;color:var(--muted);margin-top:6px}.app-footer{display:flex;justify-content:space-between;color:#b2b5c2;font-size:8px;margin-top:24px;padding-top:17px;border-top:1px solid var(--line)}.app-footer>span:last-child{display:flex;gap:5px;align-items:center}.online-dot{width:4px;height:4px;border-radius:50%;background:#b6d1c7}.credit-banner{display:flex;align-items:center;gap:20px;padding:22px 25px;background:var(--surface);border:1px solid var(--line);border-radius:13px;margin-bottom:23px}.credit-banner strong{display:block;font-size:23px;font-family:'Manrope',sans-serif}.credit-banner small{font-size:12px;font-family:'DM Sans',sans-serif;font-weight:400;color:var(--muted)}.credit-banner div>span{display:block;font-size:10px;color:var(--muted)}.credit-track{height:7px;background:var(--primary-soft);border-radius:10px;overflow:hidden;flex:1;max-width:400px;margin-left:auto}.credit-track>span{height:100%;background:var(--primary);border-radius:10px}.credit-banner>span:last-child{font-size:12px;color:var(--primary);font-weight:650}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:20px 0;flex-wrap:wrap}.segmented{display:flex;gap:3px;align-items:center;padding:4px;background:var(--surface);border:1px solid var(--line);border-radius:8px;overflow-x:auto;max-width:100%}.segmented button{border:0;background:transparent;color:var(--muted);font-size:11px;padding:7px 10px;white-space:nowrap;border-radius:5px}.segmented button.selected{background:var(--primary-soft);color:var(--primary);font-weight:600}.module-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.module-card{border:1px solid var(--line);border-radius:12px;background:var(--surface);padding:20px;display:flex;flex-direction:column;gap:13px}.module-card.completed{border-color:#d8e9e2}.module-card-top{display:flex;justify-content:space-between;align-items:center}.module-card .small-pill{background:var(--primary-soft);font-size:8px}.module-credits{font-size:10px;font-weight:700;color:var(--muted)}.module-card h2{font-size:16px;line-height:1.5}.module-card p{font-size:10px;color:var(--muted);min-height:18px}.module-card-bottom{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:10px;margin-top:auto;gap:10px}.module-card-bottom>div{display:flex}.check-label{display:inline-flex;align-items:center;gap:8px;font-size:11px;color:var(--muted);cursor:pointer;line-height:1.5}.check-label input{width:14px;height:14px;accent-color:var(--primary);margin:0}.module-card-bottom .check-label{font-size:9px}.badge{font-size:9px;padding:4px 8px;border-radius:5px;display:inline-flex;background:var(--primary-soft);color:var(--purple-text);align-items:center;width:max-content}.badge.warning,.badge.exam{background:#fff1e3;color:#b68a5e}.badge.deadline{background:#f9e9f1;color:#b07c96}.badge.event{background:#eaf4f2;color:#6c9a8f}.session-panel{margin-top:23px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;white-space:nowrap}th{font-size:9px;font-weight:500;color:var(--muted);padding:9px 15px 12px;border-bottom:1px solid var(--line)}td{padding:14px 15px;border-bottom:1px solid var(--line);font-size:11px}td strong{font-weight:500}tr:last-child td{border-bottom:0}td:last-child{text-align:right}.modal{background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:16px;width:min(540px,calc(100vw - 28px));padding:24px;box-shadow:0 15px 80px #17142f30;max-height:90vh;overflow-y:auto}.modal::backdrop{background:#1c17324d;backdrop-filter:blur(4px)}.modal-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:15px}.modal-heading h2{font-size:19px}.field{display:flex;flex-direction:column;gap:8px;margin-bottom:17px;flex:1;font-size:11px;color:var(--text);font-weight:500;min-width:0}input:not([type=checkbox]):not([type=file]),select,textarea{border:1px solid var(--line);background:var(--input);color:var(--text);border-radius:7px;padding:10px 12px;width:100%;font-size:12px;line-height:1.5;min-width:0}input::placeholder,textarea::placeholder{color:#a7a9b5}.form-row{display:flex;gap:16px}.form-row>.field{width:50%}textarea{resize:vertical;min-height:70px}.form-hint{font-size:10px;color:var(--muted);line-height:1.8;margin-bottom:16px}.form-check{margin-bottom:15px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;border-top:1px solid var(--line);padding-top:18px;margin-top:22px}.modal-actions .danger{margin-right:auto}.semester-list{max-height:250px;overflow:auto}.semester-list>div{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:10px 4px;font-size:12px}.calendar-panel{padding:0;overflow:hidden}.calendar-heading{padding:21px;display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}.calendar-nav{display:flex;align-items:center;gap:5px}.calendar-nav h2{font-size:14px;margin:0 12px 0 7px}.calendar-nav .button.subtle{border:1px solid var(--line);min-height:30px;font-size:10px;padding:6px 10px}.calendar-filters{display:flex;align-items:center;justify-content:space-between;padding:0 24px 19px;gap:15px}.filter-chips{display:flex;gap:8px;flex-wrap:wrap}.filter-chip{display:flex;align-items:center;gap:6px;border:1px solid transparent;background:none;color:var(--muted);padding:6px 8px;border-radius:6px;font-size:10px}.filter-chip.selected{border-color:var(--line);background:var(--bg);color:var(--text)}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--line)}.calendar-day{border-right:1px solid var(--line);min-height:130px;background:var(--surface);min-width:0}.calendar-day:nth-child(7n){border-right:0}.calendar-grid.month .calendar-day{border-bottom:1px solid var(--line)}.calendar-grid.week .calendar-day{min-height:340px}.calendar-day.current-day{background:linear-gradient(var(--primary-soft),var(--surface) 100px)}.day-heading{display:flex;flex-direction:column;align-items:center;padding:15px 10px 12px;border:0;background:transparent;width:100%;position:relative;color:var(--text)}.day-heading>span{font-size:9px;color:var(--muted);margin-bottom:6px}.day-heading>strong{display:flex;align-items:center;justify-content:center;width:27px;height:27px;font-size:13px;font-weight:600;border-radius:50%}.current-day .day-heading>strong{background:var(--primary);color:white}.day-heading>svg{position:absolute;right:8px;top:15px;color:var(--muted);opacity:0}.day-heading:hover>svg{opacity:1}.outside{opacity:.45}.day-events{padding:0 7px 12px}.calendar-event{border:0;background:#edf4f1;color:#699186;border-left:2px solid #8caf9e;width:100%;border-radius:5px;padding:9px 7px;text-align:left;margin-bottom:6px;display:flex;flex-direction:column;gap:5px;overflow:hidden}.calendar-event.exam{background:#fdf2e9;color:#b28c65;border-left-color:#d5ad8c}.calendar-event.deadline{background:#f9edf3;color:#b7829b;border-left-color:#cc9eb4}.calendar-event>span{font-size:8px}.calendar-event>strong{font-size:10px;line-height:1.55;font-weight:600;overflow-wrap:anywhere}.calendar-event>small{font-size:8px;display:flex;align-items:center;gap:3px;overflow-wrap:anywhere}.month .calendar-event{padding:4px 5px;gap:2px}.month .calendar-event>span{font-size:7px}.month .calendar-event>strong{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month .day-heading{padding:9px}.month .day-heading>strong{width:22px;height:22px;font-size:10px}.free-day{display:block;font-size:8px;color:#b6b9c5;text-align:center;margin-top:45px}.calendar-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:15px 24px;border-top:1px solid var(--line)}.calendar-footer>span{font-size:9px;color:var(--muted);display:flex;align-items:center;gap:7px;flex-wrap:wrap}.calendar-footer .legend-dot:not(:first-child){margin-left:10px}.calendar-footer .button{font-size:9px;min-height:26px}.calendar-subscriptions{margin-top:22px}.calendar-subscriptions .panel-heading>div{flex:1}.subscription-row{display:flex;align-items:center;gap:13px;border-top:1px solid var(--line);padding:15px 0}.subscription-row>div{flex:1}.subscription-row strong{display:block;font-size:12px}.subscription-row div>span{font-size:9px;color:var(--muted)}.subscription-empty{display:flex;align-items:center;gap:15px;font-size:11px;color:var(--muted);padding:10px 0}.subscription-empty>span{flex:1}.event-list{padding:10px 23px 22px}.event-row{display:flex;align-items:center;gap:14px;border-bottom:1px solid var(--line);padding:15px 0}.event-row>div{flex:1;min-width:0}.event-row strong{font-size:12px;display:block;overflow-wrap:anywhere}.event-row div>span{font-size:10px;color:var(--muted);display:block;margin-top:5px}.event-type-icon{background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;width:34px;height:35px;border-radius:9px}.event-type-icon.exam{background:#fff1e3;color:#bf976f}.event-type-icon.deadline{background:#f9edf3;color:#b98ca2}.is-done{opacity:.5}.is-done strong{text-decoration:line-through}.spinning{animation:spin 1.2s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.cards-layout{display:grid;grid-template-columns:250px 1fr;gap:22px}.deck-sidebar{align-self:start;padding:20px 14px}.deck-sidebar .panel-heading{padding:0 8px}.deck-sidebar h2{font-size:13px}.deck-list-item{display:flex;align-items:center;gap:10px;padding:12px 10px;width:100%;border:1px solid transparent;background:none;color:var(--text);border-radius:9px;text-align:left;margin-bottom:7px}.deck-list-item.selected{background:var(--primary-soft);border-color:#e6dff6}.deck-list-item>span:nth-child(2){flex:1;min-width:0}.deck-list-item strong{font-size:11px;display:block;overflow-wrap:anywhere}.deck-list-item small{display:block;font-size:9px;color:var(--muted);margin-top:4px}.deck-list-item .deck-icon{width:33px;height:34px;background:var(--surface)}.deck-list-item>svg{color:#a49bb4}.deck-content{min-width:0}.selected-deck-heading{display:flex;align-items:center;gap:14px}.selected-deck-heading>div{flex:1;min-width:0}.selected-deck-heading h2{font-size:21px;margin:5px 0;overflow-wrap:anywhere}.selected-deck-heading p{font-size:10px;color:var(--muted)}.selected-deck-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:23px}.selected-deck-actions .button{font-size:10px}.deck-content .toolbar select{width:auto;font-size:10px;background:var(--surface);padding:8px 11px}.flashcard-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:17px}.flashcard{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}.flashcard-content{border:0;background:transparent;width:100%;min-height:185px;display:flex;flex-direction:column;text-align:left;padding:22px;color:var(--text)}.flashcard-content p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;font-family:'Manrope',sans-serif;line-height:1.7;margin:15px 0;flex:1}.flip-hint{display:flex;gap:6px;align-items:center;color:#b2abc1;font-size:9px}.flashcard-bottom{border-top:1px solid var(--line);padding:10px 15px;display:flex;align-items:center;justify-content:space-between}.flashcard-bottom>div{display:flex}.card-level{font-size:8px;color:var(--muted)}.card-level.level-5,.card-level.level-4{color:#c29478}.card-level.level-1,.card-level.level-2{color:#85a89c}.flashcard.flipped{background:var(--primary-soft);border-color:#ded6ef}.learn-setup{display:grid;grid-template-columns:.9fr 1.2fr;gap:23px}.learn-deck{display:flex;gap:13px;align-items:center;width:100%;text-align:left;border:1px solid var(--line);border-radius:10px;padding:16px;background:var(--surface);color:var(--text);margin-bottom:12px}.learn-deck.selected{border-color:#c9bdec;background:var(--primary-soft)}.learn-deck>span:nth-child(2){flex:1;min-width:0}.learn-deck strong{font-size:12px;display:block;overflow-wrap:anywhere}.learn-deck small{display:block;font-size:10px;color:var(--muted);margin-top:5px}.radio-circle{width:16px;height:16px;border-radius:50%;border:1px solid #d0c6e5;display:flex;align-items:center;justify-content:center}.radio-circle>span{width:8px;height:8px;border-radius:50%;background:var(--primary)}.method-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.method-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:18px;text-align:left;display:flex;flex-direction:column;gap:8px;color:var(--text)}.method-card>svg{color:#a296be;margin-bottom:4px}.method-card strong{font-size:12px}.method-card>span{font-size:9px;color:var(--muted)}.method-card.selected{border-color:#c9bdec;background:var(--primary-soft)}.method-card.selected>svg{color:var(--primary)}.learning-options{display:flex;gap:20px;align-items:center;margin:25px 0 20px}.learning-options>.field{max-width:180px;margin-bottom:0}.option-checks{display:flex;gap:12px;flex-direction:column}.option-checks label{font-size:10px}.learning-stage{max-width:830px;margin:0 auto;padding-top:15px}.learning-progress{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;color:var(--muted);font-size:11px;margin-bottom:25px}.learning-progress>div{width:100%;background:var(--line);height:5px;border-radius:10px;overflow:hidden}.learning-progress>div>span{height:100%;display:block;background:var(--primary);border-radius:10px}.learning-card{min-height:340px;padding:42px 40px;background:var(--surface);border:1px solid var(--line);border-radius:17px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:25px;box-shadow:0 12px 30px #29203e04}.learning-card h2{font-size:25px;font-weight:600;line-height:1.65;white-space:pre-wrap;overflow-wrap:anywhere;width:100%}.learning-card.answer-visible{background:var(--primary-soft);border-color:#d9ceef}.original-question{font-size:11px;color:var(--muted);white-space:pre-wrap;max-width:90%}.learning-controls{display:flex;align-items:center;justify-content:center;gap:20px;margin:25px 0 15px}.rating-buttons{display:grid;grid-template-columns:repeat(4,1fr);width:100%;gap:12px}.button.rating{position:relative;display:flex;flex-direction:column;padding:16px 10px;border-radius:11px;white-space:normal;gap:6px}.rating strong{font-size:12px}.rating>span{font-size:8px;opacity:.7}.rating kbd{font-size:8px;position:absolute;top:5px;right:7px;opacity:.5}.rating.again{background:#f9edf0;color:#b97c90;border-color:#eed6df}.rating.hard{background:#fff3e8;color:#b58a60;border-color:#f0e1d1}.rating.good{background:#edf7f1;color:#6f9d82;border-color:#d7eadd}.rating.easy{background:#eff0fc;color:#8585bd;border-color:#dddff4}.keyboard-hint{font-size:9px;text-align:center;color:var(--muted);line-height:1.8}.blitz-clock{display:flex;align-items:center;gap:8px;position:relative;overflow:hidden;padding:10px 13px;margin-bottom:15px;background:var(--surface);border-radius:8px;color:var(--primary);font-size:11px}.blitz-clock>span{position:absolute;bottom:0;height:3px;background:var(--primary);left:0;transition:width .2s}.quiz-choices{display:grid;grid-template-columns:repeat(2,1fr);gap:13px;margin:20px 0}.quiz-choices .button{justify-content:flex-start;text-align:left;white-space:pre-wrap;font-size:11px;padding:15px}.quiz-choices span{background:var(--primary-soft);color:var(--primary);border-radius:5px;padding:3px 7px;margin-right:4px;font-size:10px}.quiz-feedback{text-align:center;font-size:12px;margin-top:17px}.quiz-feedback.correct{color:var(--green)}.quiz-feedback.incorrect{color:var(--orange)}.result-panel{text-align:center;max-width:760px;margin:30px auto;padding:50px 40px}.result-icon{display:inline-flex;align-items:center;justify-content:center;width:83px;height:83px;border-radius:25px;background:#fbf4e7;color:#d1ae75;margin-bottom:23px}.result-panel h2{font-size:26px}.result-panel>p{color:var(--muted);margin-top:10px;font-size:12px}.result-stats{display:flex;justify-content:center;gap:65px;margin:35px 0}.result-stats strong{display:block;font-size:26px;font-family:'Manrope',sans-serif}.result-stats span{display:block;color:var(--muted);font-size:10px;margin-top:7px}.result-actions{display:flex;justify-content:center;gap:12px}.settings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:23px}.settings-panel .panel-heading{justify-content:flex-start}.settings-panel.wide{grid-column:1/-1}.account-details{display:flex;align-items:center;gap:16px;margin:25px 0}.avatar.large{width:48px;height:48px;font-size:16px}.account-details h3{font-size:15px}.account-details p{font-size:11px;color:var(--muted);margin-top:4px;overflow-wrap:anywhere}.info-box{display:flex;align-items:flex-start;gap:12px;background:var(--bg);border-radius:9px;padding:15px;margin-bottom:22px;color:var(--muted)}.info-box>svg{flex-shrink:0;color:#a394bc}.info-box p{font-size:10px;line-height:1.85}.backup-actions{display:flex;gap:11px;flex-wrap:wrap;margin-bottom:18px}.legacy-import{border-top:1px solid var(--line);padding-top:24px;margin-top:24px}.legacy-import h3{margin-bottom:10px}.legacy-import p{font-size:11px;line-height:1.8;color:var(--muted);max-width:740px}.legacy-import pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--bg);padding:15px;border-radius:8px;font-size:10px;line-height:1.8;margin:18px 0 24px}.campus-tabs{display:flex;gap:12px;margin-bottom:22px}.campus-tabs button{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px 22px;color:var(--muted);display:flex;align-items:center;gap:10px;font-size:12px}.campus-tabs button.selected{border-color:#c6b7e8;background:var(--primary-soft);color:var(--primary)}.campus-info{display:flex;align-items:center;gap:20px;margin-bottom:23px}.campus-info>div{flex:1}.campus-info h2{font-size:18px}.campus-info p{font-size:11px;color:var(--muted);margin:6px 0}.campus-info div>span{font-size:10px;color:var(--muted)}.campus-map{padding:0;overflow:hidden;min-height:410px;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 10% 30%,var(--primary-soft),transparent 55%),var(--surface)}.campus-map iframe{width:100%;height:500px;border:0}.map-placeholder{text-align:center;padding:45px 25px;max-width:510px}.map-illustration{color:#b2a1cf;display:inline-flex;align-items:center;justify-content:center;width:85px;height:85px;border-radius:50%;background:var(--primary-soft);margin-bottom:25px}.map-placeholder h2{font-size:22px}.map-placeholder p{font-size:12px;color:var(--muted);line-height:1.9;margin:14px 0 23px}.map-placeholder>span:last-child{display:block;font-size:9px;color:var(--muted);margin-top:16px}.campus-source{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin:18px 0}.campus-source a{display:flex;align-items:center;gap:5px;color:var(--primary)}.toast{position:fixed;bottom:25px;left:calc(50% + 100px);transform:translateX(-50%);z-index:100;background:var(--surface);border:1px solid var(--line);border-radius:11px;box-shadow:0 8px 40px #26223a20;display:flex;align-items:center;gap:12px;padding:14px 18px;max-width:calc(100vw - 35px);font-size:12px;min-width:250px}.toast>svg{color:var(--green);flex-shrink:0}.toast>span{flex:1}.toast-error{border-color:#e1b2bc}.toast-error>svg{color:#c2697c}.initial-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:30px;text-align:center}.initial-loading h1{font-size:27px}.initial-loading p{color:var(--muted);font-size:12px;max-width:440px}.initial-loading .brand-mark{width:45px;height:46px;font-size:30px}.error-text{color:#bd6b7d!important}.login-page{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;background:var(--surface)}.login-copy{padding:65px 8vw;display:flex;align-items:flex-start;flex-direction:column;justify-content:center}.login-copy .brand{position:absolute;top:45px}.login-copy>.eyebrow{color:var(--primary);margin:30px 0 20px;font-size:10px}.login-copy h1{font-size:clamp(35px,4vw,65px);line-height:1.2;letter-spacing:-2px}.login-copy h1 span{color:var(--primary)}.login-copy>p{font-size:15px;color:var(--muted);line-height:1.9;margin:25px 0 32px;max-width:470px}.login-copy .button{font-size:12px;padding:14px 20px}.login-copy>small{font-size:10px;color:var(--muted);margin-top:17px;line-height:1.7}.login-art{background:#eee9f8;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:80px 30px}.art-card{width:min(350px,90%);padding:40px;background:#fff;border:1px solid #e0d8ef;border-radius:20px;transform:rotate(-5deg);box-shadow:0 30px 100px #8877ad22;color:#443653}.art-card h2{font-size:27px;line-height:1.4;margin:18px 0 30px}.art-row{display:flex;align-items:center;gap:15px;color:#9d8faf;font-size:12px;margin:26px 0}.art-row>svg{color:#ac96d0}.art-progress{display:flex;gap:8px;margin-top:40px}.art-progress>span{height:7px;width:20%;background:#e3d9f2;border-radius:5px}.art-progress>span:nth-child(1),.art-progress>span:nth-child(2),.art-progress>span:nth-child(3){background:#aa93cf}.art-caption{position:absolute;top:100px;left:70px;color:#9b89b3;font-size:11px;display:flex;align-items:center;gap:10px}.art-note{background:#f9f3de;padding:20px 24px;font-size:13px;position:absolute;bottom:20%;right:45px;border-radius:11px;transform:rotate(7deg);box-shadow:0 8px 20px #83693d09;color:#ae9670}.art-note span{margin-left:25px;font-size:22px}.menu-backdrop{display:none}
:root[data-theme=dark] .welcome-panel{background:linear-gradient(105deg,#302940,#342c48);border-color:#453a58}:root[data-theme=dark] .welcome-copy h2{color:#dfd2f6}:root[data-theme=dark] .welcome-copy p,:root[data-theme=dark] .goal-area>div:last-child strong{color:#b7a5ca}:root[data-theme=dark] .goal-ring>div{background:#342c48}:root[data-theme=dark] .goal-ring span{color:#d8c7f0}:root[data-theme=dark] .small-pill,:root[data-theme=dark] .welcome-copy .button{background:#40354e;color:#c6afd8;border-color:#51435d}:root[data-theme=dark] .stat-icon.purple,:root[data-theme=dark] .agenda-date{background:#373046}:root[data-theme=dark] .stat-icon.orange,:root[data-theme=dark] .agenda-date.exam{background:#413427}:root[data-theme=dark] .stat-icon.blue{background:#293346}:root[data-theme=dark] .stat-icon.green{background:#2b3d37}:root[data-theme=dark] .bar-track{background:#2d2939}:root[data-theme=dark] .bar{background:#6c6088}:root[data-theme=dark] .calendar-event{background:#2d423b}:root[data-theme=dark] .calendar-event.exam{background:#44382b}:root[data-theme=dark] .calendar-event.deadline{background:#462f3c}:root[data-theme=dark] .rating.again{background:#422c36}:root[data-theme=dark] .rating.hard{background:#423526}:root[data-theme=dark] .rating.good{background:#2a3c32}:root[data-theme=dark] .rating.easy{background:#323247}
@media(min-width:1500px){.main-content{padding:40px 55px 25px}.topbar{padding:0 55px}.welcome-panel{padding:35px 42px}.goal-area{gap:35px;padding-right:45px}.welcome-copy h2{font-size:34px}}
@media(max-width:1200px){.sidebar{width:210px;padding:27px 16px 17px}.workspace{margin-left:210px}.sidebar .brand{font-size:21px;padding:0 6px}.nav-item{padding:11px;gap:10px}.nav-item.active:before{left:-16px}.main-content{padding:28px 25px 20px}.topbar{padding:0 25px}.page-title h1{font-size:22px}.goal-area{padding:0;gap:17px}.goal-ring{width:115px;height:115px;padding:8px}.goal-ring>div{width:99px;height:99px}.goal-ring span{font-size:30px}.welcome-panel{padding:26px}.welcome-copy h2{font-size:27px}.stats-grid{gap:11px}.stat-card{padding:16px 14px}.stat-top>span:first-child{font-size:9px}.stat-value{font-size:25px}.stat-icon{width:30px;height:30px}.panel{padding:20px}.module-grid{grid-template-columns:repeat(2,1fr)}.cards-layout{grid-template-columns:215px 1fr;gap:17px}.calendar-panel{padding:0}.calendar-heading{padding:18px}.calendar-nav h2{font-size:12px}.calendar-event>strong{font-size:9px}.result-stats{gap:45px}.search{width:140px}.topbar-actions{gap:13px}.learn-setup{grid-template-columns:.9fr 1.15fr;gap:17px}}
@media(max-width:1000px){.sidebar{width:190px;padding-left:12px;padding-right:12px}.workspace{margin-left:190px}.sidebar .brand{font-size:19px}.brand-mark{width:31px;height:32px;font-size:21px}.nav-item{font-size:11px;padding:10px 9px;gap:9px}.nav-item.active:before{left:-12px}.profile>div>span{display:none}.profile strong{font-size:9px}.flow-tip{padding:13px 12px}.main-content{padding:25px 20px}.topbar{padding:0 20px}.sync-status{display:none}.page-title{align-items:flex-start}.title-actions{flex-wrap:wrap;justify-content:flex-end}.page-title h1{font-size:20px}.page-title .button{font-size:10px;padding:9px 11px}.goal-area{flex-direction:column;text-align:center;gap:13px}.welcome-panel{padding:25px}.welcome-copy h2{font-size:27px}.welcome-spark{display:none}.goal-area .text-button{text-align:center}.goal-area>div:last-child>span{display:none}.goal-area>div:last-child strong{font-size:9px;margin-bottom:8px}.stats-grid{grid-template-columns:repeat(2,1fr)}.dashboard-columns{grid-template-columns:1fr}.deck-grid{gap:11px}.deck-mini{padding:15px}.deck-mini h3{font-size:11px}.cards-layout{grid-template-columns:1fr}.deck-sidebar{padding:16px}.deck-list{display:flex;gap:8px;overflow-x:auto}.deck-list-item{min-width:170px;max-width:200px}.deck-sidebar .full-width{display:none}.learn-setup{grid-template-columns:1fr}.learn-decks{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.learn-deck{margin:0}.calendar-panel{overflow-x:auto}.calendar-grid{min-width:660px}.calendar-heading{min-width:580px}.calendar-filters{min-width:580px}.calendar-footer{min-width:580px}.calendar-subscriptions .panel-heading{align-items:flex-start}.subscription-row{flex-wrap:wrap}.settings-grid{grid-template-columns:1fr}.settings-panel.wide{grid-column:auto}.credit-track{max-width:200px}.login-copy{padding:100px 6vw 60px}.login-art{padding:60px 20px}.art-caption{left:35px;top:70px}.art-card{padding:30px}.art-card h2{font-size:24px}.art-note{bottom:17%;right:20px;padding:18px;font-size:11px}.toast{left:calc(50% + 90px)}}
@media(max-width:760px){.sidebar{width:238px;transform:translateX(-100%);transition:transform .2s;padding:25px 20px 17px}.sidebar .brand{font-size:23px}.menu-open .sidebar{transform:translateX(0)}.menu-backdrop{display:block;position:fixed;inset:0;background:#201c3744;backdrop-filter:blur(2px);border:0;z-index:25}.workspace{margin-left:0}.mobile-toggle{display:inline-flex!important}.topbar{height:65px;padding:0 17px;gap:9px}.breadcrumb{font-size:10px;gap:8px;flex:1}.breadcrumb>strong{font-size:11px}.breadcrumb{color:transparent;font-size:0}.breadcrumb>svg{display:none}.topbar-actions{gap:6px}.search{width:115px}.search input{font-size:10px}.top-avatar{display:none}.main-content{padding:25px 18px 20px}.page-title{display:block;margin-bottom:23px}.page-title h1{font-size:23px}.page-title .eyebrow{font-size:9px}.page-title p{font-size:11px}.title-actions{margin-top:16px;justify-content:flex-start}.page-title .button{font-size:11px}.welcome-panel{padding:24px 22px;gap:10px;min-height:220px}.welcome-copy h2{font-size:27px}.welcome-copy p{font-size:10px}.small-pill{font-size:7px}.goal-ring{width:95px;height:95px;padding:7px}.goal-ring>div{width:81px;height:81px}.goal-ring span{font-size:27px}.goal-ring small{font-size:17px}.goal-ring em{font-size:7px}.goal-area{gap:13px}.goal-area>div:last-child strong{font-size:8px;max-width:105px}.goal-area .text-button{font-size:8px}.stats-grid{gap:12px;margin:18px 0}.stat-card{padding:15px}.stat-value{font-size:26px}.stat-note{font-size:8px}.dashboard-columns{gap:18px}.panel{padding:19px}.panel-heading h2{font-size:14px}.panel-heading p{font-size:9px}.week-chart{gap:12px;padding-left:4px;padding-right:4px}.deck-grid{grid-template-columns:1fr}.deck-mini{display:flex;align-items:center;gap:14px;padding:15px}.deck-mini h3{margin:0;flex:1}.deck-mini-arrow{position:static}.deck-mini>span:not(.deck-icon):not(.deck-mini-arrow){display:none}.inline-empty{flex-wrap:wrap;gap:12px}.inline-empty>div{min-width:200px}.inline-empty>.button{margin-left:60px}.inline-empty h3{font-size:12px}.app-footer{font-size:7px;margin-top:22px}.module-grid{grid-template-columns:1fr}.credit-banner{padding:19px;gap:13px;flex-wrap:wrap}.credit-banner strong{font-size:23px}.credit-track{max-width:none;margin-left:0;width:calc(100% - 45px);flex:none}.credit-banner>span:last-child{margin-left:auto}.segmented button{font-size:10px;padding:7px 9px}.toolbar{margin:18px 0}.calendar-panel{padding:0}.calendar-heading{padding:15px;min-width:600px}.calendar-filters{padding:0 15px 16px;min-width:600px}.calendar-grid{min-width:640px}.calendar-footer{min-width:600px;padding:13px 18px}.calendar-nav h2{font-size:12px}.calendar-subscriptions .panel-heading{flex-wrap:wrap;gap:12px}.calendar-subscriptions .panel-heading>div{min-width:230px}.subscription-empty{flex-wrap:wrap;gap:10px}.subscription-empty>.button{margin-left:28px}.subscription-row .button{font-size:9px;padding:8px 10px}.event-list{min-width:600px}.selected-deck-heading{gap:11px}.selected-deck-heading h2{font-size:18px}.selected-deck-heading .eyebrow{font-size:8px}.selected-deck-heading .stat-icon{display:none}.selected-deck-actions{gap:7px}.flashcard-grid{gap:13px}.flashcard-content{padding:17px;min-height:180px}.flashcard-content p{font-size:12px;line-height:1.8}.flashcard-bottom{padding:8px 10px}.flashcard-bottom .button{width:27px;padding:5px}.flashcard-bottom .card-level{font-size:7px}.learn-decks{grid-template-columns:1fr}.method-card{padding:16px}.learning-options{align-items:flex-start;flex-wrap:wrap}.learning-card{padding:30px 24px;min-height:300px}.learning-card h2{font-size:20px}.rating-buttons{grid-template-columns:repeat(2,1fr);gap:10px}.rating-buttons .button{padding:15px}.learning-progress{font-size:10px}.keyboard-hint{font-size:8px}.quiz-choices{grid-template-columns:1fr}.result-panel{padding:35px 20px}.result-panel h2{font-size:23px}.result-stats{gap:25px;margin:27px 0}.result-stats strong{font-size:23px}.result-stats span{font-size:8px}.result-actions{flex-wrap:wrap}.modal{padding:21px}.form-row{gap:12px}.modal-heading h2{font-size:18px}.modal-actions .button{font-size:11px}.campus-tabs{gap:8px;overflow-x:auto}.campus-tabs button{padding:12px 14px;font-size:10px;white-space:nowrap;flex-shrink:0}.campus-tabs button svg{width:16px}.campus-info{flex-wrap:wrap;gap:14px}.campus-info>.button{margin-left:43px;font-size:10px}.campus-info h2{font-size:17px}.campus-map{min-height:360px;padding:0}.map-placeholder{padding:30px 20px}.map-placeholder h2{font-size:20px}.map-placeholder p{font-size:11px}.toast{left:50%;bottom:18px;font-size:11px;width:max-content;max-width:calc(100vw - 28px)}.login-page{grid-template-columns:1fr}.login-copy{padding:130px 9vw 60px;min-height:80vh}.login-copy .brand{top:35px}.login-copy h1{font-size:45px}.login-copy>p{font-size:14px}.login-copy>small{font-size:9px}.login-art{min-height:510px;padding:60px 30px}.art-caption{top:30px;left:30px}.art-note{bottom:55px;right:35px}}
@media(max-width:390px){.welcome-copy h2{font-size:23px}.welcome-panel{padding:20px 16px}.goal-ring{width:82px;height:82px;padding:6px}.goal-ring>div{width:70px;height:70px}.goal-ring span{font-size:24px}.welcome-copy p{max-width:140px}.stat-card{padding:13px}.stat-top>span:first-child{font-size:8px}.stat-value{font-size:24px}.flashcard-grid{grid-template-columns:1fr}.main-content{padding-left:14px;padding-right:14px}.topbar{padding:0 12px}.search{width:95px}.result-stats{gap:17px}.profile strong{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.calendar-connect-error{padding:12px 14px;border:1px solid #dd626a;border-radius:9px;color:var(--text);background:#dd626a12;font-size:12px;line-height:1.6;margin:12px 0}

.milestone-panel{margin:24px 0;padding:25px 27px;background:linear-gradient(135deg,var(--surface),var(--input));overflow:hidden}
.milestone-heading{align-items:center;margin-bottom:20px}.milestone-heading .eyebrow{font-size:9px;letter-spacing:.14em;margin-bottom:6px;display:block}.milestone-heading h2{font-size:21px}.milestone-heading p{margin-top:5px;font-size:12px}
.milestone-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--line)}.milestone-toolbar .filter-chips{flex-wrap:wrap}.milestone-toolbar .filter-chip{display:flex;align-items:center;gap:8px}.milestone-filter-count{font-size:10px;font-weight:700;background:var(--line);padding:1px 6px;border-radius:6px}.selected .milestone-filter-count{background:var(--primary-soft);color:var(--primary)}.milestone-range{display:flex;align-items:center;gap:9px;font-size:11px;color:var(--muted);white-space:nowrap}.milestone-range select{width:auto;font-size:11px;padding:8px 29px 8px 11px;background:var(--surface)}
.milestone-scroll{overflow-x:auto;padding:24px 0 4px;scrollbar-width:thin;scrollbar-color:var(--line) transparent;overscroll-behavior-x:contain}.milestone-scroll:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;border-radius:8px}
.milestone-rail{position:relative;display:flex;gap:28px;list-style:none;width:max-content;min-width:100%;margin:0;padding:0 8px 18px}.milestone-rail::before{content:'';position:absolute;left:18px;right:8px;top:58px;height:2px;background:linear-gradient(90deg,var(--primary),var(--line) 160px)}
.milestone-today,.milestone-group{position:relative;flex-shrink:0}.milestone-today{width:88px}.milestone-group{width:244px}.milestone-month{display:block;font-size:10px;color:var(--muted);height:17px}.milestone-day,.milestone-today>strong{display:block;font-size:13px;line-height:22px;margin-top:5px}.milestone-today>strong{color:var(--primary)}.milestone-today-date{display:block;margin-top:38px;font-size:11px;color:var(--muted)}
.milestone-node{position:absolute;left:2px;top:51px;width:16px;height:16px;border-radius:50%;border:4px solid var(--surface);background:var(--primary);box-shadow:0 0 0 1px var(--primary)}.milestone-node.exam{background:var(--primary);box-shadow:0 0 0 1px var(--primary)}.milestone-node.deadline{background:var(--orange);box-shadow:0 0 0 1px var(--orange)}.milestone-node.mixed{background:linear-gradient(90deg,var(--primary) 50%,var(--orange) 50%)}.milestone-today .milestone-node{box-shadow:0 0 0 4px var(--primary-soft),0 0 0 5px var(--primary)}.milestone-day-events{display:grid;gap:12px;margin-top:37px}
.milestone-card{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--primary);border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}.milestone-card.deadline{border-top-color:var(--orange)}.milestone-event-button{display:block;width:100%;padding:15px;text-align:left;background:transparent;border:0;color:var(--text)}.milestone-event-button:hover{background:var(--input)}.milestone-type{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:650;color:var(--primary)}.deadline .milestone-type{color:var(--orange)}.milestone-type>svg:last-child{margin-left:auto;color:var(--muted)}.milestone-event-button h3{font-size:14px;line-height:1.5;margin-top:11px;overflow-wrap:anywhere}.milestone-module{display:block;font-size:10px;color:var(--muted);margin-top:4px;overflow-wrap:anywhere}.milestone-time{display:block;font-size:11px;margin-top:10px;color:var(--muted)}.milestone-location{display:block;font-size:10px;color:var(--muted);margin-top:4px;white-space:pre-line;overflow-wrap:anywhere}.milestone-card-footer{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:14px}.milestone-card-footer>strong{font-size:10px;font-weight:600;padding:4px 7px;border-radius:6px;background:var(--input);color:var(--muted)}.milestone-card-footer>strong.soon{color:var(--primary);background:var(--primary-soft)}.deadline .milestone-card-footer>strong.soon{color:var(--orange);background:color-mix(in srgb,var(--orange) 10%,var(--surface))}.milestone-priority{font-size:9px;color:var(--orange)}.milestone-complete{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:8px;border:0;border-top:1px solid var(--line);background:transparent;color:var(--muted);font-size:10px}.milestone-complete:hover{background:var(--primary-soft);color:var(--primary)}
.milestone-overdue{margin-top:18px;padding:15px;background:color-mix(in srgb,var(--orange) 7%,var(--surface));border:1px solid color-mix(in srgb,var(--orange) 23%,var(--line));border-radius:11px}.milestone-overdue-label{display:flex;align-items:center;gap:8px;color:var(--orange);font-size:11px;margin-bottom:12px}.milestone-overdue-cards{display:flex;gap:12px;overflow-x:auto;padding-bottom:4px}.milestone-overdue-cards>.milestone-card{flex:0 0 244px}.milestone-overdue .milestone-card-footer>strong{color:var(--orange)}
.milestone-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;border-top:1px solid var(--line);padding-top:13px;font-size:11px;color:var(--muted)}.milestone-footer>div{display:flex;gap:7px}.milestone-beyond{margin-top:13px;text-align:left;font-size:11px}.milestone-panel>.empty{padding:30px 15px}
@media(max-width:700px){.milestone-panel{padding:19px;margin:18px 0}.milestone-heading{align-items:flex-start;gap:12px}.milestone-heading h2{font-size:18px}.milestone-heading p{font-size:11px}.milestone-heading>.button{padding:8px;font-size:10px;white-space:nowrap}.milestone-heading>.button svg{display:none}.milestone-toolbar{align-items:flex-start;flex-direction:column;gap:12px}.milestone-range{width:100%;justify-content:space-between}.milestone-range select{font-size:11px}.milestone-toolbar .filter-chip{font-size:10px;padding:7px 9px}.milestone-group,.milestone-overdue-cards>.milestone-card{width:220px;flex-basis:220px}.milestone-rail{gap:20px}.milestone-today{width:65px}.milestone-month{font-size:9px}.milestone-footer{font-size:10px}.milestone-overdue{padding:12px}.milestone-overdue-label{font-size:10px}}

.module-grade{padding:13px;background:var(--input);border:1px solid var(--line);border-radius:10px;margin:13px 0}.module-grade-status{display:block;color:var(--muted);font-size:10px;margin-bottom:9px}.module-grade dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0}.module-grade dl>div:last-child{grid-column:1/-1}.module-grade dt{font-size:10px;color:var(--muted)}.module-grade dd{margin:3px 0 0;font-size:15px;font-weight:650}.module-grade.passed dd{color:var(--green)}.module-grade.failed dd,.module-grade.failed small{color:var(--orange)}.module-grade-missing{font-size:11px;margin:12px 0;color:var(--muted)}.module-grade-preview{display:flex;gap:12px;align-items:center;background:var(--primary-soft);padding:12px;border-radius:9px;margin:12px 0;color:var(--primary)}.module-grade-preview strong{font-size:23px}
@font-face{font-family:'StudyFlow Notes';src:url('/assets/annotation-font.ttf') format('truetype');font-display:swap}
.card-images{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;width:100%;margin:14px 0}.card-images img{max-width:100%;max-height:260px;object-fit:contain;border-radius:8px;border:1px solid var(--line);background:var(--surface)}.learning-card .card-images img{max-height:400px}.quiz-choices .card-images img{max-height:170px}.card-image-picker{margin:-3px 0 20px}.card-image-picker>.button{font-size:11px}.card-image-previews{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:10px}.card-image-previews>div{position:relative}.card-image-previews img{max-width:130px;height:90px;object-fit:contain;border:1px solid var(--line);border-radius:8px}.card-image-previews button{position:absolute;right:-5px;top:-5px;width:23px;height:23px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--text);display:grid;place-items:center}
.documents-module{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--muted)}.documents-module select{width:auto;max-width:250px}.document-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:20px}.document-card{padding:0;overflow:hidden}.document-open{display:block;width:100%;border:0;background:transparent;text-align:left;color:var(--text);padding:0 18px 17px}.document-thumbnail{height:160px;margin:0 -18px 17px;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;position:relative}.document-thumbnail.image{background:var(--input)}.document-thumbnail img{width:100%;height:100%;object-fit:cover}.document-thumbnail>span{position:absolute;bottom:10px;left:12px;font-size:9px;letter-spacing:.1em;background:var(--surface);padding:3px 7px;border-radius:5px}.document-open h2{font-size:14px;overflow-wrap:anywhere}.document-open p{font-size:11px;color:var(--muted);margin:7px 0 13px}.document-open .text-button{display:inline-flex;align-items:center;gap:7px;font-size:11px}.document-card-actions{padding:11px 15px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.documents-hint{margin:20px 0}
.document-editor{border:1px solid var(--line);border-radius:15px;background:var(--surface);overflow:hidden}.editor-header{display:flex;align-items:center;gap:12px;padding:18px;border-bottom:1px solid var(--line)}.editor-header>div{flex:1;min-width:0}.editor-header h1{font-size:17px;overflow-wrap:anywhere}.editor-header span{font-size:10px;color:var(--muted)}.editor-toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:12px 17px;background:var(--input);border-bottom:1px solid var(--line)}.editor-tool-group{display:flex;gap:5px}.editor-tool-group .selected{background:var(--primary-soft);color:var(--primary);border-color:var(--primary)}.editor-color,.editor-width{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:7px}.editor-color input{width:32px!important;height:32px;padding:2px!important}.editor-width input{width:80px!important;padding:0!important}.editor-zoom{display:flex;align-items:center;gap:7px;font-size:11px;margin-left:auto}.editor-text-controls{display:flex;align-items:center;gap:14px;padding:13px 18px;border-bottom:1px solid var(--line)}.editor-text-controls label{font-size:10px;color:var(--muted)}.editor-text-controls label:first-child{flex:1}.editor-text-controls textarea{margin-top:5px}.editor-text-controls input{width:75px;margin-top:5px}.editor-page-controls{display:flex;align-items:center;gap:10px;padding:10px 17px;font-size:11px}.editor-page-controls input{width:55px;padding:5px;font-size:11px}.editor-page-controls>span{margin-left:auto;font-size:10px;color:var(--muted)}.editor-stage{background:var(--bg);overflow:auto;padding:25px 20px;max-height:75vh;min-height:400px;overscroll-behavior:contain}.editor-paper{position:relative;margin:0 auto;background:white;box-shadow:0 5px 30px #0002;flex-shrink:0;overflow:hidden}.editor-paper>canvas,.editor-paper>img{display:block;width:100%;height:100%;object-fit:contain}.annotation-layer{position:absolute;inset:0;width:100%;height:100%;touch-action:none;user-select:none;cursor:crosshair}.annotation-layer.tool-select{cursor:grab}.annotation-layer.tool-text{cursor:text}.annotation-layer.tool-eraser{cursor:cell}.document-editor>.calendar-connect-error{margin:10px 17px}
@media(max-width:700px){.documents-toolbar{flex-wrap:wrap;gap:13px}.documents-toolbar .segmented{width:100%;overflow:auto}.documents-module{width:100%;justify-content:space-between}.document-grid{gap:14px;grid-template-columns:1fr}.editor-header{flex-wrap:wrap;padding:13px;gap:8px}.editor-header>div{flex-basis:calc(100% - 55px)}.editor-header h1{font-size:14px}.editor-header>.button:not(.icon-button){flex:1;font-size:10px}.editor-toolbar{padding:10px;gap:10px}.editor-tool-group .button{padding:7px}.editor-zoom{margin-left:0}.editor-page-controls{padding:10px;gap:6px;flex-wrap:wrap}.editor-page-controls>span{width:100%;margin-left:0}.editor-stage{padding:15px 10px;max-height:70vh}.editor-text-controls{flex-wrap:wrap;padding:10px;gap:10px}.editor-text-controls label:first-child{min-width:180px}}

.overall-grade{display:flex;align-items:center;gap:18px;margin-bottom:24px}.overall-grade-copy{flex:1;min-width:0}.overall-grade-copy h2{margin:0 0 6px}.overall-grade-copy p{color:var(--muted);margin:0 0 8px;font-size:13px}.overall-grade-value{font-size:36px;white-space:nowrap;color:var(--primary)}@media(max-width:600px){.overall-grade{flex-wrap:wrap;gap:12px}.overall-grade-copy{flex-basis:calc(100% - 70px)}.overall-grade-value{margin-left:auto}}

.semester-count{display:flex;align-items:center;gap:9px;font-size:11px;color:var(--muted)}.semester-count select{width:auto;min-width:115px;padding:10px 28px 10px 12px;font-size:12px}@media(max-width:600px){.semester-count{flex-wrap:wrap;gap:6px}}
.todo-panel{margin:22px 0}.todo-row{display:flex;align-items:flex-start;gap:15px;padding:18px 0;border-bottom:1px solid var(--line)}.todo-row:last-child{border-bottom:0}.todo-row>input{width:18px;height:18px;margin-top:4px;accent-color:var(--primary);flex-shrink:0}.todo-copy{flex:1;min-width:0}.todo-copy h3{font-size:14px;margin:0 0 9px;overflow-wrap:anywhere}.todo-copy>p{font-size:12px;color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere;margin-top:12px}.todo-meta{display:flex;flex-wrap:wrap;gap:7px 13px;color:var(--muted);font-size:10px}.todo-overdue{color:var(--orange);font-weight:700}.todo-actions{display:flex;gap:3px}.todo-row.is-done h3{text-decoration:line-through;color:var(--muted)}.todo-focus{display:flex;gap:16px;background:var(--primary-soft)}.todo-focus>svg{color:var(--primary);flex-shrink:0}.todo-focus h2{font-size:17px}.todo-focus p{font-size:12px;color:var(--muted);margin-top:8px}.todo-toolbar{flex-wrap:wrap;gap:12px}.todo-toolbar>select{width:auto;max-width:230px}@media(max-width:600px){.todo-row{gap:10px}.todo-actions{flex-direction:column}.todo-focus h2{font-size:14px}.todo-toolbar .segmented{flex-wrap:wrap}}
.library-filters{display:flex;gap:16px;flex-wrap:wrap;margin:15px 0 22px}.library-filters label,.notes-module-filter{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:11px}.library-filters select,.notes-module-filter select{width:auto;max-width:260px}.material-summary{display:flex;gap:16px;align-items:center;margin-bottom:22px}.material-summary>svg{color:var(--primary);flex-shrink:0}.material-summary>div{flex:1}.material-summary h2{font-size:17px}.material-summary p{font-size:11px;color:var(--muted);margin-top:6px}progress{accent-color:var(--primary);height:9px;border:0;border-radius:6px;overflow:hidden}progress::-webkit-progress-bar{background:var(--line)}progress::-webkit-progress-value{background:var(--primary)}.material-summary progress{width:30%}.module-progress-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:15px;margin-bottom:22px}.module-progress-card{text-align:left;color:var(--text);display:flex;flex-direction:column;gap:12px}.module-progress-card span{font-size:10px;color:var(--muted)}.module-progress-card progress{width:100%}.material-row{display:flex;align-items:flex-start;gap:12px;padding:17px 0;border-bottom:1px solid var(--line)}.material-row:last-child{border-bottom:0}.material-row>input{width:18px;height:18px;flex-shrink:0;accent-color:var(--primary);margin-top:3px}.material-row>div{flex:1;min-width:0}.material-row h3{font-size:14px;overflow-wrap:anywhere;margin-bottom:7px}.material-row span,.material-row small{font-size:10px;color:var(--muted);display:block}.material-row .text-button{margin-top:8px;padding-left:0}.document-progress{padding:0 15px 12px;display:flex;flex-direction:column;gap:8px}.document-progress label{display:flex;gap:8px;align-items:center;font-size:11px}.document-progress input{width:16px;height:16px;accent-color:var(--primary)}.document-progress .button{align-self:flex-start;font-size:10px;padding:5px 0}.notes-module-filter{margin-bottom:22px}.notes-workspace{display:grid;grid-template-columns:280px minmax(0,1fr);gap:22px;align-items:start}.notes-list{padding:12px;max-height:75vh;overflow:auto}.notes-list>div{display:flex;border-bottom:1px solid var(--line);border-radius:8px}.notes-list>div.selected{background:var(--primary-soft)}.notes-list>div>button:first-child{border:0;background:transparent;flex:1;text-align:left;padding:15px;color:var(--text);min-width:0}.notes-list strong{font-size:12px;display:block;overflow-wrap:anywhere}.notes-list span,.notes-list p{font-size:10px;color:var(--muted);display:block;margin-top:7px;overflow-wrap:anywhere}.notes-list .icon-button{margin-top:10px;flex-shrink:0}.note-editor{padding:22px}.note-editor-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:22px}.note-editor-toolbar>span{display:flex;align-items:center;gap:7px;flex:1;font-size:10px;color:var(--muted)}.note-editor-toolbar .button{font-size:10px}.lecture-notepad{min-height:55vh;resize:vertical;font-size:15px;line-height:1.9;padding:20px;margin-top:13px;background:var(--surface)}@media(max-width:850px){.notes-workspace{grid-template-columns:1fr}.notes-list{max-height:240px}.material-summary{flex-wrap:wrap}.material-summary progress{width:100%}.library-filters{gap:9px}.library-filters label{flex-wrap:wrap}.notes-module-filter select{max-width:210px}}

.sidebar{overflow-y:auto;overscroll-behavior:contain}.profile-logout{padding:0;display:flex;background:none;border:0;color:var(--muted)}
@font-face{font-family:'StudyFlow Notes';src:url('/assets/annotation-font-bold.ttf') format('truetype');font-weight:700;font-display:swap}@font-face{font-family:'StudyFlow Notes';src:url('/assets/annotation-font-italic.ttf') format('truetype');font-style:italic;font-display:swap}@font-face{font-family:'StudyFlow Notes';src:url('/assets/annotation-font-bold-italic.ttf') format('truetype');font-style:italic;font-weight:700;font-display:swap}.editor-paper{overflow:visible}.editor-stage{padding-top:90px}.inline-text-editor{position:absolute;z-index:5;max-width:100%;min-width:0}.inline-text-editor>textarea{font-family:'StudyFlow Notes',sans-serif;line-height:1.3;padding:0;border:1px dashed #7764d9;border-radius:0;background:#ffffffeb;resize:vertical;box-shadow:0 3px 16px #0002;margin:0;min-height:42px}.inline-text-toolbar{position:absolute;left:0;bottom:calc(100% + 6px);display:flex;align-items:center;flex-wrap:wrap;gap:3px;width:320px;max-width:max(220px,100%);padding:7px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 20px #0003;color:var(--text)}.inline-text-toolbar label{display:flex;align-items:center;gap:4px;font-size:10px}.inline-text-toolbar input[type=number]{width:52px;padding:5px;font-size:11px}.inline-text-toolbar input[type=color]{width:27px;height:27px;padding:2px}.inline-text-toolbar .icon-button{width:27px;height:27px;padding:5px}.inline-text-toolbar [aria-pressed=true]{background:var(--primary-soft);color:var(--primary);border-color:var(--primary)}.editor-text-hint{display:flex;gap:12px;align-items:center;padding:10px 17px;border-bottom:1px solid var(--line);font-size:10px;color:var(--muted)}
.week-schedule-scroll{overflow:auto;max-height:730px;position:relative;border-top:1px solid var(--line)}.week-schedule{display:grid;grid-template-columns:58px repeat(7,minmax(110px,1fr));min-width:850px;padding-bottom:8px}.schedule-corner,.schedule-day-heading{position:sticky;top:0;z-index:5;background:var(--surface);border:0;border-bottom:1px solid var(--line);padding:12px 4px;min-height:63px}.schedule-corner{font-size:9px;color:var(--muted);display:flex;align-items:center;justify-content:center}.schedule-day-heading{color:var(--text);display:flex;align-items:center;flex-direction:column;gap:6px;border-left:1px solid var(--line)}.schedule-day-heading span{font-size:9px;color:var(--muted)}.schedule-day-heading strong{font-size:13px;display:grid;place-items:center;min-width:25px;min-height:25px;border-radius:50%}.schedule-day-heading>svg{display:none}.schedule-day-heading:hover>svg{display:block;position:absolute;right:7px;top:18px}.schedule-day-heading.current-day strong{background:var(--primary);color:white}.schedule-all-day-label{font-size:8px;color:var(--muted);padding:13px 3px;text-align:center;border-bottom:1px solid var(--line)}.schedule-all-day{padding:3px;border-left:1px solid var(--line);border-bottom:1px solid var(--line);min-height:36px}.schedule-all-day .calendar-event{margin:2px 0;width:100%;font-size:9px}.schedule-time-axis{position:relative;background:var(--surface);font-size:9px;color:var(--muted);z-index:2}.schedule-time-axis>span{position:absolute;right:8px;transform:translateY(-50%);background:var(--surface);padding:2px 0}.schedule-day-column{position:relative;border-left:1px solid var(--line);min-width:0;overflow:hidden}.schedule-day-column.current-day{background:var(--primary-soft)}.schedule-hour-line{position:absolute;left:0;right:0;height:1px;background:var(--line);z-index:0}.schedule-midday-band{position:absolute;left:0;right:0;background:var(--input);opacity:.7;z-index:0}.schedule-pause{position:absolute;left:3px;right:3px;z-index:1;display:flex;align-items:center;justify-content:center;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);color:var(--muted);background:var(--surface);font-size:8px;text-align:center;overflow:hidden}.schedule-pause>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 3px}.schedule-pause.lunch{background:var(--input);font-size:9px}.schedule-pause.lunch>span{white-space:normal;line-height:1.6}.schedule-day-column>.schedule-event{position:absolute;margin:0!important;z-index:3;padding:6px;min-height:0;text-align:left;overflow:hidden;border-radius:5px;font-size:10px;display:block}.schedule-event .schedule-event-time{display:block;font-size:9px;font-weight:700;white-space:nowrap;margin-bottom:5px;overflow:hidden;text-overflow:ellipsis}.schedule-event strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;font-size:10px;line-height:1.5}.schedule-event small{display:flex;gap:3px;align-items:center;font-size:8px;margin-top:5px;overflow:hidden;text-overflow:ellipsis}.schedule-free{position:absolute;top:20px;left:0;right:0;text-align:center;color:var(--muted);font-size:8px}.calendar-kind-notice{margin:0;padding:0 25px 15px;font-size:11px;color:var(--muted)}.calendar-panel .calendar-footer{flex-wrap:wrap;gap:8px}@media(max-width:600px){.week-schedule-scroll{max-height:65vh}.calendar-kind-notice{min-width:600px;padding:0 15px 12px}}

.schedule-time-axis{position:sticky;left:0;font-size:10px;z-index:4}.schedule-corner{left:0;z-index:7}.schedule-all-day-label{position:sticky;left:0;z-index:4;background:var(--surface)}.schedule-event .schedule-event-time{white-space:normal;line-height:1.3}@media(max-width:600px){.calendar-week-panel .calendar-heading,.calendar-week-panel .calendar-filters{min-width:0;flex-wrap:wrap;gap:12px}.calendar-week-panel .calendar-nav{flex-wrap:wrap;gap:5px}.calendar-week-panel .calendar-footer,.calendar-week-panel .calendar-kind-notice{min-width:0}}
.rich-annotation-input{font-family:'StudyFlow Notes',sans-serif;line-height:1.3;min-height:48px;max-height:300px;overflow:auto;white-space:pre;outline:none;border:1px dashed #7764d9;background:#ffffffeb;color:#111;padding:0;box-shadow:0 3px 16px #0002}.rich-annotation-input:empty:before{content:attr(data-placeholder);color:#999;pointer-events:none}.rich-format-hint{display:block;font-size:9px;color:var(--muted);background:var(--surface);padding:5px 7px}

.brand-mark{font-style:normal;font-family:'Manrope',system-ui,sans-serif}

.campovia-public{--public-ink:#202436;--public-muted:#687082;--public-paper:#f9faf4;--public-purple:#7460d6;--public-lime:#d6ef8d;color:var(--public-ink);background:var(--public-paper);color-scheme:light;font-size:15px;overflow-x:clip}.campovia-public h1,.campovia-public h2,.campovia-public h3{font-family:'Manrope',system-ui,sans-serif}.campovia-public em{font-style:normal;color:var(--public-purple)}.campovia-public button:focus-visible,.campovia-public a:focus-visible{outline:3px solid var(--public-purple);outline-offset:5px}.campovia-public .brand-mark{background:var(--public-purple);border-radius:12px;font-style:normal;font-family:'Manrope',sans-serif}.campovia-public .brand-dot{color:var(--public-purple)}.campovia-public .brand{font-size:25px;letter-spacing:-1px}.public-header{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;padding:26px 5%;gap:24px;position:relative;z-index:12}.campovia-landing>.public-header{position:sticky;top:0;background:#f9faf4ed;backdrop-filter:blur(18px);border-bottom:1px solid #2024360b}.public-header nav{display:flex;gap:33px;font-size:13px;font-weight:600}.public-header nav a:hover{color:var(--public-purple)}.public-login,.public-back{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:650}.public-login{border:1px solid #20243622;padding:11px 18px;border-radius:30px}.public-menu-toggle{display:none}.public-scroll-progress{position:fixed;inset:0 0 auto;height:3px;background:var(--public-purple);transform-origin:left;z-index:50}.public-kicker{font-size:10px;font-weight:750;letter-spacing:2px;display:inline-flex;align-items:center;gap:10px;line-height:1.7}.public-kicker>span{height:7px;width:7px;border-radius:50%;background:var(--public-purple)}.public-button{display:inline-flex;align-items:center;justify-content:center;gap:20px;border:0;border-radius:13px;padding:17px 23px;background:var(--public-ink);color:white;font-size:13px;font-weight:650;line-height:1.5;transition:transform .2s,background .2s;min-height:52px}.public-button:hover:not(:disabled){background:#3a344f;transform:translateY(-2px)}.public-button:disabled{opacity:.5;cursor:not-allowed}.public-button svg{flex-shrink:0}.public-hero{max-width:1400px;display:grid;grid-template-columns:1fr 1.15fr;align-items:center;gap:40px;min-height:730px;padding:76px 5% 85px;margin:0 auto}.hero-copy{position:relative;z-index:3}.hero-copy h1{font-size:clamp(46px,5.7vw,82px);line-height:1.06;letter-spacing:-.065em;margin:25px 0 28px;font-weight:800}.hero-copy h1 em{position:relative}.hero-copy h1 em:after{content:'';position:absolute;left:0;bottom:-7px;width:98%;height:8px;border-radius:50%;border-top:3px solid var(--public-lime);transform:rotate(-2deg)}.hero-copy>p{font-size:16px;line-height:1.85;max-width:415px;color:var(--public-muted)}.hero-actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin:31px 0 18px}.public-explore{font-size:12px;font-weight:650;display:flex;align-items:center;gap:8px}.hero-footnote{display:flex;align-items:center;gap:7px;font-size:10px;color:var(--public-muted)}.hero-showcase{position:relative;isolation:isolate;padding:70px 0 50px}.hero-orbit{position:absolute;inset:0 -10%;background:radial-gradient(ellipse at 50% 50%,#e9e2fd 0%,#efeafd 42%,transparent 68%);z-index:-1;transform:rotate(-13deg);border-radius:50%}.hero-showcase .campus-preview{transform:rotate(-3deg);box-shadow:0 28px 80px #3830471c;transition:transform .35s}.hero-showcase .campus-preview:hover{transform:rotate(0deg)}.hero-sticker{position:absolute;right:22px;top:0;z-index:3;border:1px solid #d6c8f0;border-radius:15px;background:#ede4ff;padding:15px 40px 15px 19px;transform:rotate(7deg);font-size:12px;line-height:1.7}.hero-sticker>svg{position:absolute;right:12px;top:16px;color:var(--public-purple)}.hero-sticky-note{position:absolute;left:28px;bottom:7px;border:1px solid #e3eacb;background:#e7f4b6;padding:15px 21px;border-radius:4px;transform:rotate(5deg);font-size:12px;font-weight:650;box-shadow:0 8px 20px #2024360d;display:flex;align-items:center;gap:10px;flex-wrap:wrap;max-width:220px}.hero-sticky-note small{display:block;font-weight:400;font-size:10px;margin-left:28px}.public-feature-strip{border-block:1px solid #2024360e;background:#ffffff80;display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:30px;padding:27px 5%}.public-feature-strip>span{display:flex;align-items:center;gap:9px;font-size:12px;font-weight:600;color:#687082}.public-feature-strip svg{color:#8c7bbf}.campus-preview{background:white;border:1px solid #e5e4ed;border-radius:18px;overflow:hidden;min-width:0;box-shadow:0 14px 48px #20243609}.preview-top{display:flex;align-items:center;gap:12px;padding:15px 17px;font-size:9px;color:#858596;border-bottom:1px solid #f0eff5}.preview-window-dots{display:flex;gap:4px}.preview-window-dots i{height:6px;width:6px;border-radius:50%;background:#d8d5e5}.preview-window-dots i:first-child{background:#d5a6b1}.preview-window-dots i:nth-child(2){background:#ebd69b}.preview-window-dots i:nth-child(3){background:#b6d6c7}.preview-demo{margin-left:auto;background:#f6f4fb;border-radius:4px;padding:2px 5px;font-size:7px;letter-spacing:1px}.preview-body{display:flex;min-height:363px}.preview-sidebar{width:60px;flex-shrink:0;background:#fbfafc;border-right:1px solid #f0eff5;display:flex;align-items:center;flex-direction:column;padding:15px 8px;gap:10px}.preview-sidebar .brand-mark{width:30px;height:30px;font-size:19px;margin-bottom:16px}.preview-sidebar button{border:0;color:#a19aad;background:transparent;padding:8px;border-radius:9px;display:grid;place-items:center}.preview-sidebar button[aria-pressed=true]{color:var(--public-purple);background:#eee9fc}.preview-content{flex:1;min-width:0;padding:22px 20px}.preview-greeting{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:23px}.preview-greeting small{font-size:7px;letter-spacing:1.2px;color:#91909e}.preview-greeting h3{font-size:17px;margin-top:6px;letter-spacing:-.035em}.preview-avatar{background:#efeafb;border-radius:50%;width:30px;height:30px;font-size:8px;display:grid;place-items:center;color:#8b6ac1;flex-shrink:0}.preview-stats{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-bottom:19px}.preview-stats>div{border:1px solid #f0edf5;border-radius:10px;padding:13px 10px;position:relative}.preview-stats svg{position:absolute;right:10px;top:13px;color:#b6a3df}.preview-stats strong{display:block;font-size:18px;letter-spacing:-.035em}.preview-stats span{font-size:7px;color:#9292a1;display:block;margin-top:5px}.preview-week{border:1px solid #f0edf5;border-radius:9px;padding:12px 9px}.preview-week header{display:flex;justify-content:space-between;font-size:9px;align-items:center;margin-bottom:14px}.preview-week h4{font-size:10px;margin:0}.preview-week header>span{font-size:8px;color:#8b8797}.preview-week-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.preview-week-grid>div>span{display:block;color:#9292a1;font-size:8px;text-align:center;margin-bottom:9px}.preview-event{border-radius:5px;padding:9px 6px;min-height:74px;overflow:hidden;font-size:8px}.preview-event small{display:block;font-size:6px;white-space:nowrap;margin-bottom:5px}.preview-event strong{display:block;font-size:8px;overflow-wrap:anywhere}.preview-event span{display:block;font-size:6px;margin-top:4px}.preview-event.mint{background:#e8f2ec;color:#598273;border-left:2px solid #86b39e}.preview-event.violet{background:#f1ebff;color:#8f7cb2;border-left:2px solid #c0a4e2}.preview-event.peach{background:#faf0e6;color:#a77a58;border-left:2px solid #dbb491}.preview-lunch{font-size:5px;color:#b1adbb;border-top:1px dashed #eceaf0;margin-top:10px;text-align:center;padding-top:4px}.preview-deadline{margin-top:14px;padding:12px 10px;background:#f8f6fc;border-radius:9px;display:flex;align-items:center;gap:9px}.preview-deadline>span{color:#a894cc}.preview-deadline small{display:block;font-size:6px;color:#a09bab;letter-spacing:1px}.preview-deadline strong{font-size:9px;display:block;margin-top:3px}.preview-deadline>b{margin-left:auto;border-radius:5px;background:white;padding:5px;font-size:7px;font-weight:500}.preview-folder{display:flex;gap:10px;align-items:center;padding:17px 13px;background:#f5f1fc;border-radius:10px;margin-bottom:23px;color:#8570b1}.preview-folder strong{display:block;font-size:13px;color:var(--public-ink)}.preview-folder span{display:block;font-size:8px;margin-top:6px;color:#8a8399}.preview-progress-label{display:flex;justify-content:space-between;font-size:9px;margin-bottom:8px}.preview-progress-label strong{color:var(--public-purple)}.preview-content progress{width:100%;height:6px;accent-color:var(--public-purple)}.preview-material{display:flex;align-items:center;gap:9px;padding:15px 0;border-bottom:1px solid #f0edf5}.preview-material input{accent-color:var(--public-purple);width:15px;height:15px;margin:0;flex-shrink:0}.preview-material svg{color:#b2a4ca;flex-shrink:0}.preview-material>span{font-size:10px}.preview-material>span:last-child{margin-left:auto;font-size:7px;padding:3px 5px;border-radius:4px;background:#f5f3f9;color:#9e98aa}.preview-material small{display:block;color:#a09aab;font-size:7px;margin-top:4px}.preview-material.done>span:first-of-type{text-decoration:line-through;color:#9b94a8}.preview-hint{font-size:8px;color:#9b93aa;margin:15px 0 0;line-height:1.7}.preview-flashcard{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:21px;background:#f8f6fc;border:1px solid #eee8f7;border-radius:12px;min-height:190px;width:100%;padding:23px;color:var(--public-ink);text-align:center;transition:background .25s}.preview-flashcard.is-flipped{background:#edf5e9;border-color:#e0ecd9}.preview-flashcard>span{font-size:8px;letter-spacing:2px;color:#a094b8}.preview-flashcard strong{font-size:19px;max-width:300px;line-height:1.5}.preview-flashcard small{display:flex;align-items:center;gap:6px;font-size:8px;color:#9a8eab}.preview-focus{display:flex;justify-content:space-between;align-items:center;background:#eee9fc;border-radius:10px;padding:12px 17px;margin-top:13px}.preview-focus small{font-size:7px;letter-spacing:1px;display:block;color:#a094b8}.preview-focus strong{display:block;font-size:25px;font-variant-numeric:tabular-nums;letter-spacing:2px;margin-top:5px}.preview-focus button{display:grid;place-items:center;background:var(--public-purple);color:white;border:0;border-radius:50%;width:40px;height:40px}.public-discover,.public-faq{max-width:1240px;margin:0 auto;padding:105px 5%;scroll-margin-top:90px}.section-intro{max-width:650px;margin-bottom:50px}.section-intro h2,.semester-copy h2,.public-rhythm h2,.public-final-cta h2{font-size:clamp(32px,4.2vw,55px);font-weight:800;letter-spacing:-.055em;line-height:1.2;margin:20px 0}.section-intro>p,.semester-copy>p,.public-rhythm>div>p{max-width:470px;color:var(--public-muted);font-size:14px;line-height:1.85}.discover-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:65px;align-items:center}.discover-step{border-bottom:1px solid #20243614;padding:14px 0}.discover-step>button{display:flex;align-items:center;gap:15px;width:100%;text-align:left;background:none;border:0;color:#9694a2;padding:12px 0}.discover-step.selected>button{color:var(--public-ink)}.discover-number{font-size:9px;color:#aaa3b3;font-weight:750}.discover-step.selected .discover-number{color:var(--public-purple)}.discover-step>button>svg:first-of-type{color:#a295bb}.discover-step.selected>button>svg:first-of-type{color:var(--public-purple)}.discover-step>button h3{font-size:17px;flex:1}.discover-step>button>svg:last-child{margin-left:auto}.discover-description{padding:0 25px 20px 32px}.discover-description>p{font-size:12px;color:var(--public-muted);line-height:1.9}.discover-description ul{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:9px}.discover-description li{display:flex;gap:9px;align-items:center;font-size:11px}.discover-description li svg{color:var(--public-purple);flex-shrink:0}.discover-preview{border-radius:28px;background:#eee7fb;padding:30px 22px}.public-semester{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;max-width:1400px;margin:0 auto;background:#eceff1;padding:90px 8%;scroll-margin-top:85px;border-radius:30px}.public-text-link{display:inline-flex;align-items:center;gap:15px;font-size:12px;font-weight:650;margin-top:26px;border-bottom:1px solid #20243644;padding-bottom:6px}.semester-visual{position:relative;padding-bottom:55px}.semester-card{border:1px solid #e6e6ee;border-radius:19px;background:white;padding:26px 25px;box-shadow:0 12px 40px #2b354011;transform:rotate(2deg)}.semester-card header{display:flex;align-items:center;gap:9px;font-size:13px}.semester-card header svg{color:#b3a2d0}.semester-card header>small{margin-left:auto;font-size:8px;color:#aaa3b3}.semester-summary{background:#f6f3fc;border-radius:12px;padding:17px 20px;display:flex;justify-content:space-between;align-items:center;margin:25px 0 10px}.semester-summary>strong{font-size:40px;letter-spacing:-2px;line-height:1;color:#8f78b5;font-weight:650}.semester-summary small{display:block;font-size:8px;margin-top:10px;color:#9d92af;letter-spacing:0;font-weight:400}.semester-summary>span{font-size:9px;color:#9d92af;display:flex;align-items:center;gap:10px}.semester-module{display:flex;align-items:center;gap:11px;border-bottom:1px solid #eeeaf3;padding:17px 0}.semester-module:last-child{border-bottom:0}.semester-module>span{display:grid;place-items:center;background:#f3effb;color:#a292be;border-radius:9px;width:34px;height:34px}.semester-module>span.done{background:#eaf3ea;color:#7e9e7d}.semester-module strong{font-size:12px;font-weight:600}.semester-module small{display:block;font-size:8px;color:#a19aaa;margin-top:5px}.semester-module b{margin-left:auto;font-size:8px;color:#ada5b6;background:#f8f7fa;padding:5px 7px;border-radius:5px;font-weight:400;white-space:nowrap}.semester-note{display:flex;gap:13px;align-items:center;position:absolute;right:-20px;bottom:0;padding:20px;background:#f6e3cd;border:1px solid #ecd6bd;border-radius:4px;box-shadow:0 10px 25px #2b35400a;transform:rotate(-4deg)}.semester-note>svg{color:#b49874}.semester-note strong{font-size:11px}.semester-note p{font-size:13px;margin:5px 0;color:#836b51}.semester-note small{font-size:8px;color:#ad9478}.public-detail-grid{max-width:1240px;margin:0 auto;padding:80px 5% 105px;display:grid;grid-template-columns:repeat(3,1fr);gap:40px}.public-detail-grid article>span{color:#8a75ae;width:50px;height:50px;border-radius:17px;background:#eee7fa;display:grid;place-items:center;margin-bottom:20px}.public-detail-grid article:nth-child(2)>span{background:#f1e8d5;color:#b1986b}.public-detail-grid article:nth-child(3)>span{background:#e6eedf;color:#829374}.public-detail-grid h3{font-size:20px;letter-spacing:-.04em;margin-bottom:14px}.public-detail-grid p{font-size:12px;line-height:1.9;color:var(--public-muted)}.public-detail-grid small{font-size:8px;letter-spacing:1.2px;color:#9b97a5;display:block;margin-top:22px}.public-rhythm{display:grid;grid-template-columns:1.3fr 1fr;gap:75px;align-items:center;max-width:1400px;margin:auto;background:#24283b;color:#fff;padding:85px 8%;border-radius:30px}.public-rhythm .public-kicker{color:#bec6b1}.public-rhythm h2 em{color:var(--public-lime)}.public-rhythm>div>p{color:#b1b5c4}.rhythm-card{padding:24px 28px;border:1px solid #ffffff1c;border-radius:16px;background:#ffffff08;transform:rotate(-2deg)}.rhythm-card header{display:flex;align-items:center;gap:10px;color:#cec9df;font-size:11px}.rhythm-bars{display:grid;grid-template-columns:repeat(7,1fr);gap:11px;align-items:end;height:180px;margin-top:30px}.rhythm-bars>div{height:100%;display:flex;justify-content:flex-end;align-items:center;flex-direction:column;gap:11px}.rhythm-bars>div>span{width:100%;background:#bca9ec;border-radius:5px 5px 0 0;max-height:150px}.rhythm-bars>div:nth-child(4)>span{background:var(--public-lime)}.rhythm-bars small{font-size:8px;color:#9b9fb5}.rhythm-card footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #ffffff16;margin-top:20px;padding-top:18px}.rhythm-card footer strong{font-size:22px;letter-spacing:-1px}.rhythm-card footer span{color:#9b9fb5;font-size:8px}.public-faq{display:grid;grid-template-columns:1fr 1.2fr;gap:70px}.public-faq .section-intro{margin:0}.public-faq h2{font-size:40px}.faq-item{border-bottom:1px solid #20243616;padding:4px 0}.faq-item h3 button{display:flex;align-items:center;justify-content:space-between;gap:15px;background:none;border:0;width:100%;text-align:left;font-size:13px;font-weight:650;padding:18px 0;color:var(--public-ink)}.faq-item h3 button span{font-size:20px;font-weight:400;color:#9c8bb7}.faq-item p{font-size:12px;color:var(--public-muted);line-height:1.9;padding:0 30px 20px 0}.public-final-cta{max-width:1240px;position:relative;margin:0 auto 45px;padding:80px 60px;background:#e7def6;border:1px solid #dbd0ed;border-radius:28px;overflow:hidden}.public-final-cta h2{font-size:clamp(40px,5vw,64px);margin:20px 0 30px}.cta-doodle{position:absolute;right:9%;top:20%;font-size:220px;color:#c3b1df;line-height:1;transform:rotate(18deg)}.public-final-cta .public-button{position:relative;z-index:1}.public-footer{max-width:1400px;margin:auto;padding:40px 5% 50px;display:flex;align-items:center;justify-content:space-between;gap:25px;font-size:10px;color:var(--public-muted);border-top:1px solid #2024360c}.public-footer>a:last-child{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--public-ink)}.campovia-public [data-reveal].reveal-ready{opacity:0;transform:translateY(24px);transition:opacity .7s,transform .7s}.campovia-public [data-reveal].revealed{opacity:1;transform:translateY(0)}
.auth-page{min-height:100vh}.auth-layout{max-width:1170px;display:grid;grid-template-columns:1fr 1fr;gap:90px;margin:0 auto;padding:60px 5% 90px;align-items:start}.auth-story{padding:38px 0;position:sticky;top:35px}.auth-story h1{font-size:clamp(46px,5vw,70px);line-height:1.13;letter-spacing:-.055em;margin:24px 0}.auth-story>p{max-width:340px;color:var(--public-muted);font-size:14px;line-height:1.9}.auth-story-note{display:flex;align-items:flex-start;gap:15px;border-radius:12px;background:#e9eedc;padding:20px;max-width:350px;margin-top:37px;transform:rotate(-2deg)}.auth-story-note>span{font-size:28px;color:#8e9d6d}.auth-story-note strong{font-size:12px}.auth-story-note p{font-size:11px;color:#6e7862;line-height:1.8;margin-top:7px}.auth-story>small{display:block;font-size:10px;color:#92998a;margin-top:37px}.auth-card{background:#fff;border:1px solid #e9e6ee;border-radius:20px;padding:35px;box-shadow:0 13px 45px #20243606}.auth-symbol{display:grid;place-items:center;width:47px;height:47px;background:#f0eafb;color:#9a83c4;border-radius:15px;margin-bottom:22px}.auth-card h2{font-size:25px;line-height:1.3;letter-spacing:-.04em}.auth-card>p{font-size:12px;color:var(--public-muted);line-height:1.8;margin-top:12px}.auth-card .public-button{width:100%;margin-top:18px;justify-content:space-between;gap:12px}.auth-providers{display:grid;gap:9px;margin-top:28px}.auth-provider{padding:13px 15px;border-radius:9px;border:1px solid #e8e6ec;background:white;display:flex;align-items:center;gap:12px;font-size:12px;font-weight:550;color:var(--public-ink);width:100%;text-align:left}.auth-provider svg{flex-shrink:0}.auth-provider>svg:last-child:not(:first-child){margin-left:auto;color:#a9a1b5}.auth-provider:hover:not(:disabled){border-color:#bfb0d7;background:#fcfaff}.auth-provider:disabled{opacity:.55;cursor:not-allowed;background:#faf9fc}.auth-provider small{margin-left:auto;color:#928c9e;font-size:9px;font-weight:400}.chatgpt-icon{font-size:25px;line-height:1;width:22px;text-align:center}.auth-divider{display:flex;align-items:center;gap:12px;color:#a39da9;font-size:10px;margin:25px 0 20px}.auth-divider:before,.auth-divider:after{content:'';height:1px;flex:1;background:#eeecf1}.auth-card fieldset{margin:0;padding:0;border:0;min-width:0}.auth-field{display:block;margin-top:16px}.auth-field>span:first-child{display:block;font-size:11px;font-weight:600;margin-bottom:7px;color:#625c6f}.auth-field input{width:100%;border:1px solid #e4e1e9;border-radius:9px;padding:12px 14px;background:#fdfcff;color:#262a3c;font-size:13px;min-height:43px}.auth-password{display:flex;position:relative}.auth-password input{padding-right:44px}.auth-password button{position:absolute;right:8px;top:8px;padding:6px;background:none;border:0;color:#9c91ad;display:flex}.auth-card .auth-hint{font-size:10px;line-height:1.8;color:#96909e;margin:16px 0 0}.auth-forgot{font-size:10px;color:var(--public-purple);display:block;text-align:right;margin-top:13px}.auth-card .auth-alert{padding:13px 15px;border-radius:9px;margin-top:20px;font-size:11px;line-height:1.7}.auth-alert.error{color:#a24753;background:#fbeced;border:1px solid #f4d7dd}.auth-alert.success{color:#477852;background:#edf5eb;border:1px solid #d9e9d5;display:flex;align-items:flex-start;gap:9px}.auth-alert.success svg{flex-shrink:0;margin-top:3px}.auth-card .auth-switch{text-align:center;font-size:11px;margin-top:25px;color:#99919f}.auth-switch a{color:var(--public-purple);font-weight:650}.auth-card .auth-account-hint{font-size:9px;color:#a49bab;text-align:center;line-height:1.8;margin-top:17px;border-top:1px solid #efedf3;padding-top:15px}.auth-resend{font-size:9px;color:#9f91b1;background:none;border:0;padding:0;display:block;margin-top:17px}.auth-resend:disabled{cursor:not-allowed}
@media(min-width:1550px){.public-hero{min-height:820px}.hero-copy h1{font-size:83px}}
@media(max-width:1100px){.public-hero{gap:25px;min-height:650px;padding-top:50px}.hero-copy h1{font-size:58px}.hero-actions{gap:15px}.hero-showcase .preview-sidebar{width:45px}.hero-showcase .preview-content{padding:18px 12px}.preview-greeting h3{font-size:15px}.preview-stats strong{font-size:16px}.discover-grid{gap:35px}.public-semester,.public-rhythm{margin-inline:20px;padding:60px 6%;gap:45px}.public-rhythm{gap:30px}.public-rhythm h2{font-size:37px}.public-final-cta{margin-inline:20px}.auth-layout{gap:45px}.auth-card{padding:27px}.semester-note{right:-12px}.public-faq{gap:35px}}
@media(max-width:800px){.public-header{padding:20px 5%;gap:15px}.public-header nav{gap:17px;font-size:11px}.public-login{font-size:11px;padding:8px 12px}.public-hero{grid-template-columns:1fr;padding:40px 7% 65px;text-align:center;gap:0}.hero-copy h1{font-size:clamp(48px,9vw,74px)}.hero-copy>p{margin:auto;max-width:480px}.hero-actions{justify-content:center}.hero-footnote{justify-content:center}.hero-showcase{max-width:570px;width:100%;margin:auto;padding:70px 25px 55px}.hero-showcase .preview-content{padding:22px 20px}.hero-showcase .preview-sidebar{width:60px}.hero-showcase .campus-preview{text-align:left}.hero-sticker{right:40px;top:15px}.hero-sticky-note{left:38px}.public-feature-strip{gap:20px;padding:23px}.public-discover,.public-faq{padding:65px 7%}.discover-grid{grid-template-columns:1fr;gap:30px}.discover-preview{padding:28px;max-width:570px;width:100%;margin:auto}.public-semester{grid-template-columns:1fr;gap:45px;padding:60px 7%;margin:0 16px}.semester-copy h2{font-size:44px}.semester-visual{max-width:470px;width:100%;margin:0 auto}.semester-note{right:-8px}.public-detail-grid{padding:55px 7%;gap:24px}.public-detail-grid h3{font-size:17px}.public-rhythm{grid-template-columns:1fr;margin:0 16px;padding:60px 7%;gap:45px}.public-rhythm h2{font-size:39px}.rhythm-card{max-width:450px;width:100%;margin:auto}.public-faq{grid-template-columns:1fr;gap:15px}.public-final-cta{padding:55px 7%;margin:0 16px 35px}.cta-doodle{font-size:170px;right:5%;top:22%}.public-footer{flex-wrap:wrap}.public-footer>span{order:3;width:100%}.auth-layout{grid-template-columns:1fr;gap:25px;max-width:530px;padding:20px 6% 60px}.auth-story{display:none}.auth-card{padding:28px}.auth-page .public-header{padding-bottom:30px}.public-back{font-size:11px}}
@media(max-width:550px){.campovia-public .brand{font-size:21px;gap:8px}.campovia-public .brand-mark{width:30px;height:32px;font-size:21px}.public-header{gap:10px;padding:16px 5%}.public-header nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--public-paper);padding:22px 5%;border-bottom:1px solid #e6e3eb}.public-header nav.open{display:flex;justify-content:space-between}.public-menu-toggle{display:block;margin-left:auto;border:0;background:none;font-size:11px;color:var(--public-ink);padding:7px}.public-login{font-size:10px;padding:8px 11px}.public-login svg{width:13px}.hero-copy h1{font-size:49px}.hero-copy>p{font-size:13px}.public-kicker{font-size:8px;letter-spacing:1.6px}.hero-actions{flex-direction:column;gap:20px}.public-button{padding:15px 20px;font-size:12px;min-height:49px}.hero-footnote{font-size:8px}.public-hero{padding:35px 5% 40px}.hero-showcase{padding:60px 10px 50px}.hero-sticker{padding:10px 33px 10px 13px;font-size:10px;right:20px;top:13px}.hero-sticker>svg{width:14px;right:10px;top:12px}.hero-sticky-note{font-size:9px;max-width:186px;padding:11px 14px;left:20px}.hero-sticky-note small{font-size:8px}.preview-content,.hero-showcase .preview-content{padding:16px 12px}.preview-sidebar,.hero-showcase .preview-sidebar{width:42px;padding:12px 5px}.preview-sidebar .brand-mark{width:25px;height:26px;font-size:16px}.preview-sidebar button{padding:7px}.preview-sidebar svg{width:16px}.preview-greeting h3{font-size:13px}.preview-greeting small{font-size:6px}.preview-avatar{width:24px;height:24px;font-size:7px}.preview-greeting{margin-bottom:18px}.preview-top{padding:11px 13px;font-size:7px}.preview-body{min-height:332px}.preview-stats>div{padding:11px 8px}.preview-stats strong{font-size:14px}.preview-stats svg{width:13px;right:6px;top:11px}.preview-stats span{font-size:6px}.preview-event{padding:7px 4px;min-height:69px}.preview-event small{font-size:5px;white-space:normal}.preview-event strong{font-size:7px}.preview-lunch{font-size:4px}.preview-deadline strong{font-size:8px}.preview-deadline>b{font-size:6px}.preview-material>span{font-size:8px}.preview-material svg{width:15px}.preview-flashcard strong{font-size:17px}.public-feature-strip{gap:16px 22px;padding:22px 5%}.public-feature-strip>span{font-size:10px}.public-feature-strip svg{width:16px}.section-intro{margin-bottom:28px}.section-intro h2{font-size:33px}.section-intro>p,.semester-copy>p,.public-rhythm>div>p{font-size:12px}.discover-preview{padding:19px 13px}.discover-step>button h3{font-size:14px}.discover-step>button{gap:10px}.discover-description{padding-left:26px}.discover-description>p{font-size:11px}.discover-description li{font-size:10px}.public-semester{border-radius:20px;padding:45px 6%;margin:0 10px}.semester-copy h2{font-size:37px}.semester-card{padding:21px 15px}.semester-card header>small{font-size:7px}.semester-module strong{font-size:10px}.semester-module b{font-size:7px}.semester-summary>strong{font-size:33px}.semester-summary>span{font-size:8px;max-width:100px}.semester-note{padding:14px;right:-2px}.semester-note p{font-size:11px}.public-detail-grid{grid-template-columns:1fr;gap:34px;padding:48px 8%}.public-detail-grid article>span{width:42px;height:42px;margin-bottom:12px;border-radius:12px}.public-detail-grid h3{font-size:20px}.public-detail-grid p{font-size:12px;max-width:370px}.public-detail-grid small{margin-top:15px}.public-rhythm{margin:0 10px;border-radius:20px;padding:45px 7%}.public-rhythm h2{font-size:31px}.rhythm-card{padding:21px}.rhythm-bars{gap:7px;height:145px}.public-faq h2{font-size:34px}.faq-item h3 button{font-size:12px}.public-final-cta{padding:45px 7%;margin:0 10px 25px;border-radius:20px}.public-final-cta h2{font-size:39px}.cta-doodle{font-size:120px;right:-23px;top:39px;opacity:.5}.public-footer{padding:30px 6% 35px;gap:19px;font-size:9px}.public-footer>a:last-child{font-size:9px}.auth-card{padding:25px 21px}.auth-card h2{font-size:23px}.public-back{font-size:10px}.public-back svg{width:13px}}
@media(prefers-reduced-motion:reduce){.campovia-public *{scroll-behavior:auto!important;transition:none!important;animation:none!important}.campovia-public [data-reveal].reveal-ready{opacity:1;transform:none}.hero-showcase .campus-preview{transform:none}}
