:root{--font-family:"Inter", system-ui, -apple-system, sans-serif;--text-2xs:.625rem;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-md:1.0625rem;--text-lg:1.25rem;--text-xl:1.5rem;--color-primary:#6366f1;--color-primary-dark:#4f46e5;--color-secondary:#10b981;--color-background:#f8f9fc;--color-surface:#fff;--color-text-main:#1e293b;--color-text-muted:#94a3b8;--color-border:#e2e8f0;--glass-bg:#ffffffe0;--glass-border:#ffffff80;--glass-shadow:0 8px 32px 0 #6366f114;--event-red:#fecaca;--event-orange:#fed7aa;--event-yellow:#fef08a;--event-green:#bbf7d0;--event-blue:#bfdbfe;--event-purple:#ddd6fe;--event-pink:#f5d0fe;--event-gray:#e2e8f0;--event-teal:#99f6e4;--event-indigo:#c7d2fe;--event-rose:#fecdd3;--event-amber:#fde68a;--event-lime:#d9f99d;--event-sky:#bae6fd;--grid-border:#94a3b840;--header-height:60px;--footer-height:60px}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;font-size:clamp(15px,.85rem + .5vw,17px)}@media (prefers-color-scheme:dark){:root{--color-primary:#818cf8;--color-primary-dark:#6366f1;--color-secondary:#34d399;--color-background:#0f172a;--color-surface:#1e293b;--color-text-main:#f1f5f9;--color-text-muted:#64748b;--color-border:#334155;--event-red:#991b1b;--event-orange:#9a3412;--event-yellow:#854d0e;--event-green:#166534;--event-blue:#1e40af;--event-purple:#5b21b6;--event-pink:#9d174d;--event-gray:#334155;--event-teal:#134e4a;--event-indigo:#3730a3;--event-rose:#9f1239;--event-amber:#92400e;--event-lime:#365314;--event-sky:#0c4a6e;--grid-border:#64748b4d;--glass-bg:#1e293be0;--glass-border:#33415580;--glass-shadow:0 8px 32px 0 #0000004d}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--color-background);color:var(--color-text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}button{cursor:pointer;background:0 0;border:none;font-family:inherit}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}[data-theme=pink]{--color-primary:#ec4899;--color-primary-dark:#db2777;--color-secondary:#f97316;--color-background:#fff5f7;--color-surface:#fff;--glass-bg:#fff5f7e0;--glass-border:#ec48992e;--glass-shadow:0 8px 32px 0 #ec489914}@media (prefers-color-scheme:dark){[data-theme=pink]{--color-primary:#f472b6;--color-primary-dark:#ec4899;--color-secondary:#fb923c;--color-background:#1a0a12;--color-surface:#2d1220;--glass-bg:#2d1220e0;--glass-border:#f472b633;--glass-shadow:0 8px 32px 0 #00000059}}[data-theme=green]{--color-primary:#10b981;--color-primary-dark:#059669;--color-secondary:#6366f1;--color-background:#f0fdf9;--color-surface:#fff;--glass-bg:#f0fdf9e0;--glass-border:#10b9812e;--glass-shadow:0 8px 32px 0 #10b98114}@media (prefers-color-scheme:dark){[data-theme=green]{--color-primary:#34d399;--color-primary-dark:#10b981;--color-secondary:#818cf8;--color-background:#021510;--color-surface:#0a2318;--glass-bg:#0a2318e0;--glass-border:#34d39933;--glass-shadow:0 8px 32px 0 #00000059}}.header{height:var(--header-height);background:var(--color-surface);z-index:100;justify-content:space-between;align-items:center;padding:0 16px;transition:background-color .3s;display:flex;position:sticky;top:0}.header .left-section,.header .right-section{align-items:center;gap:8px;width:50px;display:flex}.header .right-section{justify-content:flex-end}.header-title{color:var(--color-primary);letter-spacing:1px;white-space:nowrap;text-overflow:ellipsis;font-size:1.05rem;font-weight:700;overflow:hidden}.header .icon-btn{border-radius:50%;justify-content:center;align-items:center;padding:8px;transition:background-color .2s;display:flex}.header .icon-btn:active{background-color:#0000000d;transform:scale(.95)}.sync-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px;transition:background-color .4s;display:inline-block}.sync-dot--green{background-color:#34d399;box-shadow:0 0 #34d39980}.sync-dot--blue{background-color:#60a5fa;box-shadow:0 0 #60a5fa80}.timetable-container{background-color:var(--color-surface);-webkit-overflow-scrolling:touch;-webkit-user-select:none;user-select:none;flex:1;position:relative;overflow:auto}.timetable-grid{grid-template-rows:40px 1fr;grid-template-columns:min-content repeat(5,1fr);min-width:100%;min-height:100%;display:grid}.grid-cell{border-right:1px solid var(--grid-border);border-bottom:1px solid var(--grid-border);background:var(--color-surface);justify-content:center;align-items:center;font-size:.9rem;display:flex;position:relative}.header-cell{border-top:1px solid var(--grid-border);color:var(--color-primary);background:var(--color-surface);z-index:10;letter-spacing:.5px;font-size:.85rem;font-weight:700;position:sticky;top:0}.empty-corner{z-index:20;background:var(--color-surface);position:sticky;top:0;left:0}.day-header{border-left:none}.time-gutter{z-index:5;background:var(--color-surface);border-right:1px solid var(--grid-border);flex-direction:column;display:flex;position:sticky;left:0}.time-label{color:var(--color-text-muted);white-space:nowrap;border-bottom:1px solid var(--grid-border);flex:1;justify-content:flex-end;align-items:flex-start;min-height:52px;padding:3px 6px 0;font-size:.72rem;font-weight:600;display:flex}.day-column{border-right:1px solid var(--grid-border);cursor:pointer;flex-direction:column;min-height:468px;display:flex;position:relative}.day-column:last-child{border-right:none}.hour-line{border-bottom:1px solid var(--grid-border);pointer-events:none;flex:1;min-height:52px}.event-block{cursor:pointer;box-shadow:none;z-index:2;border:none;border-radius:0;transition:filter .2s,box-shadow .2s;position:absolute;left:0;right:0;overflow:hidden}.event-block:hover{filter:brightness(.95);z-index:3;box-shadow:0 2px 8px #00000026}.event-block:active{filter:brightness(.9)}.event-content{text-align:center;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:2px;transition:opacity .2s,filter .2s;display:flex;position:relative;overflow:hidden}.event-time-label{color:var(--color-text-main);white-space:nowrap;text-align:center;font-size:.6rem;font-weight:500;line-height:1.1;position:absolute;top:2px;left:0;right:0}.event-subject{color:var(--color-text-main);word-break:break-word;margin-bottom:2px;font-size:.7rem;font-weight:600;line-height:1.1}.event-meta{color:var(--color-text-main);opacity:.7;font-size:.7rem;line-height:1}@media (width>=1280px){.event-subject,.event-meta{font-size:.78rem}.event-time-label{font-size:.65rem}.header-cell{font-size:.9rem}.time-label{font-size:.75rem}}@media (width>=1920px){.event-subject,.event-meta{font-size:.9rem}.event-time-label{font-size:.72rem}.header-cell{font-size:1rem}.time-label{font-size:.82rem}}.show-delete .event-content{opacity:.3;filter:blur(1px)}.cell-delete-btn{color:#fff;z-index:5;cursor:pointer;background:#ef4444;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;animation:.2s cubic-bezier(.16,1,.3,1) forwards popDelete;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(0);box-shadow:0 2px 8px #ef444466}.cell-delete-btn:hover{background:#dc2626}@keyframes popDelete{0%{transform:translate(-50%,-50%)scale(0)}to{transform:translate(-50%,-50%)scale(1)}}.footer{height:var(--footer-height);background:var(--color-surface);z-index:100;justify-content:space-around;align-items:center;width:100%;display:flex;position:fixed;bottom:0}.footer-btn{color:var(--color-text-muted);border-radius:12px;justify-content:center;align-items:center;padding:12px;transition:all .2s;display:flex}.footer-btn:active{background-color:#0000000d;transform:scale(.95)}.footer-btn.active{color:var(--color-primary);background-color:#6366f114}.download-overlay{z-index:100;background:#0006;justify-content:center;align-items:flex-end;animation:.2s ease-out dlFadeIn;display:flex;position:fixed;inset:0}.download-sheet{background:var(--color-surface);width:100%;max-width:500px;padding:20px;padding-bottom:max(20px, env(safe-area-inset-bottom));border-top-left-radius:20px;border-top-right-radius:20px;flex-direction:column;gap:16px;animation:.3s cubic-bezier(.16,1,.3,1) dlSlideUp;display:flex;box-shadow:0 -4px 20px #0000001a}.download-header{justify-content:space-between;align-items:center;display:flex}.download-title{font-size:var(--text-md);color:var(--color-text-main);font-weight:600}.download-close-btn{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;align-items:center;margin-right:-4px;padding:4px;transition:color .2s;display:flex}.download-close-btn:hover{color:var(--color-text-main)}.download-desc{font-size:var(--text-sm);color:var(--color-text-muted);margin-top:-6px;line-height:1.4}.download-options{flex-direction:column;gap:10px;display:flex}.download-option-btn{background:var(--color-background);border:1px solid var(--color-border);cursor:pointer;text-align:left;border-radius:12px;align-items:center;gap:16px;width:100%;padding:14px 16px;font-family:inherit;transition:background .2s,border-color .2s,transform .15s;display:flex}.download-option-btn:hover{background:var(--color-border);border-color:var(--color-primary)}.download-option-btn:active{transform:scale(.98)}.download-option-icon{background:var(--color-surface);border:1px solid var(--color-border);width:44px;height:44px;color:var(--color-primary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.download-option-text{flex-direction:column;gap:3px;display:flex}.download-option-label{font-size:var(--text-base);color:var(--color-text-main);font-weight:600}.download-option-sub{font-size:var(--text-xs);color:var(--color-text-muted)}@keyframes dlSlideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes dlFadeIn{0%{opacity:0}to{opacity:1}}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:env(safe-area-inset-top,8px) env(safe-area-inset-right,8px) env(safe-area-inset-bottom,8px) env(safe-area-inset-left,8px);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--color-surface);scrollbar-width:thin;scrollbar-color:var(--color-border) transparent;border-radius:16px;width:92%;max-width:400px;max-height:92dvh;padding:20px;animation:.2s cubic-bezier(.16,1,.3,1) popIn;overflow-y:auto;box-shadow:0 10px 40px #00000040}@keyframes popIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.modal-header{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex;position:relative}.modal-header h3{font-size:var(--text-md);color:var(--color-text-main);white-space:nowrap;margin:0;font-weight:600;position:absolute;left:50%;transform:translate(-50%)}.close-btn{color:var(--color-text-main);cursor:pointer;background:0 0;border:none;align-items:center;margin-left:-4px;padding:4px;display:flex}.save-btn-header{color:var(--color-primary);font-weight:600;font-size:var(--text-base);cursor:pointer;background:0 0;border:none;margin-right:-4px;padding:4px;transition:color .2s}.save-btn-header:hover{color:var(--color-primary-dark)}.modal-form{flex-direction:column;gap:14px;display:flex}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label,.existing-events-section label{font-size:var(--text-sm);color:var(--color-text-muted);font-weight:500}.form-group input{border:1px solid var(--color-border);width:100%;font-family:inherit;font-size:var(--text-base);background:var(--color-background);color:var(--color-text-main);box-sizing:border-box;appearance:none;border-radius:8px;padding:.6em .75em;line-height:1.4;transition:border-color .15s}.form-group input:focus{border-color:var(--color-primary);outline:none}.save-error{font-size:var(--text-xs);color:#ef4444;text-align:center;margin:-4px 0}.lrow{flex-direction:column;gap:14px;display:flex}.times-pair{gap:10px;display:flex}.times-pair>.form-group{flex:none;width:clamp(108px,27vw,140px)}.lrow--2{flex-direction:row;gap:10px}.lrow--2>.form-group,.form-group--subject{flex:1;min-width:0}@media (orientation:landscape) and (height<=520px){.modal-content{max-width:min(720px,96vw);max-height:96dvh;padding:10px 20px}.modal-header{margin-bottom:8px}.modal-form{gap:8px}.lrow--1{flex-direction:row;align-items:flex-start;gap:10px}.lrow--1 .times-pair{flex-shrink:0;gap:6px}.lrow--1 .form-group--subject{flex:1;min-width:0}.form-group label,.existing-events-section label{font-size:var(--text-xs)}}.color-picker{flex-wrap:wrap;gap:8px;display:flex}.color-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;flex-shrink:0;width:28px;height:28px;transition:transform .15s}.color-swatch:hover{transform:scale(1.12)}.color-swatch.selected{border-color:var(--color-text-main);box-shadow:0 0 0 2px var(--color-surface), 0 0 0 4px var(--color-primary);transform:scale(1.12)}.existing-events-section{flex-direction:column;gap:6px;display:flex}.events-scroll{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent;gap:7px;padding-bottom:6px;display:flex;overflow-x:auto}.events-scroll::-webkit-scrollbar{height:4px}.events-scroll::-webkit-scrollbar-track{background:0 0}.events-scroll::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}.events-scroll::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.existing-event-chip{text-align:center;cursor:pointer;border:1px solid #0000001a;border-radius:8px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:72px;height:54px;padding:4px;transition:transform .15s;display:flex;overflow:hidden}.existing-event-chip:active{transform:scale(.94)}.chip-subject{font-weight:600;font-size:var(--text-2xs);color:var(--color-text-main);white-space:nowrap;text-overflow:ellipsis;max-width:100%;line-height:1.15;overflow:hidden}.chip-room{font-size:var(--text-2xs);color:var(--color-text-main);opacity:.8;white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.delete-event-btn{color:#ef4444;width:100%;font-size:var(--text-sm);cursor:pointer;background:0 0;border:none;border-radius:8px;margin-top:4px;padding:10px;font-family:inherit;font-weight:600;transition:background .2s;display:block}.delete-event-btn:hover{background:#ef444414}.share-overlay{z-index:100;background:#0006;justify-content:center;align-items:flex-end;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.share-sheet{background:var(--color-surface);border-top-left-radius:20px;border-top-right-radius:20px;flex-direction:column;width:100%;max-width:500px;min-height:280px;max-height:70vh;padding:20px;animation:.3s cubic-bezier(.16,1,.3,1) slideUp;display:flex;box-shadow:0 -4px 20px #0000001a}.share-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.share-tabs{background:var(--color-background);border-radius:10px;gap:4px;padding:3px;display:flex}.tab-btn{color:var(--color-text-muted);border-radius:8px;padding:8px 20px;font-size:.9rem;font-weight:500;transition:all .2s}.tab-btn.active{background:var(--color-surface);color:var(--color-text-main);box-shadow:0 1px 3px #0000001a}.share-tab-content,.open-tab-content{flex-direction:column;flex:1;display:flex}.share-desc{color:var(--color-text-muted);margin-bottom:20px;font-size:.9rem;line-height:1.4}.share-generate-btn{background:var(--color-primary);color:#fff;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:14px;font-size:.95rem;font-weight:600;transition:background .2s;display:flex}.share-generate-btn:hover:not(:disabled){background:var(--color-primary-dark)}.share-generate-btn:disabled{opacity:.5;cursor:not-allowed}.share-hint{color:var(--color-text-muted);text-align:center;margin-top:10px;font-size:.8rem}.share-result{flex-direction:column;align-items:center;gap:12px;display:flex}.share-label{color:var(--color-text-muted);font-size:.85rem;font-weight:500}.code-display{background:var(--color-background);cursor:pointer;border-radius:12px;align-items:center;gap:12px;padding:16px 24px;transition:transform .2s;display:flex}.code-display:active{transform:scale(.97)}.code-text{letter-spacing:4px;color:var(--color-primary);font-family:Courier New,monospace;font-size:1.8rem;font-weight:700}.copy-icon{color:var(--color-text-muted)}.copy-link-btn{background:var(--color-background);color:var(--color-text-main);border-radius:10px;align-items:center;gap:6px;padding:10px 20px;font-size:.9rem;font-weight:500;transition:background .2s;display:flex}.copy-link-btn:hover{background:var(--color-border)}.share-url{color:var(--color-text-muted);word-break:break-all;font-size:.75rem}.share-error{color:#ef4444;text-align:center;margin-top:10px;font-size:.85rem}.open-form{gap:8px;margin-bottom:20px;display:flex}.open-form input{border:1px solid var(--color-border);background:var(--color-background);color:var(--color-text-main);border-radius:10px;flex:1;padding:12px;font-family:inherit;font-size:.95rem}.open-form button{background:var(--color-primary);color:#fff;border-radius:10px;align-items:center;padding:12px 16px;transition:background .2s;display:flex}.open-form button:hover:not(:disabled){background:var(--color-primary-dark)}.open-form button:disabled{opacity:.4}.history-section{margin-top:4px}.history-label{color:var(--color-text-muted);margin-bottom:10px;font-size:.85rem;font-weight:500}.history-list{flex-wrap:wrap;gap:8px;display:flex}.history-chip{background:var(--color-background);color:var(--color-primary);border-radius:8px;padding:8px 14px;font-size:.9rem;font-weight:600;transition:all .2s}.history-chip:hover{background:var(--color-border)}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.undo-toast{bottom:calc(var(--footer-height) + 12px);z-index:300;background:var(--color-text-main);border-radius:14px;min-width:280px;max-width:360px;animation:.3s cubic-bezier(.16,1,.3,1) toastIn;position:fixed;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 8px 24px #0003}.undo-toast-content{justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.undo-message{color:var(--color-background);font-size:.9rem;font-weight:500}.undo-btn{color:var(--color-primary);white-space:nowrap;cursor:pointer;border-radius:8px;flex-shrink:0;align-items:center;gap:4px;padding:6px 12px;font-size:.85rem;font-weight:700;transition:background .2s;display:flex}.undo-btn:active{background:#6366f126}.undo-progress{background:var(--color-primary);border-radius:0 0 14px 14px;height:3px;transition:width 50ms linear}@keyframes toastIn{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.sync-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.sync-dot--green{background-color:#34d399}.sync-dot--blue{background-color:#60a5fa}.sync-dot--orange{background-color:#f59e0b}.sync-dot--gray{background-color:var(--color-text-muted);opacity:.45}.side-menu-overlay{z-index:200;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#00000080;animation:.3s fadeIn;position:fixed;inset:0}.side-menu{background:var(--color-surface);flex-direction:column;width:80%;max-width:300px;height:100%;animation:.3s cubic-bezier(.16,1,.3,1) slideRight;display:flex;box-shadow:4px 0 20px #0000001a}@media (width>=1280px){.side-menu{max-width:340px}}@media (width>=1920px){.side-menu{max-width:380px}}.side-menu .menu-header{border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:24px;display:flex}.user-profile{align-items:center;gap:12px;display:flex}.avatar-logo{object-fit:contain;border-radius:10px;width:40px;height:40px}.user-info{flex-direction:column;display:flex}.user-name{font-size:1rem;font-weight:600}.side-menu .close-btn{color:var(--color-text-muted);padding:4px}.menu-items{flex:1;padding:16px;overflow-y:auto}.menu-section{margin-bottom:8px}.section-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px;font-weight:600}.import-form{gap:6px;min-width:0;display:flex;overflow:hidden}.import-form input{border:1px solid var(--color-border);min-width:0;font-family:inherit;font-size:var(--text-base);background:var(--color-background);color:var(--color-text-main);box-sizing:border-box;text-overflow:ellipsis;border-radius:8px;flex:1 1 0;padding:10px;overflow:hidden}.import-form button{background:var(--color-primary);color:#fff;border-radius:8px;flex-shrink:0;align-items:center;padding:10px 12px;transition:background .2s;display:flex}.import-form button:disabled{opacity:.4}.import-form button.confirming{background:var(--color-secondary)}.name-form{gap:6px;min-width:0;display:flex}.name-form input{border:1px solid var(--color-border);min-width:0;font-family:inherit;font-size:var(--text-base);background:var(--color-background);color:var(--color-text-main);box-sizing:border-box;text-overflow:ellipsis;border-radius:8px;flex:1 1 0;padding:10px;overflow:hidden}.import-hint{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:8px;line-height:1.3}.online-disconnected{flex-direction:column;gap:8px;display:flex}.online-input-row{align-items:center;gap:8px;display:flex}.online-code-input{border:1px solid var(--color-border);background:var(--color-background);color:var(--color-text-main);font-family:inherit;font-size:var(--text-base);appearance:none;border-radius:8px;outline:none;flex:1;padding:9px 12px;transition:border-color .2s}.online-code-input:focus{border-color:var(--color-primary)}.online-confirm-btn{background:var(--color-primary);color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:background .2s,opacity .2s;display:flex}.online-confirm-btn:hover:not(:disabled){background:var(--color-primary-dark)}.online-confirm-btn:disabled{opacity:.4;cursor:not-allowed}.online-save-btn{border:1px dashed var(--color-border);width:100%;color:var(--color-text-muted);font-family:inherit;font-size:var(--text-sm);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:7px;padding:10px 12px;font-weight:500;transition:background .2s,color .2s,border-color .2s;display:flex}.online-save-btn:hover:not(:disabled){background:var(--color-background);color:var(--color-text-main);border-color:var(--color-primary)}.online-save-btn:disabled{opacity:.5;cursor:not-allowed}.online-connected{flex-direction:column;gap:8px;display:flex}.online-status-row{background:var(--color-background);border:1px solid var(--color-border);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;display:flex}.online-status-info{flex-direction:column;gap:3px;min-width:0;display:flex}.online-timetable-name{font-size:var(--text-sm);color:var(--color-text-main);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.online-status-badge{font-size:var(--text-xs);color:var(--color-text-muted);align-items:center;gap:5px;display:flex}.online-action-btns{flex-shrink:0;gap:6px;display:flex}.online-refresh-btn,.online-disconnect-btn{border:1px solid var(--color-border);width:30px;height:30px;color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;transition:background .2s,color .2s,border-color .2s;display:flex}.online-refresh-btn:hover:not(:disabled){background:var(--color-background);color:var(--color-primary);border-color:var(--color-primary)}.online-refresh-btn:disabled{opacity:.5;cursor:not-allowed}.online-disconnect-btn:hover{color:#ef4444;background:#ef444414;border-color:#ef4444}@keyframes spin{to{transform:rotate(360deg)}}.spinning{animation:.7s linear infinite spin}.online-code-row{background:var(--color-background);border:1px solid var(--color-border);border-radius:8px;align-items:center;gap:8px;padding:9px 12px;display:flex}.online-code-text{font-family:Courier New,monospace;font-size:var(--text-sm);letter-spacing:2px;color:var(--color-primary);-webkit-user-select:all;user-select:all;flex:1;font-weight:700}.online-copy-btn{border:1px solid var(--color-border);color:var(--color-text-muted);font-family:inherit;font-size:var(--text-xs);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;align-items:center;gap:5px;padding:5px 10px;transition:background .2s,color .2s;display:flex}.online-copy-btn:hover{background:var(--color-border);color:var(--color-text-main)}.import-msg{font-size:var(--text-xs);margin-top:6px}.import-msg.error{color:#ef4444}.import-msg.success{color:#10b981}.menu-divider{background:var(--color-border);height:1px;margin:16px 0}.menu-item{cursor:pointer;color:var(--color-text-main);border-radius:12px;align-items:center;gap:12px;padding:12px;transition:background .2s;display:flex}.menu-item:hover{background:var(--color-background)}.menu-item.danger{color:#ef4444}.menu-item.danger:hover{background:#ef444414}.menu-item.confirming{background:#ef44441a;animation:.3s pulse}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.menu-footer{border-top:1px solid var(--color-border);padding:16px 24px}.about-section{color:var(--color-text-muted);font-size:var(--text-xs);align-items:center;gap:8px;display:flex}@keyframes slideRight{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.theme-select{position:relative}.theme-trigger{border:1px solid var(--color-border);background:var(--color-background);width:100%;color:var(--color-text-main);font-family:inherit;font-size:var(--text-sm);cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:10px 12px;font-weight:500;transition:border-color .2s,background .2s;display:flex}.theme-trigger:hover{border-color:var(--color-primary);background:var(--color-surface)}.theme-select.open .theme-trigger{border-color:var(--color-primary);border-bottom-right-radius:0;border-bottom-left-radius:0}.theme-trigger-label{text-align:left;flex:1}.theme-chevron{color:var(--color-text-muted);flex-shrink:0;transition:transform .2s}.theme-chevron.rotated{transform:rotate(180deg)}.theme-options{background:var(--color-background);border:1px solid var(--color-primary);z-index:50;border-top:none;border-bottom-right-radius:10px;border-bottom-left-radius:10px;animation:.15s ease-out themeDropDown;position:absolute;top:100%;left:0;right:0;overflow:hidden;box-shadow:0 6px 16px #0000001f}@keyframes themeDropDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.theme-option{border:none;border-top:1px solid var(--color-border);width:100%;color:var(--color-text-main);font-family:inherit;font-size:var(--text-sm);cursor:pointer;background:0 0;align-items:center;gap:10px;padding:10px 12px;font-weight:500;transition:background .15s;display:flex}.theme-option:first-child{border-top:none}.theme-option:hover{background:var(--color-surface)}.theme-option.active{color:var(--color-primary);background:var(--color-surface)}.theme-option-label{text-align:left;flex:1}.theme-check{color:var(--color-primary);flex-shrink:0}.app-container{background-color:var(--color-surface);flex-direction:column;width:100vw;height:100dvh;display:flex}.main-content{padding-bottom:var(--footer-height);flex-direction:column;flex:1;display:flex;overflow:hidden}.shared-error-banner{color:#92400e;text-align:center;background-color:#fef3c7;padding:12px;font-size:.9rem;font-weight:500}
