*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:#f5f7fb;color:#1f2937;line-height:1.5}#upload-view{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;padding:40px;text-align:center}#upload-view h1{font-size:28px;font-weight:800;margin:0 0 8px;color:#0f172a;letter-spacing:-.5px}#upload-view p{color:#64748b;margin:0 0 32px;font-size:15px}#drop-zone{border:2px dashed #CBD5E1;border-radius:16px;padding:40px 60px;background:#fff;display:flex;flex-direction:column;align-items:center;gap:12px;transition:border-color .2s ease,background .2s ease;cursor:pointer}#drop-zone.dragging{border-color:#5b8ff9;background:#eef2ff}#browse-btn{background:#0f172a;color:#fff;border:none;border-radius:10px;padding:10px 24px;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:background .15s ease}#browse-btn:hover{background:#1e293b}#drop-zone span{color:#94a3b8;font-size:13px}#calendar-view{height:100vh;position:relative}.cal_container{container-type:inline-size;display:flex;height:100%;width:100%;padding:12px 0}.cal_weekday{display:flex;flex-direction:column;height:100%;flex:0 0 calc(var(--col-count) * 100% / var(--total-columns))}.cal_column{flex:0 0 calc(100% / var(--col-count));height:100%;position:relative}.cal_columns{flex:1 1 auto;min-height:0;display:flex;position:relative}div.cal_weekday:nth-child(2n){background-color:#eef1f6}.cal_weekday_label{flex:0 0 3%;text-align:center;font-weight:700;font-size:110%;border-radius:6px;border-bottom:1px solid black;display:flex;align-items:center;justify-content:center;letter-spacing:.3px}.cal_cell{position:absolute;left:0;width:100%;background-color:#1e90ff;border-radius:8px;border-bottom:1px solid rgba(0,0,0,.06);padding:6px 8px;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.22) transparent;cursor:pointer;box-shadow:0 1px 2px #0f172a1a;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease;font-size:11.5px;line-height:1.25}.cal_cell::-webkit-scrollbar{width:6px}.cal_cell::-webkit-scrollbar-track{background:transparent}.cal_cell::-webkit-scrollbar-thumb{background:#00000038;border-radius:3px}.cal_cell::-webkit-scrollbar-thumb:hover{background:#00000059}.cal_cell:hover{transform:translateY(-1px);box-shadow:0 6px 16px #0f172a38;z-index:5;filter:brightness(1.03)}.cal_cell.title-highlighted:before{content:"";position:absolute;top:0;left:0;bottom:0;width:5px;background:#7c3aed;border-top-left-radius:8px;border-bottom-left-radius:8px;z-index:1}.cal_cell.cal_cell_time{background-color:transparent!important;border:none;box-shadow:none;cursor:default;padding-left:0;padding-right:6px;text-align:right;font-family:JetBrains Mono,monospace;font-size:11px;color:#94a3b8;overflow:hidden}.cal_cell_time:hover{transform:none;box-shadow:none;filter:none;z-index:auto}.cal_cell_content{position:relative;z-index:2;word-wrap:break-word}.cal_cell_content_code{font-weight:700;font-size:12.5px;letter-spacing:-.1px}.cal_cell_content_type{font-size:80%;font-weight:500}.cal_cell_content_weeks{font-size:70%;font-weight:500;opacity:.85}.cal_cell.clipped-top{border-top:3px dashed rgba(255,255,255,.65);border-top-left-radius:0;border-top-right-radius:0}.cal_cell.clipped-bottom{border-bottom:3px dashed rgba(255,255,255,.65);border-bottom-left-radius:0;border-bottom-right-radius:0}.cal_cell.dragging{opacity:.45;cursor:grabbing!important}.cal_cell.drop-target{outline:3px dashed #16A34A;outline-offset:-3px;z-index:20;filter:brightness(1.08)}.cal_cell.drop-invalid{outline:3px dashed #DC2626;outline-offset:-3px;z-index:20}@keyframes cal-jiggle{0%,84%,to{transform:translate(0) rotate(0)}86%{transform:translate(-1.5px) rotate(-.6deg)}88%{transform:translate(1.5px) rotate(.6deg)}90%{transform:translate(-1.5px) rotate(-.6deg)}92%{transform:translate(1.5px) rotate(.6deg)}94%{transform:translate(-1px) rotate(-.4deg)}96%{transform:translate(1px) rotate(.4deg)}}.search_result{box-shadow:0 0 0 4px #ffe066,0 0 26px 9px #ffd600d9!important;z-index:10!important;filter:none!important;animation:cal-jiggle 3s ease-in-out infinite;transform-origin:50% 50%}.cal_cell.search_result:hover{animation-play-state:paused}.cal_info_window{display:none;position:fixed;top:0;left:0;z-index:200;background:#fff;color:#0f172a;border-radius:16px;padding:22px 24px 20px;max-width:480px;min-width:300px;word-wrap:break-word;box-shadow:0 20px 50px -10px #0f172a59,0 4px 12px #0f172a1f;font-size:14px;line-height:1.5}.modal-close{position:absolute;top:10px;right:12px;background:transparent;border:none;font-size:22px;line-height:1;color:#94a3b8;cursor:pointer;padding:4px 9px;border-radius:6px;font-family:inherit;transition:background .12s ease,color .12s ease}.modal-close:hover{background:#f1f5f9;color:#0f172a}.modal-header{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap;padding-right:28px}.modal-module{background:#0f172a;color:#fff;font-weight:700;font-size:12px;padding:4px 10px;border-radius:6px;font-family:JetBrains Mono,monospace;letter-spacing:.2px}.modal-activity{background:#eef2ff;color:#3730a3;font-weight:600;font-size:12px;padding:4px 10px;border-radius:6px}.modal-combined{background:#fef3c7;color:#92400e;font-weight:700;font-size:12px;padding:4px 10px;border-radius:6px;display:inline-flex;align-items:center;gap:5px}.modal-title{margin:0 0 4px;font-size:18px;font-weight:700;color:#0f172a;line-height:1.3}.modal-sub{color:#64748b;font-size:13.5px;margin:0 0 16px}.modal-title-input{width:100%;border:1.5px solid transparent;background:transparent;border-radius:8px;padding:3px 8px;margin:0 0 4px -8px;font-family:inherit;font-size:18px;font-weight:700;color:#0f172a;line-height:1.3;outline:none;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.modal-title-input:hover{background:#f8fafc;border-color:#e2e8f0}.modal-title-input:focus{background:#fff;border-color:#5b8ff9;box-shadow:0 0 0 3px #5b8ff926}.modal-grid{display:grid;grid-template-columns:80px 1fr;gap:8px 16px;font-size:13.5px;color:#1e293b;border-top:1px solid #EEF2F7;padding-top:14px}.modal-grid .label{color:#94a3b8;font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.4px;padding-top:2px}.edit-input{width:100%;border:1.5px solid #E2E8F0;border-radius:6px;padding:3px 8px;font-family:inherit;font-size:13px;color:#0f172a;background:#f8fafc;outline:none;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.edit-input:hover{background:#fff}.edit-input:focus{border-color:#5b8ff9;background:#fff;box-shadow:0 0 0 3px #5b8ff926}.modal-footer{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}.break-apart-btn{flex:1 1 auto;border:1.5px solid #FCA5A5;background:#fef2f2;color:#b91c1c;border-radius:10px;padding:10px 16px;font-family:inherit;font-size:13.5px;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease}.break-apart-btn:hover{background:#fee2e2;border-color:#f87171}.delete-btn{flex:0 0 auto;border:1.5px solid #CBD5E1;background:#f8fafc;color:#475569;border-radius:10px;padding:10px 16px;font-family:inherit;font-size:13.5px;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.delete-btn:hover{background:#fee2e2;border-color:#fca5a5;color:#b91c1c}.cal_search_window{position:fixed;bottom:0;left:0;z-index:100}.cal_search_triangle{width:72px;height:72px;background:#0f172a99;clip-path:polygon(0 0,0 100%,100% 100%);display:flex;align-items:flex-end;justify-content:flex-start;padding:0 0 12px 12px;color:#fff;font-size:22px;line-height:1;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease}.cal_search_triangle:hover{background:#0f172ad1}.cal_search_input{position:fixed;bottom:18px;left:84px;height:44px;width:0;opacity:0;padding:0;border:none;border-radius:999px;background:#fffffff5;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 6px 20px #0f172a38;font-family:inherit;font-size:14px;color:#0f172a;outline:none;transition:width .3s cubic-bezier(.4,0,.2,1),opacity .15s ease,padding .3s ease}.cal_search_window.open .cal_search_input{width:260px;opacity:1;padding:0 20px}.cal_search_input::placeholder{color:#94a3b8}.cal_settings_window{position:fixed;bottom:0;right:0;z-index:100}.cal_settings_triangle{width:72px;height:72px;background:#0f172a99;clip-path:polygon(100% 0,100% 100%,0 100%);display:flex;align-items:flex-end;justify-content:flex-end;padding:0 12px 12px 0;color:#fff;font-size:22px;line-height:1;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s ease}.cal_settings_triangle:hover{background:#0f172ad1}.cal_settings_panel{position:fixed;bottom:88px;right:18px;width:340px;max-height:calc(100vh - 110px);overflow-y:auto;background:#fff;border-radius:14px;box-shadow:0 12px 36px #0f172a33,0 2px 8px #0f172a14;padding:20px;display:none;z-index:150;font-size:14px}.cal_settings_panel.open{display:block}.cal_settings_panel h3{margin:0 0 16px;font-size:15px;font-weight:700;color:#0f172a;letter-spacing:-.2px;display:flex;align-items:center;justify-content:space-between}.cal_settings_close{background:transparent;border:none;font-size:20px;line-height:1;color:#94a3b8;cursor:pointer;padding:2px 7px;border-radius:6px;transition:background .12s ease,color .12s ease}.cal_settings_close:hover{background:#f1f5f9;color:#0f172a}.cal_settings_section{margin-bottom:20px}.cal_settings_section:last-child{margin-bottom:0}.cal_settings_section>label{display:block;font-size:11.5px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.4px;margin-bottom:8px}.cal_settings_row{display:flex;align-items:center;gap:10px}.cal_settings_row input[type=number]{flex:1;border:1.5px solid #D8DEE9;border-radius:8px;padding:8px 10px;font-family:JetBrains Mono,monospace;font-size:14px;color:#0f172a;outline:none;transition:border-color .15s ease,box-shadow .15s ease;min-width:0}.cal_settings_row input[type=number]:focus{border-color:#5b8ff9;box-shadow:0 0 0 3px #5b8ff926}.cal_settings_row span{color:#94a3b8;font-size:12px;font-weight:500}.cal_settings_hint{display:block;font-size:11.5px;color:#94a3b8;margin-top:8px;line-height:1.45}.settings-btn{width:100%;border:none;border-radius:10px;padding:10px 16px;font-family:inherit;font-size:13.5px;font-weight:600;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease}.settings-btn.primary{background:#0f172a;color:#fff}.settings-btn.primary:hover{background:#1e293b}.settings-btn.secondary{background:#fff;color:#0f172a;border:1.5px solid #E2E8F0;display:flex;align-items:center;justify-content:center;gap:8px}.settings-btn.secondary:hover{background:#f8fafc;border-color:#cbd5e1}.help-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:linear-gradient(135deg,#5b8ff9,#7c3aed);color:#fff;font-size:12.5px;font-weight:800;font-family:Inter,sans-serif;line-height:1;box-shadow:0 1px 3px #5b8ff959}.cal_title_checkboxes{max-height:180px;overflow-y:auto;border:1.5px solid #E2E8F0;border-radius:8px;padding:6px;background:#f8fafc;display:flex;flex-direction:column;gap:2px}.cal_title_checkboxes:empty:before{content:"No event titles yet.";color:#94a3b8;font-size:12px;padding:4px 8px;display:block}.title-checkbox-label{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:6px;cursor:pointer;font-size:12.5px;color:#1e293b;-webkit-user-select:none;user-select:none;transition:background .12s ease}.title-checkbox-label:hover{background:#eef2ff}.title-checkbox-label input[type=checkbox]{margin:0;cursor:pointer;accent-color:#7C3AED;flex:0 0 auto}.title-checkbox-label span{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal_week1_display{background:#f8fafc;border:1.5px solid #E2E8F0;border-radius:8px;padding:9px 12px;font-family:JetBrains Mono,monospace;font-size:12.5px;color:#0f172a;margin-bottom:10px;text-align:center;letter-spacing:.2px}.cal_week1_picker{margin-top:10px;background:#f8fafc;border:1.5px solid #E2E8F0;border-radius:10px;padding:12px;animation:picker-pop .18s ease-out}@keyframes picker-pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.cal_week1_header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.cal_week1_month{font-size:13px;font-weight:700;color:#0f172a;letter-spacing:-.1px}.cal_week1_nav{background:#fff;border:1.5px solid #E2E8F0;border-radius:6px;width:26px;height:26px;font-family:inherit;font-size:15px;font-weight:700;color:#475569;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;transition:background .12s ease,border-color .12s ease,color .12s ease}.cal_week1_nav:hover{background:#eef2ff;border-color:#c7d2fe;color:#3730a3}.cal_week1_grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal_week1_dow{text-align:center;font-size:10.5px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;padding:2px 0 4px}.cal_week1_days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal_week1_day{text-align:center;padding:6px 0;border-radius:6px;cursor:pointer;font-size:12.5px;font-family:JetBrains Mono,monospace;font-weight:600;color:#334155;-webkit-user-select:none;user-select:none;transition:background .12s ease,color .12s ease}.cal_week1_day:hover{background:#eef2ff;color:#3730a3}.cal_week1_day.other-month{color:#cbd5e1;font-weight:500}.cal_week1_day.other-month:hover{background:#f1f5f9;color:#94a3b8}.cal_week1_day.selected-week{background:#dbeafe;color:#1e40af;font-weight:800}.cal_week1_day.selected-week:hover{background:#bfdbfe;color:#1e3a8a}.help-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a8c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:400;align-items:center;justify-content:center;padding:24px}.help-overlay.open{display:flex}.help-modal{background:#fff;color:#1f2937;border-radius:20px;width:min(1080px,92vw);max-width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 30px 70px -10px #0f172a73,0 6px 20px #0f172a24;padding:32px 40px 40px;position:relative;animation:help-pop .22s cubic-bezier(.2,.9,.3,1.2)}@keyframes help-pop{0%{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}.help-close{position:absolute;top:16px;right:20px;background:transparent;border:none;font-size:26px;line-height:1;color:#94a3b8;cursor:pointer;padding:4px 12px;border-radius:8px;font-family:inherit;transition:background .12s ease,color .12s ease}.help-close:hover{background:#f1f5f9;color:#0f172a}.help-modal h1{margin:0 0 6px;font-size:26px;font-weight:800;color:#0f172a;letter-spacing:-.5px;display:flex;align-items:center;gap:12px}.help-modal .help-lead{color:#64748b;font-size:14.5px;margin:0 0 28px}.help-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:22px 28px}.help-section{background:#f8fafc;border:1px solid #EEF2F7;border-radius:14px;padding:20px 22px}.help-section.wide{grid-column:1 / -1}.help-section h2{margin:0 0 12px;font-size:15px;font-weight:700;color:#0f172a;letter-spacing:-.1px;display:flex;align-items:center;gap:10px}.help-section h2 .badge{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;background:#eef2ff;color:#3730a3;font-size:15px;line-height:1}.help-section p{margin:0 0 10px;font-size:13.5px;color:#334155;line-height:1.55}.help-section p:last-child{margin-bottom:0}.help-section ul{margin:0 0 10px;padding-left:18px;font-size:13.5px;color:#334155;line-height:1.6}.help-section ul:last-child{margin-bottom:0}.help-section li{margin:3px 0}.help-section code{font-family:JetBrains Mono,monospace;font-size:12px;background:#eef2f7;color:#0f172a;padding:1px 6px;border-radius:4px}.help-section kbd{font-family:JetBrains Mono,monospace;font-size:11.5px;background:#fff;color:#0f172a;border:1px solid #CBD5E1;border-bottom-width:2px;border-radius:5px;padding:1px 7px;margin:0 1px}.toast{position:fixed;top:24px;left:50%;transform:translate(-50%) translateY(-24px);background:#dc2626;color:#fff;padding:13px 24px;border-radius:10px;font-size:14px;font-weight:500;box-shadow:0 10px 30px #dc262659;z-index:500;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;max-width:80vw;text-align:center}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}
