:root,:root[data-theme=light]{--bg: transparent;--s1: rgba(255, 255, 255, .64);--s2: rgba(255, 255, 255, .46);--s3: rgba(255, 255, 255, .84);--s-modal: rgba(255, 255, 255, .88);--border: rgba(255, 255, 255, .72);--border2: rgba(185, 170, 215, .42);--grid-line: rgba(130, 110, 170, .12);--accent: #6d44f2;--accent-rgb: 109, 68, 242;--accent2: #d946ef;--accent2-rgb: 217, 70, 239;--text: #171228;--muted: #5e5478;--muted2: #7d729a;--red: #e11d48;--green: #059669;--yellow: #d97706;--glass-blur: blur(20px) saturate(190%);--glass-specular: inset 0 1.5px 2px 0 rgba(255, 255, 255, .85);--glass-shadow: 0 12px 32px -4px rgba(45, 25, 80, .08), 0 4px 12px -2px rgba(45, 25, 80, .04);--shadow-modal: 0 25px 60px -10px rgba(40, 20, 75, .25), 0 10px 20px -5px rgba(40, 20, 75, .12);--wrap-pad: 24px;--radius: 18px;--radius-sm: 10px;--radius-lg: 24px;--max-credits: 25;--ios-spring: cubic-bezier(.32, .72, 0, 1);--ios-bounce: cubic-bezier(.34, 1.56, .64, 1)}:root[data-theme=dark]{--bg: transparent;--s1: rgba(20, 15, 34, .66);--s2: rgba(30, 23, 50, .6);--s3: rgba(45, 34, 72, .76);--s-modal: rgba(24, 18, 40, .88);--border: rgba(255, 255, 255, .14);--border2: rgba(255, 255, 255, .22);--grid-line: rgba(255, 255, 255, .06);--accent: #8b6dfc;--accent-rgb: 139, 109, 252;--accent2: #f472b6;--accent2-rgb: 244, 114, 182;--text: #f6f3fc;--muted: #a69ebd;--muted2: #c6bfd8;--red: #f87171;--green: #34d399;--yellow: #fbbf24;--glass-blur: blur(20px) saturate(190%);--glass-specular: inset 0 1.5px 2px 0 rgba(255, 255, 255, .18);--glass-shadow: 0 12px 32px -4px rgba(0, 0, 0, .45), 0 4px 12px -2px rgba(0, 0, 0, .3);--shadow-modal: 0 25px 60px -10px rgba(0, 0, 0, .7), 0 10px 20px -5px rgba(0, 0, 0, .45)}.liquid-bg-canvas{position:fixed;inset:0;width:100%;height:100%;min-height:100dvh;z-index:0;pointer-events:none;overflow:hidden;transform:translateZ(0)}.liquid-bg-image{position:absolute;inset:-35px;background-image:url(images/purplish_pastels.jpeg);background-size:cover;background-position:center center;background-repeat:no-repeat;filter:blur(14px);transform:scale(1.08) translateZ(0)}.liquid-bg-overlay{position:absolute;inset:0;background:linear-gradient(140deg,#ffffff6b,#f5f0ff52 40%,#ffeef866,#f0f3ff7a);transition:background .4s ease}.liquid-bg-glow{position:absolute;inset:0;background:radial-gradient(circle at 80% 20%,rgba(217,70,239,.12) 0%,transparent 50%),radial-gradient(circle at 20% 80%,rgba(109,68,242,.15) 0%,transparent 60%);pointer-events:none;transition:opacity .4s ease}[data-theme=dark] .liquid-bg-overlay{background:linear-gradient(140deg,#0c0916c2,#120e20b3 40%,#19122abd,#0a0812d1)}[data-theme=dark] .liquid-bg-glow{opacity:.85;background:radial-gradient(circle at 75% 25%,rgba(244,114,182,.16) 0%,transparent 55%),radial-gradient(circle at 25% 75%,rgba(139,109,252,.22) 0%,transparent 60%)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{background-color:#f1ecf9;-webkit-text-size-adjust:100%;scrollbar-gutter:stable;min-height:100%;min-height:100dvh}[data-theme=dark] html{background-color:#0f0a1c}body{font-family:DM Sans,sans-serif;background-color:transparent;color:var(--text);min-height:100vh;min-height:100dvh;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{display:none}.wrap{max-width:1480px;margin:0 auto;padding:0 var(--wrap-pad);padding-top:max(0px,env(safe-area-inset-top));padding-bottom:max(20px,env(safe-area-inset-bottom));padding-left:max(var(--wrap-pad),env(safe-area-inset-left));padding-right:max(var(--wrap-pad),env(safe-area-inset-right));position:relative;z-index:1;width:100%;min-width:0}header,.glass-header{background:linear-gradient(135deg,#ffffff8c,#f6f0ff61,#fff2fc73);backdrop-filter:blur(24px) saturate(200%);-webkit-backdrop-filter:blur(24px) saturate(200%);border:1px solid rgba(255,255,255,.65);border-radius:20px;padding:12px 20px;margin-top:14px;margin-bottom:20px;box-shadow:0 12px 32px -4px #6d44f21a,0 4px 12px -2px #2d19500a,inset 0 1.5px 2px #ffffffd9;position:relative;overflow:hidden;max-width:100%;box-sizing:border-box;transition:background .25s ease,border-color .25s ease,box-shadow .25s ease}[data-theme=dark] header,[data-theme=dark] .glass-header{background:linear-gradient(135deg,#18122ab8,#120e2099,#1e1634ad);border-color:#ffffff29;box-shadow:0 12px 32px -4px #00000073,0 4px 12px -2px #0000004d,inset 0 1.5px 2px #fff3}.hdr{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:nowrap;width:100%;min-width:0}.brand{display:flex;align-items:center;gap:12px;min-width:0;flex:1 1 auto;overflow:hidden}.brand-icon{width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,#7c5cfc,#a855f7 55%,#ec4899);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 16px #7c5cfc59,inset 0 1.5px 1.5px #ffffff8c;position:relative;transition:transform .25s var(--ios-spring)}.brand-icon:hover{transform:scale(1.06) rotate(3deg)}.brand-icon:after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.3) 0%,transparent 60%);border-radius:inherit;pointer-events:none}.brand-text{min-width:0;flex:1 1 auto;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:2px}.brand-title-wrap{display:flex;align-items:center;gap:8px;min-width:0;max-width:100%;overflow:hidden;flex-wrap:nowrap}.brand-title{font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:800;font-size:clamp(14px,1.7vw,19px);color:var(--text);letter-spacing:-.3px;line-height:1.15;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex-shrink:1}.brand-badge{font-family:Syne,sans-serif;font-size:10px;font-weight:800;letter-spacing:.8px;padding:2.5px 8px;border-radius:6px;background:linear-gradient(135deg,rgba(var(--accent-rgb),.12),rgba(var(--accent2-rgb),.12));color:var(--accent);border:1px solid rgba(var(--accent-rgb),.25);box-shadow:inset 0 1px 1px #fff9;line-height:1;text-transform:uppercase;flex-shrink:0;white-space:nowrap}[data-theme=dark] .brand-badge{background:linear-gradient(135deg,rgba(var(--accent-rgb),.25),rgba(var(--accent2-rgb),.25));color:#d8b4fe;border-color:rgba(var(--accent-rgb),.4)}.brand-sub{font-size:11.5px;color:var(--muted);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;margin:0;min-width:0;max-width:100%}.hdr-controls{display:flex;align-items:center;gap:10px;flex-shrink:0;margin-left:auto;z-index:2}.hdr-badge{padding:6px 14px;border-radius:20px;font-size:11px;font-weight:600;border:1px solid rgba(var(--accent-rgb),.22);color:var(--accent);background:rgba(var(--accent-rgb),.08);letter-spacing:.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px;flex-shrink:0;display:inline-flex;align-items:center;gap:7px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:inset 0 1px 1px #fff9}[data-theme=dark] .hdr-badge{background:rgba(var(--accent-rgb),.15);border-color:rgba(var(--accent-rgb),.35);color:#d8b4fe;box-shadow:inset 0 1px 1px #ffffff1a}.badge-dot{width:6.5px;height:6.5px;border-radius:50%;background:#10b981;box-shadow:0 0 8px #10b981;animation:badgePulse 2s ease-in-out infinite;flex-shrink:0}@keyframes badgePulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.toggles{display:inline-flex;align-items:center;gap:3px;background:#ffffff6b;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.68);border-radius:14px;padding:3px;box-shadow:inset 0 1px 1.5px #ffffffb3,0 2px 8px #00000008;margin:0;flex-shrink:0;transition:background .25s ease,border-color .25s ease,box-shadow .25s ease}[data-theme=dark] .toggles{background:#ffffff0f;border-color:#ffffff1f;box-shadow:inset 0 1px 1.5px #ffffff1f,0 2px 8px #0003}.toggles .btn-icon{background:transparent;border:1px solid transparent;color:var(--text);width:32px;height:32px;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:11.5px;font-weight:700;box-shadow:none;transition:background .2s ease,color .2s ease,border-color .2s ease,box-shadow .2s ease;flex-shrink:0;position:relative}.toggles .btn-icon .btn-indicator-dot{position:absolute;top:5px;right:5px;width:6.5px;height:6.5px;border-radius:50%;background:#10b981;box-shadow:0 0 7px #10b981;animation:badgePulse 2s ease-in-out infinite;pointer-events:none}.toggles .btn-icon:hover{background:#ffffffb3;border-color:#ffffffd9;color:var(--accent);box-shadow:0 2px 8px #6d44f21f}[data-theme=dark] .toggles .btn-icon:hover{background:#ffffff24;border-color:#fff3;color:#fff;box-shadow:0 2px 8px #00000059}.toggles .btn-icon:active{background:rgba(var(--accent-rgb),.15);color:var(--accent)}[data-theme=dark] .toggles .btn-icon:active{background:#ffffff38;color:#fff}@media(max-width:1024px){.hdr-badge{display:none}}@media(max-width:768px){header,.glass-header{padding:10px 14px;margin-top:8px;margin-bottom:14px;border-radius:16px}.hdr{gap:8px}.brand{gap:9px;min-width:0;flex:1 1 auto;overflow:hidden}.brand-icon{width:36px;height:36px;border-radius:10px;flex-shrink:0}.brand-text{min-width:0;flex:1 1 auto;overflow:hidden}.brand-title-wrap{display:flex;align-items:center;gap:6px;min-width:0;max-width:100%;overflow:hidden;flex-wrap:nowrap}.brand-title{font-size:clamp(12px,3.4vw,14.5px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex-shrink:1}.brand-badge{font-size:9px;padding:2px 6px;letter-spacing:.5px;flex-shrink:0;white-space:nowrap;display:inline-block}.brand-sub{display:none}.hdr-controls{flex-shrink:0;margin-left:auto;gap:6px}.hdr-badge{display:none}.toggles{padding:2.5px;gap:2px;border-radius:12px;flex-shrink:0}.toggles .btn-icon{width:29px;height:29px;border-radius:8px;font-size:10.5px}}@media(max-width:420px){header,.glass-header{padding:8px 10px;border-radius:14px}.hdr{gap:6px}.brand{gap:7px}.brand-icon{width:30px;height:30px;border-radius:8px}.brand-icon i,.brand-icon svg{width:15px!important;height:15px!important}.brand-title-wrap{gap:4px}.brand-title{font-size:11.5px}.brand-badge{font-size:8px;padding:1.5px 4.5px}.toggles{padding:2px;gap:1.5px;border-radius:10px}.toggles .btn-icon{width:27px;height:27px;border-radius:7px;font-size:10px}.toggles .btn-icon svg,.toggles .btn-icon i{width:14px!important;height:14px!important}}@media(max-width:340px){.brand-icon{display:none}}#btn-theme{position:relative;overflow:hidden}#btn-theme svg,#btn-theme i{position:absolute;top:50%;left:50%;width:17px!important;height:17px!important;transform-origin:center center;transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .25s ease;pointer-events:none}#btn-theme .icon-sun,html:not([data-theme=dark]) #btn-theme .icon-sun,html[data-theme=light] #btn-theme .icon-sun{opacity:1;transform:translate(-50%,-50%) rotate(0) scale(1)}#btn-theme .icon-moon,html:not([data-theme=dark]) #btn-theme .icon-moon,html[data-theme=light] #btn-theme .icon-moon{opacity:0;transform:translate(-50%,-50%) rotate(45deg) scale(1)}html[data-theme=dark] #btn-theme .icon-sun{opacity:0;transform:translate(-50%,-50%) rotate(-45deg) scale(1)}html[data-theme=dark] #btn-theme .icon-moon{opacity:1;transform:translate(-50%,-50%) rotate(0) scale(1)}.layout{display:grid;grid-template-columns:360px 1fr;gap:24px;align-items:start;min-width:0}.layout>div:last-child{min-width:0}.sidebar{position:sticky;top:16px;display:flex;flex-direction:column;gap:12px;min-width:0;max-height:calc(100vh - 32px)}.panel{background:var(--s1);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--glass-shadow),var(--glass-specular);overflow:hidden;transition:background .25s ease,border-color .25s ease,box-shadow .25s ease}.panel-hdr{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:flex-start;gap:10px}.panel-hdr>:nth-child(2){margin-left:auto}.panel-hdr-right{display:inline-flex;align-items:center;gap:8px;flex-shrink:0}.panel-hdr.is-clickable{cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background .18s ease,border-color .25s ease}.panel-hdr.is-clickable:hover{background:#ffffff0d}[data-theme=light] .panel-hdr.is-clickable:hover{background:#00000008}.panel-hdr.is-clickable:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.panel-collapse-chevron{width:15px;height:15px;color:var(--muted2);transition:transform .34s cubic-bezier(.16,1,.3,1),color .2s ease;flex-shrink:0;transform:translateZ(0);will-change:transform}.panel-hdr.is-clickable:hover .panel-collapse-chevron{color:var(--text)}.panel.is-collapsed .panel-collapse-chevron{transform:translateZ(0) rotate(-90deg)}.panel.is-collapsed .panel-hdr{border-bottom-color:transparent}.panel-collapse-body{display:grid;grid-template-rows:1fr;transition:grid-template-rows .34s cubic-bezier(.16,1,.3,1),opacity .26s ease,visibility .34s ease;opacity:1;visibility:visible;contain:paint layout;transform:translateZ(0);will-change:grid-template-rows,opacity}.panel-collapse-inner{overflow:hidden;min-height:0;transform:translateZ(0);will-change:opacity}.panel.is-collapsed .panel-collapse-body{grid-template-rows:0fr;opacity:0;visibility:hidden;pointer-events:none}.panel.is-collapsed .panel-collapse-inner{content-visibility:hidden}.panel-title{font-family:Syne,sans-serif;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted2);display:inline-flex;align-items:center;line-height:1.1}.pill{background:#4f8ef71f;color:var(--accent);border-radius:6px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;line-height:1;min-height:20px}.pill.green{background:#10b9811f;color:#34d399}.pill.red{background:#f052521f;color:#f87171}.srch-wrap{padding:12px 18px;border-bottom:1px solid var(--border);position:relative}.srch-wrap input{width:100%;background:var(--s2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px 10px 36px;color:var(--text);font-size:13px;font-family:DM Sans,sans-serif;outline:none;box-shadow:var(--glass-specular);transition:all .2s var(--ios-spring)}.srch-wrap input:focus{background:var(--s3);border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.18),var(--glass-specular)}.srch-wrap input::placeholder{color:var(--muted)}.srch-icon{position:absolute;left:30px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:13px;pointer-events:none}.clist{position:relative;max-height:380px;overflow-y:auto;overscroll-behavior-y:auto;-webkit-overflow-scrolling:touch;contain:content;transform:translateZ(0)}.clist::-webkit-scrollbar{width:3px}.clist::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}.citem{display:flex;align-items:center;gap:10px;padding:9px 18px;cursor:pointer;border-bottom:1px solid var(--grid-line);transition:background .12s ease;content-visibility:auto;contain-intrinsic-size:1px 64px;contain:layout style}.citem:hover{background:var(--s2)}.citem:active{background:var(--s3)}.citem.sel{background:rgba(var(--accent-rgb),.1)}.citem.no-sec{opacity:.42;cursor:not-allowed}.cbox{width:18px;height:18px;border:1.5px solid var(--border2);border-radius:5px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .18s var(--ios-spring);background:var(--s2)}.citem.sel .cbox{background:var(--accent);border-color:var(--accent);box-shadow:0 2px 8px rgba(var(--accent-rgb),.35);transform:scale(1.05)}.citem.sel .cbox:after{content:"\2713";color:#fff;font-size:9px;font-weight:700}.cinfo{flex:1;min-width:0}.ccode{font-size:11px;font-weight:600;color:var(--accent);font-family:Syne,sans-serif}.cname{font-size:11px;color:var(--muted2);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.csec-count{font-size:10px;color:var(--muted);flex-shrink:0}.clist-divider{padding:5px 18px 4px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--muted);border-top:1px solid var(--border);background:#0000002e}.sel-area{padding:0;max-height:380px;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}.sel-area::-webkit-scrollbar{width:3px}.sel-area::-webkit-scrollbar-thumb{background:var(--border2);border-radius:3px}.sel-course-block{border-bottom:1px solid var(--border);padding:12px 18px;animation:fadeIn .2s ease;cursor:pointer;content-visibility:auto;contain-intrinsic-size:1px 72px}.sel-course-block:hover{background:#ffffff05}.sel-course-block:focus-visible{outline:3px solid rgba(99,102,241,.35);outline-offset:-2px}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.sel-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.sel-code{font-family:Syne,sans-serif;font-size:12px;font-weight:700}.sel-remove{color:var(--muted);cursor:pointer;font-size:16px;line-height:1;transition:color .1s}.sel-remove:hover{color:var(--red)}.sel-name{font-size:11px;color:var(--muted2);margin-bottom:9px;line-height:1.4}.sec-pills{display:flex;flex-wrap:wrap;gap:6px}.sec-pill{padding:5px 10px;border-radius:7px;font-size:11px;font-weight:500;cursor:pointer;border:1.5px solid var(--border2);color:var(--muted2);background:transparent;transition:all .12s;font-family:DM Mono,monospace}.sec-pill:hover{border-color:var(--accent);color:var(--accent)}.sec-pill.active{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.sec-pill.conflict{border-color:var(--red);color:var(--red)!important;background:#f0525214}.sec-pill.conflict.active{background:var(--red);color:#fff}.credit-badge{font-size:10px;font-weight:600;color:var(--muted2);background:#ffffff0d;border:1px solid var(--border2);border-radius:5px;padding:2px 7px;font-family:DM Mono,monospace}.sel-course-block.has-conflict{background:#ef444414!important;border:1.5px solid rgba(239,68,68,.4)!important;border-left:4px solid #ef4444!important;box-shadow:0 4px 16px #ef44441f!important}.sel-conflict-badge{display:inline-flex;align-items:center;font-size:9px;font-weight:850;padding:1.5px 6px;border-radius:4px;background:#ef4444;color:#fff;margin-left:4px;letter-spacing:.3px;box-shadow:0 2px 6px #ef444459;animation:conflictBadgePulse 2s infinite ease-in-out}.sidebar-foot{padding:14px 18px}.timetable-foot{margin-top:14px;padding:12px 18px;background:linear-gradient(135deg,#ffffff80,#f6f0ff5c,#fff2fc6b);backdrop-filter:blur(28px) saturate(190%);-webkit-backdrop-filter:blur(28px) saturate(190%);border:1.5px solid rgba(255,255,255,.7);border-radius:20px;box-shadow:0 14px 36px -8px #2d195014,0 4px 14px -2px #2d195008,inset 0 1.5px 2px #ffffffd9;transition:background .3s ease,border-color .3s ease,box-shadow .3s ease;width:100%}[data-theme=dark] .timetable-foot{background:#0f172ab8;backdrop-filter:blur(28px) saturate(190%);-webkit-backdrop-filter:blur(28px) saturate(190%);border:1.5px solid rgba(255,255,255,.12);border-radius:20px;box-shadow:0 18px 48px -10px #000000b3,inset 0 1.5px 2px #ffffff24}.timetable-foot-inner{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%}.timetable-foot .conflict-hint{display:none;align-items:center;gap:8px;padding:8px 16px;background:#ef44441f;border:1px solid rgba(239,68,68,.3);border-radius:12px;font-size:12px;font-weight:700;color:#ef4444;white-space:nowrap;margin-bottom:0;flex-shrink:0;line-height:1}.timetable-foot .conflict-hint[style*="display: block"]{display:inline-flex!important}.timetable-actions-row{display:flex;align-items:center;gap:10px;flex:1;width:100%;margin-bottom:0!important}.timetable-actions-row button{flex:1;white-space:nowrap;height:42px;padding:10px 14px;font-size:13px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:6px;margin-bottom:0}@media(max-width:768px){.timetable-foot-inner{flex-direction:column;align-items:stretch;gap:10px}.timetable-actions-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.timetable-actions-row button{width:100%}}.conflict-hint{font-size:11px;color:#f87171;margin-bottom:10px;display:none;line-height:1.5}.btn-reset{width:100%;padding:11px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--s2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text);font-size:13px;font-weight:700;cursor:pointer;box-shadow:var(--glass-specular);transition:all .2s var(--ios-spring);letter-spacing:.3px}.btn-reset:hover{background:#e11d481f;color:var(--red);border-color:#e11d4859;transform:translateY(-1px)}.btn-reset:active{transform:scale(.96)}.btn-save{width:100%;padding:11px;border:1px solid var(--accent);border-radius:var(--radius-sm);background:linear-gradient(135deg,rgba(var(--accent-rgb),.18),rgba(var(--accent2-rgb),.12));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--accent);font-size:13px;font-weight:700;cursor:pointer;box-shadow:var(--glass-specular),0 2px 10px rgba(var(--accent-rgb),.15);transition:all .2s var(--ios-spring);letter-spacing:.3px}.btn-save:hover{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;transform:translateY(-1px);box-shadow:0 4px 16px rgba(var(--accent-rgb),.35)}.btn-save:active{transform:scale(.96)}.btn-random-colors{width:100%;padding:11px;border:1px solid rgba(var(--accent-rgb),.35);border-radius:var(--radius-sm);background:linear-gradient(135deg,rgba(var(--accent-rgb),.12),rgba(var(--accent2-rgb),.08));backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--accent);font-size:13px;font-weight:700;cursor:pointer;box-shadow:var(--glass-specular);transition:all .2s var(--ios-spring);letter-spacing:.3px;display:flex;align-items:center;justify-content:center;gap:6px}.btn-random-colors:hover{background:linear-gradient(135deg,rgba(var(--accent-rgb),.22),rgba(var(--accent2-rgb),.18));border-color:var(--accent);color:var(--accent);transform:translateY(-1px);box-shadow:0 4px 14px rgba(var(--accent-rgb),.2)}.btn-random-colors:active{transform:scale(.96)}.saved-area{padding:10px 16px 12px;max-height:250px;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.saved-card{display:flex;align-items:center;justify-content:space-between;padding:12px;background:var(--s2);border:1px solid var(--border);border-radius:10px;margin-bottom:8px;cursor:pointer;transition:all .15s ease}.saved-card:hover{border-color:var(--border2);transform:translateY(-1px);background:var(--s3)}.saved-name{font-family:Syne,sans-serif;font-size:13px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:3px}.saved-meta{font-size:10px;color:var(--muted);font-family:DM Mono,monospace}.saved-actions{display:flex;gap:6px}.btn-load{padding:5px 12px;font-size:11px;font-family:DM Sans,sans-serif;font-weight:600;background:#10b9811a;color:#10b981;border-color:transparent;border-radius:6px;cursor:pointer;transition:all .15s}.btn-load:hover{background:#10b981;color:#fff}.btn-del{padding:5px 12px;font-size:11px;font-family:DM Sans,sans-serif;font-weight:600;background:#f052521a;color:var(--red);border-color:transparent;border-radius:6px;cursor:pointer;transition:all .15s}.btn-del:hover{background:var(--red);color:#fff}.modal{position:fixed;inset:0;background:#0c081473;backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);z-index:2000;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s var(--ios-spring),visibility .3s ease}.modal.show{opacity:1!important;visibility:visible!important;pointer-events:auto!important;z-index:100030!important}.modal-content{background:var(--s-modal);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;width:90%;max-width:420px;transform:translateY(24px) scale(.96);transition:transform .35s var(--ios-spring),opacity .3s ease;box-shadow:var(--shadow-modal),var(--glass-specular)}.modal.show .modal-content{transform:translateY(0) scale(1)}.tt-wrap{background:linear-gradient(135deg,#ffffff7a,#f6f0ff57,#fff2fc66);backdrop-filter:blur(28px) saturate(190%);-webkit-backdrop-filter:blur(28px) saturate(190%);border:1.5px solid rgba(255,255,255,.7);border-radius:24px;box-shadow:0 20px 48px -8px #2d195014,0 4px 16px -2px #2d195008,inset 0 1.5px 2px #ffffffd9;overflow:hidden;min-width:0;width:100%;transition:background .3s ease,border-color .3s ease,box-shadow .3s ease}[data-theme=dark] .tt-wrap{background:#0f172ab8;backdrop-filter:blur(28px) saturate(190%);-webkit-backdrop-filter:blur(28px) saturate(190%);border:1.5px solid rgba(255,255,255,.12);border-radius:24px;box-shadow:0 24px 60px -12px #000000bf,0 4px 16px -2px #0006,inset 0 1.5px 2px #ffffff24}.tt-hdr{padding:14px 22px;border-bottom:1.5px solid rgba(255,255,255,.75);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;position:relative}[data-theme=dark] .tt-hdr{border-bottom:1.5px solid rgba(255,255,255,.08)}.tt-title-pill{display:inline-flex;align-items:center;justify-content:center;padding:8px 26px;border-radius:9999px;background:#ffffffe6;border:1.5px solid rgba(255,255,255,.98);box-shadow:0 4px 20px -2px #3c325a14,0 1px 3px #00000008;transition:all .25s ease;margin:0 auto}[data-theme=dark] .tt-title-pill{background:#1e293bd9;border:1.5px solid rgba(255,255,255,.16);box-shadow:0 4px 20px -2px #00000080,inset 0 1px 1px #ffffff26}.tt-title{font-family:Outfit,Plus Jakarta Sans,sans-serif;font-size:13.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:#0f172a}[data-theme=dark] .tt-title{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.45)}.tt-hdr-top{display:contents}.tt-view-group{margin-left:0;display:flex;align-items:center;gap:8px}.tt-tools-group{display:flex;align-items:center;gap:8px}.tt-actions{display:flex;gap:8px;align-items:center}.tt-btn-ico{display:inline-flex;align-items:center;justify-content:center;line-height:1;font-size:13px;flex-shrink:0;opacity:.95}.btn-view-toggle,.tt-actions .btn-view-toggle,.tt-actions .btn-sm{height:36px;padding:0 13px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--s2);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--muted2);font-family:DM Sans,sans-serif;font-size:11px;font-weight:700;letter-spacing:.2px;display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1;white-space:nowrap;box-shadow:var(--glass-specular);transition:all .2s var(--ios-spring)}.tt-actions .btn-view-toggle:hover,.tt-actions .btn-sm:hover{border-color:var(--accent);color:var(--text);background:var(--s3);transform:translateY(-1px)}.tt-actions .btn-view-toggle:active,.tt-actions .btn-sm:active{transform:scale(.94)}.tt-actions .btn-view-toggle.active{border-color:var(--accent);color:var(--accent);background:linear-gradient(135deg,rgba(var(--accent-rgb),.18),rgba(var(--accent2-rgb),.12));box-shadow:0 2px 10px rgba(var(--accent-rgb),.22),var(--glass-specular)}.tt-actions .btn-print{border-color:rgba(var(--accent-rgb),.35);color:var(--accent);background:rgba(var(--accent-rgb),.1)}.tt-actions .btn-share{border-color:#10b98159;color:#10b981;background:#10b9811a}.tt-actions .btn-export{border-color:rgba(var(--accent2-rgb),.35);color:var(--accent2);background:rgba(var(--accent2-rgb),.1)}.tt-actions .btn-print:hover{background:rgba(var(--accent-rgb),.18);color:var(--accent)}.tt-actions .btn-share:hover{background:#10b9812e;color:#10b981}:root[data-theme=dark] .tt-actions .btn-share{border-color:#34d39959;color:#34d399;background:#34d3991f}:root[data-theme=dark] .tt-actions .btn-share:hover{background:#34d39938;color:#34d399}.tt-actions .btn-export:hover{background:rgba(var(--accent2-rgb),.18);color:var(--accent2)}.tt-actions .btn-print svg,.tt-actions .btn-share svg,.tt-actions .btn-export svg{flex-shrink:0}.btn-sm{padding:7px 13px;border-radius:8px;font-size:11px;font-weight:600;cursor:pointer;font-family:DM Sans,sans-serif;border:1px solid;transition:background .12s}.btn-print{border-color:#4f8ef759;color:var(--accent);background:#4f8ef714}.btn-print:hover{background:#4f8ef729}.btn-view-toggle{display:inline-flex;padding:6px 10px;border-radius:7px;font-size:10px;font-weight:700;cursor:pointer;font-family:DM Mono,monospace;white-space:nowrap;border:1px solid var(--border2);color:var(--muted2);background:transparent;align-items:center;gap:4px;transition:all .15s}.btn-view-toggle:hover{border-color:var(--accent);color:var(--accent)}.btn-view-toggle.active{border-color:var(--accent);color:var(--accent);background:#4f8ef714}@media(max-width:640px){.tt-hdr{padding:12px 14px;flex-direction:column;align-items:center;gap:10px}.tt-title-pill{margin:0 auto;width:fit-content}.tt-title{font-size:13px;font-weight:800}.tt-view-group{margin-left:0;display:flex;justify-content:center;gap:6px;flex-shrink:0;width:100%}.tt-view-group .btn-view-toggle{height:32px;padding:0 10px;font-size:11px;gap:5px;font-weight:700}.tt-actions{width:100%;display:block}.tt-tools-group{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;width:100%}.tt-tools-group .btn-sm{height:34px;padding:0 6px;font-size:10.5px;font-weight:600;gap:5px;justify-content:center;width:100%;min-width:0;overflow:hidden}.tt-tools-group .btn-sm span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media(max-width:400px){.tt-tools-group .btn-sm{font-size:9.5px;padding:0 4px;gap:4px}.tt-tools-group .btn-sm svg,.tt-tools-group .btn-sm i{width:13px!important;height:13px!important}}.conflict-strip{margin:14px 20px;padding:0;background:transparent;border:none;display:none}.conflict-banner-wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;border-radius:14px;background:linear-gradient(135deg,#ef44441f,#f59e0b1a);border:1.5px solid rgba(239,68,68,.45);box-shadow:0 8px 24px -4px #ef44442e;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:conflictBannerSlideIn .3s cubic-bezier(.32,.72,0,1)}[data-theme=dark] .conflict-banner-wrap{background:linear-gradient(135deg,#ef444438,#f59e0b29);border-color:#ef44448c;box-shadow:0 10px 30px -4px #00000080}.conflict-banner-left{display:flex;align-items:flex-start;gap:14px;flex:1;min-width:0}.conflict-banner-icon{width:38px;height:38px;border-radius:10px;background:#ef4444;color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 12px #ef444466}.conflict-banner-title{font-size:13.5px;font-weight:800;color:#ef4444;display:flex;align-items:center;gap:6px}[data-theme=dark] .conflict-banner-title{color:#f87171}.conflict-banner-desc{font-size:11.5px;color:var(--text);margin-top:2px;opacity:.9}.conflict-banner-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.conflict-item-chip{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:750;font-family:DM Mono,monospace;padding:3px 8px;border-radius:6px;background:#ef444426;border:1px solid rgba(239,68,68,.35);color:#ef4444}[data-theme=dark] .conflict-item-chip{background:#ef444440;color:#fca5a5;border-color:#ef444480}.btn-conflict-autofix{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:10px;font-size:12.5px;font-weight:800;background:linear-gradient(135deg,#ef4444,#f97316);color:#fff;border:none;cursor:pointer;box-shadow:0 4px 14px #ef444466;transition:all .2s var(--ios-spring);white-space:nowrap}.btn-conflict-autofix:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 6px 18px #ef44448c}.btn-conflict-autofix:active{transform:scale(.98)}@keyframes conflictBannerSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.conflict-banner-wrap{flex-direction:column;align-items:stretch}.btn-conflict-autofix{justify-content:center;width:100%}}.empty{padding:70px 24px;text-align:center}.empty-ico{font-size:42px;margin-bottom:14px;opacity:.3}.empty h3{font-family:Syne,sans-serif;font-size:16px;color:var(--muted2);margin-bottom:6px}.empty p{font-size:12px;color:var(--muted)}.tt-scroll{overflow-x:auto;overflow-y:visible;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:var(--border2) transparent;width:100%;position:relative;font-family:Plus Jakarta Sans,Outfit,-apple-system,BlinkMacSystemFont,sans-serif;cursor:grab}.tt-scroll.is-dragging{cursor:grabbing;user-select:none;-webkit-user-select:none}.tt-scroll::-webkit-scrollbar{height:5px}.tt-scroll::-webkit-scrollbar-track{background:transparent}.tt-scroll::-webkit-scrollbar-thumb{background:var(--border2);border-radius:4px}.tt-table,.tt-table-dl,.slot{touch-action:pan-x pan-y}.tt-table{border-collapse:collapse;width:100%;table-layout:fixed;min-width:800px;font-family:Plus Jakarta Sans,Outfit,-apple-system,BlinkMacSystemFont,sans-serif}.tt-table th{padding:10px 4px;font-size:10.5px;font-weight:750;text-transform:uppercase;letter-spacing:.3px;color:#334155;border-bottom:1.5px solid rgba(255,255,255,.7);border-right:1px solid rgba(255,255,255,.5);text-align:center;white-space:nowrap;background:#ffffff40;font-family:Plus Jakarta Sans,sans-serif;transition:background .25s ease,color .25s ease}[data-theme=dark] .tt-table th{color:#94a3b8;background:#182032a6;border-bottom:1.5px solid rgba(255,255,255,.1);border-right:1px solid rgba(255,255,255,.08);font-weight:700;letter-spacing:.3px}.tt-table th.day-th{text-align:center;padding:10px 4px;color:#1e293b;font-family:Plus Jakarta Sans,sans-serif;font-size:11px;font-weight:800;width:68px;letter-spacing:.5px;border-right:1.5px solid rgba(255,255,255,.7);background:#ffffff59}[data-theme=dark] .tt-table th.day-th{color:#e2e8f0;background:#182032cc;border-right:1.5px solid rgba(255,255,255,.1);font-weight:800;text-align:center}.tt-table th.corner-th{font-size:11px;letter-spacing:.5px}.tt-table td{border-right:1px solid rgba(255,255,255,.5);border-bottom:1px solid rgba(255,255,255,.5);height:92px;vertical-align:top;position:relative;padding:0;background:transparent;transition:background .2s ease}[data-theme=dark] .tt-table td{border-right:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(255,255,255,.07)}.tt-table td.day-td{padding:0 4px;font-size:11.5px;font-weight:800;color:#0f172a;vertical-align:middle;text-align:center;white-space:nowrap;border-right:1.5px solid rgba(255,255,255,.7);border-bottom:1px solid rgba(255,255,255,.5);background:#ffffff52;font-family:Plus Jakarta Sans,sans-serif;width:68px;letter-spacing:.5px;transition:background .25s ease,color .25s ease}[data-theme=dark] .tt-table td.day-td{color:#f1f5f9;background:#182032bf;border-right:1.5px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.08);font-size:11.5px;font-weight:800;text-align:center;padding:0 4px;letter-spacing:.5px}.tt-table tr:hover td:not(.day-td){background:#ffffff04}.slot{position:absolute;inset:4px;border-radius:14px;padding:6px 10px;overflow:hidden;cursor:pointer;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;align-items:center;transition:transform .18s ease,box-shadow .18s ease;user-select:none;font-family:Plus Jakarta Sans,Outfit,sans-serif;border-width:1.5px;border-style:solid;border-color:transparent;contain:paint layout;transform:translateZ(0)}.slot:hover{transform:translateY(-2px) scale(1.015);z-index:35!important}:root[data-theme=light] .slot,:root .slot{color:#1e293b}:root[data-theme=light] .slot:hover,:root .slot:hover{box-shadow:0 8px 24px #3c325a29}[data-theme=dark] .slot{color:#fff}[data-theme=dark] .slot:hover{box-shadow:0 8px 26px #000000a6}.slot.custom-pal{box-shadow:0 4px 14px -2px #00000040,inset 0 1px 1.5px #ffffff59}:root[data-theme=light] .slot.pal-0,:root .slot.pal-0{background:linear-gradient(135deg,#fecdd3,#fbcfe8)!important;border-color:#e11d488c!important;box-shadow:0 4px 14px -2px #e11d4840,inset 0 1px 1.5px #fffffff2}:root[data-theme=light] .slot.pal-1,:root .slot.pal-1{background:linear-gradient(135deg,#fef08a,#fde047)!important;border-color:#ca8a04a6!important;box-shadow:0 4px 14px -2px #ca8a0440,inset 0 1px 1.5px #fffffff2}:root[data-theme=light] .slot.pal-2,:root .slot.pal-2{background:linear-gradient(135deg,#bae6fd,#7dd3fc)!important;border-color:#0284c78c!important;box-shadow:0 4px 14px -2px #0284c740,inset 0 1px 1.5px #fffffff2}:root[data-theme=light] .slot.pal-3,:root .slot.pal-3{background:linear-gradient(135deg,#a7f3d0,#6ee7b7)!important;border-color:#0596698c!important;box-shadow:0 4px 14px -2px #05966940,inset 0 1px 1.5px #fffffff2}:root[data-theme=light] .slot.pal-4,:root .slot.pal-4{background:linear-gradient(135deg,#e9d5ff,#d8b4fe)!important;border-color:#7c3aed8c!important;box-shadow:0 4px 14px -2px #7c3aed40,inset 0 1px 1.5px #fffffff2}:root[data-theme=light] .slot.pal-5,:root .slot.pal-5{background:linear-gradient(135deg,#fed7aa,#fdba74)!important;border-color:#ea580c8c!important;box-shadow:0 4px 14px -2px #ea580c40,inset 0 1px 1.5px #fffffff2}:root[data-theme=light] .slot.pal-6,:root .slot.pal-6{background:linear-gradient(135deg,#fee2e2,#fca5a5)!important;border-color:#dc26268c!important;box-shadow:0 4px 14px -2px #dc262640,inset 0 1px 1.5px #fffffff2}:root[data-theme=light] .slot.pal-7,:root .slot.pal-7{background:linear-gradient(135deg,#cffafe,#67e8f9)!important;border-color:#0891b28c!important;box-shadow:0 4px 14px -2px #0891b240,inset 0 1px 1.5px #fffffff2}:root[data-theme=light] .slot.pal-8,:root .slot.pal-8{background:linear-gradient(135deg,#c7d2fe,#a5b4fc)!important;border-color:#4338ca8c!important;box-shadow:0 4px 14px -2px #4338ca40,inset 0 1px 1.5px #fffffff2}:root[data-theme=light] .slot.pal-9,:root .slot.pal-9{background:linear-gradient(135deg,#fae8ff,#f0abfc)!important;border-color:#a21caf8c!important;box-shadow:0 4px 14px -2px #a21caf40,inset 0 1px 1.5px #fffffff2}:root[data-theme=light] .slot.pal-10,:root .slot.pal-10{background:linear-gradient(135deg,#ecfccb,#bef264)!important;border-color:#65a30d8c!important;box-shadow:0 4px 14px -2px #65a30d40,inset 0 1px 1.5px #fffffff2}:root[data-theme=light] .slot.pal-11,:root .slot.pal-11{background:linear-gradient(135deg,#f1f5f9,#cbd5e1)!important;border-color:#4755698c!important;box-shadow:0 4px 14px -2px #47556940,inset 0 1px 1.5px #fffffff2}[data-theme=dark] .slot.pal-0{background:linear-gradient(135deg,#2563eb,#1d4ed8)!important;border-color:#60a5fa80!important;box-shadow:0 4px 16px #0006,0 0 14px #2563eb73,inset 0 1px 1px #ffffff40}[data-theme=dark] .slot.pal-1{background:linear-gradient(135deg,#ef4444,#dc2626)!important;border-color:#f8717180!important;box-shadow:0 4px 16px #0006,0 0 14px #ef444473,inset 0 1px 1px #ffffff40}[data-theme=dark] .slot.pal-2{background:linear-gradient(135deg,#7c3aed,#6d28d9)!important;border-color:#a78bfa80!important;box-shadow:0 4px 16px #0006,0 0 14px #7c3aed73,inset 0 1px 1px #ffffff40}[data-theme=dark] .slot.pal-3{background:linear-gradient(135deg,#0891b2,#0e7490)!important;border-color:#22d3ee80!important;box-shadow:0 4px 16px #0006,0 0 14px #0891b273,inset 0 1px 1px #ffffff40}[data-theme=dark] .slot.pal-4{background:linear-gradient(135deg,#ea580c,#c2410c)!important;border-color:#fb923c80!important;box-shadow:0 4px 16px #0006,0 0 14px #ea580c73,inset 0 1px 1px #ffffff40}[data-theme=dark] .slot.pal-5{background:linear-gradient(135deg,#db2777,#be185d)!important;border-color:#f472b680!important;box-shadow:0 4px 16px #0006,0 0 14px #db277773,inset 0 1px 1px #ffffff40}[data-theme=dark] .slot.pal-6{background:linear-gradient(135deg,#4f46e5,#4338ca)!important;border-color:#818cf880!important;box-shadow:0 4px 16px #0006,0 0 14px #4f46e573,inset 0 1px 1px #ffffff40}[data-theme=dark] .slot.pal-7{background:linear-gradient(135deg,#059669,#047857)!important;border-color:#34d39980!important;box-shadow:0 4px 16px #0006,0 0 14px #05966973,inset 0 1px 1px #ffffff40}[data-theme=dark] .slot.pal-8{background:linear-gradient(135deg,#d97706,#b45309)!important;border-color:#fbbf2480!important;box-shadow:0 4px 16px #0006,0 0 14px #d9770673,inset 0 1px 1px #ffffff40}[data-theme=dark] .slot.pal-9{background:linear-gradient(135deg,#475569,#334155)!important;border-color:#94a3b880!important;box-shadow:0 4px 16px #0006,0 0 14px #47556973,inset 0 1px 1px #ffffff40}[data-theme=dark] .slot.pal-10{background:linear-gradient(135deg,#0d9488,#0f766e)!important;border-color:#2dd4bf80!important;box-shadow:0 4px 16px #0006,0 0 14px #0d948873,inset 0 1px 1px #ffffff40}[data-theme=dark] .slot.pal-11{background:linear-gradient(135deg,#e11d48,#be123c)!important;border-color:#fda4af80!important;box-shadow:0 4px 16px #0006,0 0 14px #e11d4873,inset 0 1px 1px #ffffff40}.sl-inner{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:2px;overflow:hidden;box-sizing:border-box}.sl-title{font-family:Plus Jakarta Sans,sans-serif;font-size:11.5px;font-weight:800;color:#0f172a;text-transform:uppercase;line-height:1.25;letter-spacing:.2px;width:100%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis;overflow-wrap:break-word;word-break:normal;transition:color .2s ease}.sl-meta{font-family:Plus Jakarta Sans,sans-serif;font-size:10px;font-weight:700;color:#334155;line-height:1.22;margin-top:1px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .2s ease}.sl-venue{font-family:Plus Jakarta Sans,sans-serif;font-size:9.5px;font-weight:600;color:#475569;text-transform:uppercase;line-height:1.2;margin-top:1px;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .2s ease}.sl-lec{display:none!important}.sl-conflict-ico{color:#ef4444;margin-right:3px;font-weight:800}[data-theme=dark] .sl-title{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.45)}[data-theme=dark] .sl-meta{color:#ffffffe6;text-shadow:0 1px 2px rgba(0,0,0,.3)}[data-theme=dark] .sl-venue{color:#ffffffc7;text-shadow:0 1px 2px rgba(0,0,0,.25)}[data-theme=dark] .sl-lec{color:#ffffffad}[data-theme=dark] .sl-conflict-ico{color:#f87171}.slot.is-single-hour .sl-title{font-size:10.5px;line-height:1.2}.slot.is-single-hour .sl-meta{font-size:9.5px}.slot.is-single-hour .sl-venue{font-size:8.5px}.slot.is-single-hour .sl-lec{display:none}.slot.is-compact{padding:4px 6px;border-radius:10px}.slot.is-compact .sl-inner{gap:2px;justify-content:center}.slot.is-compact .sl-title{font-size:10.5px;font-weight:800;line-height:1.2;white-space:normal;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.slot.is-compact .sl-meta{font-size:9.5px;font-weight:600;line-height:1.15}.slot.is-compact .sl-venue{font-size:8.5px;line-height:1.15;font-weight:600}.slot.is-compact .sl-lec{display:none}.sl-conflict-ico{display:inline-block;font-size:11px;margin-right:4px;vertical-align:middle}.slot.is-conflict{border:2px solid #ef4444!important;border-left:5px solid #ef4444!important;outline:2px solid rgba(239,68,68,.45);outline-offset:1px;animation:slotConflictGlow 2.5s infinite ease-in-out;z-index:40!important}:root[data-theme=light] .slot.is-conflict,:root .slot.is-conflict{box-shadow:0 4px 16px #ef444459,inset 0 0 12px #ef444440!important}[data-theme=dark] .slot.is-conflict{box-shadow:0 6px 20px #ef44448c,inset 0 0 14px #ef444459!important}.slot-conflict-badge{display:inline-flex;align-items:center;gap:4px;font-size:8.5px;font-weight:850;letter-spacing:.5px;text-transform:uppercase;background:#ef4444;color:#fff;padding:2px 7px;border-radius:4px;margin-bottom:4px;box-shadow:0 2px 8px #ef444480;animation:conflictBadgePulse 2s infinite ease-in-out}.conflict-pulse-dot{width:5px;height:5px;border-radius:50%;background:#fff;animation:conflictDotPing 1.2s infinite ease-in-out}@keyframes conflictDotPing{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.6)}}@keyframes conflictBadgePulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@keyframes slotConflictGlow{0%,to{outline-color:#ef444459}50%{outline-color:#ef4444d9}}.slot-dur{font-size:7px;opacity:.75;margin-top:1px;white-space:nowrap}.slot-mv-badge{display:inline-flex;align-items:center;gap:2px;font-size:6.5px;font-weight:800;padding:1px 4px;border-radius:3px;background:#f59e0b38;color:#b45309;border:1px solid rgba(245,158,11,.45);margin-left:3px;line-height:1.1;vertical-align:middle}[data-theme=dark] .slot-mv-badge{background:#f59e0b40;color:#fbbf24;border-color:#f59e0b80}.slot-venue.is-multi-venue{font-weight:700;opacity:.95;color:#d97706}[data-theme=dark] .slot-venue.is-multi-venue{color:#fbbf24}.sc-tag.is-multi-venue{background:#f59e0b26!important;color:#d97706!important;border:1px solid rgba(245,158,11,.35)!important;font-weight:700!important}[data-theme=dark] .sc-tag.is-multi-venue{background:#f59e0b38!important;color:#fbbf24!important;border-color:#f59e0b73!important}.detail-mv-alert{margin-top:12px;padding:10px 12px;background:#f59e0b1f;border:1.5px solid rgba(245,158,11,.4);border-radius:8px;font-size:11.5px;line-height:1.5;color:var(--text);animation:pulse-border 2.5s infinite}@keyframes pulse-border{0%,to{border-color:#f59e0b66}50%{border-color:#f59e0bd9;box-shadow:0 0 10px #f59e0b33}}.detail-mv-alert-title{font-weight:700;display:flex;align-items:center;gap:6px;color:#d97706;margin-bottom:4px;font-size:12px}[data-theme=dark] .detail-mv-alert-title{color:#fbbf24}.conflict-cell{background:#f052520f}.conflict-inner{position:absolute;left:2px;right:2px;border-radius:6px;padding:2px 4px;overflow:hidden;background:#f052521f;border:1.5px solid rgba(240,82,82,.4)}.conflict-inner .slot-code{color:#fca5a5;font-size:7.5px}@media(min-width:769px){.desktop-hide{display:none!important}}.cards-view{padding:0}.day-section{border-bottom:1px solid var(--border)}.day-section:last-child{border-bottom:none}.day-section-hdr{padding:10px 16px 8px;background:var(--s2);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px}.day-pip{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0}.day-label{font-family:Syne,sans-serif;font-size:11px;font-weight:700;color:var(--muted2);text-transform:uppercase;letter-spacing:1px}.day-slots{padding:10px 12px;display:flex;flex-direction:column;gap:8px}.day-empty{padding:12px 16px;font-size:11px;color:var(--muted);font-style:italic}.slot-card{border-radius:var(--radius-sm);padding:12px 14px;border-left:3px solid transparent;border-top:1px solid var(--border);border-right:1px solid var(--border);border-bottom:1px solid var(--border);display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto auto;column-gap:12px;row-gap:3px;background:var(--s2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:var(--glass-specular),0 2px 8px #0000000a;animation:fadeIn .2s ease;overflow:hidden;position:relative;transition:transform .2s var(--ios-spring),box-shadow .2s var(--ios-spring)}.slot-card:hover{transform:translateY(-2px);box-shadow:var(--glass-specular),0 6px 18px #00000014}.slot-card:after{content:"";position:absolute;top:0;right:0;bottom:0;width:50px;background:linear-gradient(to left,rgba(255,255,255,.012),transparent);pointer-events:none}.sc-code{font-family:Syne,sans-serif;font-size:13px;font-weight:800;grid-column:1;grid-row:1;line-height:1.2;align-self:center}.sc-time{font-family:DM Mono,monospace;font-size:10.5px;font-weight:600;color:var(--muted2);grid-column:2;grid-row:1;text-align:right;white-space:nowrap;align-self:center}.sc-name{font-size:11px;color:var(--muted2);line-height:1.35;grid-column:1 / -1;grid-row:2;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.sc-tags{grid-column:1 / -1;grid-row:3;display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}.sc-tag{font-size:9.5px;font-weight:700;font-family:DM Mono,monospace;padding:2px 7px;border-radius:4px;background:#ffffff12;color:var(--muted2)}.sc-tag.type-K,.sc-tag.type-L{background:#4f8ef726;color:#93c5fd}.sc-tag.type-A,.sc-tag.type-P{background:#10b98126;color:#6ee7b7}.sc-tag.type-T{background:#f59e0b26;color:#fcd34d}.sc-tag.is-conflict{background:#f0525226;color:#f87171}.stat-row{display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid rgba(255,255,255,.55);background:#ffffff40}.stat{padding:13px 10px;text-align:center;border-right:1px solid rgba(255,255,255,.45)}.stat:last-child{border-right:none}.stat-n{font-family:Syne,sans-serif;font-size:20px;font-weight:800}.stat-l{font-size:9.5px;color:var(--muted);margin-top:2px}.legend{padding:12px 20px;border-top:1px solid rgba(255,255,255,.45);background:#ffffff2e;display:flex;flex-wrap:wrap;gap:8px;align-items:center}.legend-t{font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--muted);margin-right:4px}.legend-item{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--muted2)}.legend-dot{width:8px;height:8px;border-radius:2px;flex-shrink:0}.legend-sep{width:1px;height:13px;background:var(--border);margin:0 4px}.c0{background:#4f8ef733;border-left:3px solid #4f8ef7;color:#93c5fd}.c1{background:#10b98133;border-left:3px solid #10b981;color:#6ee7b7}.c2{background:#f59e0b33;border-left:3px solid #f59e0b;color:#fcd34d}.c3{background:#f0525233;border-left:3px solid #f05252;color:#fca5a5}.c4{background:#8b5cf633;border-left:3px solid #8b5cf6;color:#c4b5fd}.c5{background:#ec489933;border-left:3px solid #ec4899;color:#f9a8d4}.c6{background:#14b8a633;border-left:3px solid #14b8a6;color:#5eead4}.c7{background:#f9731633;border-left:3px solid #f97316;color:#fdba74}.c8{background:#6366f133;border-left:3px solid #6366f1;color:#a5b4fc}.c9{background:#22c55e33;border-left:3px solid #22c55e;color:#86efac}.c10{background:#fbbf2433;border-left:3px solid #fbbf24;color:#fde68a}.c11{background:#a78bfa33;border-left:3px solid #a78bfa;color:#ddd6fe}.type-K .slot-type-badge{background:#4f8ef740}.type-A .slot-type-badge{background:#10b98140}.type-T .slot-type-badge{background:#f59e0b40}@media(max-width:1024px){:root{--wrap-pad: 18px}.layout{grid-template-columns:1fr;gap:16px}.sidebar{position:static}.sidebar{display:grid;grid-template-columns:1fr 1fr;gap:16px}.sidebar-foot{grid-column:span 2}.clist{max-height:260px}.btn-view-toggle{display:inline-flex}.tt-table th{font-size:10px;padding:8px 3px}.tt-table td.day-td{font-size:10.5px;width:58px;padding:0 4px}.slot-code{font-size:8px}.slot-meta{font-size:7px}.stat-n{font-size:17px}.stat{padding:10px 8px}}@media(max-width:768px){:root{--wrap-pad: 12px}.modal,.modal-overlay{align-items:flex-end!important;padding:0!important}.modal-content,.modal-box,.slip-res-modal-content{width:100%!important;max-width:100%!important;border-radius:24px 24px 0 0!important;transform:translateY(100%) scale(1)!important;padding:24px 20px max(24px,env(safe-area-inset-bottom))!important;transition:transform .38s var(--ios-spring),opacity .25s ease!important;max-height:calc(100dvh - 20px)!important;max-height:calc(100vh - 20px)!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;overscroll-behavior-y:contain!important}.modal.show .modal-content,.modal-overlay.open .modal-box{transform:translateY(0) scale(1)!important}.sidebar{display:flex!important;flex-direction:column;gap:10px}.clist{max-height:220px}.btn-view-toggle[data-view=cards]{display:inline-flex!important}.tt-hdr{padding:12px 14px;gap:6px}.tt-title{font-size:13px}.stat-row{grid-template-columns:repeat(5,1fr)}.stat{padding:10px 4px;border-right:1px solid var(--border);border-top:none}.stat:last-child{border-right:none}.stat-n{font-size:16px;font-weight:800}.stat-l{font-size:8.5px;font-weight:600}.legend{padding:10px 14px;gap:6px}.legend-item{font-size:9px}.conflict-strip{margin:8px 12px;padding:8px 11px;font-size:10px}.empty{padding:50px 20px}}@media(max-width:480px){.stat-row{grid-template-columns:repeat(5,1fr)}.stat{padding:8px 2px;border-right:1px solid var(--border);border-top:none!important}.stat:last-child{border-right:none}.stat-n{font-size:14.5px}.stat-l{font-size:8px}}.tt-table-dl{table-layout:auto;min-width:520px}.tt-table-dl .time-th{width:80px;text-align:right!important;padding-right:10px!important;font-family:DM Mono,monospace;font-size:9px}.tt-table-dl .day-col-th{font-family:Syne,sans-serif;font-size:10px;font-weight:700;color:var(--text);border-right:1px solid var(--border);min-width:120px}.tt-table-dl .time-td{font-family:DM Mono,monospace;font-size:9px;font-weight:500;color:var(--muted2);text-align:right;padding-right:10px;white-space:nowrap;background:var(--s2);border-right:1px solid var(--border);vertical-align:middle;width:80px}.color-swatch-btn{width:16px;height:16px;border-radius:4px;border:2px solid transparent;cursor:pointer;flex-shrink:0;transition:transform .12s,box-shadow .12s;padding:0;outline:none}.color-swatch-btn:hover{transform:scale(1.2);box-shadow:0 0 0 2px #ffffff40}.color-picker-popup{z-index:2000;background:var(--s1);border:1px solid var(--border2);border-radius:12px;padding:12px;box-shadow:0 16px 48px #00000080;min-width:196px;animation:cpFadeIn .15s ease}@keyframes cpFadeIn{0%{opacity:0;transform:translateY(-4px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.cp-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--muted2);margin-bottom:10px;display:flex;align-items:center;gap:6px}.cp-code{font-family:DM Mono,monospace;color:var(--accent);font-size:10px}.cp-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.cp-swatch{width:30px;height:30px;border-radius:7px;cursor:pointer;position:relative;display:flex;align-items:center;justify-content:center;transition:transform .1s,box-shadow .1s;border:2px solid transparent}.cp-swatch:hover:not(.taken){transform:scale(1.15);box-shadow:0 0 0 2px #ffffff4d}.cp-swatch.active{border-color:#fff;box-shadow:0 0 0 2px #fff6}.cp-swatch.taken{opacity:.3;cursor:not-allowed}.cp-check,.cp-x{font-size:12px;font-weight:900;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5)}.modal-overlay{position:fixed;inset:0;background:#0c081473;backdrop-filter:blur(12px) saturate(180%);-webkit-backdrop-filter:blur(12px) saturate(180%);z-index:2000;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .3s var(--ios-spring)}.modal-overlay.open{opacity:1;pointer-events:all;z-index:100010}.modal-box{background:var(--s-modal);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px 28px 22px;width:100%;max-width:440px;box-shadow:var(--shadow-modal),var(--glass-specular);transform:translateY(24px) scale(.96);transition:transform .35s var(--ios-spring),opacity .3s ease}.modal-overlay.open .modal-box{transform:translateY(0) scale(1)}.modal-icon{width:44px;height:44px;border-radius:12px;background:#f052521f;border:1px solid rgba(240,82,82,.25);display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:16px}.modal-icon svg{display:block}.modal-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:18px}.modal-head .modal-icon{margin-bottom:0;flex:0 0 auto}.modal-head .modal-title{margin-bottom:4px}.modal-head .modal-desc{margin-bottom:0}.modal-icon--download{background:#10b9811f;border-color:#10b98140;color:#10b981}.modal-title{font-family:Syne,sans-serif;font-size:15px;font-weight:700;color:var(--text);margin-bottom:8px}.modal-desc{font-size:12px;color:var(--muted2);line-height:1.6;margin-bottom:22px}.modal-actions{display:flex;gap:10px;flex-wrap:wrap}.modal-btn{flex:1;padding:10px 16px;border-radius:9px;font-size:12px;font-weight:600;font-family:DM Sans,sans-serif;cursor:pointer;border:1px solid var(--border2);transition:all .15s}.modal-btn.cancel{background:var(--s2);color:var(--text)}.modal-btn.cancel:hover{border-color:var(--accent);color:var(--accent)}.modal-btn.confirm{background:#f0525226;border-color:#f0525259;color:#f87171}.modal-btn.confirm:hover{background:#f0525247;border-color:#f05252}@media print{*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}body{background:#fff!important;color:#000!important;margin:0;padding:0}header,.sidebar,.tt-actions,.modal-overlay,.color-picker-popup{display:none!important}.layout{display:block!important;padding:0!important;margin:0!important}.wrap{padding:0!important;max-width:100%!important}.tt-wrap{border:1px solid #ccc!important;border-radius:0!important;box-shadow:none!important;width:100%!important}.tt-hdr{display:flex!important;padding:10px 14px!important;border-bottom:1px solid #ddd!important}.tt-title{color:#000!important}.tt-scroll{overflow:visible!important;width:100%!important}.tt-table,.tt-table-dl{min-width:unset!important;width:100%!important;table-layout:fixed!important}.slot{position:absolute!important;inset:2px!important}.stat-row{display:grid!important;-webkit-print-color-adjust:exact!important}.conflict-strip{display:block}.legend{display:flex!important}.cards-view{display:block!important}.tt-table-dl .time-td,.tt-table td.day-td{background:#f5f5f5!important}@page{size:landscape;margin:10mm}}.loader-overlay{display:none;position:fixed;inset:0;background:#0a0f19d9;z-index:9999;align-items:center;justify-content:center;flex-direction:column;color:#fff;font-family:Syne,sans-serif;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}.btn-feedback:hover{border-color:var(--accent)!important;color:var(--accent)!important;background:var(--s2)!important}#feedbackType:focus,#feedbackInput:focus{border-color:#8b5cf6!important;box-shadow:0 0 0 2px #8b5cf626}#submitBtn:disabled{opacity:.6;cursor:not-allowed}.share-modal-box{max-width:480px;width:92%;max-height:88vh;display:flex;flex-direction:column;padding:22px 22px 18px;box-sizing:border-box;overflow:hidden}.share-modal-box .modal-icon--share{width:36px;height:36px;border-radius:10px;background:#10b9811f;border:1px solid rgba(16,185,129,.25);color:#10b981;display:flex;align-items:center;justify-content:center;flex-shrink:0}:root[data-theme=dark] .share-modal-box .modal-icon--share{background:#34d39924;border-color:#34d3994d;color:#34d399}.share-main-mode-toggle{display:flex;background:var(--s2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px;gap:4px;margin-bottom:12px;flex-shrink:0}.main-mode-tab{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;border-radius:8px;border:none;background:transparent;color:var(--muted2);font-family:DM Sans,sans-serif;font-size:11.5px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.32,.72,0,1);white-space:nowrap}.main-mode-tab:hover{color:var(--text);background:#ffffff14}.main-mode-tab.active{background:var(--s3);color:var(--accent);box-shadow:0 2px 8px #00000014;font-weight:700}:root[data-theme=dark] .main-mode-tab.active{background:rgba(var(--accent-rgb),.22);color:#a78bfa;border:1px solid rgba(var(--accent-rgb),.35)}.share-modal-body{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:12px;margin-bottom:12px;padding-right:2px}.share-modal-body::-webkit-scrollbar{width:4px}.share-modal-body::-webkit-scrollbar-thumb{background:var(--border2);border-radius:4px}.paste-view-body{display:flex;flex-direction:column;gap:10px}.paste-input-wrapper{position:relative;display:flex;flex-direction:column}.paste-textarea{width:100%;box-sizing:border-box;min-height:100px;max-height:160px;padding:36px 12px 10px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--s1);color:var(--text);font-family:SF Mono,Fira Code,Roboto Mono,Menlo,Consolas,monospace;font-size:11.5px;line-height:1.45;resize:vertical;outline:none;transition:border-color .2s}.paste-textarea:focus{border-color:var(--accent)}.paste-clip-btn{position:absolute;top:7px;right:8px;display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:6px;border:1px solid var(--border);background:var(--s3);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--muted2);font-size:10px;font-weight:600;cursor:pointer;transition:all .15s ease;z-index:2}.paste-clip-btn:hover{background:var(--s2);color:var(--accent);border-color:var(--accent)}.paste-detected-box{border:1px solid var(--border);background:var(--s2);border-radius:var(--radius-sm);padding:8px 10px;max-height:200px;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.paste-detected-box::-webkit-scrollbar{width:4px}.paste-detected-box::-webkit-scrollbar-thumb{background:var(--border2);border-radius:4px}.paste-detected-hdr{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:700;color:var(--text);margin-bottom:2px}.detected-subj-card{display:flex;align-items:center;gap:9px;padding:7px 9px;background:var(--s3);border:1px solid var(--border);border-radius:8px;transition:transform .15s,border-color .15s}.detected-subj-card:hover{border-color:rgba(var(--accent-rgb),.4)}.detected-subj-card.unmatched{border-left:3px solid #f59e0b;opacity:.85}.detected-subj-card.valid{border-left:3px solid #10b981}.detected-subj-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.detected-subj-code-row{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.detected-subj-code{font-weight:700;font-size:11.5px;color:var(--text)}.detected-subj-name{font-size:10.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.detected-sec-select{padding:3px 6px;border-radius:6px;border:1px solid var(--border);background:var(--s2);color:var(--text);font-size:11px;font-weight:600;outline:none;cursor:pointer}.paste-mode-options{display:flex;gap:12px;align-items:center;font-size:11px;color:var(--text);flex-wrap:wrap}.paste-mode-options label{display:inline-flex;align-items:center;gap:5px;cursor:pointer;font-weight:500}.paste-mode-options input[type=radio]{accent-color:var(--accent);cursor:pointer}.modal-btn.btn-action-import{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:700}.modal-btn.btn-action-import:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 4px 14px rgba(var(--accent-rgb),.35)}.modal-btn.btn-action-import:disabled{opacity:.45;cursor:not-allowed;transform:none}.share-format-tabs{display:flex;background:var(--s2);border:1px solid var(--border);border-radius:10px;padding:3px;gap:3px}.share-tab-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:7px 8px;border-radius:8px;border:none;background:transparent;color:var(--muted2);font-family:DM Sans,sans-serif;font-size:11px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.32,.72,0,1);white-space:nowrap}.share-tab-btn:hover{color:var(--text);background:#ffffff14}.share-tab-btn.active{background:var(--s3);color:var(--accent);box-shadow:0 2px 8px #00000014;font-weight:700}:root[data-theme=dark] .share-tab-btn.active{background:rgba(var(--accent-rgb),.22);color:#a78bfa;border:1px solid rgba(var(--accent-rgb),.35)}.share-preview-wrapper{position:relative;display:flex;flex-direction:column}.share-textarea{width:100%;box-sizing:border-box;min-height:180px;max-height:280px;padding:36px 14px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--s1);color:var(--text);font-family:SF Mono,Fira Code,Roboto Mono,Menlo,Consolas,monospace;font-size:11.5px;line-height:1.5;resize:vertical;outline:none;transition:border-color .2s}.share-textarea:focus{border-color:var(--accent)}.share-quick-copy-btn{position:absolute;top:7px;right:8px;display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:6px;border:1px solid var(--border);background:var(--s3);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--muted2);font-size:10px;font-weight:600;cursor:pointer;transition:all .15s ease;z-index:2}.share-quick-copy-btn:hover{background:var(--s2);color:var(--accent);border-color:var(--accent)}.share-tip-note{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted2);line-height:1.35}.share-modal-actions{display:flex;gap:8px;flex-wrap:wrap}.share-modal-actions .modal-btn{flex:1 1 calc(50% - 8px);min-width:120px}.modal-btn.btn-action-copy{background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:6px}.modal-btn.btn-action-copy:hover{filter:brightness(1.1);transform:translateY(-1px)}.modal-btn.btn-action-whatsapp{background:#25d366;color:#fff;border-color:#20ba5a;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:600}.modal-btn.btn-action-whatsapp:hover{background:#20ba5a;color:#fff;transform:translateY(-1px)}.modal-btn.btn-action-match{background:linear-gradient(135deg,#0284c7,#2563eb);color:#fff;border-color:#2563eb66;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:600}.modal-btn.btn-action-match:hover{filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 4px 12px #2563eb40}:root[data-theme=dark] .modal-btn.btn-action-match{background:linear-gradient(135deg,#0284c7,#1d4ed8);border-color:#60a5fa59;color:#f0f9ff}.share-qr-card{background:var(--s2);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;display:flex;flex-direction:column;align-items:center;gap:12px;box-shadow:inset 0 1px #ffffff0a}.share-qr-badge{display:inline-flex;align-items:center;gap:6px;background:var(--s3);border:1px solid var(--border);border-radius:20px;padding:4px 12px;font-size:11px;font-weight:600;color:var(--accent)}:root[data-theme=dark] .share-qr-badge{background:rgba(var(--accent-rgb),.16);border-color:rgba(var(--accent-rgb),.3);color:#a78bfa}.share-qr-visual-wrap{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%}.share-qr-container{display:flex;align-items:center;justify-content:center;background:#fff;padding:12px;border-radius:16px;box-shadow:0 8px 24px #0000001f;border:1px solid rgba(0,0,0,.08);min-height:190px;min-width:190px}.share-qr-container canvas,.share-qr-container img{display:block;border-radius:8px;max-width:100%;height:auto}.share-qr-empty{font-size:11.5px;color:#64748b;text-align:center;padding:20px 10px}.share-qr-subtext{font-size:11.5px;color:var(--muted2);text-align:center;line-height:1.35;max-width:280px}.share-url-input-wrap{width:100%;display:flex;align-items:center;gap:8px;background:var(--s1);border:1px solid var(--border);border-radius:10px;padding:5px 6px 5px 12px;box-sizing:border-box}.share-url-input{flex:1;min-width:0;background:transparent;border:none;color:var(--text);font-family:SF Mono,Fira Code,Roboto Mono,Menlo,monospace;font-size:11.5px;outline:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn-copy-url-pill{display:inline-flex;align-items:center;gap:5px;padding:6px 12px;border-radius:7px;border:1px solid var(--border);background:var(--s3);color:var(--text);font-size:11px;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .15s ease;flex-shrink:0}.btn-copy-url-pill:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.share-section-divider{display:flex;align-items:center;text-align:center;color:var(--muted2);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;margin:4px 0}.share-section-divider:before,.share-section-divider:after{content:"";flex:1;border-bottom:1px dashed var(--border)}.share-section-divider:not(:empty):before{margin-right:.75em}.share-section-divider:not(:empty):after{margin-left:.75em}.modal-btn.btn-action-copy-url{background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;border-color:#7c3aed66;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:600}.modal-btn.btn-action-copy-url:hover{filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 4px 14px #7c3aed4d}.shared-received-modal-box{max-width:460px;width:92%}.modal-icon--share-received{background:#6366f11f;border:1px solid rgba(99,102,241,.25);color:#6366f1}:root[data-theme=dark] .modal-icon--share-received{background:#818cf829;border-color:#818cf859;color:#818cf8}.shared-recv-body{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}.shared-recv-message{font-size:13px;color:var(--text);line-height:1.5;margin:0}.shared-recv-list{display:flex;flex-direction:column;gap:8px;max-height:220px;overflow-y:auto;padding-right:4px}.shared-recv-list::-webkit-scrollbar{width:4px}.shared-recv-list::-webkit-scrollbar-thumb{background:var(--border2);border-radius:4px}.shared-subject-chip{background:var(--s2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;display:flex;flex-direction:column;gap:3px}.shared-chip-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.shared-chip-code{font-family:DM Mono,monospace;font-weight:700;font-size:12px;color:var(--text)}.shared-chip-sec{background:var(--s3);border:1px solid var(--border);border-radius:4px;padding:1px 6px;font-size:10.5px;font-weight:600;color:var(--muted2)}.shared-chip-credits{font-size:10.5px;color:var(--muted2);margin-left:auto}.shared-chip-name{font-size:11.5px;color:var(--muted);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.modal-btn.btn-action-load-draft{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border-color:#10b98166;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:700}.modal-btn.btn-action-load-draft:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 4px 14px #10b9814d}.export-modal-box{max-width:440px;width:92%;max-height:86vh;display:flex;flex-direction:column;padding:20px 20px 16px;box-sizing:border-box}.export-modal-box .modal-head{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-shrink:0}.export-modal-box .modal-icon--calendar{width:36px;height:36px;border-radius:10px;background:#3b82f61f;border:1px solid rgba(59,130,246,.25);color:#60a5fa;display:flex;align-items:center;justify-content:center;margin-bottom:0;flex-shrink:0}.export-modal-box .modal-title{font-size:16px;font-weight:700;color:var(--text);margin-bottom:0;line-height:1.2}.export-close-btn{margin-left:auto;background:var(--s2);border:1px solid var(--border);color:var(--muted);width:30px;height:30px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s}.export-close-btn:hover{color:var(--text);background:var(--border2)}.export-modal-body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:2px;margin-bottom:8px}.export-modal-body::-webkit-scrollbar{width:4px}.export-modal-body::-webkit-scrollbar-thumb{background:var(--border2);border-radius:4px}.export-date-grid{display:flex;flex-direction:column;gap:8px;margin-bottom:4px;width:100%}.export-field{display:flex;flex-direction:column;width:100%;min-width:0}.export-field label{font-size:11.5px;font-weight:600;color:var(--text);margin-bottom:4px;white-space:normal;word-break:break-word}.export-input{width:100%;max-width:100%;box-sizing:border-box;padding:9px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--s2);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--text);font-family:inherit;font-size:12.5px;outline:none;min-width:0;box-shadow:var(--glass-specular);transition:all .2s var(--ios-spring)}.export-input:focus{background:var(--s3);border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.18),var(--glass-specular)}.export-subnote{font-size:10.5px;color:var(--muted);margin-top:4px;margin-bottom:12px;line-height:1.35}.export-info-box{padding:9px 11px;border-radius:8px;font-size:11px;line-height:1.4;margin-bottom:8px;border:1px solid transparent}.export-disclaimer{background:#f59e0b14;border-color:#f59e0b33;color:#fbbf24}.export-guide{background:#3b82f614;border-color:#3b82f633;color:#60a5fa}.info-title{font-weight:700;font-size:11px;text-transform:uppercase;margin-bottom:3px;display:flex;align-items:center;gap:4px}.guide-list{padding-left:16px;margin:4px 0 0;font-size:11px}.guide-list li{margin-bottom:3px}.export-modal-actions{flex-shrink:0;padding-top:10px;border-top:1px solid var(--border);margin-top:auto}@media(max-width:480px){.export-modal-box{padding:16px 14px 12px;width:95%}.export-date-grid{gap:7px}.export-input{padding:7px 8px;font-size:12px}}.saved-actions{display:flex;gap:8px;align-items:center}.btn-edit{background:transparent;color:#10b981;border:1.5px solid #10b981;border-radius:8px;padding:6px 14px;font-family:Syne,sans-serif;font-weight:700;font-size:13px;cursor:pointer;transition:all .2s}.btn-edit:hover{background:#10b9811a;transform:translateY(-1px)}.btn-del{background:transparent;color:#ef4444;border:1.5px solid #ef4444;border-radius:8px;padding:6px 12px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.btn-del:hover{background:#ef44441a;transform:translateY(-1px)}.orientation-toggle-group{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}@media(max-width:480px){.orientation-toggle-group{grid-template-columns:1fr;gap:8px}.dl-orientation-btn{padding:10px 12px}}.dl-orientation-btn{flex:1;background:transparent;border:1.5px solid var(--border);border-radius:10px;color:var(--text);padding:12px;cursor:pointer;display:flex;align-items:center;justify-content:flex-start;gap:12px;font-family:inherit;font-size:13.5px;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1);text-align:left}.dl-orientation-btn:hover{background:var(--s2);border-color:var(--border2);transform:translateY(-1px)}.dl-orientation-btn.active{border-color:#6366f1;background:#6366f11f;color:#6366f1;box-shadow:0 0 0 1px #6366f133}.download-preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.download-preview-wrapper{width:100%;height:250px;background:var(--bg);border:1px solid var(--border);border-radius:12px;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center;margin-bottom:16px;box-shadow:inset 0 2px 8px #00000014}@media(max-width:640px),(max-height:750px){.download-preview-wrapper{height:195px!important;margin-bottom:14px}}.download-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.download-actions .modal-btn{width:100%;min-height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:10px;font-size:13.5px}.download-actions .modal-btn svg{flex:0 0 auto}.dl-btn{border-width:1.5px}.download-actions .modal-btn.dl-btn--png{background:#6366f1;border-color:#6366f1;color:#fff;font-weight:700}.download-actions .modal-btn.dl-btn--png:hover{background:#4f46e5;border-color:#4f46e5;color:#fff}.download-actions .modal-btn.dl-btn--xlsx{background:#10b981;border-color:#10b981;color:#fff}.download-actions .modal-btn.dl-btn--xlsx:hover{background:#059669;border-color:#059669;color:#fff}.download-actions .modal-btn.dl-btn--share-xlsx{background:#10b9811f;border-color:#10b98173;color:#047857}[data-theme=dark] .download-actions .modal-btn.dl-btn--share-xlsx{color:#6ee7b7}.download-actions .modal-btn.dl-btn--share-xlsx:hover{background:#10b98133;border-color:#10b981}.download-actions .modal-btn.dl-btn--pdf{background:#ef4444;border-color:#ef4444;color:#fff}.download-actions .modal-btn.dl-btn--pdf:hover{background:#dc2626;border-color:#dc2626;color:#fff}.download-actions .modal-btn.dl-btn:focus-visible{outline:3px solid rgba(99,102,241,.4);outline-offset:2px}.download-actions .modal-btn.dl-btn:active{transform:translateY(1px)}.download-actions .modal-btn[aria-busy=true]{cursor:wait;opacity:.82}.export-status{min-height:20px;margin:0 0 10px;color:var(--muted2);font:600 11px/1.4 DM Sans,sans-serif;text-align:center}.export-status:empty{display:none}.schedule-undo-toast{position:fixed;left:50%;bottom:max(22px,env(safe-area-inset-bottom));z-index:100050;display:flex;align-items:center;gap:14px;max-width:min(92vw,520px);padding:11px 12px 11px 16px;color:#fff;background:#171228f0;border:1px solid rgba(255,255,255,.16);border-radius:14px;box-shadow:0 14px 38px #0c081c57;font:600 12px/1.4 DM Sans,sans-serif;opacity:0;pointer-events:none;transform:translate(-50%,18px);transition:opacity .2s ease,transform .25s var(--ios-spring)}.schedule-undo-toast.show{opacity:1;pointer-events:auto;transform:translate(-50%)}.schedule-undo-toast button{flex:0 0 auto;padding:6px 10px;color:#fff;background:var(--accent);border:0;border-radius:8px;font:800 11px/1 DM Sans,sans-serif;cursor:pointer}.dl-btn--cancel{background:transparent;border-color:var(--border2);color:var(--muted);grid-column:1 / -1}.download-actions .dl-btn--png{grid-column:1 / -1}.dl-label-short{display:none;font-weight:800;letter-spacing:.4px}@media(max-width:380px){.dl-label-long{display:none}.dl-label-short{display:inline}}@media(min-width:720px){.download-actions{grid-template-columns:repeat(5,minmax(0,1fr))}.download-actions .dl-btn--png,.dl-btn--cancel{grid-column:auto}}#download-preview-container{transition:transform .3s cubic-bezier(.4,0,.2,1)}.image-save-modal-box{animation:modalPop .25s cubic-bezier(.16,1,.3,1);width:92%;max-width:520px}.image-save-preview-wrap img{user-select:auto;-webkit-user-select:auto;-webkit-touch-callout:default}.course-detail-box{max-width:560px;width:92%;text-align:left;padding:18px 18px 16px}.cd-hdr{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.cd-code{font-family:Syne,sans-serif;font-size:18px;font-weight:800;color:var(--text);line-height:1.2}.cd-name{font-size:12px;color:var(--muted2);margin-top:2px;line-height:1.4}.cd-close{padding:6px 10px;border:1px solid var(--border2);background:transparent;color:var(--muted);cursor:pointer;border-radius:10px}.cd-sub{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.cd-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;border:1px solid var(--border2);background:#ffffff08;font-size:12px;color:var(--muted)}.cd-body{max-height:62vh;overflow:auto;padding-right:4px}.cd-group+.cd-group{margin-top:14px}.cd-group-title{font-weight:800;color:var(--text);margin-bottom:8px;font-size:13px}.cd-group-items{display:grid;gap:10px}.cd-item{border:1px solid var(--border2);background:#ffffff08;border-radius:14px;padding:12px}.cd-item-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px}.cd-type{font-weight:800;color:var(--text);font-size:13px}.cd-badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:900;border:1px solid rgba(99,102,241,.35);background:#6366f11f;color:#a5b4fc}.cd-time{font-size:12px;color:var(--muted2);white-space:nowrap}.cd-item-kv{display:grid;grid-template-columns:74px 1fr;gap:6px 10px;font-size:12px;color:var(--muted)}.cd-item-kv b{color:var(--text)}.cd-intakes{margin-top:10px;padding-top:10px;border-top:1px dashed var(--border);font-size:11px;color:var(--muted2);line-height:1.4}@media(max-width:420px){.cd-item-top{flex-direction:column;align-items:flex-start}.cd-time{white-space:normal}.cd-item-kv{grid-template-columns:68px 1fr}}.disclaimer-box{background:var(--s1);border:1px solid var(--border);border-radius:20px;width:90%;max-width:700px;max-height:92vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 25px 60px #0006;animation:slideUp .25s ease}.disclaimer-hdr{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--border);flex-shrink:0}.disclaimer-carousel{flex:1;overflow:hidden;position:relative;background:var(--bg);touch-action:pan-y;cursor:grab;user-select:none}.disclaimer-carousel.is-dragging{cursor:grabbing}.disclaimer-slides{display:flex;transition:transform .35s cubic-bezier(.4,0,.2,1);height:100%;will-change:transform}.disclaimer-carousel.is-dragging .disclaimer-slides{transition:none}.disclaimer-slide{min-width:100%;display:flex;align-items:center;justify-content:center;padding:12px;box-sizing:border-box}.disclaimer-slide img{max-width:100%;max-height:55vh;object-fit:contain;border-radius:10px;box-shadow:0 4px 20px #00000040;-webkit-user-drag:none}.disclaimer-dots{display:flex;justify-content:center;gap:8px;padding:14px 0 8px;flex-shrink:0}.disc-dot{width:8px;height:8px;border-radius:50%;background:var(--border);cursor:pointer;transition:all .2s}.disc-dot.active{background:#6366f1;width:22px;border-radius:4px}.disclaimer-footer{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 20px 18px;flex-shrink:0;border-top:1px solid var(--border)}@media(max-width:520px){.disclaimer-box{width:96%;max-height:95vh;border-radius:14px}.disclaimer-slide img{max-height:48vh}.disclaimer-footer{padding:10px 12px 14px;gap:8px}}.disclaimer-desc-area{flex-shrink:0;padding:10px 20px 4px;font-size:13px;line-height:1.6;color:var(--text);max-height:130px;overflow-y:auto;border-top:1px solid var(--border)}.disclaimer-desc-area:empty{display:none}.disclaimer-step{display:flex;gap:10px;padding:6px 0;border-bottom:1px dashed var(--border);align-items:flex-start}.disclaimer-step:last-child{border-bottom:none}.disc-step-num{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;background:#6366f126;border:1px solid rgba(99,102,241,.3);border-radius:50%;color:#6366f1;font-size:11px;font-weight:700;flex-shrink:0;margin-top:1px}.disc-step-text{flex:1;color:var(--text)}.disc-step-text a{color:#6366f1;text-decoration:underline}#fab-feedback{position:fixed;bottom:28px;right:28px;z-index:900;width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#6366f1,#8b5cf6);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 18px #6366f173;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s;outline:none}#fab-feedback:hover{transform:scale(1.12);box-shadow:0 6px 24px #6366f199}#fab-feedback:active{transform:scale(.95)}#fab-feedback:before{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid rgba(99,102,241,.4);animation:fabPulse 2.5s ease-out infinite}@keyframes fabPulse{0%{transform:scale(1);opacity:.7}70%{transform:scale(1.35);opacity:0}to{transform:scale(1.35);opacity:0}}@media(max-width:640px){#fab-feedback{bottom:calc(18px + env(safe-area-inset-bottom,0px));right:14px;width:44px;height:44px}}#fab-guide{position:fixed;bottom:90px;right:28px;z-index:900;width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#06b6d4,#6366f1);border:none;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 18px #06b6d466;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .2s;outline:none}#fab-guide:hover{transform:scale(1.12);box-shadow:0 6px 24px #06b6d499}#fab-guide:active{transform:scale(.95)}#fab-guide:after{content:attr(data-tooltip);position:absolute;right:calc(100% + 12px);top:50%;transform:translateY(-50%) translate(6px);background:var(--s-modal, #1e1b2e);color:var(--text, #ffffff);padding:6px 12px;border-radius:8px;font-size:11.5px;font-weight:600;white-space:nowrap;box-shadow:0 6px 20px #00000059;border:1px solid rgba(99,102,241,.35);pointer-events:none;opacity:0;transition:opacity .2s ease,transform .2s ease;z-index:100000}#fab-guide:hover:after{opacity:1;transform:translateY(-50%) translate(0)}#fab-guide.fab-guide--pulse:before{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid rgba(6,182,212,.6);animation:fabGuidePulse 2.4s ease-out infinite}@keyframes fabGuidePulse{0%{transform:scale(1);opacity:.8}70%{transform:scale(1.35);opacity:0}to{transform:scale(1.35);opacity:0}}@media(max-width:640px){#fab-guide{bottom:calc(70px + env(safe-area-inset-bottom,0px));right:14px;width:44px;height:44px}}.guide-overlay{position:fixed;inset:0;z-index:99999;pointer-events:none}.guide-backdrop{position:fixed;inset:0;background:transparent;pointer-events:none;cursor:default}.guide-spotlight{position:fixed;border-radius:12px;box-shadow:0 0 0 3.5px #6366f1,0 0 0 9999px #0a0816b8,0 0 35px #6366f199;pointer-events:none;transition:all .32s cubic-bezier(.32,.72,0,1);z-index:100001}.guide-spotlight:after{content:"";position:absolute;inset:-6px;border-radius:16px;border:2px solid rgba(99,102,241,.7);animation:guideBeaconPing 2.2s cubic-bezier(0,0,.2,1) infinite;pointer-events:none}@keyframes guideBeaconPing{0%{transform:scale(1);opacity:.9}70%,to{transform:scale(1.08);opacity:0}}.guide-spotlight.guide-spotlight--idle:after{border-color:#f59e0b!important;animation:guideBeaconPing .85s cubic-bezier(0,0,.2,1) infinite!important;box-shadow:0 0 20px #f59e0b99}.guide-idle-tooltip{position:fixed;z-index:100004;background:var(--s-modal, #1e1b2e);color:#f59e0b;border:1.5px solid rgba(245,158,11,.75);padding:6px 14px;border-radius:9px;font-size:11.5px;font-weight:700;box-shadow:0 6px 20px #00000073,0 0 14px #f59e0b59;pointer-events:none;animation:guideIdleNudge 1.6s ease-in-out infinite;white-space:nowrap}.guide-idle-tooltip.pos-top:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border-width:6px 6px 0 6px;border-style:solid;border-color:rgba(245,158,11,.9) transparent transparent transparent}.guide-idle-tooltip.pos-bottom:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border-width:0 6px 6px 6px;border-style:solid;border-color:transparent transparent rgba(245,158,11,.9) transparent}@keyframes guideIdleNudge{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.guide-coaching-toast{position:fixed;z-index:100007;background:#141024f5;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1.5px solid #06b6d4;box-shadow:0 8px 30px #06b6d459,0 4px 12px #00000080;color:#fff;padding:8px 18px;border-radius:999px;font-size:12px;display:inline-flex;align-items:center;gap:8px;pointer-events:none;opacity:0;transform:translateY(-8px) scale(.96);transition:opacity .22s ease,transform .22s cubic-bezier(.16,1,.3,1)}.guide-coaching-toast.is-active{opacity:1;transform:translateY(0) scale(1)}.guide-completion-toast{position:fixed;top:24px;left:50%;transform:translate(-50%) translateY(-12px) scale(.95);z-index:100008;background:#141024f5;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1.5px solid #f59e0b;box-shadow:0 10px 35px #f59e0b59,0 4px 14px #0009;color:#fff;padding:12px 24px;border-radius:999px;font-size:13.5px;font-weight:600;display:inline-flex;align-items:center;gap:10px;pointer-events:none;opacity:0;transition:opacity .25s ease,transform .25s cubic-bezier(.16,1,.3,1);max-width:calc(100vw - 32px);text-align:center}.guide-completion-toast.is-active{opacity:1;transform:translate(-50%) translateY(0) scale(1)}.guide-spotlight.guide-spotlight--ripple{animation:spotlightCoachingRipple .7s cubic-bezier(.2,.9,.3,1) forwards!important}@keyframes spotlightCoachingRipple{0%{box-shadow:0 0 0 3.5px #6366f1,0 0 0 9999px #0a0816b8,0 0 35px #6366f199}40%{box-shadow:0 0 0 6px #06b6d4,0 0 0 9999px #0a0816b8,0 0 50px #06b6d4e6;transform:scale(1.025)}to{box-shadow:0 0 0 3.5px #6366f1,0 0 0 9999px #0a0816b8,0 0 35px #6366f199;transform:scale(1)}}.guide-quest-box.guide-quest--nudge{animation:questBoxNudge .5s cubic-bezier(.34,1.56,.64,1)}@keyframes questBoxNudge{0%,to{transform:scale(1)}50%{transform:scale(1.03);border-color:#06b6d4}}.guide-target-active{position:relative!important;z-index:100002!important;pointer-events:auto!important;animation:guideTargetGlow 1.8s ease-in-out infinite alternate}body.guided-tour-active .citem,.citem.guide-target-active{content-visibility:visible!important;contain-intrinsic-size:none!important}.guide-target-active *{pointer-events:auto!important}.guide-target-active+*,.guide-target-active~*,select.guide-target-active option{z-index:100003!important;pointer-events:auto!important}.panel:has(.guide-target-active),.sidebar-tabs-panel:has(.guide-target-active),.sidebar-tab-content:has(.guide-target-active){overflow:visible!important;z-index:100003!important;position:relative!important}.panel-collapse-body:has(.guide-target-active){contain:none!important}.panel-collapse-inner:has(.guide-target-active){transform:none!important}.sidebar:has(.guide-target-active){z-index:100003!important;position:relative!important}@keyframes guideTargetGlow{0%{filter:drop-shadow(0 0 2px rgba(99,102,241,.4))}to{filter:drop-shadow(0 0 12px rgba(6,182,212,.8))}}.guide-card{position:fixed;z-index:100005;pointer-events:auto;width:380px;max-width:calc(100vw - 28px);background:var(--s-modal, #ffffff);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1.5px solid rgba(99,102,241,.35);box-shadow:0 20px 45px -8px #00000073,0 0 20px #6366f140;border-radius:var(--radius);padding:18px 20px 16px;color:var(--text);font-family:inherit;transition:top .25s var(--ios-spring),left .25s var(--ios-spring),opacity .2s ease,transform .2s var(--ios-spring);box-sizing:border-box}.guide-card--enter{animation:guideCardEnter .22s cubic-bezier(.16,1,.3,1) forwards}@keyframes guideCardEnter{0%{opacity:0;transform:scale(.94) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}.guide-card-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.guide-step-badge{display:inline-flex;align-items:center;gap:6px;background:#6366f124;border:1px solid rgba(99,102,241,.3);color:#6366f1;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.3px;text-transform:uppercase}.guide-mini-dots{display:inline-flex;align-items:center;gap:3.5px;margin-right:3px}.guide-mini-dot{width:5px;height:5px;border-radius:50%;background:#6366f140;transition:all .25s cubic-bezier(.34,1.56,.64,1)}.guide-mini-dot.done{background:#6366f1}.guide-mini-dot.current{background:#06b6d4;box-shadow:0 0 6px #06b6d4;transform:scale(1.3)}[data-theme=dark] .guide-step-badge{background:#6366f13d;color:#a5b4fc}[data-theme=dark] .guide-mini-dot{background:#fff3}[data-theme=dark] .guide-mini-dot.done{background:#818cf8}[data-theme=dark] .guide-mini-dot.current{background:#22d3ee;box-shadow:0 0 7px #22d3ee}.guide-close-btn{background:transparent;border:none;color:var(--muted);cursor:pointer;padding:4px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s}.guide-close-btn:hover{color:var(--text);background:#0000000f}[data-theme=dark] .guide-close-btn:hover{background:#ffffff14}.guide-progress-strip{display:flex;gap:4px;margin-bottom:12px}.guide-progress-bar{flex:1;height:4px;background:#826eaa33;border-radius:2px;overflow:hidden;position:relative}.guide-progress-bar:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#06b6d4,#6366f1);transform:scaleX(0);transform-origin:left;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}.guide-progress-bar.active:after{transform:scaleX(1)}.guide-card-title{font-family:Syne,sans-serif;font-size:15px;font-weight:700;margin:0 0 6px;color:var(--text);display:flex;align-items:center;gap:8px}.guide-card-desc{font-size:12.5px;line-height:1.5;color:var(--muted);margin:0 0 14px}.guide-quest-box{background:#6366f112;border:1.5px solid rgba(99,102,241,.25);border-radius:12px;padding:12px 14px;margin-bottom:14px;transition:all .3s cubic-bezier(.34,1.56,.64,1)}.guide-quest-box.is-success{background:#10b9811f;border-color:#10b981;box-shadow:0 0 16px #10b98159;transform:scale(1.02)}.guide-quest-label{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.guide-quest-tag{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:800;letter-spacing:.5px;text-transform:uppercase;color:#6366f1}.guide-quest-box.is-success .guide-quest-tag{color:#059669}[data-theme=dark] .guide-quest-box.is-success .guide-quest-tag{color:#34d399}.guide-quest-status{display:flex;align-items:center;gap:8px;font-size:11.5px;font-weight:600;color:var(--muted);padding-top:6px;border-top:1px dashed rgba(99,102,241,.2)}.guide-quest-box.is-success .guide-quest-status{color:#059669;border-top-color:#10b9814d}[data-theme=dark] .guide-quest-box.is-success .guide-quest-status{color:#34d399}.guide-quest-pulse-dot{width:8px;height:8px;border-radius:50%;background:#f59e0b;box-shadow:0 0 8px #f59e0b;animation:questPulseDot 1.4s ease-in-out infinite;flex-shrink:0}.guide-quest-box.is-success .guide-quest-pulse-dot{background:#10b981;box-shadow:0 0 8px #10b981;animation:none}@keyframes questPulseDot{0%,to{transform:scale(.9);opacity:.6}50%{transform:scale(1.35);opacity:1}}.guide-target-pulse{animation:targetPulseNudge 1.6s ease-in-out infinite alternate!important}@keyframes targetPulseNudge{0%{box-shadow:0 0 #6366f199,0 0 8px #6366f166}to{box-shadow:0 0 0 6px #6366f100,0 0 20px #06b6d4b3}}.guide-suggested-pill{position:relative!important;z-index:100004!important;animation:guidePillBounce 1.4s ease-in-out infinite alternate!important;box-shadow:0 0 0 2px #6366f180,0 0 16px #6366f1a6!important;border-color:#6366f1!important;color:#6366f1!important;font-weight:700!important;cursor:pointer!important}[data-theme=dark] .guide-suggested-pill{box-shadow:0 0 0 2px #818cf899,0 0 18px #818cf8b3!important;border-color:#818cf8!important;color:#a5b4fc!important}@keyframes guidePillBounce{0%{transform:translateY(0) scale(1);box-shadow:0 0 0 2px #6366f166,0 0 10px #6366f166}to{transform:translateY(-3px) scale(1.08);box-shadow:0 0 0 3px #6366f1cc,0 4px 18px #6366f1cc}}.guide-card-actions{margin-bottom:12px}.guide-action-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 14px;border-radius:10px;font-size:12.5px;font-weight:600;cursor:pointer;transition:all .2s;border:1px solid transparent}.guide-action-btn--demo{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;box-shadow:0 4px 14px #6366f159}.guide-action-btn--demo:hover{transform:translateY(-1px);box-shadow:0 6px 18px #6366f180}.guide-action-btn--secondary{background:transparent;border:1px solid var(--border2);color:var(--text);margin-top:6px}.guide-action-btn--secondary:hover{background:#6366f114}.guide-card-ftr{display:flex;align-items:center;justify-content:space-between;padding-top:12px;border-top:1px solid var(--border);gap:8px}.guide-ftr-left{display:flex;align-items:center;flex-shrink:0}.guide-ftr-right{display:flex;align-items:center;gap:6px;flex-shrink:0;margin-left:auto}.guide-skip-btn{display:inline-flex;align-items:center;gap:4px;background:transparent;border:none;color:var(--muted);font-size:11.5px;font-weight:500;padding:6px 8px;border-radius:8px;cursor:pointer;transition:all .2s ease;outline:none;white-space:nowrap}.guide-skip-btn:hover:not(:disabled){color:var(--text);background:#6366f114}.guide-skip-btn:disabled{opacity:.35;cursor:not-allowed}.guide-nav-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:6px 11px;border-radius:9px;font-size:11.5px;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);outline:none;user-select:none;white-space:nowrap;flex-shrink:0}.guide-nav-btn.prev{background:transparent;border:1px solid var(--border2);color:var(--text)}.guide-nav-btn.prev:hover:not(:disabled){background:#6366f114;border-color:#6366f159;transform:translateY(-1px)}.guide-nav-btn.prev:active:not(:disabled){transform:translateY(0)}.guide-nav-btn.prev:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.guide-nav-btn.next{background:linear-gradient(135deg,#6366f1,#4f46e5);border:1px solid rgba(99,102,241,.5);color:#fff;box-shadow:0 2px 8px #6366f152}.guide-nav-btn.next:hover:not(:disabled){background:linear-gradient(135deg,#4f46e5,#4338ca);box-shadow:0 4px 14px #6366f173;transform:translateY(-1px)}.guide-nav-btn.next:active:not(:disabled){transform:translateY(0);box-shadow:0 1px 4px #6366f133}.guide-nav-btn.next:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}.guide-nav-btn.next.is-locked{background:#6366f129!important;border:1px dashed rgba(99,102,241,.4)!important;color:var(--muted)!important;cursor:not-allowed!important;opacity:.55!important;box-shadow:none!important;transform:none!important}.guide-nav-btn.next.is-unlocked{animation:nextUnlockCelebration .5s cubic-bezier(.34,1.56,.64,1)}@keyframes nextUnlockCelebration{0%{transform:scale(.92)}50%{transform:scale(1.08);box-shadow:0 0 16px #10b98199}to{transform:scale(1)}}.guide-skip-btn--enter{animation:skipBtnFadeIn .35s ease forwards}@keyframes skipBtnFadeIn{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}.guide-confetti-particle{position:fixed;pointer-events:none;z-index:100010;border-radius:2px;animation:confettiParticleFall 1.6s cubic-bezier(.25,1,.5,1) forwards}@keyframes confettiParticleFall{0%{opacity:1;transform:translate(0) rotate(0) scale(1)}80%{opacity:.9}to{opacity:0;transform:translate(var(--tx),var(--ty)) rotate(var(--rot)) scale(.3)}}.guide-skip-link{font-size:11px;color:var(--muted2);background:none;border:none;cursor:pointer;padding:4px;text-decoration:underline;text-underline-offset:2px}.guide-skip-link:hover{color:var(--text)}@media(max-width:768px){.guide-card{width:calc(100vw - 24px)!important;max-width:480px!important;left:50%!important;right:auto!important;transform:translate(-50%)!important;bottom:max(16px,env(safe-area-inset-bottom,16px))!important;top:auto!important;border-radius:16px}}.pill.tag-new{background:#10b9811f;color:#34d399}.pill.tag-upd{background:#f59e0b24;color:#fbbf24}.pill.tag-amb{background:#6366f124;color:#818cf8}.slot.update-new,.slot-card.update-new{outline:1.5px solid rgba(52,211,153,.85);box-shadow:0 0 0 3px #10b98126}.slot.update-changed,.slot-card.update-changed{outline:1.5px solid rgba(251,191,36,.9);box-shadow:0 0 0 3px #f59e0b24}.slot-update-badge{display:inline-flex;align-items:center;justify-content:center;font-size:8px;font-weight:800;letter-spacing:.4px;padding:2px 6px;border-radius:999px;border:1px solid var(--border2);background:#10b98124;color:#34d399;margin-left:6px}.slot-update-badge.changed{background:#f59e0b29;color:#fbbf24}.modal.update-modal{z-index:100030!important}.modal.update-modal .modal-content.update-content{width:min(92vw,560px)!important;max-width:560px!important;max-height:85vh!important;overflow:hidden!important;padding:0!important;display:flex!important;flex-direction:column!important}.update-content{display:flex;flex-direction:column}.update-hdr{position:sticky;top:0;z-index:10;flex-shrink:0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 18px 12px;border-bottom:1px solid var(--border);background:#fffffff5;box-shadow:0 4px 14px #0000000d}:root[data-theme=dark] .update-hdr{background:#181228f5}.update-hdr-left{flex:1;min-width:0}.update-title{font-family:Syne,sans-serif;font-size:16px;margin:0}.update-sub{margin-top:6px;display:flex;flex-wrap:wrap;gap:8px}.update-chip{font-size:11px;color:var(--muted2);background:var(--s2);border:1px solid var(--border);padding:4px 8px;border-radius:999px;display:inline-flex;align-items:center;gap:6px;line-height:1.2}.update-chip b{color:var(--text);font-weight:800}.update-close{flex-shrink:0;width:32px;height:32px;padding:0!important;border-radius:9px!important;border:1px solid var(--border)!important;background:var(--s2)!important;color:var(--muted)!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;cursor:pointer;transition:all .15s ease}.update-close:hover{background:var(--border2)!important;color:var(--text)!important;transform:scale(1.05)}.update-close:active{transform:scale(.95)}.update-close svg{display:block}.update-body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:16px 18px 20px;display:flex;flex-direction:column;gap:12px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--border2) transparent}.update-body::-webkit-scrollbar{width:6px}.update-body::-webkit-scrollbar-track{background:transparent}.update-body::-webkit-scrollbar-thumb{background:var(--border2);border-radius:6px}.update-body::-webkit-scrollbar-thumb:hover{background:var(--muted2)}.update-note{border:1px solid var(--border);background:var(--s2);border-radius:12px;padding:10px 12px;font-size:12px;color:var(--muted2)}.update-section{border:1px solid var(--border);background:var(--s1);border-radius:12px;padding:12px}.update-section.is-added{border-color:#10b98159}.update-section.is-removed{border-color:#f0525259}.update-section.is-changed{border-color:#f59e0b59}.update-section-title{font-family:Syne,sans-serif;font-size:12px;font-weight:900;color:var(--text);margin-bottom:8px}.update-block{margin-top:10px}.update-block-title{font-size:11px;font-weight:800;color:var(--muted2);margin-bottom:6px;text-transform:uppercase;letter-spacing:.8px}.update-items{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted2);line-height:1.4}.update-item{background:var(--s2);border:1px solid var(--border);padding:8px 10px;border-radius:10px;overflow-wrap:anywhere}.update-item-top{font-weight:800;color:var(--text);font-size:12px;line-height:1.2}.update-course-name{margin-top:4px;font-size:11px;color:var(--muted2);line-height:1.25}.update-meta{margin-top:5px;font-size:11px;color:var(--muted);line-height:1.25}.update-item code,.update-inline code{font-family:DM Mono,monospace;font-size:11px}.update-inline{font-size:12px;color:var(--muted2);line-height:1.6;overflow-wrap:anywhere}.update-code{display:inline-block;margin:2px 6px 2px 0}.update-empty{font-size:12px;color:var(--muted);opacity:.85}.update-more{font-size:11px;color:var(--muted);opacity:.85;padding:2px 2px 0}.update-tech{border:1px dashed var(--border2);border-radius:12px;padding:10px 12px;background:transparent}.update-tech summary{cursor:pointer;font-weight:800;color:var(--muted2);font-size:12px}.update-tech-body{margin-top:10px;display:flex;flex-direction:column;gap:8px;font-size:12px;color:var(--muted2)}.update-tech-row{display:grid;grid-template-columns:120px 1fr;gap:10px;align-items:start}.update-tech-row b{color:var(--text)}@media(max-width:420px){.update-hdr{padding:14px 14px 10px;gap:10px}.update-body{padding:12px 14px 16px}.update-tech-row{grid-template-columns:1fr}.update-close{width:30px;height:30px}}.saved-name.editing{display:none}.rename-input{background:var(--s1);border:1.5px solid var(--accent);color:var(--text);font-family:inherit;font-size:13px;font-weight:700;width:100%;padding:4px 8px;border-radius:8px;outline:none;margin-bottom:4px;display:none}.rename-input.active{display:block}.btn-rename{background:transparent;color:var(--muted);border:1.5px solid var(--border);border-radius:8px;padding:6px 12px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.btn-rename:hover{background:var(--s2);border-color:var(--muted2);color:var(--text);transform:translateY(-1px)}#detail-notes:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px #6366f126;background:var(--s1)!important}#detail-notes::placeholder{color:var(--muted);opacity:.5}.btn-notes{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;background:var(--s2);color:var(--muted);cursor:pointer;transition:all .2s;border:1px solid var(--border)}.btn-notes:hover{background:var(--s3);color:var(--accent);border-color:var(--accent);transform:translateY(-1px)}.cd-notes-wrap{margin:16px 0;padding:12px;background:var(--s1);border:1px solid var(--border);border-radius:10px}.cd-notes-hdr{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;color:var(--text);margin-bottom:8px}.cd-notes-input{width:100%;height:60px;background:var(--s2);border:1px solid var(--border);border-radius:6px;padding:8px;font-family:inherit;font-size:12px;color:var(--text);resize:none;outline:none;transition:border-color .2s}.cd-notes-input:focus{border-color:var(--accent)}.btn-notes.active{background:#6366f11a;color:var(--accent);border-color:var(--accent)}.btn-autofix{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;font-family:Syne,sans-serif;font-weight:700;font-size:13px;padding:12px;border-radius:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;box-shadow:0 4px 12px #10b98140;transition:all .2s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:hidden}.btn-autofix:hover{transform:translateY(-2px);box-shadow:0 6px 18px #10b98166;filter:brightness(1.1)}.btn-autofix:active{transform:translateY(0)}.btn-autofix:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.2) 0%,transparent 70%);opacity:0;transition:opacity .3s;pointer-events:none}.btn-autofix:hover:after{opacity:1}@keyframes sparkle{0%,to{transform:scale(1) rotate(0);filter:brightness(1)}50%{transform:scale(1.3) rotate(20deg);filter:brightness(1.5)}}.btn-autofix .spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite}#resolution-modal.active,#alternative-modal.active{display:flex!important}.res-item{display:flex;justify-content:space-between;align-items:center;transition:transform .2s ease,background-color .2s ease}.res-item:hover{transform:translate(4px);background:var(--s3)!important}.res-option-chip{transition:all .2s cubic-bezier(.4,0,.2,1)!important}.res-option-chip:hover{transform:translateY(-2px);box-shadow:0 4px 12px #4f8ef733}.res-option-chip.active{box-shadow:0 4px 12px #4f8ef74d}.loading-spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;display:inline-block;margin-right:8px;vertical-align:middle}@keyframes spin{to{transform:rotate(360deg)}}.btn-autofix span:first-child{animation:sparkle 2s infinite ease-in-out}@keyframes sparkle{0%,to{transform:scale(1) rotate(0);filter:brightness(1)}50%{transform:scale(1.2) rotate(15deg);filter:brightness(1.3)}}#btn-sync.spinning svg{animation:spin 1s linear infinite;color:var(--accent)}#sync-modal .modal-content{border:1px solid var(--border);box-shadow:0 16px 40px #00000047}#sync-pin-input:focus,#sync-token-input:focus{border-color:var(--accent)!important;outline:none;box-shadow:0 0 0 3px #f0654326}.sync-spinner{width:44px;height:44px;border:3px solid rgba(240,101,67,.2);border-top-color:var(--accent);border-radius:50%;animation:spin .9s linear infinite}.btn-toggle-pwd{transition:color .18s ease,background-color .18s ease,transform .18s ease}.btn-toggle-pwd:hover{color:var(--text)!important;background:var(--s2)!important}.btn-toggle-pwd:active{transform:translateY(-50%) scale(.92)!important}.sync-status-card{background:var(--s2);border:1px solid var(--border);border-radius:12px;padding:12px 14px;margin-bottom:16px;font-size:12px}.sync-status-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:8px}.sync-status-pill{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.2px}.sync-status-pill.is-live{background:#10b9811f;border:1px solid rgba(16,185,129,.3);color:#10b981}.sync-status-pill.is-running{background:#f59e0b1f;border:1px solid rgba(245,158,11,.3);color:#f59e0b}.sync-status-dot{width:6px;height:6px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}.sync-status-pill.is-running .sync-status-dot{animation:pulse-dot 1.2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.sync-status-refresh-btn{background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:6px;padding:3px 8px;font-size:11px;display:inline-flex;align-items:center;gap:4px;cursor:pointer;transition:all .2s ease}.sync-status-refresh-btn:hover{background:var(--bg);color:var(--text);border-color:var(--border2)}.sync-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding-top:8px;border-top:1px dashed var(--border)}.sync-status-item{display:flex;flex-direction:column;gap:2px}.sync-status-label{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.sync-status-val{font-size:12px;font-weight:600;color:var(--text);font-family:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sync-status-sub{font-size:10.5px;color:var(--muted)}.sync-run-link{display:inline-flex;align-items:center;gap:3px;font-size:11px;color:var(--accent);text-decoration:none;margin-top:2px}.sync-run-link:hover{text-decoration:underline}.sync-local-trigger{margin-top:8px;padding-top:6px;border-top:1px dashed var(--border);font-size:10.5px;color:var(--muted);display:flex;align-items:center;gap:4px}.sync-local-trigger b{color:var(--text)}.faculty-bar{padding:10px 16px 0;display:flex;flex-direction:column;gap:8px}.faculty-select-wrapper{position:relative;width:100%}.faculty-select{width:100%;height:38px;padding:0 32px 0 12px;background:var(--s2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;cursor:pointer;outline:none;appearance:none;-webkit-appearance:none;box-shadow:var(--glass-specular);transition:all .2s var(--ios-spring)}.faculty-select:focus{background:var(--s3);border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.18),var(--glass-specular)}.faculty-select-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--muted);font-size:11px}.badge-fac{display:inline-flex;align-items:center;justify-content:center;font-family:DM Mono,monospace;font-size:10px;font-weight:700;letter-spacing:.3px;padding:1.5px 6px;border-radius:4px;line-height:1.2;flex-shrink:0}.badge-FSKTM{background:#0ea5e924;color:#0284c7;border:1px solid rgba(14,165,233,.3)}.badge-FKEE{background:#f59e0b24;color:#d97706;border:1px solid rgba(245,158,11,.3)}.badge-FKMP{background:#ef444424;color:#dc2626;border:1px solid rgba(239,68,68,.3)}.badge-FKAAB{background:#10b98124;color:#059669;border:1px solid rgba(16,185,129,.3)}.badge-FAST{background:#8b5cf624;color:#7c3aed;border:1px solid rgba(139,92,246,.3)}.badge-FPTP{background:#f43f5e24;color:#e11d48;border:1px solid rgba(244,63,94,.3)}.badge-FPTV{background:#3b82f624;color:#2563eb;border:1px solid rgba(59,130,246,.3)}.badge-FTK{background:#ea580c24;color:#c2410c;border:1px solid rgba(234,88,12,.3)}.badge-PPB{background:#d946ef24;color:#c026d3;border:1px solid rgba(217,70,239,.3)}.badge-PPD{background:#06b6d424;color:#0891b2;border:1px solid rgba(6,182,212,.3)}.badge-PPUK{background:#84cc1624;color:#65a30d;border:1px solid rgba(132,204,22,.3)}.clist-more-wrap{padding:12px 16px;text-align:center;border-top:1px solid var(--border)}.btn-load-more{width:100%;padding:9px 16px;background:var(--s2);color:var(--accent);border:1px solid var(--border2);border-radius:8px;font-family:DM Sans,sans-serif;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn-load-more:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.slip-res-modal-content{max-width:490px;width:92%;padding:24px;border-radius:var(--radius-lg);background:var(--s-modal);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border);box-shadow:var(--shadow-modal),var(--glass-specular);display:flex;flex-direction:column;gap:16px}.slip-res-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.slip-res-header-left{display:flex;align-items:center;gap:12px}.slip-res-icon-wrap{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease}.slip-res-icon-wrap.is-success{background:#10b9811f;color:#10b981;border:1px solid rgba(16,185,129,.28)}.slip-res-icon-wrap.is-warning{background:#f59e0b1f;color:#f59e0b;border:1px solid rgba(245,158,11,.28)}.slip-res-icon-wrap.is-error{background:#ef44441f;color:#ef4444;border:1px solid rgba(239,68,68,.28)}.slip-res-title{font-family:Syne,sans-serif;font-size:17px;font-weight:700;margin:0;color:var(--text);line-height:1.25}.slip-res-subtitle{font-size:12px;color:var(--muted);margin:2px 0 0}.slip-res-close{padding:5px 8px;border:none;background:var(--s2);color:var(--muted);cursor:pointer;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.slip-res-close:hover{background:var(--border2);color:var(--text)}.slip-res-body{display:flex;flex-direction:column;gap:14px}.slip-res-summary-card{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:10px;font-size:13.5px;font-weight:600;line-height:1.4}.slip-res-summary-card.is-success{background:#10b98114;border:1px solid rgba(16,185,129,.24);color:#10b981}.slip-res-summary-card.is-warning{background:#f59e0b14;border:1px solid rgba(245,158,11,.24);color:#f59e0b}.slip-res-summary-card.is-error{background:#ef444414;border:1px solid rgba(239,68,68,.24);color:#ef4444}.slip-courses-section{display:flex;flex-direction:column;gap:8px}.slip-courses-header{display:flex;align-items:center;justify-content:space-between;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--muted2)}.slip-courses-list{max-height:180px;overflow-y:auto;border:1px solid var(--border);border-radius:10px;background:var(--s1);padding:6px;display:flex;flex-direction:column;gap:5px}.slip-course-row{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;border-radius:var(--radius-sm);background:var(--s2);border:1px solid var(--border);transition:background .15s ease,transform .15s var(--ios-spring);gap:10px}.slip-course-row:hover{background:var(--s2)}.slip-course-meta{display:flex;align-items:center;gap:8px;min-width:0;flex:1}.slip-course-code{font-family:DM Mono,monospace;font-size:12px;font-weight:700;color:var(--text);background:var(--s2);padding:2px 6px;border-radius:4px;border:1px solid var(--border);flex-shrink:0}.slip-course-name{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slip-course-sec{font-family:DM Mono,monospace;font-size:11px;font-weight:700;padding:2.5px 8px;border-radius:12px;background:#f065431f;color:var(--accent);border:1px solid rgba(240,101,67,.25);flex-shrink:0}.slip-unmatched-card{padding:13px 15px;border-radius:12px;background:#f59e0b14;border:1px solid rgba(245,158,11,.28);display:flex;flex-direction:column;gap:9px}.slip-unmatched-top{display:flex;align-items:flex-start;gap:8px}.slip-unmatched-icon{color:#f59e0b;flex-shrink:0;margin-top:2px}.slip-unmatched-msg{font-size:12.5px;line-height:1.5;color:var(--text)}.slip-unmatched-msg b,.slip-unmatched-msg strong{color:#f59e0b}.slip-unmatched-chips{display:flex;flex-wrap:wrap;gap:6px;margin-left:24px}.slip-unmatched-chip{font-family:DM Mono,monospace;font-size:11.5px;font-weight:700;padding:2px 8px;border-radius:6px;background:#f59e0b24;color:#d97706;border:1px solid rgba(245,158,11,.35);letter-spacing:.3px}[data-theme=dark] .slip-unmatched-chip{color:#fbbf24}.slip-unmatched-note{font-size:11px;line-height:1.5;color:var(--muted);margin-left:24px}.slip-res-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.slip-res-action-btn{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:9px 20px;font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:opacity .2s,transform .15s}.slip-res-action-btn:hover{opacity:.92;transform:translateY(-1px)}.app-footer{margin-top:36px;margin-bottom:24px;padding:30px 32px 22px;background:linear-gradient(135deg,#ffffff85,#f6f0ff5c,#fff2fc70);backdrop-filter:blur(24px) saturate(200%);-webkit-backdrop-filter:blur(24px) saturate(200%);border:1px solid rgba(255,255,255,.6);border-radius:var(--radius-lg);box-shadow:0 12px 32px -4px #6d44f214,0 4px 12px -2px #2d195008,inset 0 1.5px 2px #ffffffd9;position:relative;overflow:hidden;transition:background .3s ease,border-color .3s ease,box-shadow .3s ease}[data-theme=dark] .app-footer{background:linear-gradient(135deg,#161026bf,#201836ad,#2a1e44c7);border-color:var(--border);box-shadow:0 12px 32px -4px #00000073,0 4px 12px -2px #0000004d,inset 0 1.5px 2px #ffffff24}.footer-top{display:flex;justify-content:space-between;align-items:flex-start;gap:36px;padding-bottom:24px;border-bottom:1px solid var(--border2)}.footer-brand-col{flex:1;max-width:440px}.footer-brand{display:flex;align-items:center;gap:12px;margin-bottom:12px}.footer-logo{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,var(--accent) 0%,var(--accent2) 100%);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(var(--accent-rgb),.32);flex-shrink:0}.footer-title{font-family:Syne,sans-serif;font-size:17px;font-weight:700;color:var(--text);letter-spacing:-.01em}.footer-desc{font-size:13px;color:var(--muted);line-height:1.6;margin:0 0 16px}.footer-badges{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.footer-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 13px;border-radius:20px;background:rgba(var(--accent-rgb),.09);border:1px solid rgba(var(--accent-rgb),.22);color:var(--accent);font-size:12px;font-weight:600}.footer-repo-link{display:inline-flex;align-items:center;gap:7px;padding:6px 14px;border-radius:20px;background:var(--s2);border:1px solid var(--border);color:var(--text);font-size:12px;font-weight:600;text-decoration:none;transition:all .2s cubic-bezier(.32,.72,0,1)}.footer-repo-link:hover{background:var(--s3);border-color:var(--accent);color:var(--accent);transform:translateY(-1px);box-shadow:0 4px 12px rgba(var(--accent-rgb),.15)}.footer-contributors-col{flex:1.35}.footer-section-hdr{display:flex;align-items:center;gap:8px;margin-bottom:14px}.footer-section-title{font-family:Syne,sans-serif;font-size:14px;font-weight:700;color:var(--text);letter-spacing:.01em}.contributors-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.contributor-card{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:14px;background:var(--s2);border:1px solid var(--border);text-decoration:none;color:var(--text);transition:all .25s cubic-bezier(.32,.72,0,1);position:relative;overflow:hidden}.contributor-card:hover{background:var(--s3);border-color:rgba(var(--accent-rgb),.45);transform:translateY(-2px);box-shadow:0 8px 20px -4px rgba(var(--accent-rgb),.18)}.contributor-avatar-wrap{position:relative;width:42px;height:42px;flex-shrink:0}.contributor-avatar{width:100%;height:100%;border-radius:50%;object-fit:cover;border:2px solid var(--border);background:var(--s3);transition:border-color .2s ease,transform .2s ease}.contributor-card:hover .contributor-avatar{border-color:var(--accent);transform:scale(1.05)}.contributor-online-dot{position:absolute;bottom:0;right:0;width:11px;height:11px;background:var(--green);border-radius:50%;border:2px solid var(--s1);box-shadow:0 0 6px #05966966}.contributor-info{display:flex;flex-direction:column;min-width:0;flex:1;gap:2px}.contributor-name{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contributor-handle{font-size:11.5px;font-family:DM Mono,monospace;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.contributor-link-icon{color:var(--muted2);transition:all .2s ease;opacity:.6;flex-shrink:0}.contributor-card:hover .contributor-link-icon{color:var(--accent);opacity:1;transform:translate(2px) translateY(-1px)}.footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;padding-top:18px;font-size:12px}.footer-bottom-text{color:var(--muted);font-weight:500}.footer-bottom-disclaimer{color:var(--muted2);font-size:11.5px}@media(max-width:900px){.footer-top{flex-direction:column;gap:24px}.footer-brand-col{max-width:100%}.footer-contributors-col{width:100%}}@media(max-width:600px){.app-footer{padding:22px 16px 18px;margin-top:24px;margin-bottom:84px}.contributors-grid{grid-template-columns:1fr}.footer-bottom{flex-direction:column;align-items:flex-start;gap:6px}}.app-update-banner{position:fixed;inset:0;z-index:100025;background:#0a0f1e8c;backdrop-filter:blur(12px) saturate(160%);-webkit-backdrop-filter:blur(12px) saturate(160%);display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s cubic-bezier(.16,1,.3,1),visibility .3s ease}.app-update-banner.show{opacity:1;visibility:visible;pointer-events:auto}.app-update-banner-inner{display:flex;align-items:flex-start;gap:16px;width:100%;max-width:480px;background:var(--s-modal);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1.5px solid rgba(99,102,241,.45);border-radius:22px;padding:22px;box-shadow:0 24px 64px -12px #00000080,0 0 36px #6366f147,inset 0 1px 1px #ffffff40;transform:scale(.92) translateY(16px);transition:transform .35s cubic-bezier(.175,.885,.32,1.275),opacity .3s ease}.app-update-banner.show .app-update-banner-inner{transform:scale(1) translateY(0)}[data-theme=dark] .app-update-banner-inner{background:#111827eb;border-color:#818cf866;box-shadow:0 28px 70px -12px #000c,0 0 40px #6366f159,inset 0 1px 1px #ffffff1f}[data-theme=light] .app-update-banner{background:#0f172a66}[data-theme=light] .app-update-banner-inner{background:#fffffff5;border-color:#6366f159;box-shadow:0 24px 60px -12px #1e293b38,0 0 32px #6366f133,inset 0 1px 1px #ffffffe6}.app-update-banner-icon{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,#6366f138,#06b6d438);border:1px solid rgba(99,102,241,.45);display:flex;align-items:center;justify-content:center;color:#06b6d4;flex-shrink:0;position:relative;box-shadow:0 4px 16px #6366f133}.app-update-banner-pulse{position:absolute;top:-2px;right:-2px;width:11px;height:11px;background:#10b981;border:2px solid var(--s-modal);border-radius:50%;animation:updatePulseGlow 1.8s infinite}@keyframes updatePulseGlow{0%{transform:scale(.9);box-shadow:0 0 #10b981b3}70%{transform:scale(1.15);box-shadow:0 0 0 7px #10b98100}to{transform:scale(.9);box-shadow:0 0 #10b98100}}.app-update-banner-content{flex:1;min-width:0}.app-update-banner-title{font-size:15px;font-weight:700;color:var(--text);display:flex;align-items:center;gap:8px;line-height:1.3}.app-update-badge{font-size:10px;font-weight:800;padding:2px 7px;border-radius:6px;background:linear-gradient(135deg,#6366f140,#a855f740);color:#818cf8;border:1px solid rgba(99,102,241,.4);text-transform:uppercase;letter-spacing:.5px}.app-update-banner-desc{font-size:12.5px;color:var(--muted);margin-top:6px;line-height:1.5}.app-update-banner-actions{display:flex;align-items:center;gap:8px;margin-top:16px;flex-wrap:wrap}.app-update-btn-refresh{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;border:none;border-radius:11px;padding:8.5px 16px;font-size:12.5px;font-weight:700;display:inline-flex;align-items:center;gap:6px;cursor:pointer;box-shadow:0 4px 16px #6366f166;transition:all .2s var(--ios-spring)}.app-update-btn-refresh:hover{transform:translateY(-1px) scale(1.02);box-shadow:0 6px 20px #6366f18c}.app-update-btn-refresh:active{transform:translateY(0) scale(.98)}.app-update-btn-details{background:#ffffff0d;border:1px solid var(--border2);color:var(--text);border-radius:11px;padding:8.5px 13px;font-size:12px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:all .2s ease}.app-update-btn-details:hover{background:#ffffff1a;border-color:var(--accent)}.app-update-btn-dismiss{background:transparent;border:none;color:var(--muted2);padding:8.5px 12px;font-size:12px;font-weight:600;cursor:pointer;border-radius:11px;margin-left:auto;transition:color .2s,background .2s}.app-update-btn-dismiss:hover{color:var(--text);background:#ffffff0f}@media(max-width:640px){.app-update-banner{padding:16px}.app-update-banner-inner{flex-direction:column;align-items:center;text-align:center;padding:20px 16px;gap:12px}.app-update-banner-title{justify-content:center}.app-update-banner-actions{width:100%;flex-direction:column;gap:8px;margin-top:14px}.app-update-btn-refresh,.app-update-btn-details,.app-update-btn-dismiss{width:100%;justify-content:center;margin-left:0}}.detail-modal-content{scrollbar-width:thin;scrollbar-color:var(--border2) transparent}.detail-modal-content::-webkit-scrollbar{width:6px}.detail-modal-content::-webkit-scrollbar-thumb{background:var(--border2);border-radius:4px}.detail-palette-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;margin-top:3px}.detail-swatch-item{height:22px;border-radius:5px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .15s cubic-bezier(.4,0,.2,1),box-shadow .15s,border-color .15s;border:1.5px solid transparent;user-select:none;position:relative}.detail-swatch-item:hover{transform:scale(1.12);z-index:2}.detail-swatch-item.active{border-color:var(--text)!important;box-shadow:0 0 0 2px var(--s1),0 2px 8px #00000040;transform:scale(1.06)}.detail-swatch-check{font-size:11px;font-weight:800;line-height:1;text-shadow:0 1px 2px rgba(0,0,0,.2)}.detail-badge-count{font-size:10px;font-weight:700;background:var(--s2);border:1px solid var(--border);color:var(--muted2);padding:2px 7px;border-radius:999px}.detail-lecturers-list{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow-y:auto;padding-right:2px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.detail-lecturers-list::-webkit-scrollbar{width:5px}.detail-lecturers-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.detail-lecturer-card{background:var(--s1);border:1px solid var(--border);border-radius:10px;padding:10px 12px;transition:border-color .2s,box-shadow .2s,background .2s}.detail-lecturer-card:hover{border-color:#6366f166;background:var(--s2)}.detail-lecturer-top{display:flex;align-items:flex-start;gap:10px}.detail-lecturer-avatar-wrap{position:relative;width:44px;height:44px;flex-shrink:0}.detail-lecturer-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;border:2px solid var(--border2);flex-shrink:0;background:var(--s2);box-shadow:0 2px 8px #0000001f;transition:transform .2s ease,border-color .2s ease}.detail-lecturer-avatar:hover{transform:scale(1.06);border-color:var(--primary)}.detail-lecturer-avatar-fallback{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#4f46e5,#7c3aed);color:#fff;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:2px solid var(--border2);box-shadow:0 2px 8px #0000001f;user-select:none}.detail-lecturer-info{flex:1;min-width:0}.detail-lecturer-name{font-size:12.5px;font-weight:700;color:var(--text);line-height:1.35}.detail-lecturer-role{font-size:11px;color:var(--muted);margin-top:2px}.detail-lecturer-dept{font-size:10.5px;color:var(--muted2);margin-top:1px;line-height:1.3}.detail-lecturer-chips{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;align-items:center}.detail-chip{font-size:11px;padding:3px 8px;border-radius:6px;background:var(--s2);border:1px solid var(--border);color:var(--text);text-decoration:none;display:inline-flex;align-items:center;gap:4px;transition:all .15s}a.detail-chip:hover{border-color:var(--primary);color:var(--primary);background:var(--s3)}.detail-chip-fyp{background:#10b9811f;color:#10b981;border-color:#10b9814d;font-weight:600}.detail-chip-room{font-weight:600;color:var(--text)}.detail-chip-link{color:var(--primary);font-weight:500}.detail-chip-community{background:#6366f11f;color:var(--accent, #6366f1);border-color:#6366f14d;font-weight:600}a.detail-chip-community:hover{background:#6366f138;border-color:var(--accent, #6366f1);color:var(--accent, #6366f1)}.detail-lecturers-empty{padding:14px 10px;text-align:center;color:var(--muted);font-size:11.5px;background:var(--s1);border-radius:8px;border:1px dashed var(--border)}.detail-lecturer-skeleton{display:flex;align-items:center;gap:10px;padding:10px;background:var(--s1);border-radius:8px;border:1px solid var(--border)}.sidebar-tabs-panel{border-radius:var(--radius);overflow:hidden;background:var(--s1);border:1px solid var(--border);box-shadow:var(--glass-shadow);transition:all .25s ease}.sidebar-tabs-nav-wrapper{padding:8px 10px;background:var(--s1);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:25;backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur)}.sidebar-tabs-nav{display:grid!important;grid-template-columns:1fr 1fr!important;gap:5px!important;background:#6366f11a!important;border:1.5px solid rgba(99,102,241,.22)!important;border-radius:12px!important;padding:3px!important;position:relative!important;box-shadow:inset 0 1px 3px #0000000a!important}[data-theme=dark] .sidebar-tabs-nav{background:#080c14!important;border:1.5px solid rgba(56,189,248,.25)!important;box-shadow:inset 0 2px 5px #00000080!important}.sidebar-tab-btn{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:6px!important;padding:6px 10px!important;border-radius:9px!important;border:1.5px solid transparent!important;outline:none!important;background:transparent!important;color:#334155!important;font-family:Syne,sans-serif!important;font-size:12px!important;font-weight:700!important;cursor:pointer!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important;user-select:none!important;white-space:nowrap!important;min-width:0!important;height:38px!important;-webkit-appearance:none!important;-moz-appearance:none!important;appearance:none!important;box-sizing:border-box!important}.sidebar-tab-btn:hover{color:#0f172a!important;background:#fff9!important}[data-theme=dark] .sidebar-tab-btn{color:#cbd5e1!important}[data-theme=dark] .sidebar-tab-btn:hover{background:#ffffff14!important;color:#fff!important}.sidebar-tab-btn.active{background:#fff!important;color:#4338ca!important;font-weight:800!important;border:1.5px solid rgba(99,102,241,.25)!important;box-shadow:0 4px 12px #6366f12e,0 1px 3px #0000000f!important}[data-theme=dark] .sidebar-tab-btn.active{background:#1e293b!important;color:#38bdf8!important;border:1.5px solid #38bdf8!important;box-shadow:0 0 16px #38bdf859,0 4px 12px #0009!important}.sidebar-tab-btn .tab-main{display:inline-flex!important;align-items:center!important;gap:6px!important;min-width:0!important;flex:1 1 auto!important}.sidebar-tab-btn .tab-icon{width:15px!important;height:15px!important;flex-shrink:0!important;opacity:.85!important;transition:all .2s ease!important}.sidebar-tab-btn.active .tab-icon{opacity:1!important;color:#4338ca!important;transform:scale(1.08)!important}[data-theme=dark] .sidebar-tab-btn.active .tab-icon{color:#38bdf8!important}.sidebar-tab-btn .tab-label{font-size:12px!important;font-weight:800!important;font-family:Syne,sans-serif!important;letter-spacing:-.1px!important;white-space:nowrap!important}.tab-badge-group{display:inline-flex!important;align-items:center!important;gap:4px!important;flex-shrink:0!important}.sidebar-tab-btn .pill{font-family:DM Mono,monospace!important;font-size:10.5px!important;font-weight:800!important;padding:2px 7px!important;border-radius:6px!important;background:#6366f129!important;color:#4338ca!important;border:1px solid rgba(99,102,241,.25)!important;line-height:1.2!important;min-width:20px!important;text-align:center!important;flex-shrink:0!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important}.sidebar-tab-btn .pill.green{background:#10b9812e!important;color:#065f46!important;border:1px solid rgba(16,185,129,.3)!important}[data-theme=dark] .sidebar-tab-btn .pill{background:#38bdf82e!important;color:#7dd3fc!important;border-color:#38bdf859!important}[data-theme=dark] .sidebar-tab-btn .pill.green{background:#10b98133!important;color:#6ee7b7!important;border-color:#10b98159!important}.sidebar-tab-btn.active .pill{background:#4f46e5!important;color:#fff!important;border-color:#4338ca!important;box-shadow:0 2px 6px #4f46e566!important}.sidebar-tab-btn.active .pill.green{background:#10b981!important;color:#fff!important;border-color:#059669!important;box-shadow:0 2px 6px #10b98166!important}[data-theme=dark] .sidebar-tab-btn.active .pill{background:#38bdf8!important;color:#0f172a!important;border-color:#38bdf8!important;box-shadow:0 0 10px #38bdf880!important}[data-theme=dark] .sidebar-tab-btn.active .pill.green{background:#10b981!important;color:#022c22!important;border-color:#10b981!important;box-shadow:0 0 10px #10b98180!important}.credit-display{font-family:DM Mono,monospace!important;font-size:10px!important;font-weight:800!important;padding:2px 6px!important;border-radius:6px!important;line-height:1.2!important;letter-spacing:-.2px!important;white-space:nowrap!important;display:inline-flex!important;align-items:center!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important}.credit-display.credit-good{background:#dcfce7!important;color:#15803d!important;border:1px solid #86efac!important}.credit-display.credit-low{background:#fef3c7!important;color:#b45309!important;border:1px solid #fde68a!important}.credit-display.credit-over{background:#fee2e2!important;color:#b91c1c!important;border:1px solid #fca5a5!important}[data-theme=dark] .credit-display.credit-good{background:#10b98140!important;color:#6ee7b7!important;border:1px solid rgba(52,211,153,.5)!important;box-shadow:0 0 8px #10b98133!important}[data-theme=dark] .credit-display.credit-low{background:#f59e0b40!important;color:#fcd34d!important;border:1px solid rgba(251,191,36,.5)!important}[data-theme=dark] .credit-display.credit-over{background:#ef444440!important;color:#fca5a5!important;border:1px solid rgba(248,113,113,.5)!important;box-shadow:0 0 8px #ef444440!important}.sidebar-tab-content{width:100%}.sel-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:36px 20px;text-align:center}.detail-slot-overview{background:var(--s1);border:1px solid var(--border);border-radius:14px;padding:12px 14px;box-shadow:0 2px 10px #00000008;margin-bottom:14px}[data-theme=dark] .detail-slot-overview{background:#0f172a8c;border:1px solid rgba(255,255,255,.1);box-shadow:0 4px 16px #0003}.detail-slot-header-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border)}.detail-slot-pill-group{display:flex;align-items:center;gap:8px}.detail-badge-sec,.detail-badge-type{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:8px}.detail-badge-sec{background:rgba(var(--accent-rgb),.12);border:1px solid rgba(var(--accent-rgb),.25);color:var(--accent)}.detail-badge-sec .detail-badge-label{font-size:10px;text-transform:uppercase;font-weight:700;opacity:.75}.detail-badge-sec .detail-badge-val{font-weight:800;font-size:13px;font-family:DM Mono,monospace}.detail-badge-type{background:var(--s2);border:1px solid var(--border);color:var(--text)}.detail-badge-type .detail-badge-label{font-size:10px;text-transform:uppercase;font-weight:700;color:var(--muted2)}.detail-badge-type .detail-badge-val{font-weight:700;font-size:12px}.detail-slots-tabs{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.detail-slot-tab{font-size:10.5px;font-weight:600;padding:3px 8px;border-radius:6px;background:var(--s2);border:1px solid var(--border);color:var(--muted);cursor:pointer;transition:all .15s ease;font-family:DM Sans,sans-serif;line-height:1.2}.detail-slot-tab:hover{border-color:var(--accent);color:var(--text)}.detail-slot-tab.active{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}.detail-slot-grid{display:grid;grid-template-columns:1fr;gap:8px}.detail-slot-item{display:flex;align-items:flex-start;gap:10px;padding:4px 0}.detail-slot-icon{width:26px;height:26px;border-radius:7px;background:var(--s2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--muted2);flex-shrink:0;margin-top:1px}.detail-slot-body{flex:1;min-width:0}.detail-slot-label{font-size:10.5px;font-weight:600;color:var(--muted);line-height:1.2;margin-bottom:2px}.detail-slot-val{font-size:12.5px;font-weight:600;color:var(--text);line-height:1.35;word-break:break-word}.detail-slot-item.detail-slot-lecturer-item{align-items:flex-start}.detail-slot-icon.detail-lecturer-icon-box.has-pfp{width:32px;height:32px;border-radius:50%;padding:0;background:transparent;border:none;cursor:pointer}.detail-slot-icon.detail-lecturer-icon-box.has-pfp.is-multi{width:auto;height:auto;border-radius:0;cursor:default}.detail-lecturer-avatar-btn{position:relative;width:32px;height:32px;border-radius:50%;cursor:pointer;flex-shrink:0;overflow:hidden;border:2px solid var(--border2);background:var(--s2);box-shadow:0 2px 6px #0000001f;transition:transform .22s var(--ios-spring),border-color .2s,box-shadow .2s;outline:none}.detail-lecturer-avatar-btn:hover,.detail-lecturer-avatar-btn:focus-visible{transform:scale(1.08);border-color:var(--accent, #6d44f2);box-shadow:0 6px 18px #6d44f259}.detail-lecturer-avatar-img{width:100%;height:100%;object-fit:cover;display:block;border-radius:50%}.detail-lecturer-avatar-zoom-hint{position:absolute;inset:0;background:#0f172a85;display:flex;align-items:center;justify-content:center;color:#fff;opacity:0;transition:opacity .18s ease;border-radius:50%;pointer-events:none}.detail-lecturer-avatar-btn:hover .detail-lecturer-avatar-zoom-hint,.detail-lecturer-avatar-btn:focus-visible .detail-lecturer-avatar-zoom-hint{opacity:1}.detail-lecturer-initials-btn{background:linear-gradient(135deg,#6d44f2,#d946ef);display:flex;align-items:center;justify-content:center}.detail-lecturer-initials{font-family:Syne,sans-serif;font-size:14px;font-weight:800;color:#fff;user-select:none;letter-spacing:.5px}.detail-lecturer-avatar-stack{display:flex;align-items:center;gap:4px}.detail-lecturer-avatar-btn.multi-avatar{width:36px;height:36px}.detail-lecturer-initials.multi-fallback{width:100%;height:100%;border-radius:50%;background:linear-gradient(135deg,#6d44f2,#d946ef);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}.modal.lecturer-photo-modal{z-index:2500;background:#0a0816ad;backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%)}.lecturer-photo-modal-content{max-width:360px;width:90%;padding:24px 20px 20px;border-radius:24px;position:relative;text-align:center;display:flex;flex-direction:column;align-items:center;background:var(--s-modal);box-shadow:0 30px 80px #00000059,var(--glass-specular);transform:translateY(20px) scale(.95);transition:transform .3s var(--ios-spring),opacity .25s ease}.modal.lecturer-photo-modal.show .lecturer-photo-modal-content{transform:translateY(0) scale(1)}.lecturer-photo-specular{position:absolute;top:0;left:15%;right:15%;height:1.5px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.8),transparent);pointer-events:none}[data-theme=dark] .lecturer-photo-specular{background:linear-gradient(90deg,transparent,rgba(167,139,250,.7),transparent)}.lecturer-photo-close-btn{position:absolute;top:12px;right:12px;width:30px;height:30px;border-radius:50%;border:1px solid var(--border);background:var(--s2);color:var(--muted);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .18s ease;z-index:2}.lecturer-photo-close-btn:hover{background:var(--s3);color:var(--text);transform:scale(1.06)}.lecturer-photo-frame{width:230px;height:230px;border-radius:20px;overflow:hidden;border:2px solid var(--border2);box-shadow:0 12px 36px #00000038;background:var(--s2);position:relative;margin-top:4px}.lecturer-photo-img{width:100%;height:100%;object-fit:cover;display:block;border-radius:18px}.lecturer-photo-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--muted2);background:var(--s2)}.lecturer-photo-info{margin-top:16px;display:flex;flex-direction:column;gap:4px;align-items:center;width:100%}.lecturer-photo-name{font-family:Syne,sans-serif;font-size:15px;font-weight:800;color:var(--text);line-height:1.35;margin:0;word-break:break-word}.lecturer-photo-dept{font-size:11.5px;color:var(--muted);line-height:1.35;max-width:90%;margin:0 auto}.lecturer-photo-room-wrap{margin-top:4px}.lecturer-photo-actions{display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid var(--border);width:100%}.sel-credit-bar{margin:12px 14px 14px;padding:10px 14px;background:var(--s2);border:1.5px solid var(--border);border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;box-shadow:0 2px 8px #0000000a}.sel-credit-info{display:flex;align-items:center;gap:10px;min-width:0}.sel-credit-icon-box{width:32px;height:32px;border-radius:8px;background:#6366f11f;color:#6366f1;display:flex;align-items:center;justify-content:center;flex-shrink:0}[data-theme=dark] .sel-credit-icon-box{background:#38bdf826;color:#38bdf8}.sel-credit-title{font-family:Syne,sans-serif;font-size:11.5px;font-weight:700;color:var(--text);line-height:1.2}.sel-credit-subtitle{font-size:10px;color:var(--muted2);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sel-credit-value-box{flex-shrink:0}.sel-credit-value-box .credit-display{font-family:DM Mono,monospace;font-size:12px;font-weight:800;padding:3px 9px;border-radius:7px;border:1.5px solid;display:inline-block}#autofix-comparison-modal{position:fixed!important;inset:0!important;background:#0c0814a6!important;backdrop-filter:blur(14px) saturate(180%)!important;-webkit-backdrop-filter:blur(14px) saturate(180%)!important;z-index:100030!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:16px!important;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,visibility .25s ease}#autofix-comparison-modal.show,#autofix-comparison-modal.open{opacity:1!important;visibility:visible!important;pointer-events:auto!important}#autofix-comparison-modal .autofix-compare-modal-content{background:var(--s-modal, rgba(255, 255, 255, .98))!important;backdrop-filter:blur(32px) saturate(190%)!important;-webkit-backdrop-filter:blur(32px) saturate(190%)!important;border:1.5px solid var(--border)!important;box-shadow:var(--shadow-modal),0 25px 60px #00000059!important;border-radius:20px!important;color:var(--text)!important;opacity:1!important;visibility:visible!important;display:block!important;transform:translateY(0) scale(1)!important;position:relative!important;z-index:100031!important;margin:auto!important}[data-theme=dark] .autofix-compare-modal-content{background:#161026f5}.autofix-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.autofix-modal-title-group{display:flex;align-items:center;gap:12px}.autofix-modal-icon-badge{width:38px;height:38px;border-radius:12px;background:#10b98129;border:1px solid rgba(16,185,129,.28);display:flex;align-items:center;justify-content:center;color:#059669;flex-shrink:0}[data-theme=dark] .autofix-modal-icon-badge{background:#10b98138;color:#34d399}.autofix-modal-title{font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:18px;font-weight:800;color:var(--text);margin:0;line-height:1.25}.autofix-modal-subtitle{font-size:12px;font-weight:500;color:var(--muted);margin-top:2px}.autofix-modal-close-btn{padding:6px 10px;border:1px solid var(--border2);background:var(--s2);color:var(--text);font-size:13px;cursor:pointer;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease}.autofix-modal-close-btn:hover{background:var(--s3);border-color:var(--border);transform:scale(1.05)}.autofix-summary-banner{background:linear-gradient(135deg,#10b98124,#05966912);border:1.5px solid rgba(16,185,129,.32);border-radius:14px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}[data-theme=dark] .autofix-summary-banner{background:linear-gradient(135deg,#10b9812e,#0596691a);border-color:#10b98166}.autofix-stat-pill{font-size:11px;padding:4px 10px;font-weight:700;border-radius:20px;display:inline-flex;align-items:center;gap:4px}.autofix-stat-pill.green{background:#10b98129;color:#047857;border:1px solid rgba(16,185,129,.32)}[data-theme=dark] .autofix-stat-pill.green{background:#10b98138;color:#34d399;border-color:#10b98173}.autofix-stat-pill.red{background:#ef444429;color:#b91c1c;border:1px solid rgba(239,68,68,.32)}[data-theme=dark] .autofix-stat-pill.red{background:#ef444438;color:#f87171;border-color:#ef444473}.autofix-options-bar{display:flex;flex-direction:column;gap:10px;margin-top:12px;padding:14px 16px;background:var(--s2);border:1.5px solid var(--border2);border-radius:14px}.autofix-options-header{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.autofix-options-label{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--text)}.autofix-options-chips{display:flex;gap:8px;flex-wrap:wrap}.autofix-option-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:10px;background:var(--card-bg, var(--s1));border:1.5px solid var(--border2);font-size:12px;font-weight:600;color:var(--text);cursor:pointer;transition:all .2s cubic-bezier(.16,1,.3,1);user-select:none}.autofix-option-chip:hover{border-color:var(--accent);background:#6d44f214;transform:translateY(-1px)}.autofix-option-chip.active{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important;box-shadow:0 4px 14px #6d44f259;font-weight:700}.autofix-option-chip .chip-drop-badge{font-size:11px;padding:2.5px 7px;border-radius:6px;background:#ef444424;color:#ef4444;font-weight:700}.autofix-option-chip.active .chip-drop-badge{background:#ffffff40;color:#fff}[data-theme=dark] .autofix-option-chip .chip-drop-badge{background:#ef444440;color:#fca5a5}.autofix-legend-bar{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px;padding:9px 14px;background:var(--s2);border:1.5px solid var(--border2);border-radius:10px;font-size:11.5px}.legend-item{display:flex;align-items:center;gap:7px;line-height:1.35;font-weight:600}.legend-item.left{color:#dc2626}[data-theme=dark] .legend-item.left{color:#f87171}.legend-item.right{color:#059669}[data-theme=dark] .legend-item.right{color:#34d399}.legend-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.legend-dot.red{background:#dc2626;box-shadow:0 0 6px #dc262680}[data-theme=dark] .legend-dot.red{background:#f87171;box-shadow:0 0 6px #f8717199}.legend-dot.green{background:#059669;box-shadow:0 0 6px #05966980}[data-theme=dark] .legend-dot.green{background:#34d399;box-shadow:0 0 6px #34d39999}.autofix-diff-list{margin-top:14px;display:flex;flex-direction:column;gap:12px}.autofix-diff-card{background:var(--s2);border:1.5px solid var(--border2);border-radius:16px;padding:16px;transition:all .2s ease;box-shadow:0 2px 8px #0000000a}.autofix-diff-card.is-changed{border-color:#6d44f259;box-shadow:0 4px 16px #0000000d}[data-theme=dark] .autofix-diff-card.is-changed{border-color:#8b6dfc66;box-shadow:0 4px 20px #00000040}.autofix-diff-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:5px}.autofix-diff-code-wrap{display:flex;align-items:center;gap:8px}.autofix-diff-code{font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:16px;font-weight:800;color:var(--accent);letter-spacing:.3px}.autofix-diff-credit-chip{font-family:DM Mono,monospace;font-size:11px;font-weight:700;padding:2.5px 8px;border-radius:6px;background:#6d44f21f;color:var(--accent);border:1px solid rgba(109,68,242,.28)}.autofix-diff-name{font-size:13px;font-weight:700;color:var(--text);margin-bottom:12px;line-height:1.35}.autofix-diff-grid{display:grid;grid-template-columns:1fr 34px 1fr;gap:12px;align-items:stretch}.autofix-diff-col{padding:12px 14px;border-radius:12px;display:flex;flex-direction:column;gap:8px}.autofix-diff-col.before{background:#ef44440d;border:1.5px solid rgba(239,68,68,.26)}[data-theme=dark] .autofix-diff-col.before{background:#ef44441a;border-color:#ef444466}.autofix-diff-col.after{background:#10b9810f;border:1.5px solid rgba(16,185,129,.28)}[data-theme=dark] .autofix-diff-col.after{background:#10b9811a;border-color:#10b98166}.diff-col-tag-bar{display:flex;align-items:center;justify-content:space-between;gap:6px}.diff-col-tag{font-family:inherit;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;display:inline-flex;align-items:center;gap:5px}.diff-col-tag.before{color:#dc2626}[data-theme=dark] .diff-col-tag.before{color:#f87171}.diff-col-tag.after{color:#059669}[data-theme=dark] .diff-col-tag.after{color:#34d399}.diff-action-chip{font-size:10px;font-weight:800;padding:2.5px 8px;border-radius:5px;text-transform:uppercase;letter-spacing:.3px}.diff-action-chip.sec-change{background:#6d44f21f;color:var(--accent);border:1px solid rgba(109,68,242,.3)}.diff-action-chip.remove{background:#ef444424;color:#dc2626;border:1px solid rgba(239,68,68,.32)}[data-theme=dark] .diff-action-chip.remove{color:#f87171}.diff-action-chip.add{background:#10b98124;color:#059669;border:1px solid rgba(16,185,129,.32)}[data-theme=dark] .diff-action-chip.add{color:#34d399}.diff-sec-wrap{display:flex;align-items:baseline;gap:6px}.diff-sec-label{font-size:11px;font-weight:700;color:var(--text);opacity:.75}.diff-sec-val{font-family:DM Mono,monospace;font-size:14px;font-weight:800;letter-spacing:-.2px}.diff-sec-val.before{color:#dc2626;text-decoration:line-through;text-decoration-thickness:2px}[data-theme=dark] .diff-sec-val.before{color:#f87171}.diff-sec-val.after{color:#059669}[data-theme=dark] .diff-sec-val.after{color:#34d399}.diff-slots-list{display:flex;flex-direction:column;gap:7px;margin-top:4px}.diff-slot-card{padding:8px 10px;border-radius:9px;font-size:11px;display:flex;flex-direction:column;gap:4px;transition:transform .15s ease}.diff-slot-card.remove{background:#fffffff2;border:1.5px solid rgba(239,68,68,.28);color:var(--text);box-shadow:0 1px 4px #ef444414}[data-theme=dark] .diff-slot-card.remove{background:#1e1423d9;border-color:#ef444461}.diff-slot-card.add{background:#fffffff2;border:1.5px solid rgba(16,185,129,.3);color:var(--text);box-shadow:0 1px 4px #10b98114}[data-theme=dark] .diff-slot-card.add{background:#12201ed9;border-color:#10b98166}.diff-slot-top{display:flex;align-items:center;justify-content:space-between;gap:6px}.diff-slot-time-box{display:flex;align-items:center;gap:6px;min-width:0}.diff-slot-symbol{font-weight:900;font-size:12px;width:17px;height:17px;border-radius:5px;display:flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1}.diff-slot-card.remove .diff-slot-symbol{background:#ef444426;color:#dc2626}[data-theme=dark] .diff-slot-card.remove .diff-slot-symbol{color:#f87171}.diff-slot-card.add .diff-slot-symbol{background:#10b98126;color:#059669}[data-theme=dark] .diff-slot-card.add .diff-slot-symbol{color:#34d399}.diff-slot-day{font-weight:800;font-size:11.5px;color:var(--text);letter-spacing:.3px}.diff-slot-time{font-family:DM Mono,monospace;font-size:11px;font-weight:700;color:var(--text)}.diff-slot-type-chip{font-size:10px;font-weight:800;padding:2px 7px;border-radius:5px;background:var(--s2);border:1px solid var(--border2);color:var(--text);flex-shrink:0}.diff-slot-meta{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:600;color:var(--text);opacity:.85;padding-left:23px;flex-wrap:wrap}.diff-slot-venue,.diff-slot-lecturer{display:inline-flex;align-items:center;gap:4px}.diff-slot-venue i,.diff-slot-lecturer i,.diff-slot-venue svg,.diff-slot-lecturer svg{width:12px;height:12px;opacity:.85;flex-shrink:0}.diff-empty-slot{font-size:11px;color:var(--muted);font-style:italic;padding:8px;text-align:center}.autofix-diff-arrow-wrap{display:flex;align-items:center;justify-content:center}.diff-arrow-circle{width:30px;height:30px;border-radius:50%;background:var(--s3);border:1.5px solid var(--border2);color:var(--accent);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #00000014}.diff-arrow-circle i,.diff-arrow-circle svg{width:15px;height:15px}.autofix-unchanged-summary{background:var(--s2);border:1.5px solid var(--border2);border-radius:14px;padding:12px 16px;display:flex;flex-direction:column;gap:8px;font-size:12px;margin-top:2px}.autofix-unchanged-hdr{display:flex;align-items:center;gap:8px;color:var(--text);font-weight:700}.unchanged-pills-list{display:flex;flex-wrap:wrap;gap:6px}.pill-unchanged{font-family:DM Mono,monospace;font-size:11px;font-weight:700;padding:3px 9px;border-radius:6px;background:var(--s3);border:1.5px solid var(--border2);color:var(--text)}.autofix-modal-footer{display:flex;gap:10px;justify-content:flex-end;margin-top:20px;padding-top:16px;border-top:1.5px solid var(--border2)}.autofix-btn-cancel{border:1.5px solid var(--border2);color:var(--text);background:var(--s2);padding:10px 18px;border-radius:10px;font-weight:700;font-size:12.5px;cursor:pointer;transition:all .2s ease}.autofix-btn-cancel:hover{background:var(--s3);border-color:var(--border)}.autofix-btn-apply{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border:none;padding:10px 22px;border-radius:10px;font-weight:700;font-size:12.5px;display:inline-flex;align-items:center;gap:7px;box-shadow:0 4px 14px #10b98159;cursor:pointer;transition:all .2s ease}.autofix-btn-apply:hover{transform:translateY(-1px);box-shadow:0 6px 20px #10b98173}@media(max-width:640px){.autofix-diff-grid{grid-template-columns:1fr;gap:8px}.autofix-diff-arrow-wrap{transform:rotate(90deg);margin:-2px 0}.autofix-legend-bar{grid-template-columns:1fr;gap:4px}}@media(prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.liquid-bg-overlay,.modal,.modal-content,.glass-header,.panel,.tt-wrap,.timetable-foot{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}}.performance-lite .liquid-bg-image{filter:none;transform:scale(1.02) translateZ(0)}.performance-lite .glass-header,.performance-lite .panel,.performance-lite .tt-wrap,.performance-lite .timetable-foot,.performance-lite .modal,.performance-lite .modal-content{backdrop-filter:none;-webkit-backdrop-filter:none}@media(max-width:768px){:root{--glass-blur: blur(8px) saturate(140%)}.glass-header,.tt-wrap,.timetable-foot{backdrop-filter:blur(8px) saturate(140%);-webkit-backdrop-filter:blur(8px) saturate(140%)}}.koko-promo-box{max-width:480px;position:relative;overflow:hidden}.koko-promo-icon{background:#10b98126!important;border-color:#10b9814d!important;color:#10b981!important}[data-theme=dark] .koko-promo-icon{background:#34d39926!important;border-color:#34d3994d!important;color:#34d399!important}.koko-promo-badge-wrap{margin-bottom:4px}.koko-promo-badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:2px 8px;border-radius:999px;background:#10b9811f;color:#059669;border:1px solid rgba(16,185,129,.25)}[data-theme=dark] .koko-promo-badge{background:#34d39926;color:#34d399;border-color:#34d3994d}.koko-promo-lead{font-size:13.5px;line-height:1.55;color:var(--text-secondary);margin-bottom:16px}.koko-promo-features{display:flex;flex-direction:column;gap:8px;background:var(--s1);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 14px;margin-bottom:16px}.koko-feature-item{display:flex;align-items:flex-start;gap:10px;font-size:12.5px;line-height:1.45;color:var(--text)}.koko-feature-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;background:var(--surface);border:1px solid var(--border2);color:var(--accent);flex-shrink:0;margin-top:1px}.koko-promo-ref-card{background:#8b5cf60d;border:1px dashed rgba(139,92,246,.3);border-radius:var(--radius-md);padding:10px 14px;margin-bottom:20px}[data-theme=dark] .koko-promo-ref-card{background:#8b5cf614;border-color:#a78bfa59}.koko-ref-label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--accent);margin-bottom:5px}.koko-ref-link{display:flex;align-items:center;justify-content:space-between;gap:8px;text-decoration:none;font-size:12px;font-weight:500;color:var(--text);padding:6px 10px;border-radius:6px;background:var(--surface);border:1px solid var(--border);transition:all .2s ease}.koko-ref-link:hover{background:var(--surface-hover);border-color:var(--accent);color:var(--accent)}.koko-ref-url{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;direction:rtl;text-align:left}.koko-btn-explore{background:#10b981!important;border-color:#10b981!important;color:#fff!important;display:inline-flex;align-items:center;gap:7px;font-weight:600;box-shadow:0 4px 12px #10b98140}.koko-btn-explore:hover{background:#059669!important;border-color:#059669!important;transform:translateY(-1px)}.liquid-bg-canvas{transform:none;contain:strict}.liquid-bg-image{inset:0;filter:none;transform:none}header,.glass-header{background:#f9f7fde0;backdrop-filter:blur(10px) saturate(135%);-webkit-backdrop-filter:blur(10px) saturate(135%);box-shadow:0 10px 30px -18px #2d195047,inset 0 1px #ffffffd1}[data-theme=dark] header,[data-theme=dark] .glass-header{background:#120e1fe8;box-shadow:0 10px 30px -18px #000000bf,inset 0 1px #ffffff1f}.panel,.sidebar-tabs-panel,.sidebar-tabs-nav-wrapper,.tt-wrap,.timetable-foot,.toggles,.srch-wrap input,.faculty-select,.btn-reset,.btn-save,.btn-random-colors,.btn-view-toggle.active,.tt-actions .btn-sm,.export-input{backdrop-filter:none;-webkit-backdrop-filter:none}.panel,.sidebar-tabs-panel{background:#fcfaffed;box-shadow:0 12px 30px -22px #2d195059,inset 0 1px #ffffffdb}.sidebar-tabs-nav-wrapper{background:#faf8fdfa}.tt-wrap,.timetable-foot{background:#fbf9fef0;box-shadow:0 16px 38px -26px #2d195061,inset 0 1px #ffffffe6}[data-theme=dark] .panel,[data-theme=dark] .sidebar-tabs-panel,[data-theme=dark] .sidebar-tabs-nav-wrapper,[data-theme=dark] .tt-wrap,[data-theme=dark] .timetable-foot{background:#141022f0;box-shadow:0 16px 38px -24px #000000d1,inset 0 1px #ffffff14}.toggles,.srch-wrap input,.faculty-select,.btn-view-toggle.active,.tt-actions .btn-sm{background-color:#ffffffbd}[data-theme=dark] .toggles,[data-theme=dark] .srch-wrap input,[data-theme=dark] .faculty-select,[data-theme=dark] .btn-view-toggle.active,[data-theme=dark] .tt-actions .btn-sm{background-color:#221b36e6}.modal-overlay{backdrop-filter:blur(4px) saturate(110%);-webkit-backdrop-filter:blur(4px) saturate(110%);overscroll-behavior:contain}.modal-box,.modal-content{backdrop-filter:none;-webkit-backdrop-filter:none;background:#fcfafffa}[data-theme=dark] .modal-box,[data-theme=dark] .modal-content{background:#171226fc}html.has-open-modal,body.has-open-modal{overflow:hidden;overscroll-behavior:none}#btn-performance{position:relative}#btn-performance .performance-dot{position:absolute;right:4px;bottom:4px;width:5px;height:5px;border-radius:999px;background:var(--muted2);box-shadow:0 0 0 1.5px #fffc}#btn-performance.is-active .performance-dot{background:#10b981}.performance-lite header,.performance-lite .glass-header,.performance-lite .modal-overlay{backdrop-filter:none;-webkit-backdrop-filter:none}.performance-lite .badge-dot,.performance-lite .btn-indicator-dot,.performance-lite .slot.conflict,.performance-lite .conflict-badge,.performance-lite .conflict-dot,.performance-lite #fab-guide:before,.performance-lite #fab-feedback:before{animation:none!important}@media(max-width:768px),(pointer:coarse){header,.glass-header{backdrop-filter:none;-webkit-backdrop-filter:none;background:#f9f7fdf5}[data-theme=dark] header,[data-theme=dark] .glass-header{background:#120e1ff7}.clist{overscroll-behavior-y:auto!important}}
