body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-primary);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;transition:background-color .3s,color .3s}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--bg-primary:#fff;--bg-secondary:#f8f9fa;--bg-tertiary:#f4f4f4;--bg-elevated:#fff;--text-primary:#333;--text-secondary:#666;--text-tertiary:#888;--text-muted:#999;--border-primary:#ddd;--border-secondary:#eee;--sidebar-bg:#282c34;--sidebar-text:#fff;--sidebar-hover:#404756;--card-bg:#fff;--card-shadow:#0000001a;--grid-even-row:#f9f9f9;--grid-header-bg:#f4f4f4;--hover-bg:#f5f5f5;--link-color:#007bff;--dialog-bg:#fffffff2;--dialog-overlay:#0006;--todo-section-bg:#f0f7ff;--todo-section-border:#d0e3f7;--todo-label-bg:#eef4fb;--input-bg:#f8f9fa;--input-border:#ddd;--input-focus-bg:#fff;--btn-secondary-bg:#f0f0f0;--btn-secondary-text:#333;--btn-secondary-border:#ddd;--btn-secondary-hover:#e4e4e4}[data-theme=dark]{--bg-primary:#1a1a2e;--bg-secondary:#16213e;--bg-tertiary:#1f2940;--bg-elevated:#222845;--text-primary:#e0e0e0;--text-secondary:#b0b0b0;--text-tertiary:#888;--text-muted:#707070;--border-primary:#3a3f55;--border-secondary:#2e3348;--sidebar-bg:#0f1124;--sidebar-text:#e0e0e0;--sidebar-hover:#2a2f45;--card-bg:#222845;--card-shadow:#0000004d;--grid-even-row:#1f2535;--grid-header-bg:#1f2940;--hover-bg:#2a3045;--link-color:#5ba3f5;--dialog-bg:#222845f2;--dialog-overlay:#0009;--todo-section-bg:#1a2538;--todo-section-border:#2a3a55;--todo-label-bg:#1a2538;--input-bg:#1f2940;--input-border:#3a3f55;--input-focus-bg:#222845;--btn-secondary-bg:#2a3045;--btn-secondary-text:#e0e0e0;--btn-secondary-border:#3a3f55;--btn-secondary-hover:#353b55}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 10s linear infinite}}.App-header{align-items:center;background-color:var(--sidebar-bg);color:var(--sidebar-text);display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotateY(0deg)}to{transform:rotateY(1turn)}}.app-container{display:flex;min-height:100vh}.nav-menu{background-color:var(--sidebar-bg);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden;padding:50px 20px 20px;transition:width .25s ease,padding .25s ease,opacity .25s ease;width:200px}.nav-menu:not(.nav-menu-open){opacity:0;padding:0;pointer-events:none;width:0}.nav-menu .menu-content{flex:1 1}.nav-menu ul{list-style:none;margin:0;padding:0}.nav-menu li{align-items:center;border-bottom:1px solid var(--sidebar-hover);color:var(--sidebar-text);cursor:pointer;display:flex;font-size:18px;gap:10px;padding:15px}.nav-icon{color:#fff;color:var(--sidebar-text,#fff);display:inline-flex;flex-shrink:0;font-size:20px;justify-content:center;opacity:.85;text-align:center;width:22px}.nav-menu li:hover{background-color:var(--sidebar-hover)}.App{background-color:var(--bg-primary);flex:1 1;text-align:center}.menu-toggle-container{left:10px;position:absolute;top:10px;z-index:1000}.sidebar-toggle-btn{background:var(--sidebar-bg);border:none;border-radius:8px;box-shadow:0 2px 8px #0003;cursor:pointer;font-size:20px;padding:6px 10px;transition:background-color .2s,box-shadow .2s}.sidebar-toggle-btn:hover{background-color:var(--sidebar-hover)}.sidebar-toggle-open{color:var(--sidebar-text)}.sidebar-toggle-icon{display:inline-block;font-weight:700;line-height:1}.sidebar-toggle-close{color:var(--sidebar-text)}.sidebar-bottom-items{border-top:1px solid var(--sidebar-hover);display:flex;flex-direction:column;gap:8px;margin-top:10px;padding:10px 0}.sidebar-privacy-link{color:var(--sidebar-text);cursor:pointer;font-size:12px;opacity:.7;padding:4px 10px;transition:opacity .2s}.sidebar-privacy-link:hover{opacity:1}.language-selector{cursor:pointer;display:flex;gap:6px;padding:10px}.language-selector .flag-btn{border-radius:50%;cursor:pointer;height:22px;object-fit:cover;opacity:.5;transition:opacity .2s,transform .2s,box-shadow .2s;width:22px}.language-selector .flag-btn:hover{opacity:.8;transform:scale(1.15)}.language-selector .flag-btn.active{box-shadow:0 0 0 2px #61dafb;opacity:1;transform:scale(1.1)}.theme-toggle{align-items:center;background:#0000;border:none;border-radius:6px;color:var(--sidebar-text);cursor:pointer;display:flex;font-size:18px;gap:6px;opacity:.7;padding:4px 8px;transition:opacity .2s,background-color .2s}.theme-toggle:hover{background-color:var(--sidebar-hover);opacity:1}.theme-toggle-label{font-size:11px;white-space:nowrap}.sidebar-overlay{display:none}@media (max-width:768px){.app-container{flex-direction:column}.nav-menu,.nav-menu:not(.nav-menu-open){box-shadow:2px 0 12px #0000004d;display:none;flex-direction:column;height:100vh;left:0;opacity:1;overflow-y:auto;padding:50px 14px 14px;pointer-events:auto;position:fixed;top:0;transition:none;width:220px;z-index:999}.nav-menu.nav-menu-open{display:flex}.sidebar-overlay{background:#0006;display:block;height:100%;left:0;position:fixed;top:0;width:100%;z-index:998}.nav-menu ul{flex-direction:column}.nav-menu li{font-size:15px;padding:12px 15px;white-space:nowrap}.menu-toggle-container{z-index:1001}.sidebar-bottom-items{flex-direction:column;gap:6px}.language-selector{gap:6px;padding:5px 10px}.language-selector .flag-btn{height:24px;width:24px}.theme-toggle{padding:6px 10px}}@media (max-width:480px){.nav-menu,.nav-menu:not(.nav-menu-open){padding:44px 10px 10px;width:132px}.nav-menu li{font-size:12px;padding:8px}.sidebar-toggle-btn{font-size:16px;padding:2px 6px}.theme-toggle{padding:4px 6px}.sidebar-privacy-link,.theme-toggle,.theme-toggle-label{font-size:11px}}.active-room-icon{align-items:center;background:#f0f0f0;background:var(--bg-secondary,#f0f0f0);border:1px solid #ddd;border:1px solid var(--border-color,#ddd);border-radius:20px;box-shadow:0 1px 3px #0000001a;box-shadow:var(--shadow-sm,0 1px 3px #0000001a);cursor:pointer;display:flex;gap:2px;padding:6px 12px;position:fixed;right:16px;top:12px;transition:transform .2s;z-index:1000}.active-room-icon:hover{transform:scale(1.05)}.active-room-icon-emoji{font-size:18px}.active-room-badge{align-items:center;background:#e74c3c;border-radius:10px;color:#fff;display:flex;font-size:11px;font-weight:700;height:18px;justify-content:center;min-width:18px;padding:0 4px}@media (max-width:480px){.active-room-icon{padding:4px 8px;right:50px;top:8px}}.timetable-container{margin:0 auto;max-width:1560px;padding:20px}.view-toggle-container{display:flex;justify-content:center;margin:10px 0}.view-toggle{background:var(--btn-secondary-bg);border-radius:20px;display:inline-flex;gap:2px;padding:3px}.view-toggle-btn{background:#0000;border:none;border-radius:18px;color:var(--text-secondary);cursor:pointer;font-size:13px;font-weight:500;padding:6px 18px;transition:all .2s}.view-toggle-btn.active{background:var(--card-bg);box-shadow:0 1px 3px var(--card-shadow);font-weight:600}.view-toggle-btn.active,.view-toggle-btn:hover:not(.active){color:var(--text-primary)}.pdf-export-btn{background:#e53935;border:none;border-radius:18px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;margin-right:8px;padding:6px 14px;transition:all .2s}.pdf-export-btn:hover{background:#c62828}.pdf-export-btn:disabled{background:#999;cursor:not-allowed}.png-export-btn{background:#43a047;border:none;border-radius:18px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;margin-right:8px;padding:6px 14px;transition:all .2s}.png-export-btn:hover{background:#2e7d32}.png-export-btn:disabled{background:#999;cursor:not-allowed}.share-export-btn{background:#2196f3;border:none;border-radius:18px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;margin-right:8px;padding:6px 14px;transition:all .2s}.share-export-btn:hover{background:#1976d2}.share-export-btn:disabled{background:#999;cursor:not-allowed}.pdf-preview-dialog{background:var(--card-bg);border-radius:12px;box-shadow:0 8px 32px #0000004d;display:flex;flex-direction:column;max-height:90vh;max-width:90vw;padding:20px}.pdf-preview-image-container{align-items:flex-start;background:#f5f5f5;border:1px solid var(--border-color);border-radius:8px;display:flex;flex:1 1;justify-content:center;margin:12px 0;max-height:65vh;overflow:auto}[data-theme=dark] .pdf-preview-image-container{background:#2a2a2a}.pdf-preview-image{display:block;height:auto;max-width:100%}.pdf-preview-filename{color:var(--text-secondary);font-size:13px;margin:4px 0 12px;text-align:center}.timetable table{border-collapse:collapse;margin-top:20px;table-layout:fixed;width:100%}.timetable th{background-color:var(--grid-header-bg);border:1px solid var(--border-primary);color:var(--text-primary);height:15px;padding:8px;text-align:center}.timetable th.time-header-cell{width:75px}.time-label-cell{color:var(--text-secondary);font-size:12px;height:60px;vertical-align:middle}.time-label-cell,.timetable-cell{border:1px solid var(--border-primary);padding:0;text-align:center}.timetable-cell{box-sizing:border-box;height:30px;position:relative}.timetable tr:nth-child(2n){background-color:var(--grid-even-row)}.back-button{background-color:var(--sidebar-bg);border-radius:5px;color:var(--sidebar-text);display:inline-block;margin-top:20px;padding:10px 20px;text-decoration:none}.back-button:hover{background-color:var(--sidebar-hover)}.edit-button{background:var(--sidebar-bg);border:none;border-radius:4px;color:var(--sidebar-text);cursor:pointer;margin-top:10px;padding:5px 10px}input,textarea{-webkit-touch-callout:default;-webkit-user-select:auto;user-select:auto}.resize-handle{background:#0000;cursor:ns-resize;height:8px;left:0;position:absolute;right:0;touch-action:none;z-index:20}.resize-handle:hover{background:#0000001a}.resize-handle-top{top:-4px}.resize-handle-bottom{bottom:-4px}.schedule-bar.active-edit{border:2px solid #2196f3!important;box-shadow:0 0 10px #0000004d,0 0 15px #2196f380;touch-action:none;z-index:50!important}.schedule-bar.active-edit .resize-handle{background:#2196f333}.schedule-bar.active-edit .resize-handle:after{background-color:#2196f3;border-radius:2px;content:"";height:4px;left:50%;position:absolute;transform:translateX(-50%);width:40px}.schedule-bar.active-edit .resize-handle-top:after{top:6px}.schedule-bar.active-edit .resize-handle-bottom:after{bottom:6px}.todo-row{background-color:var(--card-bg)!important}.todo-row-label{background-color:var(--todo-label-bg);color:var(--text-secondary);font-size:11px;font-weight:600;padding:4px;text-align:center;vertical-align:middle;white-space:nowrap}.todo-row-cell,.todo-row-label{border:1px solid var(--border-primary)}.todo-row-cell{min-height:28px;padding:3px 3px 3px 5px;position:relative;vertical-align:top}.todo-row-cell.todo-row-cell-drag-over{background-color:#e3f2fd;box-shadow:inset 0 0 0 2px #1976d2}.todo-row-add-btn{align-items:center;background:var(--btn-secondary-bg);border:none;border-radius:3px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:11px;height:16px;justify-content:center;line-height:14px;opacity:.6;padding:0;position:absolute;right:2px;top:2px;transition:opacity .15s;width:16px;z-index:2}.todo-row-add-btn:hover{background:var(--btn-secondary-hover);opacity:1}.todo-row-items{display:flex;flex-direction:column;gap:2px;padding-left:0;padding-right:18px}.todo-row-item{align-items:center;border:none;border-radius:3px;cursor:pointer;display:flex;font-size:12px;font-weight:500;gap:3px;margin:0;overflow:hidden;padding:2px 4px;white-space:nowrap}.todo-row-item:hover{filter:brightness(.92)}.todo-row-item input[type=checkbox]{accent-color:#1976d2;accent-color:var(--todo-color,#1976d2);cursor:pointer;flex-shrink:0;height:14px;margin:0;width:14px}.todo-row-item-text{flex:1 1;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.actual-legend{align-items:center;color:var(--text-secondary);display:flex;font-size:13px;gap:6px;justify-content:center;margin-top:4px}.actual-legend-planned{background:#4caf50}.actual-legend-actual,.actual-legend-planned{border:1px solid #999;border-radius:2px;display:inline-block;height:14px;width:14px}.actual-legend-actual{background:repeating-linear-gradient(45deg,#ffffff40,#ffffff40 3px,#0000 0,#0000 6px),#4caf50}.date-nav{font-size:25px;margin:20px 0;text-align:center}.date-nav,.date-nav-btn{color:var(--text-tertiary)}.date-nav-btn{background:none;border:none;cursor:pointer;font-size:20px}.date-nav-action-btn,.date-nav-btn:hover{color:var(--text-primary)}.date-nav-action-btn{background:var(--btn-secondary-bg);border:none;border-radius:4px;cursor:pointer;font-size:14px;margin-top:5px;padding:3px 8px}.date-nav-action-btn:hover{background:var(--btn-secondary-hover)}@media (pointer:coarse){.resize-handle{height:20px}.resize-handle-top{top:-10px}.resize-handle-bottom{bottom:-10px}}@media (max-width:768px){.timetable-container{overflow-x:auto;padding:10px}.timetable table{font-size:12px;min-width:600px}.timetable th{font-size:11px;padding:4px}.timetable-cell{height:24px}.time-label-cell{font-size:10px}}@media (max-width:480px){.date-nav{font-size:16px;margin:10px 0}.date-nav-btn{font-size:14px}.date-nav-action-btn{font-size:11px;padding:2px 6px}.share-export-btn,.view-toggle-btn{font-size:11px;padding:4px 10px}.pdf-preview-dialog{padding:12px}.pdf-preview-dialog h3{font-size:14px}.timetable-container{padding:6px}.todo-item,.todo-section{font-size:12px}.todo-item{padding:2px 4px}.todo-add-btn{font-size:11px;padding:2px 6px}}.dialog-overlay{align-items:center;animation:fadeIn .2s ease-out;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:var(--dialog-overlay);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.dialog-box{animation:slideUp .3s ease-out;gap:16px;max-width:90vw;padding:24px;width:400px}.dialog-box,.palette-window{background:var(--dialog-bg);border-radius:12px;box-shadow:0 10px 25px #0003;display:flex;flex-direction:column}.palette-window{border:1px solid var(--border-secondary);gap:12px;padding:16px}.dialog-title{border-bottom:2px solid var(--border-secondary);color:var(--text-primary);font-size:1.25rem;font-weight:600;margin:0;padding-bottom:12px;text-align:center}.dialog-label{color:var(--text-secondary);display:block;font-size:.9rem;font-weight:500;margin-bottom:4px}.dialog-input{background-color:var(--input-bg);border:1px solid var(--border-primary);border-radius:8px;box-sizing:border-box;color:var(--text-primary);font-size:1rem;padding:10px 12px;transition:border-color .2s,box-shadow .2s;width:100%}.dialog-input:focus{border-color:var(--sidebar-bg);box-shadow:0 0 0 3px #282c341a;outline:none}[data-theme=dark] .dialog-input:focus{box-shadow:0 0 0 3px #5ba3f533}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}.btn-primary{background-color:var(--sidebar-bg);border:none;border-radius:8px;color:var(--sidebar-text);cursor:pointer;font-weight:500;padding:10px 20px;transition:transform .1s,background-color .2s}.btn-primary:active{transform:scale(.98)}.btn-secondary{background-color:var(--btn-secondary-bg);border:1px solid var(--btn-secondary-border);border-radius:8px;color:var(--btn-secondary-text);cursor:pointer;font-weight:500;padding:10px 20px;transition:background-color .2s}.btn-secondary:hover{background-color:var(--btn-secondary-hover)}.btn-convert{background-color:var(--card-bg);border:1px solid #1976d2;border-radius:8px;color:#1976d2;cursor:pointer;font-size:12px;font-weight:500;padding:8px 14px;transition:background-color .2s}.btn-convert:hover{background-color:#e3f2fd}[data-theme=dark] .btn-convert:hover{background-color:#1a2a45}.category-chip{background:var(--card-bg);border:1px solid var(--border-secondary);border-radius:20px;color:var(--text-primary);cursor:pointer;font-size:.85rem;padding:6px 12px;transition:all .2s}.category-chip.selected{background:var(--sidebar-bg);border-color:var(--sidebar-bg);box-shadow:0 4px 6px var(--card-shadow);color:var(--sidebar-text);transform:translateY(-1px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.context-menu{animation:fadeIn .1s ease-out;background:var(--dialog-bg);border:1px solid var(--border-secondary);border-radius:8px;box-shadow:0 10px 25px #0003;min-width:150px;padding:8px 0;z-index:1000}.context-menu-item{align-items:center;color:var(--text-primary);cursor:pointer;display:flex;font-size:.95rem;gap:8px;padding:10px 20px;transition:background-color .1s}.context-menu-item:hover{background-color:var(--hover-bg);color:var(--link-color)}.context-menu-item.danger{color:#f44}.context-menu-item.danger:hover{background-color:#fff0f0}[data-theme=dark] .context-menu-item.danger:hover{background-color:#3a2020}.pagination-container{display:flex;gap:6px;justify-content:center;margin-top:12px}.pagination-button{align-items:center;background:var(--card-bg);border:1px solid var(--border-primary);border-radius:50%;color:var(--text-primary);cursor:pointer;display:flex;font-size:.9rem;height:32px;justify-content:center;padding:0;transition:all .2s;width:32px}.pagination-button:hover{background:var(--hover-bg);transform:translateY(-1px)}.pagination-button.active{background:var(--sidebar-bg);border-color:var(--sidebar-bg);box-shadow:0 2px 4px #0003;color:var(--sidebar-text)}@media (max-width:768px){.dialog-box{padding:16px;width:95vw}.dialog-actions{flex-direction:column}.dialog-actions button{width:100%}}@media (max-width:480px){.dialog-box{gap:10px;padding:12px}.dialog-title{font-size:1rem;padding-bottom:8px}.dialog-label{font-size:.8rem}.dialog-input{font-size:13px;padding:8px 10px}.btn-primary,.btn-secondary{font-size:13px;padding:8px 14px}.dialog-message{font-size:.85rem}.todo-subject-option{font-size:.85em;padding:6px 10px}.pagination-button{font-size:.8rem;height:28px;width:28px}}.todo-subject-list{background:var(--card-bg);border:1px solid var(--border-primary);border-radius:8px;max-height:200px;overflow-y:auto}.todo-subject-option{align-items:center;color:var(--text-primary);cursor:pointer;display:flex;font-size:.95em;gap:8px;padding:8px 12px;transition:background-color .15s}.todo-subject-option:hover{background-color:var(--hover-bg)}.todo-subject-option.selected{background-color:var(--todo-section-bg);font-weight:600}.todo-subject-color{border:1px solid #00000026;border-radius:3px;display:inline-block;flex-shrink:0;height:14px;width:14px}.study-card{border-radius:0;box-sizing:border-box;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;height:540px;justify-content:space-between;overflow:hidden;padding:48px;position:relative;width:540px}.study-card-bg-overlay{background-position:50%;background-size:cover;height:100%;left:0;opacity:.15;pointer-events:none;position:absolute;top:0;width:100%}.study-card-branding,.study-card-content,.study-card-footer,.study-card-username{position:relative;z-index:1}.study-card-branding{flex-shrink:0;font-size:14px;font-weight:500;letter-spacing:1px;opacity:.7;text-transform:uppercase}.study-card-content{display:flex;flex:1 1;flex-direction:column;gap:8px;justify-content:center}.study-card-main-stat{font-size:42px;font-weight:800;line-height:1.2;margin-bottom:4px}.study-card-sub-stat{font-size:20px;font-weight:500;opacity:.8}.study-card-subjects{display:flex;flex-direction:column;gap:10px;margin-top:16px}.study-card-subject-bar{align-items:center;display:flex;gap:12px}.study-card-subject-color{border-radius:4px;flex-shrink:0;height:32px;width:8px}.study-card-subject-info{display:flex;flex:1 1;flex-direction:column;gap:2px}.study-card-subject-name{font-size:14px;font-weight:600}.study-card-subject-bar-track{border-radius:4px;height:8px;overflow:hidden;width:100%}.study-card-subject-bar-fill{border-radius:4px;height:100%;transition:width .3s ease}.study-card-subject-time{font-size:13px;font-weight:500;min-width:50px;opacity:.8;text-align:right;white-space:nowrap}.study-card-goal-progress{margin-top:16px}.study-card-goal-name{font-size:16px;font-weight:500;margin-bottom:12px;opacity:.9}.study-card-goal-bar-track{border-radius:8px;height:16px;overflow:hidden;position:relative}.study-card-goal-bar-fill{border-radius:8px;height:100%;transition:width .3s ease}.study-card-goal-percentage{font-size:48px;font-weight:800;margin-top:8px}.study-card-achievement-row{align-items:center;display:flex;gap:10px;margin-bottom:8px}.study-card-goals-list{display:flex;flex-direction:column;gap:14px;margin-top:8px}.study-card-goal-item{display:flex;flex-direction:column;gap:4px}.study-card-goal-row{align-items:center;display:flex;justify-content:space-between}.study-card-goal-label{font-size:15px;font-weight:500}.study-card-goal-pct{font-size:16px;font-weight:700}.study-card-streak-icon{font-size:64px;margin-bottom:8px;text-align:center}.study-card-streak-best{font-size:16px;margin-top:12px;opacity:.7;text-align:center}.study-card-footer{align-items:flex-end;display:flex;flex-shrink:0;font-size:13px;justify-content:space-between;opacity:.6}.study-card-date{font-weight:500}.study-card-watermark{font-weight:400}.study-card-timetable{flex-direction:column;gap:6px}.study-card-timetable,.study-card-timetable-img-wrap{align-items:center;display:flex;flex:1 1;justify-content:center;min-height:0}.study-card-timetable-img-wrap{overflow:hidden;width:100%}.study-card-timetable-img{border-radius:6px;display:block;max-height:100%;max-width:100%;object-fit:contain;opacity:.6}.study-card-timetable-label{flex-shrink:0;font-size:14px;font-weight:500;opacity:.8;text-align:center}.study-card-username{flex-shrink:0;font-size:13px;font-weight:500;margin-top:4px;opacity:.7}.study-card-light{background:#fff;color:#1a1a1a}.study-card-light .study-card-goal-bar-track,.study-card-light .study-card-subject-bar-track{background:#f0f0f0}.study-card-dark{background:#1a1a2e;color:#f0f0f0}.study-card-dark .study-card-goal-bar-track,.study-card-dark .study-card-subject-bar-track{background:#2a2a4e}.study-card-gradient{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.study-card-gradient .study-card-goal-bar-track,.study-card-gradient .study-card-subject-bar-track{background:#fff3}.study-card-gradient .study-card-goal-bar-fill{background:#ffffffe6}.study-card-pastel{background:linear-gradient(135deg,#fce4ec,#e3f2fd 50%,#f3e5f5);color:#37474f}.study-card-pastel .study-card-goal-bar-track,.study-card-pastel .study-card-subject-bar-track{background:#fff9}.study-card-neon{background:#0a0a0a;color:#0f8}.study-card-neon .study-card-branding{color:#0cf}.study-card-neon .study-card-main-stat{color:#0f8;text-shadow:0 0 20px #00ff884d}.study-card-neon .study-card-subject-bar-track{background:#1a1a1a}.study-card-neon .study-card-subject-name{color:#fff}.study-card-neon .study-card-subject-time{color:#0cf}.study-card-neon .study-card-goal-bar-track{background:#1a1a1a}.study-card-neon .study-card-goal-bar-fill{background:#0f8;box-shadow:0 0 10px #00ff8880}.study-card-neon .study-card-goal-percentage{text-shadow:0 0 20px #00ff884d}.study-card-neon .study-card-footer{color:#555}.share-dialog-box{max-height:90vh;max-width:95vw;overflow-y:auto;width:520px}.share-theme-selector{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.share-theme-btn{border:2px solid var(--border-secondary);border-radius:10px;cursor:pointer;height:48px;overflow:hidden;position:relative;transition:all .2s;width:48px}.share-theme-btn:hover{box-shadow:0 4px 8px var(--card-shadow);transform:translateY(-2px)}.share-theme-btn.active{border-color:var(--link-color);box-shadow:0 0 0 2px var(--link-color)}.share-theme-btn-light{background:#fff;border-color:#ddd}.share-theme-btn-dark{background:#1a1a2e}.share-theme-btn-gradient{background:linear-gradient(135deg,#667eea,#764ba2)}.share-theme-btn-pastel{background:linear-gradient(135deg,#fce4ec,#e3f2fd 50%,#f3e5f5)}.share-theme-btn-neon{background:#0a0a0a;position:relative}.share-theme-btn-neon:after{background:#0f8;border-radius:50%;box-shadow:0 0 8px #00ff8880;content:"";height:12px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:12px}.share-options{align-items:center;display:flex;gap:16px;margin-bottom:12px}.share-option-checkbox{align-items:center;color:var(--text-secondary);cursor:pointer;display:flex;font-size:.9rem;gap:6px}.share-option-checkbox input[type=checkbox]{cursor:pointer;height:16px;width:16px}.share-bg-controls{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.share-bg-btn{background:#fff;background:var(--card-bg,#fff);border:1px solid #ddd;border:1px solid var(--border-secondary,#ddd);border-radius:6px;color:#333;color:var(--text-primary,#333);cursor:pointer;font-size:.85rem;padding:6px 14px}.share-bg-btn:hover{background:#f0f0f0;background:var(--bg-secondary,#f0f0f0)}.share-bg-btn:disabled{cursor:not-allowed;opacity:.5}.share-bg-btn-remove{border-color:#f44336;color:#f44336}.share-bg-btn-remove:hover{background:#fbe9e7}.share-preview-container{background:var(--bg-secondary);border:1px solid var(--border-secondary);border-radius:8px;display:flex;justify-content:center;margin:12px 0;overflow:hidden;padding:12px;position:relative}.share-preview-wrapper{flex-shrink:0;transform-origin:top center}.share-capture-container{left:-9999px;pointer-events:none;position:fixed;top:-9999px}.share-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:8px}.share-btn-share{align-items:center;background-color:#4caf50;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-weight:500;gap:6px;padding:10px 20px;transition:transform .1s,background-color .2s}.share-btn-share:hover{background-color:#43a047}.share-btn-share:active{transform:scale(.98)}.share-btn-share:disabled{background-color:#a5d6a7;cursor:not-allowed}.share-btn-download{align-items:center;background-color:var(--sidebar-bg);border:none;border-radius:8px;color:var(--sidebar-text);cursor:pointer;display:flex;font-weight:500;gap:6px;padding:10px 20px;transition:transform .1s,background-color .2s}.share-btn-download:active{transform:scale(.98)}.share-btn-download:disabled{cursor:not-allowed;opacity:.6}.share-loading{color:var(--text-secondary);font-size:.9rem;padding:8px;text-align:center}@media (max-width:768px){.share-dialog-box{padding:16px;width:95vw}.share-theme-btn{border-radius:8px;height:40px;width:40px}.share-theme-selector{gap:6px}.share-actions{flex-wrap:wrap;gap:8px}.share-actions button{flex:1 1 auto;justify-content:center;min-width:0}.share-btn-download,.share-btn-share{font-size:.9rem;padding:10px 14px}}@media (max-width:480px){.share-dialog-box{padding:12px}.share-theme-btn{border-radius:6px;height:36px;width:36px}.share-actions{flex-direction:column}.share-actions button{justify-content:center;width:100%}.share-btn-download,.share-btn-share{padding:10px 16px}.share-options{margin-bottom:8px}.share-option-checkbox{font-size:.85rem}}.monthly-calendar{margin-left:auto;margin-right:auto;margin-top:10px;max-width:1300px}.monthly-table{border-collapse:collapse;table-layout:fixed;width:100%}.monthly-table th{background-color:var(--grid-header-bg);color:var(--text-primary);font-size:16px;font-weight:600;padding:8px 4px;text-align:center}.monthly-cell,.monthly-table th{border:1px solid var(--border-primary)}.monthly-cell{background:var(--card-bg);height:100px;padding:4px;position:relative;transition:background-color .15s;vertical-align:top}.monthly-cell:hover{background-color:var(--hover-bg)}.monthly-cell.other-month{background-color:var(--grid-even-row)}.monthly-cell.monthly-today{background-color:#eef6ff}[data-theme=dark] .monthly-cell.monthly-today{background-color:#1a2a45}.monthly-cell.monthly-drag-over{background-color:#e3f2fd;box-shadow:inset 0 0 0 2px #1976d2}.monthly-cell-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:4px}.monthly-date-number{color:var(--text-primary);font-size:16px;font-weight:600;line-height:1}.monthly-date-number.today-badge{align-items:center;background-color:#1976d2;border-radius:50%;color:#fff!important;display:inline-flex;font-size:14px;height:26px;justify-content:center;width:26px}.monthly-add-btn{align-items:center;background:var(--btn-secondary-bg);border:none;border-radius:3px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:11px;height:16px;justify-content:center;line-height:14px;opacity:0;padding:0;transition:opacity .15s;width:16px}.monthly-cell:hover .monthly-add-btn{opacity:.6}.monthly-add-btn:hover{background:var(--btn-secondary-hover);opacity:1!important}.monthly-cell-items{display:flex;flex-direction:column;gap:2px}.monthly-schedule-item{align-items:center;border-radius:3px;cursor:default;display:flex;font-size:11px;font-weight:500;gap:3px;overflow:hidden;padding:2px 4px;white-space:nowrap}.monthly-schedule-item:hover{filter:brightness(.92)}.monthly-schedule-item input[type=checkbox]{accent-color:#1976d2;accent-color:var(--todo-color,#1976d2);cursor:pointer;flex-shrink:0;height:12px;margin:0;width:12px}.monthly-item-text{flex:1 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.monthly-section-label{color:var(--text-tertiary);font-size:9px;font-weight:600;line-height:1;margin:2px 0 1px;padding:0 2px;text-transform:uppercase}.monthly-section-label.with-divider{border-top:1px solid var(--border-primary);margin-top:6px;padding-top:4px}@media (pointer:coarse){.monthly-add-btn{font-size:14px;height:24px;opacity:.45;width:24px}.monthly-cell:hover .monthly-add-btn{opacity:.7}.monthly-schedule-item input[type=checkbox]{height:16px;width:16px}}@media (hover:none){.monthly-add-btn{font-size:14px;height:24px;opacity:.45;width:24px}}@media (max-width:768px){.monthly-cell{height:60px;padding:2px}.monthly-date-number{font-size:12px}.monthly-schedule-item{font-size:10px}.monthly-table th{font-size:12px;padding:4px 2px}}@media (max-width:480px){.monthly-header h2{font-size:14px}.monthly-nav-btn{font-size:14px;padding:2px 6px}.monthly-today-btn{font-size:11px;padding:2px 6px}.monthly-table th{font-size:10px;padding:2px 1px}.monthly-cell{height:50px;padding:1px}.monthly-date-number{font-size:10px}.monthly-schedule-item{border-radius:2px;font-size:9px;padding:1px 3px}.monthly-add-btn{font-size:10px;height:18px;width:18px}.monthly-more-indicator{font-size:9px}}.about-container{line-height:1.6;margin:0 auto;max-width:900px;padding:20px}.about-container h1{color:#62acc0;margin-bottom:30px;text-align:center}.about-container h2{font-size:1.5em;margin-top:30px}.about-container h2,.about-container p{color:var(--text-primary);margin-bottom:15px}.about-section{margin-bottom:10px}.about-feature-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));margin-top:10px}.about-feature-card{align-items:center;background:#fff;background:var(--card-bg,#fff);border:1px solid #e0e0e0;border:1px solid var(--border-color,#e0e0e0);border-radius:14px;cursor:default;display:flex;flex-direction:column;padding:20px 12px 16px;text-align:center;transition:transform .2s ease,box-shadow .2s ease}.about-feature-card:hover{box-shadow:0 6px 20px #0000001f;transform:translateY(-4px)}[data-theme=dark] .about-feature-card:hover{box-shadow:0 6px 20px #0006}.about-feature-icon{align-items:center;border-radius:16px;color:#fff;display:flex;flex-shrink:0;font-size:28px;height:56px;justify-content:center;margin-bottom:12px;width:56px}.about-feature-name{color:var(--text-primary);font-size:.95em;font-weight:700;line-height:1.3;margin-bottom:6px}.about-feature-desc{color:#6c757d;color:var(--text-secondary,#6c757d);font-size:.78em;line-height:1.4}.about-ai-notice{background-color:#f8f9fa;background-color:var(--card-bg,#f8f9fa);border:1px solid #dee2e6;border:1px solid var(--border-color,#dee2e6);border-radius:8px;padding:16px 20px}.about-ai-disclaimer{color:#6c757d;color:var(--text-secondary,#6c757d);font-size:.9em}.about-link{background-color:var(--sidebar-bg);border-radius:5px;color:var(--sidebar-text);display:inline-block;padding:8px 16px;text-decoration:none;transition:background-color .3s ease}.about-link:hover{background-color:var(--sidebar-hover)}.about-back-btn{background-color:var(--sidebar-bg);border-radius:5px;color:var(--sidebar-text);display:inline-block;margin-top:20px;padding:10px 20px;text-decoration:none;transition:background-color .3s ease}.about-back-btn:hover{background-color:var(--sidebar-hover)}@media (max-width:768px){.about-container{padding:10px}.about-container h1{font-size:1.5em;margin-bottom:20px}.about-container h2{font-size:1.2em;margin-bottom:10px;margin-top:20px}.about-container p{font-size:.95em}.about-feature-grid{gap:12px;grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.about-back-btn{box-sizing:border-box;display:block;min-height:44px;padding:12px 20px;text-align:center}}@media (max-width:480px){.about-container h1{font-size:1.3em}.about-container h2{font-size:1.1em}.about-feature-grid{gap:10px;grid-template-columns:repeat(3,1fr)}.about-feature-card{padding:14px 8px 12px}.about-feature-icon{border-radius:12px;font-size:22px;height:46px;margin-bottom:8px;width:46px}.about-feature-name{font-size:.82em}.about-feature-desc{font-size:.7em}}.personal-info-container{background-color:var(--card-bg);border-radius:8px;box-shadow:0 2px 4px var(--card-shadow);margin:2rem auto;max-width:600px;padding:2rem}.personal-info-container h2{color:var(--text-primary);margin-bottom:2rem;text-align:center}.personal-info-container h3{color:var(--text-primary);margin-bottom:1rem}.personal-info-container .form-group{margin-bottom:1.5rem}.personal-info-container .form-group label{color:var(--text-secondary);display:block;font-weight:500;margin-bottom:.5rem}.personal-info-container .form-group input{background-color:var(--input-bg);border:1px solid var(--border-primary);border-radius:4px;box-sizing:border-box;color:var(--text-primary);font-size:1rem;padding:.8rem;width:100%}.personal-info-container .form-group input:disabled{background-color:var(--bg-tertiary);color:var(--text-muted);cursor:not-allowed}.profile-display{align-items:center;display:flex;gap:16px}.profile-info-display{align-items:center;display:flex;gap:10px}.profile-name-text{color:var(--text-primary);font-size:1rem}.profile-photo-display,.profile-photo-preview{flex-shrink:0}.profile-photo-img{object-fit:cover}.profile-photo-img,.profile-photo-placeholder{border:2px solid var(--border-primary);border-radius:50%;height:80px;width:80px}.profile-photo-placeholder{align-items:center;background:var(--bg-tertiary);color:var(--text-tertiary);display:flex;justify-content:center}.profile-photo-edit{align-items:center;display:flex;gap:16px}.profile-photo-buttons{display:flex;flex-direction:column;gap:8px}.profile-upload-btn{cursor:pointer;text-align:center}.section-divider{border-top:1px solid var(--border-secondary);margin:2rem 0}.password-change-form{margin-top:.5rem}.btn-change-password{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;padding:.8rem;transition:background-color .3s;width:100%}.btn-change-password:hover{background-color:#0056b3}.btn-change-password:disabled{background-color:var(--border-primary);cursor:not-allowed}.danger-zone{background-color:#fff5f5;border:1px solid #f5c6cb;border-radius:8px;padding:1rem}[data-theme=dark] .danger-zone{background-color:#2e1a1a;border-color:#5a2020}.danger-zone h3{color:#dc3545}.delete-warning{color:#856404;font-size:.9rem;margin-bottom:1rem}[data-theme=dark] .delete-warning{color:#d4a84a}.btn-delete-account{background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;padding:.8rem 1.5rem;transition:background-color .3s}.btn-delete-account:hover{background-color:#c82333}.delete-confirm-section{margin-top:1rem}.delete-confirm-section p{color:#dc3545;font-weight:500;margin-bottom:.5rem}.delete-confirm-buttons{display:flex;gap:1rem;margin-top:.5rem}.btn-delete-confirm{background-color:#dc3545;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:.8rem 1.5rem;transition:background-color .3s}.btn-delete-confirm:hover{background-color:#c82333}.btn-delete-confirm:disabled{background-color:var(--border-primary);cursor:not-allowed}.btn-delete-cancel{background-color:#6c757d;border:none;border-radius:4px;color:#fff;cursor:pointer;padding:.8rem 1.5rem;transition:background-color .3s}.btn-delete-cancel:hover{background-color:#545b62}.message{background-color:#d4edda;border:1px solid #c3e6cb;border-radius:4px;color:#155724;margin-bottom:1rem;padding:1rem;text-align:center}[data-theme=dark] .message{background-color:#1a2e1a;border-color:#2e4a2e;color:#4caf50}.button-group{display:flex;gap:1rem;justify-content:center;margin-top:2rem}.button-group button{border:none;border-radius:4px;cursor:pointer;font-size:1rem;padding:.8rem 1.5rem;transition:background-color .3s}.button-group button:first-child{background-color:#007bff;color:#fff}.button-group button:first-child:hover{background-color:#0056b3}.button-group button:last-child{background-color:#6c757d;color:#fff}.button-group button:last-child:hover{background-color:#545b62}.social-accounts-section{display:flex;flex-direction:column;gap:12px}.social-account-row{align-items:center;background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;display:flex;justify-content:space-between;padding:12px 16px;transition:background-color .2s ease}.social-account-row:hover{background-color:var(--hover-bg)}.social-account-info{align-items:center;display:flex;gap:10px}.social-icon-small{height:24px;width:24px}.provider-name{color:var(--text-primary);font-weight:600}.provider-email{color:var(--text-tertiary);font-size:.9rem;margin-left:4px}.btn-link{background-color:#007bff;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:500;padding:6px 16px;transition:background-color .2s ease}.btn-link:hover{background-color:#0056b3}.btn-unlink{background-color:initial;border:1px solid #dc3545;border-radius:6px;color:#dc3545;cursor:pointer;font-size:.9rem;font-weight:500;padding:6px 16px;transition:all .2s ease}.btn-unlink:hover{background-color:#dc3545;color:#fff}.btn-link:disabled,.btn-unlink:disabled{cursor:not-allowed;opacity:.5}@media (max-width:768px){.personal-info-container{margin:1rem;padding:1rem}.delete-confirm-buttons,.social-account-row{flex-direction:column}.social-account-row{align-items:flex-start;gap:10px}.social-account-row .btn-link,.social-account-row .btn-unlink{align-self:flex-end}}@media (max-width:480px){.personal-info-container{margin:.5rem;padding:.75rem}.personal-info-container h2{font-size:1rem}.info-section h3{font-size:.85rem}.info-section label{font-size:.8rem}.info-section input{font-size:12px;padding:6px 8px}.info-section button{font-size:12px;padding:6px 12px}.danger-zone h3{font-size:.85rem}.danger-zone p{font-size:.8rem}.danger-zone button{font-size:12px;padding:6px 12px}}.statistics-container{margin:0 auto;max-width:800px;padding:20px}.time-range-selector{display:flex;gap:10px;margin:20px 0}.time-range-selector button{background:var(--card-bg);border:1px solid var(--border-primary);border-radius:4px;color:var(--text-primary);cursor:pointer;padding:8px 16px}.time-range-selector button.active{background:#007bff;border-color:#007bff;color:#fff}.statistics-summary{background:var(--bg-secondary);border-radius:8px;margin:20px 0;padding:20px;text-align:center}.total-hours{color:var(--link-color);font-size:2em;font-weight:700}.period-display{color:var(--text-secondary);font-size:1rem;margin-top:5px}.share-stats-btn{background:#0000;border:1px solid #007bff;border-radius:20px;color:#007bff;cursor:pointer;font-size:.9rem;margin-top:10px;padding:8px 20px;transition:all .2s}.share-stats-btn:hover{background:#007bff;color:#fff}.statistics-detail{margin-top:30px}.category-breakdown-bar{background-color:var(--border-secondary);border-radius:10px;display:flex;height:20px;margin-top:15px;overflow:hidden;width:100%}.breakdown-segment{height:100%;transition:width .3s ease}.category-section{background:var(--card-bg);border-radius:8px;box-shadow:0 2px 8px var(--card-shadow);margin-bottom:25px;padding:20px;transition:transform .2s}.category-section:hover{box-shadow:0 4px 12px var(--card-shadow);transform:translateY(-2px)}.category-header{align-items:center;border-bottom:1px solid var(--border-secondary);display:flex;justify-content:space-between;margin-bottom:15px;padding-bottom:10px}.category-title-wrapper{align-items:center;display:flex;gap:10px}.category-color-dot{border-radius:50%;display:inline-block;height:12px;width:12px}.category-title{color:var(--text-primary);font-size:1.2rem;font-weight:700}.category-time{color:var(--text-secondary);font-weight:600}.subject-row{align-items:center;display:flex;margin:15px 0}.subject-name{color:var(--text-primary);font-weight:500;width:120px}.subject-hours{background:var(--bg-tertiary);border-radius:15px;flex:1 1;height:30px;margin-left:10px;overflow:hidden;position:relative}.hours-bar{border-radius:15px;height:100%;left:0;position:absolute;top:0;transition:width .6s cubic-bezier(.4,0,.2,1)}.subject-hours span{color:var(--text-primary);font-size:.9rem;font-weight:600;position:absolute;right:15px;text-shadow:0 0 2px #ffffffb3;top:50%;transform:translateY(-50%);z-index:2}.stats-top-bar{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:15px}.stats-top-bar .view-mode-toggle{margin-bottom:0}.stats-export-buttons{display:flex;gap:4px}.stats-export-buttons .pdf-export-btn,.stats-export-buttons .png-export-btn{font-size:11px;margin-right:0;padding:4px 10px}.stats-student-select{background-color:var(--card-bg);border:1px solid var(--border-primary);border-radius:6px;color:var(--text-primary);font-size:14px;padding:6px 10px}.view-mode-toggle{border:1px solid var(--border-primary);border-radius:6px;display:flex;gap:0;margin-bottom:15px;margin-left:auto;margin-right:auto;overflow:hidden;width:-webkit-fit-content;width:fit-content}.view-mode-toggle button{background:var(--card-bg);border:none;color:var(--text-secondary);cursor:pointer;font-size:14px;padding:8px 20px;transition:all .2s}.view-mode-toggle button.active{background:#007bff;color:#fff}.view-mode-toggle button:not(:last-child){border-right:1px solid var(--border-primary)}.achievement-section{margin-top:20px}.achievement-no-data{color:var(--text-muted);font-size:1rem;padding:40px;text-align:center}.achievement-color-dot{border-radius:50%;flex-shrink:0;height:10px;width:10px}.achievement-bar-wrapper{background:var(--bg-tertiary);border-radius:9px;flex:1 1;height:18px;overflow:hidden}.achievement-bar{border-radius:9px;height:100%;transition:width .5s ease}.achievement-section-title{border-bottom:2px solid var(--border-color);color:var(--text-primary);font-size:.95rem;font-weight:700;margin:20px 0 10px;padding-bottom:5px}.achievement-overall{background:var(--card-bg);border-radius:12px;box-shadow:0 2px 8px var(--card-shadow);margin-bottom:8px;padding:16px;text-align:center}.achievement-overall .achievement-section-title{border-bottom:none;margin-top:0;padding-bottom:0}.achievement-overall-rate{font-size:2.2rem;font-weight:800;margin:4px 0 12px}.achievement-overall-bars{display:flex;flex-direction:column;gap:8px}.achievement-overall-item{align-items:center;display:flex;gap:8px}.achievement-overall-label{color:var(--text-secondary);flex-shrink:0;font-size:.8rem;font-weight:600;text-align:right;white-space:nowrap;width:64px}.achievement-overall-value{flex-shrink:0;font-size:.85rem;font-weight:700;text-align:left;width:40px}.achievement-bar-schedule{background-color:#5c6bc0}.achievement-bar-todo{background-color:#26a69a}.achievement-overall-item:has(.achievement-bar-schedule) .achievement-overall-value{color:#5c6bc0}.achievement-overall-item:has(.achievement-bar-todo) .achievement-overall-value{color:#26a69a}.achievement-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.achievement-card{background:var(--card-bg);border-radius:10px;box-shadow:0 1px 6px var(--card-shadow);padding:12px 14px}.achievement-card-header{align-items:center;display:flex;gap:6px;margin-bottom:8px}.achievement-card-name{font-size:.9rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.achievement-card-rate{font-size:1rem;font-weight:700;margin-left:auto;white-space:nowrap}.achievement-card-progress{margin-bottom:6px}.achievement-card-progress .achievement-bar-wrapper{border-radius:3px;height:6px}.achievement-card-progress .achievement-bar{border-radius:3px}.achievement-card-detail{display:flex;flex-direction:column;gap:4px}.achievement-card-row{align-items:center;display:flex;gap:8px}.achievement-card-label{color:var(--text-tertiary);flex-shrink:0;font-size:.7rem;text-align:right;width:28px}.achievement-card-val{color:var(--text-secondary);flex-shrink:0;font-size:.75rem;font-weight:500;min-width:44px;text-align:right}@media (max-width:768px){.achievement-grid{gap:8px;grid-template-columns:1fr}.achievement-overall{padding:12px}.achievement-overall-rate{font-size:1.8rem}.achievement-overall-label{font-size:.75rem;min-width:32px}}.chart-container{display:flex;justify-content:center;margin:20px 0}.goals-section{margin-top:20px}.goals-header{display:flex;gap:10px;justify-content:flex-end;margin-bottom:16px}.goal-add-btn{align-items:center;display:flex;font-size:.95rem;gap:6px;padding:10px 20px}.goals-list{display:flex;flex-direction:column;gap:16px}.goals-no-data{color:var(--text-muted);font-size:1rem;padding:40px;text-align:center}.goal-item{background:var(--card-bg);border-radius:10px;box-shadow:0 2px 8px var(--card-shadow);padding:18px 20px;transition:transform .2s,box-shadow .2s}.goal-item:hover{box-shadow:0 4px 14px var(--card-shadow);transform:translateY(-2px)}.goal-item.goal-achieved{background:linear-gradient(135deg,#f1f8e9 0,var(--card-bg) 100%);border:2px solid #4caf50}[data-theme=dark] .goal-item.goal-achieved{background:linear-gradient(135deg,#1a2e1a 0,var(--card-bg) 100%)}.goal-item-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.goal-item-info{align-items:center;display:flex;gap:10px}.goal-period-badge{background:#e3f2fd;border-radius:12px;color:#1565c0;display:inline-block;font-size:.75rem;font-weight:600;padding:3px 10px}[data-theme=dark] .goal-period-badge{background:#1a2a45;color:#5ba3f5}.goal-subject-name{color:var(--text-primary);font-size:1rem;font-weight:600}.goal-item-actions{display:flex;gap:6px}.goal-action-btn{align-items:center;border:none;border-radius:50%;cursor:pointer;display:flex;font-size:14px;height:30px;justify-content:center;transition:background-color .2s;width:30px}.goal-edit-btn{background:var(--btn-secondary-bg);color:var(--text-secondary)}.goal-edit-btn:hover{background:var(--btn-secondary-hover)}.goal-delete-btn{background:#fff0f0;color:#f44336}[data-theme=dark] .goal-delete-btn{background:#3a2020}.goal-delete-btn:hover{background:#ffcdd2}[data-theme=dark] .goal-delete-btn:hover{background:#4a2525}.goal-progress-info{align-items:baseline;display:flex;gap:4px;margin-bottom:8px}.goal-actual-hours{color:var(--text-primary);font-size:1.4rem;font-weight:700}.goal-target-hours{color:var(--text-tertiary);font-size:.95rem}.goal-percentage{font-size:1.2rem;font-weight:700;margin-left:auto}.goal-progress-bar-wrapper{background:var(--bg-tertiary);border-radius:7px;height:14px;overflow:hidden;width:100%}.goal-progress-bar{border-radius:7px;height:100%;min-width:2px;transition:width .6s cubic-bezier(.4,0,.2,1)}.goal-congrats{background:#4caf5014;border-radius:6px;color:#4caf50;font-size:.95rem;font-weight:600;margin-top:10px;padding:6px;text-align:center}.goal-period-selector,.stats-period-selector{flex-wrap:wrap;justify-content:center}.goal-custom-period{color:var(--text-tertiary);font-size:.8rem;margin-left:4px}.goal-description{background:var(--bg-tertiary);border-radius:6px;color:var(--text-secondary);font-size:.85rem;line-height:1.4;margin-bottom:8px;padding:6px 10px}.goal-date-fields .goal-date-row{display:flex;gap:12px}.goal-date-input{display:flex;flex:1 1;flex-direction:column;gap:4px}.goal-description-input{font-family:inherit;min-height:48px;resize:vertical}.dialog-field{display:flex;flex-direction:column;gap:6px}.streak-section{margin-top:20px;text-align:center}.streak-display{align-items:center;background:var(--bg-secondary);border-radius:12px;display:flex;gap:10px;justify-content:center;margin:20px 0;padding:24px}.streak-fire-icon{font-size:2.5rem}.streak-current-number{color:#ff6b35;font-size:3rem;font-weight:800}.streak-current-label{color:var(--text-secondary);font-size:1.2rem;font-weight:600}.streak-best{color:var(--text-tertiary);font-size:1rem;margin-bottom:30px}.badge-section-title{color:var(--text-primary);font-size:1.2rem;font-weight:700;margin-bottom:16px;text-align:left}.badge-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(3,1fr)}.badge-card{background:var(--card-bg);border-radius:10px;box-shadow:0 2px 8px var(--card-shadow);padding:16px 12px;text-align:center;transition:transform .2s,box-shadow .2s}.badge-card:hover{box-shadow:0 4px 14px var(--card-shadow);transform:translateY(-2px)}.badge-card.earned{background:linear-gradient(135deg,#fff8e1 0,var(--card-bg) 100%);border:2px solid #ff9800}[data-theme=dark] .badge-card.earned{background:linear-gradient(135deg,#2e2a1a 0,var(--card-bg) 100%)}.badge-card.locked{filter:grayscale(.8);opacity:.5}.badge-icon{font-size:2rem;margin-bottom:8px}.badge-name{color:var(--text-primary);font-size:.9rem;font-weight:700;margin-bottom:4px}.badge-desc{color:var(--text-secondary);font-size:.75rem;line-height:1.3;margin-bottom:6px}.badge-date{color:var(--text-tertiary);font-size:.7rem}.streak-no-badges{color:var(--text-muted);font-size:1rem;padding:40px;text-align:center}@media (max-width:768px){.statistics-container{padding:10px}.custom-range,.time-range-selector{flex-wrap:wrap}.custom-range{width:100%}.subject-name{font-size:.85rem;width:80px}.achievement-bar-label{font-size:.75rem;width:35px}.view-mode-toggle{width:100%}.view-mode-toggle button{flex:1 1;font-size:13px;padding:8px 10px}.goal-item-header{align-items:flex-start;flex-direction:column;gap:8px}.goal-item-actions{align-self:flex-end}.goal-actual-hours{font-size:1.2rem}.badge-grid{gap:10px;grid-template-columns:repeat(2,1fr)}.streak-current-number{font-size:2.2rem}.streak-fire-icon{font-size:2rem}}@media (max-width:480px){.statistics-container{padding:6px}.statistics-container h2{font-size:1rem}.view-mode-toggle button{font-size:11px;padding:5px 6px}.time-range-selector button{font-size:11px;padding:4px 8px}.custom-range input[type=date]{font-size:12px;padding:4px}.custom-range button{font-size:11px;padding:4px 8px}.period-display{font-size:.8rem}.share-stats-btn{font-size:11px;padding:4px 10px}.subject-bar-row{font-size:.8rem}.subject-name{width:60px}.subject-hours,.subject-name{font-size:.75rem}.achievement-overall-rate{font-size:1.6rem}.achievement-section-title{font-size:.85rem}.achievement-card{padding:8px 10px}.achievement-card-name{font-size:.8rem}.achievement-card-rate{font-size:.85rem}.achievement-card-label{font-size:.65rem;width:24px}.achievement-card-val{font-size:.65rem;min-width:36px}.achievement-overall-label{font-size:.7rem;width:52px}.achievement-overall-value{font-size:.75rem}.goal-dialog-form label{font-size:.8rem}.goal-dialog-form input,.goal-dialog-form select{font-size:12px;padding:6px 8px}.goal-dialog-form button{font-size:12px;padding:6px 12px}.goal-item{padding:10px}.goal-item-title{font-size:.85rem}.goal-actual-hours{font-size:1rem}.streak-current-number{font-size:1.6rem}.streak-fire-icon{font-size:1.4rem}.badge-grid{gap:6px}.badge-card{padding:8px}.badge-icon{font-size:1.4rem}.badge-name{font-size:.7rem}}.actual-study-delete-btn{background:none;border:none;border-radius:4px;color:var(--text-tertiary);cursor:pointer;flex-shrink:0;font-size:14px;margin-left:auto;padding:4px 8px;transition:background-color .2s,color .2s}.actual-study-delete-btn:hover{background-color:#fee;color:#f44336}[data-theme=dark] .actual-study-delete-btn:hover{background-color:#3a1a1a;color:#ef5350}.actual-study-sub-row{border-top:1px dashed var(--border-primary);font-size:.85em;padding:4px 0}.actual-study-sub-row .achievement-card-label{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actual-study-sub-row .achievement-card-val{margin-right:4px}.actual-study-sub-row .actual-study-delete-btn{font-size:12px;margin-left:0;padding:2px 6px}.actual-study-badge{border-radius:8px;display:inline-block;flex-shrink:0;font-size:.6rem;font-weight:600;line-height:1.4;padding:1px 6px}.badge-timer{background-color:#e3f2fd;color:#1565c0}[data-theme=dark] .badge-timer{background-color:#1a2a45;color:#5ba3f5}.badge-checkbox{background-color:#e8f5e9;color:#2e7d32}[data-theme=dark] .badge-checkbox{background-color:#1a2e1a;color:#66bb6a}.session-edit-btn{background:none;border:none;border-radius:4px;color:var(--text-tertiary);cursor:pointer;flex-shrink:0;font-size:13px;padding:2px 6px;transition:background-color .2s,color .2s}.session-edit-btn:hover{background-color:#e3f2fd;color:#1565c0}[data-theme=dark] .session-edit-btn:hover{background-color:#1a2a45;color:#5ba3f5}.session-edit-inline{align-items:center;display:inline-flex;font-size:.85em;gap:3px}.session-edit-input{background:#fff;background:var(--card-bg,#fff);border:1px solid #ccc;border:1px solid var(--border-color,#ccc);border-radius:4px;color:var(--text-primary);font-size:.9em;padding:2px 4px;text-align:center;width:36px}.session-edit-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.session-edit-cancel-btn,.session-edit-reset-btn,.session-edit-save-btn{background:none;border:none;border-radius:4px;cursor:pointer;font-size:14px;line-height:1;padding:2px 5px}.session-edit-save-btn{color:#2e7d32}.session-edit-save-btn:hover{background-color:#e8f5e9}.session-edit-cancel-btn{color:#d32f2f}.session-edit-cancel-btn:hover{background-color:#fee}.session-edit-reset-btn{color:#f57c00}.session-edit-reset-btn:hover{background-color:#fff3e0}[data-theme=dark] .session-edit-save-btn:hover{background-color:#1a2e1a}[data-theme=dark] .session-edit-cancel-btn:hover{background-color:#3a1a1a}[data-theme=dark] .session-edit-reset-btn:hover{background-color:#3a2a1a}.session-modified{color:#f57c00;font-style:italic}[data-theme=dark] .session-modified{color:#ffb74d}.login-container{background-color:var(--card-bg);border-radius:16px;box-shadow:0 10px 25px var(--card-shadow);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;margin:80px auto;max-width:400px;padding:40px}.login-container h2{color:var(--text-primary);font-size:28px;font-weight:700;margin-bottom:30px;text-align:center}.login-container form div{margin-bottom:20px}.login-container label{color:var(--text-secondary);display:block;font-size:14px;font-weight:500;margin-bottom:8px}.login-container input{background-color:var(--input-bg);border:2px solid var(--border-secondary);border-radius:8px;box-sizing:border-box;color:var(--text-primary);font-size:16px;outline:none;padding:12px 16px;transition:all .2s ease;width:100%}.login-container input:focus{background-color:var(--input-focus-bg);border-color:#007bff;box-shadow:0 0 0 4px #007bff1a}.login-container button{background:linear-gradient(135deg,#007bff,#0056b3);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:10px;padding:14px;transition:transform .1s ease,box-shadow .2s ease;width:100%}.login-container button:hover{box-shadow:0 4px 12px #007bff33;transform:translateY(-1px)}.login-container button:active{transform:translateY(0)}.error{background-color:#fff5f5;border:1px solid #ffebeb;border-radius:6px;color:#dc3545;font-size:14px;margin-bottom:20px;padding:12px;text-align:center}[data-theme=dark] .error{background-color:#3a2020;border-color:#5a2020}.login-container p{color:var(--text-secondary);font-size:14px}.login-container span{font-weight:500}.social-login-divider{align-items:center;color:var(--text-muted);display:flex;font-size:13px;margin:24px 0 20px}.social-login-divider:after,.social-login-divider:before{border-bottom:1px solid var(--border-primary);content:"";flex:1 1}.social-login-divider:before{margin-right:12px}.social-login-divider:after{margin-left:12px}.social-login-buttons{display:flex;flex-direction:column;gap:10px}.social-btn{align-items:center;border:1px solid var(--border-primary);border-radius:8px;cursor:pointer;display:flex;font-size:15px;font-weight:500;gap:10px;justify-content:center;padding:12px;transition:background-color .2s ease,box-shadow .2s ease;width:100%}.social-btn:hover{box-shadow:0 2px 8px var(--card-shadow)}.google-btn{background-color:var(--card-bg);color:var(--text-primary)}.google-btn:hover{background-color:var(--hover-bg)}.social-icon{height:20px;width:20px}.privacy-consent-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.privacy-consent-label{align-items:center;color:var(--text-primary);cursor:pointer;display:flex;font-size:14px;gap:8px}.privacy-consent-label input[type=checkbox]{accent-color:#007bff;cursor:pointer;height:18px;width:18px}.privacy-link{color:var(--link-color);font-size:12px;margin-left:26px;text-decoration:underline}.privacy-link:hover{color:#0056b3}@media (max-width:768px){.login-container{margin:40px 20px;max-width:360px;padding:30px 24px}.login-container h2{font-size:24px;margin-bottom:24px}.login-container form div{margin-bottom:16px}.login-container button{padding:12px}.social-login-divider{margin:20px 0 16px}}@media (max-width:480px){.login-container{border-radius:12px;margin:20px 16px;max-width:100%;padding:24px 20px}.login-container h2{font-size:22px;margin-bottom:20px}.login-container input{font-size:16px;padding:12px 14px}.login-container button{font-size:15px;min-height:44px;padding:14px}.social-btn{font-size:14px;min-height:44px;padding:12px}.error{padding:10px}.error,.privacy-consent-label{font-size:13px}.privacy-link{font-size:11px}}:root{--toastify-color-light:#fff;--toastify-color-dark:#121212;--toastify-color-info:#3498db;--toastify-color-success:#07bc0c;--toastify-color-warning:#f1c40f;--toastify-color-error:#e74d3c;--toastify-color-transparent:#ffffffb3;--toastify-icon-color-info:var(--toastify-color-info);--toastify-icon-color-success:var(--toastify-color-success);--toastify-icon-color-warning:var(--toastify-color-warning);--toastify-icon-color-error:var(--toastify-color-error);--toastify-container-width:fit-content;--toastify-toast-width:320px;--toastify-toast-offset:16px;--toastify-toast-top:max(var(--toastify-toast-offset),env(safe-area-inset-top));--toastify-toast-right:max(var(--toastify-toast-offset),env(safe-area-inset-right));--toastify-toast-left:max(var(--toastify-toast-offset),env(safe-area-inset-left));--toastify-toast-bottom:max(var(--toastify-toast-offset),env(safe-area-inset-bottom));--toastify-toast-background:#fff;--toastify-toast-padding:14px;--toastify-toast-min-height:64px;--toastify-toast-max-height:800px;--toastify-toast-bd-radius:6px;--toastify-toast-shadow:0px 4px 12px #0000001a;--toastify-font-family:sans-serif;--toastify-z-index:9999;--toastify-text-color-light:#757575;--toastify-text-color-dark:#fff;--toastify-text-color-info:#fff;--toastify-text-color-success:#fff;--toastify-text-color-warning:#fff;--toastify-text-color-error:#fff;--toastify-spinner-color:#616161;--toastify-spinner-color-empty-area:#e0e0e0;--toastify-color-progress-light:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);--toastify-color-progress-dark:#bb86fc;--toastify-color-progress-info:var(--toastify-color-info);--toastify-color-progress-success:var(--toastify-color-success);--toastify-color-progress-warning:var(--toastify-color-warning);--toastify-color-progress-error:var(--toastify-color-error);--toastify-color-progress-bgo:0.2}.Toastify__toast-container{box-sizing:border-box;color:#fff;display:flex;flex-direction:column;position:fixed;-webkit-transform:translateZ(9999);-webkit-transform:translateZ(var(--toastify-z-index));width:-webkit-fit-content;width:fit-content;width:var(--toastify-container-width);z-index:9999;z-index:var(--toastify-z-index)}.Toastify__toast-container--top-left{left:max(16px,env(safe-area-inset-left));left:var(--toastify-toast-left);top:max(16px,env(safe-area-inset-top));top:var(--toastify-toast-top)}.Toastify__toast-container--top-center{align-items:center;left:50%;top:max(16px,env(safe-area-inset-top));top:var(--toastify-toast-top);transform:translateX(-50%)}.Toastify__toast-container--top-right{align-items:end;right:max(16px,env(safe-area-inset-right));right:var(--toastify-toast-right);top:max(16px,env(safe-area-inset-top));top:var(--toastify-toast-top)}.Toastify__toast-container--bottom-left{bottom:max(16px,env(safe-area-inset-bottom));bottom:var(--toastify-toast-bottom);left:max(16px,env(safe-area-inset-left));left:var(--toastify-toast-left)}.Toastify__toast-container--bottom-center{align-items:center;bottom:max(16px,env(safe-area-inset-bottom));bottom:var(--toastify-toast-bottom);left:50%;transform:translateX(-50%)}.Toastify__toast-container--bottom-right{align-items:end;bottom:max(16px,env(safe-area-inset-bottom));bottom:var(--toastify-toast-bottom);right:max(16px,env(safe-area-inset-right));right:var(--toastify-toast-right)}@media only screen and (max-width:480px){.Toastify__toast-container{left:env(safe-area-inset-left);margin:0;width:100vw}.Toastify__toast-container--top-center,.Toastify__toast-container--top-left,.Toastify__toast-container--top-right{top:env(safe-area-inset-top);transform:translateX(0)}.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-right{bottom:env(safe-area-inset-bottom);transform:translateX(0)}.Toastify__toast-container--rtl{left:auto;right:env(safe-area-inset-right)}.Toastify__toast{--toastify-toast-width:100%;border-radius:0;margin-bottom:0}}.Toastify__toast{--y:0;align-items:center;border-radius:6px;border-radius:var(--toastify-toast-bd-radius);box-shadow:0 4px 12px #0000001a;box-shadow:var(--toastify-toast-shadow);box-sizing:border-box;display:flex;flex:1 1 auto;font-family:sans-serif;font-family:var(--toastify-font-family);margin-bottom:1rem;max-height:800px;max-height:var(--toastify-toast-max-height);min-height:64px;min-height:var(--toastify-toast-min-height);padding:14px;padding:var(--toastify-toast-padding);position:relative;touch-action:none;word-break:break-word;z-index:0}.Toastify__toast,.Toastify__toast-container[data-stacked=true]{width:320px;width:var(--toastify-toast-width)}.Toastify__toast--stacked{position:absolute;transform:translate3d(0,var(--y),0) scale(var(--s));transition:transform .3s;width:100%}.Toastify__toast--stacked[data-collapsed] .Toastify__close-button,.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body{transition:opacity .1s}.Toastify__toast--stacked[data-collapsed=false]{overflow:visible}.Toastify__toast--stacked[data-collapsed=true]:not(:last-child)>*{opacity:0}.Toastify__toast--stacked:after{bottom:100%;content:"";height:calc(var(--g)*1px);left:0;position:absolute;right:0}.Toastify__toast--stacked[data-pos=top]{top:0}.Toastify__toast--stacked[data-pos=bot]{bottom:0}.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before{transform-origin:top}.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before{transform-origin:bottom}.Toastify__toast--stacked:before{bottom:0;content:"";height:100%;left:0;position:absolute;right:0;transform:scaleY(3);z-index:-1}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--close-on-click{cursor:pointer}.Toastify__toast-icon{-webkit-margin-end:10px;display:flex;flex-shrink:0;margin-inline-end:10px;width:22px}.Toastify--animate{animation-duration:.5s;animation-fill-mode:both}.Toastify--animate-icon{animation-duration:.3s;animation-fill-mode:both}.Toastify__toast-theme--dark{background:#121212;background:var(--toastify-color-dark);color:#fff;color:var(--toastify-text-color-dark)}.Toastify__toast-theme--colored.Toastify__toast--default,.Toastify__toast-theme--light{background:#fff;background:var(--toastify-color-light);color:#757575;color:var(--toastify-text-color-light)}.Toastify__toast-theme--colored.Toastify__toast--info{background:#3498db;background:var(--toastify-color-info);color:#fff;color:var(--toastify-text-color-info)}.Toastify__toast-theme--colored.Toastify__toast--success{background:#07bc0c;background:var(--toastify-color-success);color:#fff;color:var(--toastify-text-color-success)}.Toastify__toast-theme--colored.Toastify__toast--warning{background:#f1c40f;background:var(--toastify-color-warning);color:#fff;color:var(--toastify-text-color-warning)}.Toastify__toast-theme--colored.Toastify__toast--error{background:#e74d3c;background:var(--toastify-color-error);color:#fff;color:var(--toastify-text-color-error)}.Toastify__progress-bar-theme--light{background:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55);background:var(--toastify-color-progress-light)}.Toastify__progress-bar-theme--dark{background:#bb86fc;background:var(--toastify-color-progress-dark)}.Toastify__progress-bar--info{background:#3498db;background:var(--toastify-color-progress-info)}.Toastify__progress-bar--success{background:#07bc0c;background:var(--toastify-color-progress-success)}.Toastify__progress-bar--warning{background:#f1c40f;background:var(--toastify-color-progress-warning)}.Toastify__progress-bar--error{background:#e74d3c;background:var(--toastify-color-progress-error)}.Toastify__progress-bar-theme--colored.Toastify__progress-bar--error,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--success,.Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning{background:#ffffffb3;background:var(--toastify-color-transparent)}.Toastify__close-button{background:#0000;border:none;color:#fff;cursor:pointer;opacity:.7;outline:none;padding:0;position:absolute;right:6px;top:6px;transition:.3s ease;z-index:1}.Toastify__toast--rtl .Toastify__close-button{left:6px;right:auto}.Toastify__close-button--light{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:focus,.Toastify__close-button:hover{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{bottom:0;height:100%;left:0;opacity:.7;position:absolute;transform-origin:left;width:100%;z-index:1}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{border-bottom-left-radius:0;left:auto;right:0;transform-origin:right}.Toastify__progress-bar--wrp{border-bottom-left-radius:6px;border-bottom-left-radius:var(--toastify-toast-bd-radius);border-bottom-right-radius:6px;border-bottom-right-radius:var(--toastify-toast-bd-radius);bottom:0;height:5px;left:0;overflow:hidden;position:absolute;width:100%}.Toastify__progress-bar--wrp[data-hidden=true]{opacity:0}.Toastify__progress-bar--bg{height:100%;opacity:.2;opacity:var(--toastify-color-progress-bgo);width:100%}.Toastify__spinner{animation:Toastify__spin .65s linear infinite;border:2px solid #e0e0e0;border-color:var(--toastify-spinner-color-empty-area);border-radius:100%;border-right-color:#616161;border-right-color:var(--toastify-spinner-color);box-sizing:border-box;height:20px;width:20px}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,var(--y),0)}to{opacity:0;transform:translate3d(2000px,var(--y),0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,var(--y),0)}to{opacity:0;transform:translate3d(-2000px,var(--y),0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,calc(var(--y) - 10px),0)}40%,45%{opacity:1;transform:translate3d(0,calc(var(--y) + 20px),0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--bottom-left,.Toastify__bounce-enter--top-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--bottom-right,.Toastify__bounce-enter--top-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--bottom-left,.Toastify__bounce-exit--top-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--bottom-right,.Toastify__bounce-exit--top-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:translate3d(0,var(--y),0) scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{animation-timing-function:ease-in;opacity:0;transform:perspective(400px) rotateX(90deg)}40%{animation-timing-function:ease-in;transform:perspective(400px) rotateX(-20deg)}60%{opacity:1;transform:perspective(400px) rotateX(10deg)}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:translate3d(0,var(--y),0) perspective(400px)}30%{opacity:1;transform:translate3d(0,var(--y),0) perspective(400px) rotateX(-20deg)}to{opacity:0;transform:translate3d(0,var(--y),0) perspective(400px) rotateX(90deg)}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translate3d(0,var(--y),0)}}@keyframes Toastify__slideOutRight{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(110%,var(--y),0);visibility:hidden}}@keyframes Toastify__slideOutLeft{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(-110%,var(--y),0);visibility:hidden}}@keyframes Toastify__slideOutDown{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(0,500px,0);visibility:hidden}}@keyframes Toastify__slideOutUp{0%{transform:translate3d(0,var(--y),0)}to{transform:translate3d(0,-500px,0);visibility:hidden}}.Toastify__slide-enter--bottom-left,.Toastify__slide-enter--top-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--bottom-right,.Toastify__slide-enter--top-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--bottom-left,.Toastify__slide-exit--top-left{animation-duration:.3s;animation-name:Toastify__slideOutLeft;animation-timing-function:ease-in}.Toastify__slide-exit--bottom-right,.Toastify__slide-exit--top-right{animation-duration:.3s;animation-name:Toastify__slideOutRight;animation-timing-function:ease-in}.Toastify__slide-exit--top-center{animation-duration:.3s;animation-name:Toastify__slideOutUp;animation-timing-function:ease-in}.Toastify__slide-exit--bottom-center{animation-duration:.3s;animation-name:Toastify__slideOutDown;animation-timing-function:ease-in}@keyframes Toastify__spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.admin-container{box-sizing:border-box;margin:20px auto;max-width:1200px;min-width:360px;padding:20px;text-align:left;width:90%}.admin-tabs{border-bottom:2px solid var(--border-color);display:flex;gap:4px;margin-bottom:20px;overflow-x:auto;padding-bottom:0}.admin-tab{background:none;border:none;border-bottom:2px solid #0000;color:var(--text-secondary);cursor:pointer;font-size:14px;font-weight:500;margin-bottom:-2px;padding:10px 18px;transition:all .2s;white-space:nowrap}.admin-tab:hover{color:var(--text-primary)}.admin-tab.active{border-bottom-color:#2196f3;color:#2196f3;font-weight:600}.admin-section{background:var(--card-bg);border-radius:8px;box-shadow:0 2px 4px var(--card-shadow);padding:20px}.admin-section h2{color:var(--text-primary);font-size:1.2rem;margin:0 0 16px}.dashboard-cards{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.dashboard-card{background:var(--hover-bg);border-radius:10px;padding:18px;text-align:center;transition:transform .2s}.dashboard-card:hover{transform:translateY(-2px)}.dashboard-card-icon{font-size:28px;margin-bottom:8px}.dashboard-card-value{color:var(--text-primary);font-size:24px;font-weight:700;margin-bottom:4px}.dashboard-card-label{color:var(--text-secondary);font-size:13px}.dashboard-charts{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(2,1fr);margin-top:20px}.dashboard-chart-card{background:var(--hover-bg);border-radius:10px;padding:16px}.chart-card-wide{grid-column:1/-1}.dashboard-chart-card h3{color:var(--text-primary);font-size:14px;font-weight:600;margin:0 0 12px}.mapping-run-btn{background:var(--card-bg);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer;font-size:12px;padding:4px 10px;transition:all .2s;white-space:nowrap}.mapping-run-btn:hover:not(:disabled){background:var(--hover-bg);color:var(--text-primary)}.mapping-run-btn:disabled{cursor:default;opacity:.5}.mapping-section{background:var(--hover-bg);border-radius:10px;margin-top:20px;padding:16px}.mapping-section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.mapping-section-header h3{color:var(--text-primary);font-size:14px;font-weight:600;margin:0}.mapping-table-wrapper{overflow-x:auto}.mapping-table td,.mapping-table th{font-size:13px;padding:6px 10px}.mapping-originals{color:var(--text-secondary);font-size:12px;max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-search-bar{display:flex;gap:8px;margin-bottom:16px}.admin-search-input{background:var(--card-bg);border:1px solid var(--border-color);border-radius:6px;box-sizing:border-box;color:var(--text-primary);flex:1 1;font-size:14px;padding:8px 12px}.admin-search-input::placeholder{color:var(--text-secondary)}.admin-search-btn{background:#2196f3;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background .2s;white-space:nowrap}.admin-search-btn:hover{background:#1976d2}.admin-table-wrapper{margin-bottom:12px;overflow-x:auto}.admin-table{border-collapse:collapse;font-size:14px;width:100%}.admin-table th{border-bottom:2px solid var(--border-color);color:var(--text-secondary);font-weight:600;padding:10px 12px;text-align:left;white-space:nowrap}.admin-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);padding:10px 12px}.admin-table-row{cursor:pointer;transition:background .15s}.admin-table-row:hover{background:var(--hover-bg)}.admin-table-row.selected{background:#2196f31a}.admin-table-row.disabled td{opacity:.5}.status-badge{border-radius:10px;display:inline-block;font-size:12px;font-weight:600;padding:2px 8px}.status-badge.active{background:#4caf5026;color:#4caf50}.status-badge.inactive{background:#f4433626;color:#f44336}.admin-pagination{align-items:center;color:var(--text-primary);display:flex;font-size:14px;gap:12px;justify-content:center;padding:12px 0}.admin-pagination button{background:var(--card-bg);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;padding:6px 12px;transition:all .2s}.admin-pagination button:hover:not(:disabled){background:var(--hover-bg)}.admin-pagination button:disabled{cursor:default;opacity:.4}.user-detail-panel{background:var(--hover-bg);border:1px solid var(--border-color);border-radius:8px;margin-top:20px;padding:20px}.user-detail-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.user-detail-header h3{color:var(--text-primary);margin:0}.user-detail-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:22px;line-height:1;padding:4px 8px}.user-detail-close:hover{color:var(--text-primary)}.user-detail-stats{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-bottom:16px}.user-detail-stat{display:flex;flex-direction:column;gap:2px}.user-detail-stat-label{color:var(--text-secondary);font-size:12px;font-weight:600}.user-detail-section-title,.user-detail-stat span:last-child{color:var(--text-primary);font-size:14px}.user-detail-section-title{margin:16px 0 8px}.user-detail-activity{display:flex;flex-direction:column;gap:6px;max-height:200px;overflow-y:auto}.activity-item{align-items:center;background:var(--card-bg);border-radius:4px;display:flex;font-size:13px;gap:12px;padding:6px 10px}.activity-subject{color:var(--text-primary);font-weight:500;min-width:80px}.activity-time{color:#2196f3;font-weight:600;min-width:60px}.activity-date{color:var(--text-secondary);font-size:12px;margin-left:auto}.user-detail-actions{border-top:1px solid var(--border-color);display:flex;gap:8px;margin-top:16px;padding-top:16px}.user-list{display:flex;flex-direction:column;gap:10px}.user-item{align-items:center;background:var(--hover-bg);border-radius:6px;color:var(--text-primary);cursor:default;display:flex;justify-content:space-between;padding:10px 12px;transition:background-color .2s}.user-item.is-admin{border-left:3px solid #f44336}.user-item-info{align-items:center;display:flex;gap:8px}.user-item-name{font-weight:500}.admin-badge{background:#f44336;border-radius:10px;color:#fff;font-size:11px;font-weight:600;padding:2px 6px}.admin-toggle-btn{border:none;border-radius:4px;cursor:pointer;font-size:12px;font-weight:500;padding:5px 12px;transition:all .2s}.admin-toggle-btn.grant{background:#4caf50;color:#fff}.admin-toggle-btn.grant:hover{background:#388e3c}.admin-toggle-btn.revoke{background:#f44336;color:#fff}.admin-toggle-btn.revoke:hover{background:#c62828}.admin-sub-title{color:var(--text-primary);font-size:14px;font-weight:600;margin:0 0 8px}.admin-sub-title-search{border-top:1px solid var(--border-color);margin-top:20px;padding-top:16px}.admin-loading,.admin-no-results{color:var(--text-secondary);padding:20px 0;text-align:center}.trends-compact-table{border-collapse:collapse;font-size:.85rem;width:100%}.trends-compact-table th{border-bottom:2px solid var(--border-color);color:var(--text-secondary);font-size:.8rem;font-weight:600;padding:6px 8px;text-align:left}.trends-compact-table td{border-bottom:1px solid var(--border-secondary);padding:5px 8px}.trends-compact-table tbody tr:last-child td{border-bottom:none}.trends-label{color:var(--text-primary);min-width:80px;white-space:nowrap}.trends-bar-col{width:50%}.trends-bar-cell{padding-left:4px;padding-right:4px}.trends-bar-bg{background-color:var(--hover-bg);border-radius:3px;height:14px;overflow:hidden}.trends-bar-fill{border-radius:3px;height:100%;min-width:2px;transition:width .3s ease}.trends-num-col{text-align:right;width:60px}.trends-num{font-feature-settings:"tnum";color:var(--text-secondary);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}@media (max-width:768px){.admin-container{min-width:0;min-width:auto;padding:10px;width:95%}.admin-tabs{gap:0}.admin-tab{font-size:13px;padding:8px 12px}.admin-section{padding:14px}.dashboard-cards{gap:10px;grid-template-columns:repeat(2,1fr)}.dashboard-charts{grid-template-columns:1fr}.dashboard-card{padding:14px}.dashboard-card-value{font-size:20px}.admin-table td,.admin-table th{font-size:13px;padding:8px 6px}.user-detail-stats{grid-template-columns:1fr 1fr}.user-detail-actions{flex-direction:column}.admin-toggle-btn{font-size:14px;padding:10px;width:100%}.activity-item{flex-wrap:wrap;gap:4px}.activity-date{margin-left:0;width:100%}}.access-log-filters{margin-bottom:16px}.access-log-filter-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.access-log-filter-row .admin-search-input{flex:none}.access-log-summary{color:var(--text-secondary);font-size:13px}.access-log-table td{font-size:13px}.access-log-action{background:var(--bg-secondary);color:var(--text-primary);font-family:monospace;font-size:12px}.access-log-action,.access-log-method{border-radius:4px;display:inline-block;padding:2px 6px}.access-log-method{color:#fff;font-size:11px;font-weight:600}.method-get{background:#2196f3}.method-post{background:#4caf50}.method-put{background:#ff9800}.method-delete{background:#e91e63}.abac-attr-list{align-items:center;display:flex;flex-wrap:wrap;gap:4px}.abac-attr-badge{background:#e3f2fd;background:var(--accent-bg,#e3f2fd);border-radius:4px;color:#1565c0;color:var(--accent-text,#1565c0);display:inline-block;font-family:monospace;font-size:12px;padding:2px 8px;white-space:nowrap}.abac-attr-toggle{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;color:var(--text-secondary);cursor:pointer;display:inline-block;font-size:11px;padding:3px 10px;transition:all .2s}.abac-attr-toggle.active{background:#e3f2fd;background:var(--accent-bg,#e3f2fd);border-color:#1565c0;border-color:var(--accent-text,#1565c0);color:#1565c0;color:var(--accent-text,#1565c0);font-weight:600}.abac-attr-toggle:hover{opacity:.8}.abac-grant-btns{display:flex;flex-wrap:wrap;gap:6px}@media (max-width:768px){.access-log-filter-row{flex-direction:column;gap:6px}.access-log-filter-row .admin-search-input{max-width:100%!important;width:100%}.access-log-table td,.access-log-table th{font-size:11px;padding:6px 4px}}.bg-manager{background:#fff;background:var(--card-bg,#fff);border:1px solid #e0e0e0;border:1px solid var(--border-color,#e0e0e0);border-radius:12px;box-sizing:border-box;margin:0 auto;padding:20px;width:100%}.bg-manager-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.bg-manager-header h3{color:#1a1a1a;color:var(--text-primary,#1a1a1a);font-size:18px;margin:0}.bg-prompt-area{margin-bottom:20px}.bg-prompt-label{display:block;font-size:13px;font-weight:500;margin-bottom:6px}.bg-prompt-input,.bg-prompt-label{color:#333;color:var(--text-primary,#333)}.bg-prompt-input{background:#fff;background:var(--card-bg,#fff);border:1px solid #ddd;border:1px solid var(--border-color,#ddd);border-radius:8px;box-sizing:border-box;font-family:inherit;font-size:14px;padding:10px 12px;resize:vertical;width:100%}.bg-prompt-input:focus{border-color:#4a90d9;border-color:var(--primary-color,#4a90d9);outline:none}.bg-prompt-input:disabled{opacity:.5}.bg-prompt-hint{color:#888;color:var(--text-secondary,#888);font-size:12px;margin-bottom:10px;margin-top:4px}.bg-btn-group{display:flex;gap:10px}.bg-generate-btn{background:#4a90d9;background:var(--primary-color,#4a90d9);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 24px;white-space:nowrap}.bg-generate-btn:disabled{cursor:not-allowed;opacity:.5}.bg-generate-btn:hover:not(:disabled){opacity:.9}.bg-upload-btn{background:#666;background:var(--text-secondary,#666);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 24px;white-space:nowrap}.bg-upload-btn:hover{opacity:.9}.bg-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.bg-card{background:#f9f9f9;background:var(--card-bg,#f9f9f9);border:1px solid #e0e0e0;border:1px solid var(--border-color,#e0e0e0);border-radius:10px;overflow:hidden;position:relative}.bg-card-image{background:#eee;background:var(--bg-secondary,#eee);display:block;height:140px;object-fit:cover;width:100%}.bg-card-placeholder{align-items:center;background:#f0f0f0;background:var(--bg-secondary,#f0f0f0);color:#888;color:var(--text-secondary,#888);display:flex;font-size:13px;height:140px;justify-content:center;width:100%}.bg-card-info{padding:10px}.bg-card-prompt{color:#666;color:var(--text-secondary,#666);font-size:12px;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bg-card-actions{display:flex;gap:6px}.bg-card-actions button{background:#fff;background:var(--card-bg,#fff);border:1px solid #ddd;border:1px solid var(--border-color,#ddd);border-radius:6px;color:#333;color:var(--text-primary,#333);cursor:pointer;flex:1 1;font-size:12px;padding:6px 8px}.bg-card-actions button:hover{background:#f0f0f0;background:var(--bg-secondary,#f0f0f0)}.bg-card-actions .bg-btn-active{background:#4caf50;border-color:#4caf50;color:#fff}.bg-card-actions .bg-btn-inactive-sel{background:#9e9e9e;border-color:#9e9e9e;color:#fff}.bg-card-actions .bg-btn-dimmed{cursor:default;opacity:.3}.bg-card-actions .bg-btn-delete{background:#f44336;border-color:#f44336;color:#fff}.bg-card-status{border-radius:4px;font-size:11px;font-weight:600;padding:3px 8px;position:absolute;right:8px;top:8px}.bg-status-generating{background:#ff9800;color:#fff}.bg-status-completed{background:#4caf50;color:#fff}.bg-status-failed{background:#f44336;color:#fff}.bg-card-image{cursor:pointer}.bg-empty{color:#888;color:var(--text-secondary,#888);font-size:14px;padding:32px;text-align:center}.bg-preview-overlay{align-items:center;background:#000000b3;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:9999}.bg-preview-content{max-height:90vh;max-width:90vw;position:relative}.bg-preview-content img{border-radius:8px;display:block;max-height:80vh;max-width:90vw;object-fit:contain}.bg-preview-prompt{color:#ddd;font-size:13px;margin-top:10px;padding:0 10px;text-align:center}.bg-preview-close{align-items:center;background:#333;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:20px;height:32px;justify-content:center;line-height:1;position:absolute;right:-12px;top:-12px;width:32px}.bg-preview-close:hover{background:#555}.announcements-container{background-color:var(--card-bg);border-radius:8px;box-shadow:0 2px 4px var(--card-shadow);margin:2rem auto;max-width:800px;padding:1.5rem}.announcements-container h2{color:var(--text-primary);font-size:1.5rem;margin-bottom:1.5rem;text-align:center}.ann-list{display:flex;flex-direction:column}.ann-list-item{align-items:center;border-bottom:1px solid var(--border-secondary);cursor:pointer;display:flex;justify-content:space-between;padding:12px 16px;transition:background-color .15s}.ann-list-item:hover{background-color:var(--hover-bg)}.ann-list-item:last-child{border-bottom:none}.ann-list-item.ann-pinned{background-color:var(--hover-bg)}.ann-list-item-left{align-items:center;display:flex;flex:1 1;gap:8px;min-width:0}.ann-list-title{color:var(--text-primary);font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ann-list-date{color:var(--text-tertiary);font-size:.85rem;margin-left:12px;white-space:nowrap}.ann-type-badge{border-radius:4px;display:inline-block;font-size:.75rem;font-weight:600;padding:2px 8px;white-space:nowrap}.ann-type-post{background-color:#e3f2fd;color:#1565c0}.ann-type-popup{background-color:#fff3e0;color:#e65100}[data-theme=dark] .ann-type-post{background-color:#1a3a5c;color:#90caf9}[data-theme=dark] .ann-type-popup{background-color:#4e2a00;color:#ffcc80}.ann-pin-badge{font-size:.9rem}.ann-empty{color:var(--text-tertiary);padding:2rem;text-align:center}.ann-back-btn{background:none;border:none;color:#2196f3;cursor:pointer;font-size:.95rem;margin-bottom:1rem;padding:0}.ann-back-btn:hover{text-decoration:underline}.ann-detail h2{margin-bottom:.5rem;text-align:left}.ann-detail-meta{align-items:center;border-bottom:1px solid var(--border-secondary);color:var(--text-tertiary);display:flex;font-size:.9rem;gap:12px;margin-bottom:1.5rem;padding-bottom:1rem}.ann-detail-image{margin-bottom:1.5rem;text-align:center}.ann-detail-image img{border-radius:8px;max-height:400px;max-width:100%;object-fit:contain}.ann-detail-popup-text{background-color:var(--hover-bg);border-left:3px solid #ff9800;border-radius:0 4px 4px 0;color:var(--text-secondary);line-height:1.6;margin-bottom:1.5rem;padding:12px 16px}.ann-detail-content{color:var(--text-secondary);line-height:1.7}.ann-detail-content p{margin:.3rem 0}.ann-form{gap:16px;margin-bottom:2rem}.ann-form,.ann-form-row{display:flex;flex-direction:column}.ann-form-row{gap:6px}.ann-form-row label{color:var(--text-primary);font-size:.9rem;font-weight:600}.ann-form-row input[type=text],.ann-form-row select,.ann-form-row textarea{background-color:var(--card-bg);border:1px solid var(--border-secondary);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:.95rem;padding:8px 12px}.ann-form-row textarea{min-height:100px;resize:vertical}.ann-form-row input:focus,.ann-form-row select:focus,.ann-form-row textarea:focus{border-color:#2196f3;outline:none}.ann-form-checks{flex-direction:row;gap:20px}.ann-checkbox-label{align-items:center;cursor:pointer;display:flex;font-weight:400!important;gap:6px}.ann-image-upload{align-items:center;display:flex;gap:8px}.ann-uploading{color:var(--text-tertiary);font-size:.85rem}.ann-image-preview{display:inline-block;margin-top:8px;position:relative}.ann-image-preview img{border:1px solid var(--border-secondary);border-radius:6px;max-height:200px;max-width:300px}.ann-remove-image{align-items:center;background:#0009;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:12px;height:24px;justify-content:center;position:absolute;right:4px;top:4px;width:24px}.ann-form-actions{display:flex;gap:8px}.ann-btn{border:none;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;padding:8px 16px;transition:opacity .15s}.ann-btn:hover{opacity:.85}.ann-btn-primary{background-color:#2196f3;color:#fff}.ann-btn-secondary{background-color:var(--hover-bg);color:var(--text-primary)}.ann-btn-danger{background-color:#f44336;color:#fff}.ann-btn-small{font-size:.8rem;padding:4px 10px}.ann-admin-list{display:flex;flex-direction:column;gap:8px}.ann-admin-item{background-color:var(--card-bg);border:1px solid var(--border-secondary);border-radius:8px;padding:12px 16px}.ann-admin-item.ann-inactive{opacity:.6}.ann-admin-item-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.ann-admin-item-title{color:var(--text-primary);font-weight:500}.ann-admin-item-meta,.ann-admin-item-title{align-items:center;display:flex;gap:8px}.ann-date{color:var(--text-tertiary);font-size:.85rem}.ann-admin-item-actions{display:flex;gap:6px}.ann-popup-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:10000}.ann-popup-container{background-color:var(--card-bg);border-radius:12px;box-shadow:0 8px 32px #0000004d;display:flex;flex-direction:column;max-height:80vh;max-width:500px;position:relative;width:100%}.ann-popup-close{align-items:center;background:none;border:none;border-radius:50%;color:var(--text-tertiary);cursor:pointer;display:flex;font-size:1.2rem;height:32px;justify-content:center;position:absolute;right:12px;top:12px;transition:background-color .15s;width:32px;z-index:1}.ann-popup-close:hover{background-color:var(--hover-bg)}.ann-popup-counter{color:var(--text-tertiary);font-size:.8rem;left:16px;position:absolute;top:14px}.ann-popup-body{flex:1 1;overflow-y:auto;padding:20px}.ann-popup-title{color:var(--text-primary);font-size:1.2rem;margin:8px 0 16px;text-align:center}.ann-popup-image{margin-bottom:16px;text-align:center}.ann-popup-image img{border-radius:8px;max-height:300px;max-width:100%;object-fit:contain}.ann-popup-text{color:var(--text-secondary);font-size:.95rem;line-height:1.6}.ann-popup-text p{margin:.2rem 0}.ann-popup-footer{align-items:center;border-top:1px solid var(--border-secondary);display:flex;justify-content:space-between;padding:12px 20px}.ann-popup-footer-right{display:flex;gap:8px}.ann-popup-dismiss{background:none;border:none;color:var(--text-tertiary);cursor:pointer;font-size:.85rem;text-decoration:underline}.ann-popup-close-btn,.ann-popup-detail,.ann-popup-next{border:none;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:500;padding:6px 14px}.ann-popup-detail{background-color:#2196f3;color:#fff}.ann-popup-close-btn,.ann-popup-next{background-color:var(--hover-bg);color:var(--text-primary)}@media (max-width:768px){.announcements-container{margin:1rem;padding:1rem}.ann-list-item{align-items:flex-start;flex-direction:column;gap:4px}.ann-list-date{margin-left:0}.ann-admin-item-header{align-items:flex-start;flex-direction:column;gap:4px}.ann-admin-item-actions{flex-wrap:wrap}.ann-form-checks{flex-direction:column;gap:8px}.ann-popup-container{max-height:90vh}.ann-popup-footer{flex-direction:column;gap:8px}.ann-popup-footer-right{justify-content:flex-end;width:100%}}.daily-container{margin:0 auto;max-width:800px;padding:20px}.daily-header{align-items:center;background-color:var(--bg-secondary);border-radius:8px;display:flex;justify-content:space-between;margin-bottom:20px;padding:10px}.daily-header button{background-color:var(--sidebar-bg);border:none;border-radius:4px;color:var(--sidebar-text);cursor:pointer;font-size:16px;padding:8px 16px;transition:background-color .3s}.daily-header button:hover{background-color:var(--sidebar-hover)}.daily-header h2{color:var(--text-primary);font-size:1.2em;margin:0}.daily-schedule-list{display:flex;flex-direction:column;gap:15px}.schedule-item{align-items:flex-start;background-color:var(--card-bg);border:1px solid var(--border-primary);border-radius:8px;box-shadow:0 2px 4px var(--card-shadow);display:flex;gap:10px;padding:15px;transition:transform .2s,box-shadow .2s}.schedule-check{cursor:pointer;flex-shrink:0;height:18px;margin-top:2px;width:18px}.schedule-item:hover{box-shadow:0 4px 8px var(--card-shadow);transform:translateY(-2px)}.schedule-time{color:var(--text-secondary);font-size:.9em;margin-bottom:8px}.schedule-content h3{color:var(--text-primary);font-size:1.1em;margin:0 0 5px}.schedule-content p{color:var(--text-secondary);font-size:.9em;margin:0}.no-schedules{background-color:var(--bg-secondary);border-radius:8px;color:var(--text-secondary);padding:20px;text-align:center}.daily-todo-section{background-color:var(--todo-section-bg);border:1px solid var(--todo-section-border);border-radius:8px;margin-bottom:20px;padding:15px}.daily-todo-title{color:var(--text-primary);font-size:1em;margin:0 0 10px}.daily-todo-empty{color:var(--text-tertiary);font-size:.9em;margin:5px 0}.todo-daily-item{align-items:center;background-color:var(--card-bg);border:1px solid var(--border-primary);border-radius:6px;display:flex;gap:10px;margin-bottom:8px;padding:10px 12px;transition:opacity .2s}.todo-daily-color-bar{border-radius:2px;flex-shrink:0;height:28px;width:4px}.todo-daily-content{flex:1 1;min-width:0}.todo-daily-subject{font-size:1.05em;font-weight:600}.todo-daily-subject-sub{color:var(--text-tertiary);display:block;font-size:.82em;margin-top:1px}.schedule-content{text-align:left}.schedule-subject-sub{color:var(--text-tertiary);font-size:.85em;margin:0;text-align:left}.todo-daily-timer-btn{background-color:var(--card-bg);border:1px solid #4caf50;border-radius:4px;color:#4caf50;cursor:pointer;font-size:.8em;padding:4px 10px;transition:background-color .2s;white-space:nowrap}.todo-daily-timer-btn:hover{background-color:#e8f5e9}[data-theme=dark] .todo-daily-timer-btn:hover{background-color:#1a2e1a}.todo-daily-add-btn{background:none;border:1px dashed var(--text-muted);border-radius:6px;color:var(--text-secondary);cursor:pointer;display:block;font-size:.9em;margin-top:4px;padding:8px;transition:background-color .2s;width:100%}.todo-daily-add-btn:hover{background-color:var(--hover-bg);color:var(--text-primary)}@media (max-width:768px){.daily-container{padding:10px}.daily-header{padding:8px}.daily-header button{font-size:14px;min-height:44px;min-width:44px;padding:8px 12px}.daily-header h2{font-size:1em}.schedule-item{padding:12px}.schedule-content h3{font-size:1em}.daily-todo-section{padding:12px}.todo-daily-item{padding:10px}.todo-daily-timer-btn{min-height:44px;padding:8px 12px}.todo-daily-add-btn{min-height:44px;padding:10px}}.checklist-student-select{background-color:var(--card-bg);border:1px solid var(--border-primary);border-radius:6px;color:var(--text-primary);font-size:14px;margin-right:6px;padding:6px 10px}.checklist-top-bar{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:12px}.checklist-export-buttons{display:flex;gap:4px}.checklist-export-buttons .pdf-export-btn,.checklist-export-buttons .png-export-btn,.checklist-export-buttons .share-export-btn{font-size:11px;margin-right:0;padding:4px 10px}.checklist-filter-btn{background-color:var(--card-bg);border:1px solid var(--border-primary);border-radius:6px;color:var(--text-secondary);cursor:pointer;font-size:1.1em;padding:6px 10px;transition:background-color .2s}.checklist-filter-btn:hover{background-color:var(--hover-bg)}.checklist-filter-btn.active{background-color:#e3f2fd;border-color:#2196f3;color:#2196f3}[data-theme=dark] .checklist-filter-btn.active{background-color:#1a2a3a;border-color:#42a5f5;color:#42a5f5}.filter-category-list{display:flex;flex-direction:column;gap:10px;margin:12px 0}.filter-category-item{align-items:center;border-radius:4px;cursor:pointer;display:flex;font-size:1em;gap:10px;padding:6px 4px;transition:background-color .15s}.filter-category-item:hover{background-color:var(--hover-bg)}.filter-category-item input[type=checkbox]{cursor:pointer;height:18px;width:18px}.filter-category-color{border-radius:50%;flex-shrink:0;height:14px;width:14px}.checklist-nav{align-items:center;display:flex;gap:8px;justify-content:center;margin-bottom:10px}.checklist-date-input{background-color:var(--card-bg);border:1px solid var(--border-primary);border-radius:4px;color:var(--text-primary);padding:5px}.checklist-today-btn{background-color:var(--btn-secondary-bg);border:none;border-radius:4px;color:var(--text-primary);cursor:pointer;font-size:14px;padding:5px 12px}.checklist-period-nav{align-items:center;display:flex;gap:8px;justify-content:center;margin-bottom:16px}.checklist-arrow-btn{background:none;border:none;color:var(--text-primary);cursor:pointer;font-size:20px;padding:4px 8px}.checklist-period-label{color:var(--text-primary);font-size:1.15em;margin:0}.checklist-summary{background-color:var(--bg-secondary);border-radius:8px;display:flex;gap:16px;justify-content:center;margin-bottom:16px;padding:10px 16px}.checklist-summary-item{align-items:center;display:flex;gap:6px}.checklist-summary-label{color:var(--text-secondary);font-size:.85em}.checklist-summary-value{color:var(--text-primary);font-size:.95em;font-weight:600}.week-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.week-grid-cell{background-color:var(--card-bg);border:1px solid var(--border-primary);border-radius:8px;min-height:80px;overflow:hidden}.week-grid-cell.today{border-color:#4caf50;box-shadow:0 0 0 1px #4caf50}.week-grid-date-header{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-primary);color:var(--text-primary);font-size:1em;font-weight:600;padding:8px 10px}.week-grid-cell.today .week-grid-date-header{background-color:#e8f5e9;color:#2e7d32}[data-theme=dark] .week-grid-cell.today .week-grid-date-header{background-color:#1a2e1a;color:#66bb6a}.week-grid-items{padding:4px 6px}.week-grid-empty{color:var(--text-tertiary);font-size:.8em;margin:4px 0;text-align:center}.week-grid-item{align-items:center;border-left:3px solid #ccc;border-radius:2px;display:flex;font-size:1em;gap:8px;line-height:1.4;margin-bottom:4px;padding:6px 8px;text-align:left}.week-grid-check{cursor:pointer;flex-shrink:0;height:18px;width:18px}.week-grid-name{color:var(--text-primary);flex:1 1;min-width:0;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.week-grid-time{color:var(--text-tertiary);font-size:.9em}@media (max-width:480px){.week-grid{gap:4px;grid-template-columns:1fr 1fr}.week-grid-cell{min-height:60px}.week-grid-date-header{font-size:.75em;padding:4px 6px}.week-grid-items{padding:2px 4px}.week-grid-item{font-size:.85em;gap:5px;padding:4px 6px}.week-grid-check{height:16px;width:16px}}.month-week-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:1fr 1fr}.month-week-cell{background-color:var(--card-bg);border:1px solid var(--border-primary);border-radius:8px;overflow:hidden}.month-week-header{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-primary);color:var(--text-primary);font-size:1em;font-weight:600;padding:8px 12px}.month-week-items{padding:6px 8px}.checklist-grouped{display:flex;flex-direction:column;gap:16px}.checklist-date-group{background-color:var(--card-bg);border:1px solid var(--border-primary);border-radius:8px;overflow:hidden}.checklist-date-header{background-color:var(--bg-secondary);border-bottom:1px solid var(--border-primary);color:var(--text-primary);font-size:.95em;font-weight:600;padding:8px 14px}.checklist-sub-section{padding:8px 10px}.checklist-sub-section .schedule-item,.checklist-sub-section .todo-daily-item{margin-bottom:6px}.checklist-sub-section .schedule-item:last-child,.checklist-sub-section .todo-daily-item:last-child{margin-bottom:0}@media (max-width:480px){.daily-header h2{font-size:.85em}.daily-header button{font-size:12px;min-height:36px;min-width:36px;padding:6px 8px}.schedule-item{padding:8px}.schedule-content h3{font-size:.85em}.schedule-content p{font-size:.75rem}.daily-todo-section{padding:8px}.daily-todo-section h3{font-size:.85em}.todo-daily-item{font-size:.8rem;padding:6px 8px}.todo-daily-timer-btn{font-size:12px;min-height:36px;padding:4px 8px}.todo-daily-add-btn{font-size:12px;min-height:36px;padding:6px}}.timer-container{margin:0 auto;max-width:600px;padding:20px}.timer-header{margin-bottom:20px}.timer-back-btn{background:none;border:1px solid var(--border-primary);border-radius:4px;color:var(--text-secondary);cursor:pointer;font-size:14px;padding:8px 16px}.timer-back-btn:hover{background:var(--hover-bg)}.timer-no-session{color:var(--text-tertiary);font-size:16px;padding:60px 20px;text-align:center}.timer-main{padding:20px 0 30px;text-align:center}.timer-subject-info{align-items:center;display:flex;gap:10px;justify-content:center;margin-bottom:10px}.timer-subject-color-box{border:1px solid #0003;border-radius:3px;display:inline-block;flex-shrink:0;height:18px;width:18px}.timer-subject-name{color:var(--text-primary);font-size:1.4rem;font-weight:600}.timer-subject-original{color:var(--text-tertiary);font-size:1.1rem;font-weight:400}.timer-schedule-info{color:var(--text-tertiary);font-size:.9rem;margin-bottom:30px}.timer-display{margin:30px 0}.timer-time{background:var(--bg-secondary);border:3px solid var(--border-primary);border-radius:12px;color:var(--text-primary);display:inline-block;font-family:Courier New,Courier,monospace;font-size:4rem;font-weight:700;letter-spacing:4px;padding:20px 40px}.timer-time.paused{animation:pulse-pause 1.5s ease-in-out infinite;border-color:#f0c040;color:var(--text-muted)}@keyframes pulse-pause{0%,to{opacity:1}50%{opacity:.5}}.timer-controls{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin:25px 0}.timer-btn{border:none;border-radius:8px;cursor:pointer;font-size:16px;font-weight:600;padding:12px 28px;transition:all .2s}.timer-btn.start{background:#4caf50;color:#fff}.timer-btn.start:hover{background:#43a047}.timer-btn.pause{background:#ff9800;color:#fff}.timer-btn.pause:hover{background:#f57c00}.timer-btn.resume{background:#2196f3;color:#fff}.timer-btn.resume:hover{background:#1976d2}.timer-btn.stop{background:#f44336;color:#fff}.timer-btn.stop:hover{background:#d32f2f}.timer-btn.cancel{background:#9e9e9e;color:#fff}.timer-btn.cancel:hover{background:#757575}.timer-confirm-stop{align-items:center;display:flex;gap:10px}.timer-confirm-stop span{color:#f44336;font-weight:500}.timer-stats{color:var(--text-secondary);display:flex;font-size:.95rem;gap:30px;justify-content:center;margin-top:10px}.timer-today-section{border-top:1px solid var(--border-secondary);margin-top:30px;padding-top:20px}.timer-today-section h3{color:var(--text-primary);font-size:1.1rem;margin-bottom:15px}.timer-summary-list{display:flex;flex-direction:column;gap:10px;margin-bottom:25px}.timer-summary-item{align-items:center;display:flex;gap:10px}.timer-summary-subject{align-items:center;display:flex;gap:6px;min-width:100px}.timer-summary-color{border-radius:50%;flex-shrink:0;height:10px;width:10px}.timer-summary-bar-wrapper{background:var(--bg-tertiary);border-radius:10px;flex:1 1;height:20px;overflow:hidden}.timer-summary-bar{border-radius:10px;height:100%;transition:width .3s ease}.timer-summary-time{color:var(--text-secondary);font-size:.9rem;font-weight:500;min-width:80px;text-align:right}.timer-summary-total{border-top:1px solid var(--border-secondary);color:var(--text-primary);font-weight:600;padding-top:8px;text-align:right}.timer-timeline{display:flex;flex-direction:column;gap:8px}.timer-timeline-item{align-items:center;background:var(--bg-secondary);border-radius:6px;display:flex;gap:10px;padding:8px 12px}.timer-timeline-color{border-radius:2px;flex-shrink:0;height:24px;width:4px}.timer-timeline-time{color:var(--text-secondary);font-size:.85rem;min-width:100px}.timer-timeline-subject{color:var(--text-primary);flex:1 1;font-weight:500}.timer-timeline-duration{color:var(--text-tertiary);font-size:.85rem}.timer-no-data{color:var(--text-muted);font-size:.9rem;padding:15px;text-align:center}@media (max-width:768px){.timer-container{padding:10px}.timer-time{font-size:2.5rem;letter-spacing:2px;padding:15px 25px}.timer-subject-name{font-size:1.1rem}.timer-controls{gap:8px}.timer-btn{font-size:14px;padding:10px 20px}.timer-stats{font-size:.85rem;gap:15px}}@media (max-width:480px){.timer-time{border-width:2px;font-size:1.8rem;letter-spacing:1px;padding:10px 16px}.timer-subject-name{font-size:.95rem}.timer-subject-original{font-size:.85rem}.timer-schedule-info{font-size:.8rem;margin-bottom:16px}.timer-display{margin:16px 0}.timer-controls{gap:6px;margin:14px 0}.timer-btn{border-radius:6px;font-size:12px;padding:8px 14px}.timer-back-btn{font-size:12px;padding:4px 8px}.timer-no-session{font-size:.9rem;padding:30px 12px}.timer-stats{font-size:.8rem;gap:10px}.timer-stat-value{font-size:1rem}.today-summary h3{font-size:.9rem}.summary-item{font-size:.8rem;padding:8px}.subject-select{font-size:13px;padding:8px}}.subject-management-container{color:var(--text-primary);display:flex;flex-direction:column;gap:30px;margin:0 auto;max-width:1200px;padding:20px}.management-section{background-color:var(--card-bg);border-radius:8px;box-shadow:0 2px 4px var(--card-shadow);padding:20px}.management-header{border-bottom:2px solid var(--border-secondary);margin-bottom:20px;padding-bottom:10px}.add-form{align-items:flex-end;background-color:var(--bg-tertiary);border-radius:6px;display:flex;flex-wrap:wrap;gap:25px;margin-bottom:20px;padding:15px}.form-group{display:flex;flex-direction:column;gap:5px}.form-group label{font-size:.9em;font-weight:600}.management-input{background-color:var(--input-bg);color:var(--text-primary);font-size:14px;padding:8px 12px}.color-input,.management-input{border:1px solid var(--border-primary);border-radius:4px;box-sizing:border-box;height:40px}.color-input{padding:2px;width:60px}.color-group{margin-left:20px}.management-btn{align-items:center;background-color:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-weight:600;height:40px;padding:0 16px;transition:background-color .2s}.management-btn:hover{background-color:#45a049}.delete-btn{background-color:#f44336;font-size:12px;margin-left:auto;padding:5px 10px}.delete-btn:hover{background-color:#da190b}.edit-btn{background-color:#2196f3;font-size:12px;margin-left:10px;padding:5px 10px}.edit-btn:hover{background-color:#0b7dda}.list-container{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.list-item{align-items:center;background-color:var(--card-bg);border:1px solid var(--border-secondary);border-radius:6px;display:flex;padding:10px 15px;transition:box-shadow .2s}.list-item:hover{box-shadow:0 2px 8px var(--card-shadow)}.color-indicator{border:1px solid #0000001a;border-radius:50%;height:20px;margin-right:15px;width:20px}.item-info{display:flex;flex-direction:column;flex-grow:1}.item-title{font-size:16px;font-weight:600}.item-details{color:var(--text-secondary);font-size:12px;margin-top:2px}@media (max-width:768px){.subject-management-container{gap:20px;padding:10px}.add-form,.management-section{padding:12px}.add-form{align-items:stretch;flex-direction:column;gap:12px}.form-group{width:100%}.management-input{box-sizing:border-box;min-height:44px;width:100%}.color-group{margin-left:0}.color-input,.management-btn{min-height:44px;width:100%}.management-btn{justify-content:center}.list-container{gap:10px;grid-template-columns:1fr}.list-item{padding:10px 12px}.delete-btn,.edit-btn{font-size:12px;min-height:44px;min-width:44px;padding:8px 12px}.edit-btn{margin-left:6px}}@media (max-width:480px){.subject-management-container{gap:12px;padding:6px}.management-section{padding:8px}.management-header{margin-bottom:10px;padding-bottom:6px}.management-header h2{font-size:.95rem}.management-header h3{font-size:.85rem}.add-form{gap:8px;padding:8px}.form-group label{font-size:.75em}.management-input{font-size:12px;padding:5px 8px}.color-input,.management-btn,.management-input{height:32px;min-height:32px}.management-btn{font-size:12px;padding:0 10px}.list-container{gap:6px}.list-item{padding:6px 8px}.item-title{font-size:13px}.item-details{font-size:10px}.color-indicator{height:14px;margin-right:8px;width:14px}.delete-btn,.edit-btn{font-size:10px;min-height:28px;min-width:28px;padding:3px 6px;width:auto}.edit-btn{margin-left:4px}}.observer-management-container{margin:0 auto;max-width:800px;padding:20px}.observer-tabs{border-bottom:2px solid var(--border-primary);display:flex;margin-bottom:20px}.observer-tab{background:none;border:none;color:var(--text-tertiary);cursor:pointer;font-size:1.1rem;font-weight:700;padding:10px 20px}.observer-tab.active{border-bottom:3px solid #007bff;color:var(--text-primary)}.observer-section{background:var(--bg-secondary);border-radius:8px;margin-bottom:20px;padding:20px}.observer-section h3{border-bottom:1px solid var(--border-secondary);color:var(--text-primary);margin-bottom:15px;margin-top:0;padding-bottom:10px}.observer-input-group{display:flex;gap:10px;margin-bottom:20px}.observer-input{background-color:var(--input-bg);border:1px solid var(--border-primary);border-radius:4px;color:var(--text-primary);flex:1 1;padding:10px}.observer-btn{background-color:#007bff;border:none;border-radius:4px;color:#fff;cursor:pointer;font-weight:700;padding:10px 20px}.observer-btn:hover{background-color:#0056b3}.observer-btn.remove{background-color:#dc3545}.observer-btn.remove:hover{background-color:#c82333}.observer-btn.accept{background-color:#28a745}.observer-btn.accept:hover{background-color:#218838}.observer-list{list-style:none;margin:0;padding:0}.observer-item{align-items:center;background:var(--card-bg);border:1px solid var(--border-primary);border-radius:4px;display:flex;justify-content:space-between;margin-bottom:10px;padding:15px}.observer-item-info{display:flex;flex-direction:column}.observer-item-name{color:var(--text-primary);font-size:1.1rem;font-weight:700}.observer-item-status{color:var(--text-secondary);font-size:.9rem}.observer-actions{display:flex;gap:10px}.observer-item-with-perms{align-items:stretch;flex-direction:column;gap:10px}.observer-item-header{align-items:center;display:flex;justify-content:space-between}.observer-permissions{border-top:1px dashed var(--border-primary);display:flex;flex-wrap:wrap;gap:16px;padding:8px 0 0}.observer-perm-toggle{align-items:center;color:var(--text-primary);cursor:pointer;display:inline-flex;font-size:.9rem;gap:6px;-webkit-user-select:none;user-select:none}.observer-perm-toggle input[type=checkbox]{accent-color:#007bff;cursor:pointer;height:18px;width:18px}@media (max-width:768px){.observer-management-container{padding:10px}.observer-tabs{gap:0}.observer-tab{font-size:.95rem;min-height:44px;padding:10px 12px}.observer-section{padding:15px}.observer-input-group{flex-direction:column}.observer-input{box-sizing:border-box}.observer-btn,.observer-input{min-height:44px;width:100%}.observer-item{align-items:flex-start;flex-direction:column;gap:10px;padding:12px}.observer-actions{align-self:flex-end}.observer-actions .observer-btn{min-height:44px;padding:10px 16px;width:auto}}@media (max-width:480px){.observer-container{padding:6px}.observer-container h2{font-size:.95rem}.observer-tab{font-size:.8rem;min-height:32px;padding:6px 8px}.observer-section{padding:8px}.observer-section h3{font-size:.85rem}.observer-input{padding:5px 8px}.observer-btn,.observer-input{font-size:12px;min-height:32px}.observer-btn{padding:5px 10px}.observer-item{font-size:.8rem;gap:6px;padding:8px}.observer-actions .observer-btn{font-size:11px;min-height:28px;padding:4px 10px}}.privacy-policy-container{background-color:var(--card-bg);border-radius:8px;box-shadow:0 2px 4px var(--card-shadow);margin:2rem auto;max-width:800px;padding:2rem}.privacy-policy-container h2{color:var(--text-primary);font-size:1.8rem;margin-bottom:.5rem;text-align:center}.privacy-effective-date{color:var(--text-tertiary);font-size:.9rem;margin-bottom:2rem;text-align:center}.privacy-section{margin-bottom:2rem}.privacy-section h3{border-bottom:1px solid var(--border-secondary);color:var(--text-primary);font-size:1.1rem;margin-bottom:.8rem;padding-bottom:.4rem}.privacy-content p{color:var(--text-secondary);font-size:.95rem;line-height:1.7;margin:.3rem 0}.privacy-content p:empty{display:none}.ai-usage-subtitle{color:#1976d2;font-weight:700;margin-top:.8rem}@media (max-width:768px){.privacy-policy-container{margin:1rem;padding:1rem}.privacy-policy-container h2{font-size:1.4rem}}.recurring-preview-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.recurring-preview-dialog{background:var(--card-bg);border-radius:12px;box-shadow:0 8px 32px #0000004d;max-height:85vh;max-width:600px;overflow-y:auto;padding:20px;width:90vw}.recurring-mini-calendar{margin-bottom:16px}.recurring-mini-month-header{align-items:center;color:var(--text-primary);display:flex;font-size:14px;font-weight:600;gap:12px;justify-content:center;margin-bottom:10px}.recurring-mini-nav-btn{background:none;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;font-size:16px;padding:4px 8px;transition:all .2s}.recurring-mini-nav-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.recurring-mini-grid{grid-gap:2px;display:grid;gap:2px;grid-template-columns:repeat(7,1fr)}.recurring-mini-day-header{color:var(--text-secondary);font-size:11px;font-weight:600;padding:4px 0;text-align:center}.recurring-mini-day{align-items:center;border-radius:4px;color:var(--text-primary);cursor:pointer;display:flex;flex-direction:column;font-size:12px;justify-content:center;min-height:36px;padding:4px;position:relative;text-align:center;transition:background .2s}.recurring-mini-day:hover{background:var(--hover-bg)}.recurring-mini-day.has-schedule:after{background:#2196f3;border-radius:2px;content:"";display:block;height:4px;margin:2px auto 0;width:70%}.recurring-mini-day.has-todo:after{background:#4caf50;border-radius:50%;content:"";display:block;height:6px;margin:2px auto 0;width:6px}.recurring-mini-day.excluded{background:#f443361a;opacity:.4;text-decoration:line-through}.recurring-mini-day.excluded:after{display:none}.recurring-mini-day.other-month{opacity:.4}.recurring-preview-info{border-top:1px solid var(--border-color);color:var(--text-primary);font-size:13px;padding:10px 0}.recurring-time-adjust{border-top:1px solid var(--border-color);padding-top:12px}.recurring-time-strip{background:var(--hover-bg);border:1px solid var(--border-color);border-radius:6px;height:200px;overflow:hidden;position:relative}.recurring-time-label{color:var(--text-secondary);font-size:10px;left:0;pointer-events:none;position:absolute;text-align:center;width:40px}.recurring-time-block{align-items:center;border-radius:4px;color:#fff;cursor:move;display:flex;font-size:11px;justify-content:center;left:44px;position:absolute;right:4px;transition:opacity .2s;-webkit-user-select:none;user-select:none}.recurring-time-block:hover{opacity:.9}.recurring-time-block .resize-handle{cursor:ns-resize;height:6px;left:0;position:absolute;right:0}.recurring-time-block .resize-handle.top{top:0}.recurring-time-block .resize-handle.bottom{bottom:0}.recurring-preview-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.recurring-preview-legend{color:var(--text-secondary);display:flex;font-size:12px;gap:16px;margin-top:10px}@media (max-width:768px){.recurring-preview-dialog{max-height:90vh;padding:14px;width:95vw}.recurring-mini-grid{gap:1px}.recurring-mini-day{font-size:11px;min-height:30px;padding:2px}.recurring-time-strip{height:160px}.recurring-preview-legend{flex-wrap:wrap;gap:10px}}.clock-overlay{align-items:center;background:#0006;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1100}.clock-popup{background:var(--card-bg);border-radius:16px;box-shadow:0 12px 40px #00000040;max-width:90vw;overflow:hidden;width:320px}.clock-display{background:#2196f3;gap:16px;justify-content:center;padding:20px 24px}.clock-display,.clock-display-time{align-items:center;display:flex}.clock-display-part{background:none;border:none;border-radius:8px;color:#ffffff80;cursor:pointer;font-family:inherit;font-size:48px;font-weight:300;line-height:1;padding:2px 4px;transition:color .2s}.clock-display-part.active{color:#fff}.clock-display-part:hover:not(.active){color:#ffffffbf}.clock-display-sep{color:#ffffff80;font-size:48px;font-weight:300;line-height:1;margin:0 2px}.clock-ampm{display:flex;flex-direction:column;gap:2px;margin-left:4px}.clock-ampm-btn{background:#0000;border:1.5px solid #fff6;color:#ffffff80;cursor:pointer;font-size:14px;font-weight:600;line-height:1.2;padding:4px 10px;transition:all .15s}.clock-ampm-btn:first-child{border-radius:6px 6px 0 0}.clock-ampm-btn:last-child{border-radius:0 0 6px 6px;border-top:none}.clock-ampm-btn.active{background:#ffffff40;border-color:#fff9;color:#fff}.clock-ampm-btn:hover:not(.active){background:#ffffff1a;color:#ffffffbf}.clock-24h-preview{font-feature-settings:"tnum";background:var(--hover-bg);color:var(--text-secondary);font-size:13px;font-variant-numeric:tabular-nums;letter-spacing:1px;padding:6px 0;text-align:center}.clock-face{background:#f0f0f0;background:var(--hover-bg,#f0f0f0);border-radius:50%;cursor:pointer;height:240px;margin:16px auto;position:relative;user-select:none;-webkit-user-select:none;width:240px}.clock-center{border-radius:50%;height:8px;transform:translate(-50%,-50%);width:8px;z-index:3}.clock-center,.clock-hand{background:#2196f3;left:50%;position:absolute;top:50%}.clock-hand{height:36%;margin-left:-1px;margin-top:-36%;transform:rotate(0deg);transform-origin:bottom center;transition:transform .2s ease;width:2px;z-index:2}.clock-hand-tip{background:#2196f3;left:50%;opacity:.2;top:0}.clock-hand-tip,.clock-number{border-radius:50%;height:36px;position:absolute;transform:translate(-50%,-50%);width:36px}.clock-number{align-items:center;color:var(--text-primary);cursor:pointer;display:flex;font-size:14px;font-weight:500;justify-content:center;transition:all .15s;z-index:4}.clock-number:hover:not(.active){background:#2196f31a}.clock-number.active{background:#2196f3;color:#fff;font-weight:600}.clock-actions{display:flex;gap:8px;justify-content:flex-end;padding:10px 16px 16px}.clock-btn{border:none;border-radius:20px;cursor:pointer;font-size:14px;font-weight:600;padding:8px 20px;transition:all .15s}.clock-btn-cancel{background:#0000;color:var(--text-secondary)}.clock-btn-cancel:hover{background:var(--hover-bg);color:var(--text-primary)}.clock-btn-ok{background:#2196f3;color:#fff}.clock-btn-ok:hover{background:#1976d2}@media (max-width:480px){.clock-picker-overlay{align-items:flex-end;padding-bottom:20px}.clock-picker-container{min-width:auto;padding:12px;width:90vw}.clock-display-part{font-size:32px;padding:4px 8px}.clock-display-sep{font-size:32px}.clock-ampm-btn{font-size:11px;padding:4px 8px}.clock-face{height:200px;width:200px}.clock-number{font-size:12px}.clock-actions{gap:8px}.clock-btn{font-size:12px;padding:6px 14px}}.recurring-container{margin:0 auto;max-width:960px;padding:20px}.recurring-container>h2{font-size:22px;font-weight:700;margin:0 0 14px}.recurring-edit-area{background:var(--card-bg);border-radius:12px;box-shadow:0 1px 6px var(--card-shadow);margin-bottom:20px;overflow:hidden}.recurring-edit-top-bar{height:6px;transition:background .3s}.recurring-edit-body{padding:16px 20px 12px}.rc-row{align-items:flex-start;display:flex;gap:12px;padding:10px 0}.rc-row+.rc-row{border-top:1px solid var(--border-color)}.rc-icon{align-items:center;color:var(--text-secondary);display:flex;flex-shrink:0;height:24px;justify-content:center;margin-top:4px;width:24px}.rc-icon svg{height:22px;width:22px}.rc-content{flex:1 1;min-width:0}.rc-title-input{background:var(--hover-bg);border:1.5px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-size:18px;font-weight:600;outline:none;padding:10px 14px;transition:border-color .2s;width:100%}.rc-title-input:focus{background:var(--card-bg);border-color:#2196f3}.rc-title-input::placeholder{color:var(--text-secondary);font-weight:400}.rc-title-input.rc-title-error{background:#f4433608;border-color:#f44336}.rc-title-hint{align-self:flex-end;color:var(--text-secondary);font-size:12px;margin-left:4px;white-space:nowrap}.rc-pills{align-items:center;display:flex;flex-wrap:wrap;gap:6px}.rc-pill{background:#0000;border:1.5px solid var(--border-color);border-radius:20px;color:var(--text-primary);cursor:pointer;font-size:15px;font-weight:500;padding:6px 18px;transition:all .15s;white-space:nowrap}.rc-pill:hover{background:var(--hover-bg)}.rc-pill.active{background:#2196f3;border-color:#2196f3;color:#fff}.rc-pill.active-orange{background:#ff9800;border-color:#ff9800;color:#fff}.rc-pill-label{color:var(--text-secondary);font-size:14px;font-weight:500;margin-right:6px}.rc-subject-chip{align-items:center;background:var(--hover-bg);border:none;border-radius:8px;color:var(--text-primary);cursor:pointer;display:inline-flex;font-size:15px;font-weight:500;gap:8px;padding:7px 16px;transition:all .15s}.rc-subject-chip:hover{background:#2196f314}.rc-subject-chip.has-subject{background:#0000}.rc-subject-dot{border-radius:50%;flex-shrink:0;height:12px;width:12px}.rc-subject-chip .rc-chip-action{color:#2196f3;font-size:13px;font-weight:600;margin-left:4px}.rc-row-pair{border-top:1px solid var(--border-color);display:flex;gap:20px;padding:10px 0}.rc-row-pair>.rc-half{align-items:flex-start;display:flex;flex:1 1;gap:12px;min-width:0}.rc-inline-group{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.rc-inline-label{color:var(--text-secondary);font-size:15px;font-weight:500;white-space:nowrap}.rc-input{background:var(--hover-bg);border:1.5px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:15px;outline:none;padding:7px 12px;transition:border-color .15s}.rc-input:focus{border-color:#2196f3}.rc-input-sm{width:80px}.rc-duration-group{align-items:center;background:var(--hover-bg);border:1.5px solid var(--border-color);border-radius:8px;display:inline-flex;overflow:hidden}.rc-duration-btn{align-items:center;background:#0000;border:none;color:var(--text-primary);cursor:pointer;display:flex;font-size:18px;font-weight:600;height:36px;justify-content:center;transition:background .1s;width:36px}.rc-duration-btn:hover{background:#2196f31a}.rc-duration-input{background:var(--card-bg);border:none;border-left:1px solid var(--border-color);border-radius:0;border-right:1px solid var(--border-color);font-size:16px;font-weight:600;padding:6px 4px;text-align:center;width:56px}.rc-date-input{align-items:center;background:var(--hover-bg);border:1.5px solid var(--border-color);border-radius:10px;caret-color:#0000;color:var(--text-primary);cursor:pointer;display:inline-flex;font-size:15px;font-weight:500;padding:8px 16px;transition:all .15s;user-select:none;-webkit-user-select:none;white-space:nowrap}.rc-date-input:focus,.rc-date-input:hover{background:#2196f30d;border-color:#2196f3;outline:none}.rc-time-btn{align-items:center;background:var(--hover-bg);border:1.5px solid var(--border-color);border-radius:12px;color:var(--text-primary);cursor:pointer;display:inline-flex;gap:10px;padding:10px 20px;transition:all .15s}.rc-time-btn svg{color:#2196f3;flex-shrink:0;height:20px;width:20px}.rc-time-btn-value{font-feature-settings:"tnum";font-size:20px;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:2px}.rc-time-btn:hover{background:#2196f30d;border-color:#2196f3}.rc-select{appearance:none;-webkit-appearance:none;background:var(--hover-bg);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23888' d='M6 8 1 3h10z'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;border:1.5px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;font-size:15px;outline:none;padding:7px 30px 7px 12px;transition:border-color .15s}.rc-select:focus{border-color:#2196f3}.rc-days{display:flex;gap:5px;margin-top:8px}.rc-day{align-items:center;background:#0000;border:1.5px solid var(--border-color);border-radius:50%;color:var(--text-primary);cursor:pointer;display:flex;font-size:14px;font-weight:600;height:36px;justify-content:center;transition:all .15s;width:36px}.rc-day:hover{background:var(--hover-bg)}.rc-day.active{background:#2196f3;border-color:#2196f3;color:#fff}.rc-end-radio{align-items:center;cursor:pointer;display:flex;font-size:14px;gap:4px;white-space:nowrap}.rc-end-radio input[type=radio]{margin:0}.rc-more-toggle{align-items:center;background:none;border:none;color:#2196f3;cursor:pointer;display:flex;font-size:14px;gap:4px;padding:4px 0}.rc-more-toggle:hover{text-decoration:underline}.rc-more-fields{display:flex;flex-direction:column;gap:8px;margin-top:8px}.rc-more-fields input,.rc-more-fields textarea{background:var(--hover-bg);border:1.5px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:15px;outline:none;padding:8px 12px;resize:vertical;width:100%}.rc-more-fields input:focus,.rc-more-fields textarea:focus{border-color:#2196f3}.rc-summary{background:var(--hover-bg);border-top:1px solid var(--border-color);color:var(--text-secondary);font-size:14px;line-height:1.6;padding:10px 20px}.rc-summary strong{color:var(--text-primary)}.rc-error{background:#f443360d;color:#f44336;font-size:14px;padding:8px 20px}.rc-actions{display:flex;gap:6px;justify-content:flex-end;padding:10px 20px 14px}.rc-btn{border:none;border-radius:20px;cursor:pointer;font-size:15px;font-weight:600;padding:9px 22px;transition:all .15s}.rc-btn:disabled{cursor:not-allowed;opacity:.4}.rc-btn-primary{background:#2196f3;color:#fff}.rc-btn-primary:hover:not(:disabled){background:#1976d2}.rc-btn-ghost{background:#0000;color:var(--text-secondary)}.rc-btn-ghost:hover:not(:disabled){background:var(--hover-bg);color:var(--text-primary)}.rc-btn-danger{background:#0000;color:#f44336}.rc-btn-danger:hover:not(:disabled){background:#f443360f}.rc-btn-preview{background:#0000;border:1.5px solid #ff9800;color:#ff9800}.rc-btn-preview:hover:not(:disabled){background:#ff98000f}.recurring-view-toggle{display:flex;gap:4px;margin-bottom:12px}.recurring-view-btn{background:#0000;border:1px solid var(--border-color);border-radius:14px;color:var(--text-secondary);cursor:pointer;font-size:14px;font-weight:500;padding:7px 18px;transition:all .15s}.recurring-view-btn:hover{color:var(--text-primary)}.recurring-view-btn.active{background:var(--text-primary);border-color:var(--text-primary);color:var(--card-bg)}.recurring-list{display:flex;flex-direction:column;gap:6px}.recurring-list-item{align-items:center;background:var(--card-bg);border:2px solid #0000;border-radius:8px;box-shadow:0 1px 3px var(--card-shadow);cursor:pointer;display:flex;gap:10px;padding:12px 14px;transition:all .15s}.recurring-list-item:hover{background:var(--hover-bg)}.recurring-list-item.editing{border-color:#2196f3}.recurring-list-color{border-radius:2px;flex-shrink:0;height:40px;width:4px}.recurring-list-info{flex:1 1;min-width:0}.recurring-list-title{color:var(--text-primary);font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recurring-list-meta{color:var(--text-secondary);font-size:14px;margin-top:2px}.recurring-list-badge{border-radius:8px;display:inline-block;font-size:13px;font-weight:600;margin-left:4px;padding:1px 6px}.recurring-list-stats{flex-shrink:0;text-align:right}.recurring-list-rate{color:var(--text-primary);font-size:18px;font-weight:700}.recurring-list-count{color:var(--text-secondary);font-size:13px}.recurring-cards{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.recurring-card{background:var(--card-bg);border-radius:8px;border-top:3px solid #0000;box-shadow:0 1px 3px var(--card-shadow);cursor:pointer;padding:14px;transition:all .15s}.recurring-card:hover{box-shadow:0 3px 10px var(--card-shadow)}.recurring-card-header{margin-bottom:6px}.recurring-card-title{color:var(--text-primary);font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recurring-card-meta{color:var(--text-secondary);font-size:14px;margin-bottom:8px}.recurring-card-progress{background:var(--hover-bg);border-radius:2px;height:4px;margin-bottom:6px;overflow:hidden}.recurring-card-progress-bar{border-radius:2px;height:100%;transition:width .3s ease}.recurring-card-footer{align-items:center;color:var(--text-secondary);display:flex;font-size:13px;justify-content:space-between}.recurring-icon{font-size:10px;margin-left:2px;opacity:.7}.recurring-popup-overlay{align-items:center;background:#00000059;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.recurring-popup{background:var(--card-bg);border-radius:10px;box-shadow:0 8px 32px #0000002e;display:flex;flex-direction:column;max-height:60vh;max-width:90vw;width:420px}.recurring-popup-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:14px 18px}.recurring-popup-header h3{font-size:17px;margin:0}.recurring-popup-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:22px;line-height:1;padding:0}.recurring-popup-close:hover,.recurring-popup-search{color:var(--text-primary)}.recurring-popup-search{background:var(--hover-bg);border:1.5px solid var(--border-color);border-radius:6px;font-size:15px;margin:10px 16px;padding:9px 14px}.recurring-popup-search:focus{border-color:#2196f3;outline:none}.recurring-popup-list{flex:1 1;overflow-y:auto;padding:0 8px 8px}.recurring-popup-item{align-items:center;border-radius:6px;color:var(--text-primary);cursor:pointer;display:flex;font-size:15px;gap:10px;padding:10px 12px;transition:background .1s}.recurring-popup-item:hover{background:var(--hover-bg)}.recurring-popup-item.selected{background:#2196f31a;outline:1.5px solid #2196f3}.recurring-popup-item .rc-subject-dot{height:12px;width:12px}.recurring-popup-item-name{flex:1 1}.recurring-popup-empty{color:var(--text-secondary);font-size:15px;padding:20px;text-align:center}@media (max-width:720px){.recurring-container{padding:12px}.rc-row-pair{flex-direction:column;gap:0}.rc-row-pair>.rc-half{padding:10px 0}.rc-row-pair>.rc-half+.rc-half{border-top:1px solid var(--border-color)}.rc-inline-group{flex-wrap:wrap}.rc-days{justify-content:center}.rc-actions{flex-direction:column}.rc-actions .rc-btn{text-align:center;width:100%}}@media (max-width:480px){.recurring-container>h2{font-size:16px}.rc-select{font-size:12px;padding:4px 6px}.rc-btn{font-size:12px;padding:6px 10px}.rc-time-btn-value{font-size:14px}.rc-date-input{font-size:12px;padding:4px 8px}.rc-day-chip{font-size:11px;height:28px;width:28px}.rc-inline-label{font-size:12px}.rc-duration-stepper button{font-size:14px;height:28px;width:28px}.rc-duration-stepper span{font-size:13px;min-width:40px}.rc-rule-card{padding:10px}.rc-rule-card h4{font-size:13px}.rc-rule-card p{font-size:11px}.rc-rule-actions button{font-size:11px;padding:3px 8px}}.timelapse-overlay{align-items:center;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:9999}.timelapse-dialog{background:#fff;background:var(--card-bg,#fff);border-radius:16px;box-shadow:0 8px 32px #0000004d;max-width:400px;padding:24px;text-align:center;width:90%}.timelapse-title{color:#333;color:var(--text-primary,#333);font-size:1.25rem;margin:0 0 16px}.timelapse-frame-info{color:#666;color:var(--text-secondary,#666);font-size:.9rem;margin:8px 0 16px}.timelapse-fps-selector{margin-bottom:20px}.timelapse-fps-selector label{color:#666;color:var(--text-secondary,#666);display:block;font-size:.85rem;margin-bottom:8px}.timelapse-fps-options{display:flex;gap:8px;justify-content:center}.timelapse-fps-btn{background:#f5f5f5;background:var(--bg-secondary,#f5f5f5);border:1px solid #ddd;border:1px solid var(--border-color,#ddd);border-radius:8px;color:#333;color:var(--text-primary,#333);cursor:pointer;font-size:.85rem;padding:6px 16px;transition:all .2s}.timelapse-fps-btn.active{background:#4caf50;background:var(--primary-color,#4caf50);border-color:#4caf50;border-color:var(--primary-color,#4caf50);color:#fff}.timelapse-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.timelapse-btn{border:none;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;padding:10px 20px;transition:opacity .2s}.timelapse-btn:hover{opacity:.85}.timelapse-btn-generate{background:#4caf50;background:var(--primary-color,#4caf50);color:#fff}.timelapse-btn-download{background:#2196f3;color:#fff}.timelapse-btn-share{background:#ff9800;color:#fff}.timelapse-btn-close,.timelapse-btn-skip{background:#f0f0f0;background:var(--bg-secondary,#f0f0f0);color:#333;color:var(--text-primary,#333)}.timelapse-btn-save{background:#4caf50;color:#fff}.timelapse-generating{padding:16px 0}.timelapse-generating p{color:#666;color:var(--text-secondary,#666);margin-bottom:12px}.timelapse-progress-bar{background:#e0e0e0;background:var(--bg-secondary,#e0e0e0);border-radius:4px;height:8px;overflow:hidden;width:100%}.timelapse-progress-fill{background:#4caf50;background:var(--primary-color,#4caf50);border-radius:4px;height:100%;transition:width .3s ease}.timelapse-progress-text{color:#666;color:var(--text-secondary,#666);font-size:.85rem;margin-top:8px}.timelapse-complete-text{color:#4caf50;color:var(--primary-color,#4caf50);font-weight:600;margin-bottom:12px}.timelapse-preview{background:#000;border-radius:8px;margin-bottom:16px;max-height:240px;width:100%}.timelapse-btn-regenerate{background:#7c4dff;color:#fff}.timelapse-regen-options{background:#f5f5f5;background:var(--bg-secondary,#f5f5f5);border-radius:10px;margin-bottom:12px;padding:12px}.timelapse-regen-options .timelapse-fps-selector{margin-bottom:12px}.timelapse-regen-options .timelapse-btn-generate{width:100%}.timelapse-unsupported{padding:16px 0}.timelapse-unsupported p{color:#666;color:var(--text-secondary,#666);margin-bottom:16px}.hd-overlay{align-items:center;background:#0009;bottom:0;display:flex;justify-content:center;left:0;padding:16px;position:fixed;right:0;top:0;z-index:1000}.hd-dialog{background:#fff;background:var(--card-bg,#fff);border-radius:16px;box-shadow:0 8px 32px #0000004d;max-height:85vh;max-width:480px;overflow-y:auto;padding:20px;width:100%}.hd-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.hd-title{color:#333;color:var(--text-primary,#333);font-size:1.1rem;margin:0}.hd-close-x{background:none;border:none;color:#999;color:var(--text-secondary,#999);cursor:pointer;font-size:1.5rem;line-height:1;padding:0 4px}.hd-time-info{background:#f5f5f5;background:var(--bg-secondary,#f5f5f5);border-radius:10px;margin-bottom:16px;padding:12px 16px}.hd-time-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.hd-time-label{color:#333;color:var(--text-primary,#333);font-weight:600}.hd-time-range{color:#666;color:var(--text-secondary,#666);font-size:.95rem}.hd-duration{color:#4caf50;color:var(--primary,#4caf50);font-size:.95rem;font-weight:600;margin-left:auto}.hd-section{margin-bottom:16px}.hd-section-title{border-bottom:1px solid #eee;border-bottom:1px solid var(--border-color,#eee);color:#888;color:var(--text-secondary,#888);font-size:.85rem;font-weight:600;letter-spacing:.5px;margin-bottom:10px;padding-bottom:6px;text-transform:uppercase}.hd-subjects{display:flex;flex-direction:column;gap:8px}.hd-subject-row{align-items:center;display:flex;gap:10px}.hd-subject-name{color:#333;color:var(--text-primary,#333);font-size:.88rem;gap:4px;max-width:120px;min-width:90px;text-overflow:ellipsis;white-space:nowrap}.hd-subject-bar-wrap,.hd-subject-name{align-items:center;display:flex;overflow:hidden}.hd-subject-bar-wrap{background:#f0f0f0;background:var(--bg-secondary,#f0f0f0);border-radius:12px;flex:1 1;height:24px;position:relative}.hd-subject-bar{border-radius:12px;bottom:0;left:0;opacity:.8;position:absolute;top:0;transition:width .4s ease}.hd-subject-time{color:#333;color:var(--text-primary,#333);font-size:.78rem;font-weight:600;padding-left:8px;position:relative;z-index:1}.hd-timelapse{display:flex;flex-direction:column;gap:10px}.hd-video{background:#000;border-radius:10px;max-height:280px;width:100%}.hd-timelapse-actions{display:flex;flex-wrap:wrap;gap:6px}.hd-timelapse-empty{padding:16px 0;text-align:center}.hd-timelapse-none{color:#999;color:var(--text-secondary,#999);font-size:.88rem;padding:12px 0;text-align:center}.hd-btn{border:none;border-radius:8px;cursor:pointer;font-size:.85rem;font-weight:500;padding:8px 14px;transition:opacity .2s}.hd-btn:active{opacity:.7}.hd-btn-download{background:#4caf50;background:var(--primary,#4caf50);color:#fff}.hd-btn-share{background:#2196f3;color:#fff}.hd-btn-regen{background:#ff9800;color:#fff}.hd-btn-generate{background:#2196f3;color:#fff;font-size:.9rem;padding:10px 24px}.hd-btn-delete-tl{background:none;border:1px solid #f44336;color:#f44336}.hd-btn-delete-session{background:none;color:#f44336;font-size:.82rem}.hd-btn-close{background:#e0e0e0;background:var(--bg-secondary,#e0e0e0);color:#333;color:var(--text-primary,#333);margin-left:auto}.hd-footer{align-items:center;border-top:1px solid #eee;border-top:1px solid var(--border-color,#eee);display:flex;gap:8px;padding-top:12px}@media (max-width:480px){.hd-dialog{max-height:90vh;padding:16px}.hd-subject-name{font-size:.82rem;max-width:90px;min-width:70px}.hd-timelapse-actions{gap:4px}.hd-btn{font-size:.8rem;padding:7px 10px}}.studyroom-container{margin:0 auto;max-width:1200px;padding:20px}.studyroom-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.studyroom-header h2{color:var(--text-primary);font-size:1.4rem;margin:0}.studyroom-header-actions{align-items:center;display:flex;gap:8px}.studyroom-open-btn{background:#007bff;background:var(--link-color,#007bff);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:opacity .2s}.studyroom-open-btn:hover{opacity:.85}.studyroom-close-btn{background:#e74c3c;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:8px 16px;transition:opacity .2s}.studyroom-close-btn:hover{opacity:.85}.camera-toggle-container{align-items:center;display:flex;flex-shrink:0;gap:6px}.camera-switch-btn{background:var(--card-bg);border:1px solid var(--border-primary);border-radius:6px;color:var(--text-primary);cursor:pointer;font-size:13px;padding:6px 10px;transition:all .2s}.camera-switch-btn:hover{background:var(--hover-bg);opacity:.85}.camera-toggle-btn{background:var(--card-bg);border:1px solid var(--border-primary);border-radius:6px;color:var(--text-primary);cursor:pointer;font-size:13px;padding:6px 14px;transition:all .2s}.camera-toggle-btn.camera-on{background:#27ae60;border-color:#27ae60;color:#fff}.camera-toggle-btn:hover{opacity:.85}.studyroom-refresh-btn{background:none;border:1px solid var(--border-primary);border-radius:6px;color:var(--text-secondary);cursor:pointer;font-size:1.2rem;padding:8px 14px;transition:all .2s}.studyroom-refresh-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.studyroom-upload-progress{align-items:center;display:flex;gap:8px;min-width:120px}.studyroom-upload-bar{background:#e0e0e0;background:var(--bg-secondary,#e0e0e0);border-radius:3px;flex:1 1;height:6px;min-width:80px;overflow:hidden}.studyroom-upload-fill{background:#4caf50;background:var(--primary-color,#4caf50);border-radius:3px;height:100%;transition:width .3s ease}.studyroom-upload-text{color:#666;color:var(--text-secondary,#666);font-size:.75rem;font-weight:600;white-space:nowrap}.studyroom-empty,.studyroom-loading{color:var(--text-tertiary);font-size:1rem;padding:60px 20px;text-align:center}.studyroom-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,1fr)}.studyroom-card{background:var(--card-bg);border:1px solid var(--border-primary);border-radius:10px;box-shadow:0 2px 6px var(--card-shadow);transition:box-shadow .2s,transform .2s}.studyroom-card:hover{box-shadow:0 4px 12px var(--card-shadow)}.studyroom-card-list{align-items:center;display:flex;gap:14px;padding:16px}.studyroom-card-avatar{align-items:center;background:var(--text-tertiary);border-radius:50%;display:flex;flex-shrink:0;height:50px;justify-content:center;width:50px}.studyroom-card-info{flex:1 1;min-width:0}.studyroom-card-username{color:var(--text-primary);font-size:1rem;font-weight:600;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.studyroom-card-subject{align-items:center;color:var(--text-secondary);display:flex;font-size:.9rem;gap:6px;margin-bottom:2px}.studyroom-subject-dot{border-radius:50%;display:inline-block;flex-shrink:0;height:8px;width:8px}.studyroom-card-time{color:var(--text-tertiary);font-size:.8rem}.studyroom-card-status{font-size:12px;font-weight:600;margin-top:2px}.studyroom-status-online{color:#27ae60}.studyroom-status-studying{color:#007bff;color:var(--link-color,#007bff)}.studyroom-enter-btn{background:#007bff;border:none;border-radius:6px;color:#fff;cursor:pointer;flex-shrink:0;font-size:.9rem;font-weight:600;padding:10px 20px;transition:background .2s;white-space:nowrap}.studyroom-enter-btn:hover{background:#0056b3}.studyroom-card-entered{display:flex;flex-direction:column;overflow:hidden;padding:0}.studyroom-card-entered.studyroom-card-mine{border:2px solid #007bff;border:2px solid var(--link-color,#007bff)}.studyroom-mine-badge{background:#007bff;background:var(--link-color,#007bff);border-radius:4px;color:#fff;display:inline-block;font-size:10px;font-weight:700;margin-left:8px;padding:1px 6px;vertical-align:middle}.studyroom-card-camera{align-items:center;aspect-ratio:4/3;background:var(--bg-tertiary);display:flex;justify-content:center;overflow:hidden;position:relative;width:100%}.studyroom-snapshot{height:100%;object-fit:cover;width:100%}.studyroom-card-avatar-large{align-items:center;background:var(--text-tertiary);border-radius:50%;display:flex;height:80px;justify-content:center;width:80px}.studyroom-card-details{display:flex;flex-direction:column;gap:6px;padding:14px 16px}.studyroom-card-divider{background:var(--border-secondary);height:1px;margin:4px 0}.studyroom-card-elapsed{color:var(--text-secondary);font-size:.9rem;font-weight:500}.studyroom-card-total{color:var(--text-tertiary);font-size:.85rem}.studyroom-card-room-elapsed{color:var(--text-tertiary);font-size:.8rem;margin-top:2px}.studyroom-card-mine-footer{border-top:1px solid var(--border-primary);display:flex;flex-direction:column;gap:8px;margin:0 16px 14px;padding-top:10px}.studyroom-observers{align-items:center;background:#4caf5014;background:var(--bg-tertiary,#4caf5014);border-radius:8px;display:flex;font-size:12px;gap:6px;padding:6px 10px}.studyroom-observers-label{color:#4caf50;color:var(--primary-color,#4caf50);font-weight:600;white-space:nowrap}.studyroom-observers-list{color:var(--text-secondary)}.studyroom-broadcasting{color:var(--text-tertiary);flex:1 1;font-size:12px}.studyroom-card-observer-footer{padding:0 16px 14px}.studyroom-peer-status{font-size:12px;padding:4px 0 8px}.studyroom-peer-connected{color:#27ae60}.studyroom-peer-connecting{color:var(--text-tertiary)}.studyroom-leave-btn{background:#f44336;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;padding:10px;transition:background .2s}.studyroom-leave-btn:hover{background:#d32f2f}@media (max-width:1024px){.studyroom-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.studyroom-container{padding:14px}.studyroom-grid{grid-template-columns:1fr}.studyroom-header h2{font-size:1.2rem}.studyroom-card-list{gap:10px;padding:12px}.studyroom-card-avatar{font-size:1rem;height:42px;width:42px}.studyroom-enter-btn{font-size:.85rem;padding:8px 14px}.studyroom-card-details{padding:12px}.studyroom-card-mine-footer,.studyroom-leave-btn{margin:0 12px 12px}}@media (max-width:480px){.studyroom-container{padding:8px}.studyroom-header{margin-bottom:16px}.studyroom-header h2{font-size:1rem}.studyroom-refresh-btn{font-size:1rem;padding:6px 10px}.studyroom-empty,.studyroom-loading{font-size:.85rem;padding:36px 12px}.studyroom-grid{gap:10px}.studyroom-card-list{gap:8px;padding:10px}.studyroom-card-avatar{font-size:.85rem;height:36px;width:36px}.studyroom-card-username{font-size:.9rem}.studyroom-card-subject{font-size:.8rem}.studyroom-card-time{font-size:.75rem}.studyroom-enter-btn{font-size:.8rem;min-height:32px;padding:6px 12px}.studyroom-card-avatar-large{font-size:1.5rem;height:60px;width:60px}.studyroom-card-details{gap:4px;padding:10px}.studyroom-card-elapsed{font-size:.8rem}.studyroom-card-total{font-size:.75rem}.studyroom-leave-btn{font-size:.8rem;margin:0 10px 10px;min-height:32px;padding:8px}.studyroom-card-mine-footer{gap:8px;margin:0 10px 10px}}.studyroom-history-section{margin-top:32px}.studyroom-history-divider{background:var(--border-primary);height:1px;margin-bottom:20px}.studyroom-history-title{color:var(--text-primary);font-size:1.1rem;font-weight:600;margin:0 0 16px}.studyroom-history-list{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,1fr)}.history-section-item{background:var(--card-bg);border-left:4px solid #4caf50;border:1px solid var(--border-primary);border-left:4px solid var(--primary-color,#4caf50);border-radius:10px;padding:14px 16px;transition:box-shadow .2s}.history-section-clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.history-section-item:hover{box-shadow:0 2px 8px var(--card-shadow)}.history-timelapse-badge{color:#4caf50;color:var(--primary-color,#4caf50);font-size:.75rem;margin-left:4px}.history-section-body{align-items:flex-start;display:flex;gap:12px}.history-section-content{flex:1 1;min-width:0}.history-section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:8px}.history-section-title{color:var(--text-primary);font-size:.95rem;font-weight:600}.history-section-range{color:var(--text-secondary);font-weight:400}.history-section-meta{align-items:center;display:flex;gap:10px}.history-section-duration{color:#4caf50;color:var(--primary-color,#4caf50);font-size:.85rem;font-weight:600}.history-section-actions{align-items:center;display:flex;gap:4px}.history-action-btn{align-items:center;background:#0000;border:none;border-radius:50%;cursor:pointer;display:flex;font-size:14px;height:28px;justify-content:center;padding:0;transition:all .2s;width:28px}.history-play-btn{color:#4caf50;color:var(--primary-color,#4caf50)}.history-play-btn:hover{background:#4caf50;background:var(--primary-color,#4caf50);color:#fff}.history-gen-btn{color:#007bff;color:var(--link-color,#007bff)}.history-gen-btn:hover{background:#007bff;background:var(--link-color,#007bff);color:#fff}.history-del-btn{color:#999;color:var(--text-tertiary,#999);font-size:12px}.history-del-btn:hover{background:#f44336;color:#fff}.history-section-subjects{margin-top:0}.history-subject-row{align-items:center;display:flex;margin:8px 0}.history-subject-name{align-items:center;color:var(--text-primary);display:flex;font-size:.85rem;font-weight:500;gap:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100px}.history-subject-icon{flex-shrink:0;font-size:.9rem}.history-subject-hours{background:#f0f0f0;background:var(--bg-tertiary,#f0f0f0);border-radius:13px;flex:1 1;height:26px;margin-left:8px;overflow:hidden;position:relative}.history-hours-bar{border-radius:13px;height:100%;left:0;position:absolute;top:0;transition:width .5s cubic-bezier(.4,0,.2,1)}.history-subject-hours span{color:var(--text-primary);font-size:.8rem;font-weight:600;position:absolute;right:10px;text-shadow:0 0 2px #ffffffb3;top:50%;transform:translateY(-50%);z-index:2}.history-thumbnail{border-radius:6px;cursor:pointer;flex-shrink:0;overflow:hidden;position:relative;width:100px}.history-thumbnail img{border-radius:6px;display:block;height:auto;width:100%}.history-thumbnail-play{align-items:center;background:#0000008c;border-radius:50%;color:#fff;display:flex;font-size:12px;height:28px;justify-content:center;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);transition:background .2s;width:28px}.history-thumbnail:hover .history-thumbnail-play{background:#000000bf}.history-section-empty{color:var(--text-tertiary);font-size:.8rem;padding:4px 0}.history-generate-btn{background:#007bff;background:var(--link-color,#007bff);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.8rem;font-weight:600;padding:8px 14px;transition:opacity .2s;white-space:nowrap}.history-generate-btn:hover{opacity:.85}@media (max-width:1024px){.studyroom-history-list{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.studyroom-history-section{margin-top:24px}.studyroom-history-list{grid-template-columns:1fr}.history-section-item{padding:10px 12px}.history-thumbnail{width:80px}}.studyroom-pagination{gap:4px;margin-top:20px;padding:8px 0}.studyroom-page-btn,.studyroom-pagination{align-items:center;display:flex;justify-content:center}.studyroom-page-btn{background:#fff;background:var(--card-bg,#fff);border:1px solid #ddd;border:1px solid var(--border-primary,#ddd);border-radius:8px;color:#333;color:var(--text-primary,#333);cursor:pointer;font-size:.85rem;height:36px;min-width:36px;padding:0 8px;transition:all .2s}.studyroom-page-btn:hover:not(:disabled){background:#f0f0f0;background:var(--hover-bg,#f0f0f0)}.studyroom-page-btn.active{background:#4caf50;background:var(--primary-color,#4caf50);border-color:#4caf50;border-color:var(--primary-color,#4caf50);color:#fff;font-weight:600}.studyroom-page-btn:disabled{cursor:default;opacity:.4}.studyroom-page-dots{color:#999;color:var(--text-tertiary,#999);font-size:.85rem;padding:0 4px}.board-container{margin:2rem auto;max-width:800px;padding:1.5rem}.board-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1.5rem}.board-header h2{color:var(--text-primary);font-size:1.3rem;margin:0}.board-btn{border:none;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:600;padding:8px 16px;transition:opacity .2s}.board-btn:hover{opacity:.85}.board-btn:disabled{cursor:default;opacity:.5}.board-btn-submit,.board-btn-write{background:#4caf50;background:var(--primary-color,#4caf50);color:#fff}.board-btn-cancel{background:#e0e0e0;background:var(--bg-tertiary,#e0e0e0);color:var(--text-primary)}.board-btn-edit{background:#007bff;background:var(--link-color,#007bff);color:#fff}.board-btn-delete{background:#f44336;color:#fff}.board-list{border-top:2px solid var(--text-primary)}.board-list-item{align-items:center;border-bottom:1px solid #eee;border-bottom:1px solid var(--border-secondary,#eee);cursor:pointer;display:flex;gap:12px;justify-content:space-between;padding:12px 8px;transition:background-color .15s}.board-list-item:hover{background-color:#f9f9f9;background-color:var(--hover-bg,#f9f9f9)}.board-list-item-left{align-items:center;display:flex;flex:1 1;gap:8px;min-width:0}.board-list-item-title{color:var(--text-primary);font-size:.95rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.board-list-item-reply-count{color:#4caf50;color:var(--primary-color,#4caf50);flex-shrink:0;font-size:.8rem;font-weight:600}.board-list-item-right{align-items:center;display:flex;flex-shrink:0;gap:12px}.board-list-item-author{align-items:center;color:var(--text-secondary);display:flex;font-size:.8rem;gap:4px}.board-list-item-date{color:var(--text-tertiary);font-size:.75rem;white-space:nowrap}.board-pinned-badge{background:#4caf50;background:var(--primary-color,#4caf50);border-radius:4px;color:#fff;display:inline-block;flex-shrink:0;font-size:.7rem;font-weight:600;padding:2px 6px}.board-list-item-pinned{background-color:#f9f9f9;background-color:var(--hover-bg,#f9f9f9)}.board-form-pin{align-items:center;color:var(--text-primary);cursor:pointer;display:flex;font-size:.9rem;gap:6px;margin-bottom:16px}.board-form-pin input[type=checkbox]{height:16px;width:16px}.board-private-badge{background:#999;background:var(--text-tertiary,#999);border-radius:4px;color:#fff;display:inline-block;flex-shrink:0;font-size:.7rem;font-weight:600;padding:2px 6px}.board-pagination{align-items:center;display:flex;gap:16px;justify-content:center;margin-top:1.5rem}.board-pagination button{background:var(--card-bg);border:1px solid var(--border-secondary);border-radius:6px;color:var(--text-primary);cursor:pointer;font-size:1.2rem;height:32px;width:32px}.board-pagination button:disabled{cursor:default;opacity:.3}.board-pagination span{color:var(--text-secondary);font-size:.85rem}.board-back-btn{background:none;border:none;color:#007bff;color:var(--link-color,#007bff);cursor:pointer;font-size:.9rem;margin-bottom:1rem;padding:0}.board-detail{background:var(--card-bg);border:1px solid var(--border-secondary);border-radius:10px;overflow:hidden}.board-detail-header{border-bottom:1px solid var(--border-secondary);padding:1.5rem}.board-detail-title{align-items:center;color:var(--text-primary);display:flex;font-size:1.2rem;gap:8px;margin:0 0 8px}.board-detail-meta{color:var(--text-tertiary);display:flex;font-size:.8rem;gap:16px}.board-detail-meta>span{align-items:center;display:flex;gap:4px}.board-detail-content{color:var(--text-primary);font-size:.95rem;line-height:1.7;min-height:120px;padding:1.5rem;text-align:left}.board-detail-actions{display:flex;gap:8px;justify-content:flex-end;padding:0 1.5rem 1.5rem}.board-form{background:var(--card-bg);border:1px solid var(--border-secondary);border-radius:10px;padding:1.5rem}.board-form h2{color:var(--text-primary);font-size:1.2rem;margin:0 0 1rem}.board-form-title{font-size:1rem}.board-form-content,.board-form-title{background:#fff;background:var(--input-bg,#fff);border:1px solid var(--border-secondary);border-radius:6px;box-sizing:border-box;color:var(--text-primary);margin-bottom:12px;padding:10px 12px;width:100%}.board-form-content{font-family:inherit;font-size:.95rem;resize:vertical}.board-form-visibility{align-items:center;color:var(--text-primary);display:flex;font-size:.9rem;gap:8px;margin-bottom:16px}.board-form-visibility select{background:#fff;background:var(--input-bg,#fff);border:1px solid var(--border-secondary);border-radius:6px;color:var(--text-primary);font-size:.85rem;padding:6px 10px}.board-form-actions{display:flex;gap:8px;justify-content:flex-end}.board-empty,.board-loading{color:var(--text-tertiary);font-size:.95rem;padding:3rem 1rem;text-align:center}.board-replies{margin-top:1.5rem;text-align:left}.board-replies-title{align-items:center;color:var(--text-primary);display:flex;font-size:1rem;gap:8px;margin:0 0 1rem}.board-reply-count{background:#4caf50;background:var(--primary-color,#4caf50);border-radius:10px;color:#fff;font-size:.7rem;font-weight:600;padding:2px 8px}.board-no-replies{color:var(--text-tertiary);font-size:.85rem;padding:1rem 0}.board-reply-list{margin-bottom:1.5rem}.board-reply-item{border-bottom:1px solid #eee;border-bottom:1px solid var(--border-secondary,#eee);padding:12px 0}.board-reply-header{align-items:center;display:flex;gap:12px;margin-bottom:6px}.board-reply-author{align-items:center;color:var(--text-primary);display:flex;font-size:.85rem;font-weight:600;gap:4px}.board-admin-badge{align-items:center;background:#ff9800;border-radius:4px;color:#fff;display:inline-flex;font-size:.65rem;font-weight:700;gap:2px;padding:1px 6px}.board-reply-date{color:var(--text-tertiary);font-size:.75rem}.board-reply-content{color:var(--text-primary);font-size:.9rem;line-height:1.6;padding:2px 0}.board-reply-actions{display:flex;gap:8px;margin-top:4px}.board-reply-action-btn{background:none;border:none;color:var(--text-tertiary);cursor:pointer;font-size:.75rem;padding:2px 0}.board-reply-action-btn:hover{color:var(--text-primary)}.board-reply-delete-btn:hover{color:#f44336}.board-reply-form{align-items:flex-end;display:flex;gap:8px}.board-reply-textarea{background:#fff;background:var(--input-bg,#fff);border:1px solid var(--border-secondary);border-radius:6px;box-sizing:border-box;color:var(--text-primary);flex:1 1;font-family:inherit;font-size:.9rem;padding:10px 12px;resize:vertical}.board-reply-submit-btn{align-self:flex-end;flex-shrink:0}.board-reply-edit-form{margin-top:6px}.board-reply-edit-actions{display:flex;gap:6px;margin-top:6px}@media (max-width:600px){.board-container{margin:1rem;padding:1rem}.board-list-item{align-items:flex-start;flex-direction:column;gap:4px}.board-list-item-right{font-size:.75rem}.board-detail-content,.board-detail-header{padding:1rem}}
/*# sourceMappingURL=main.0a3fc869.css.map*/