:root{--primary: #00bcd4;--primary-light: #e2f6ff;--primary-dark: #0da2e0;--secondary: #2196f3;--accent: #0fb9fa;--accent-rgb: 15, 185, 250;--content-background-gradient: linear-gradient(135deg, #f9fbff 0%, #f0f5ff 100%);--content-background-solid: #f5f8ff;--content-border-color: #3B82F6;--content-title-color: #2563eb;--content-text-color: #4b5563;--dark-blue: #0d47a1;--dark-gray: #212121;--medium-gray: #4f4f4f;--light-gray: #9e9e9e;--accent-blue: #607d8b;--light-blue: #daefff;--background-dark: #121212;--background-light: #ffffff;--background-gray: #f5f5f5;--border-light: #e0e0e0;--border-gray: #dee2e6;--success: #4caf50;--warning: #ffd166;--danger: #dc3545;--danger-light: #fff2f2;--info: #0571ed;--web-container-width: 1280px;--header-height: 64px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 40px;--page-horizontal-padding-xs: 8px;--page-horizontal-padding-sm: 16px;--page-vertical-margin-xs: 16px;--page-vertical-margin-sm: 24px;--content-container-border-radius: 10px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 2px 8px rgba(0, 0, 0, .1);--shadow-lg: 0 4px 12px rgba(0, 0, 0, .15);--border-radius-sm: 4px;--border-radius-md: 8px;--border-radius-lg: 16px;--border-radius-xl: 20px;--border-radius-round: 50%;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-xxl: 2rem;--naver-green: #03C75A;--naver-dark-green: #02AD4E}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f0f0f0;color:var(--dark-gray);line-height:1.6}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}a{text-decoration:none;color:inherit}button{background:none;border:none;cursor:pointer;font-family:inherit;font-size:inherit}ul,ol{list-style:none}.container{display:flex;flex-direction:column;justify-content:center;padding:20px;width:100%;max-width:100%;box-sizing:border-box}.card{background-color:#fff;border-radius:var(--border-radius-md);box-shadow:var(--shadow-sm);padding:20px;border:1px solid var(--border-light);width:100%;max-width:var(--web-container-width);margin:0 auto}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);font-weight:500;transition:all .2s ease;cursor:pointer}.btn-default{background-color:#f8f9fa;border:1px solid var(--border-gray);border-radius:var(--border-radius-sm);color:var(--dark-gray);padding:10px 20px;cursor:pointer;font-size:var(--font-size-sm);min-width:80px;text-align:center}.btn-default:hover{background-color:#e9ecef}.btn-primary{background-color:var(--accent);border:1px solid var(--border-gray);border-radius:var(--border-radius-sm);color:#fff;padding:10px 20px;cursor:pointer;font-size:var(--font-size-sm);min-width:80px;text-align:center}.btn-primary:hover{background-color:var(--primary-dark)}.btn-secondary{background-color:var(--background-gray);color:var(--dark-gray);border:1px solid var(--border-light)}.btn-secondary:hover{background-color:#e1e1e1}.btn-danger{background-color:var(--danger);color:#fff;border:none}.btn-danger:hover{background-color:#c82333}.loading,.error{display:flex;justify-content:center;align-items:center;height:200px;font-size:var(--font-size-md)}.loading{color:var(--medium-gray)}.error{color:var(--danger)}.loading-spinner{display:flex;align-items:center;gap:10px}.spinner{width:18px;height:18px;border:2px solid #ddd;border-top:2px solid var(--accent);border-radius:50%;animation:spin 1s linear infinite}.form-group{margin-bottom:20px}.form-input{width:100%;padding:10px;border:1px solid var(--border-gray);border-radius:var(--border-radius-sm);font-size:var(--font-size-md)}.form-input:focus{outline:none;border-color:var(--accent)}.gnb{display:flex;justify-content:space-between;align-items:center;background-color:var(--background-dark);padding:10px 20px;color:#fff;overflow:hidden;z-index:9999}.gnb-left{display:flex;align-items:center;z-index:9999}.gnb-logo-w{display:flex;align-items:center;cursor:pointer;margin-right:5px}.logo-container{width:40px;height:40px;display:flex;align-items:center;justify-content:center}.logo-container img{width:100%;height:100%}.gnb-logo{font-size:1.8rem;font-weight:700;font-family:Arial,sans-serif;color:#fff;text-shadow:1px 1px 3px rgba(0,0,0,.2);margin-right:30px}.gnb-menu{display:flex;gap:20px;justify-content:flex-start;align-items:center}.menu-item-container{display:flex;flex-direction:column;align-items:center;position:relative}.gnb-button{background-color:transparent;color:var(--light-gray);border:none;padding:10px 16px;font-size:var(--font-size-md);cursor:pointer;display:flex;align-items:center;gap:8px;position:relative;border-radius:var(--border-radius-sm);font-weight:500;letter-spacing:.2px;transition:all .3s cubic-bezier(.4,0,.2,1)}.menu-underline{height:2px;background-color:var(--primary);position:absolute;bottom:-2px;left:0;border-radius:var(--border-radius-sm)}.gnb-badge{display:inline-flex;align-items:center;justify-content:center;background-color:var(--primary);color:#fff;border-radius:50%;min-width:18px;height:18px;font-size:.7rem;padding:2px;margin-left:5px;box-shadow:0 2px 4px #0003}.gnb-button:hover{background-color:#ffffff0d;transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.gnb-button.active{color:#fff;font-weight:600}.category-navbar{display:flex;background-color:var(--background-gray);border-bottom:1px solid var(--border-light);padding:0;margin:0;height:50px;align-items:center;overflow-x:auto;-webkit-overflow-scrolling:touch;position:relative}.category-navbar::-webkit-scrollbar{height:4px}.category-navbar::-webkit-scrollbar-thumb{background-color:#0003;border-radius:10px}.category-item{padding:0 20px;height:100%;display:flex;align-items:center;color:#555;font-size:var(--font-size-sm);font-weight:500;white-space:nowrap;transition:all .3s ease;position:relative;cursor:pointer;-webkit-user-select:none;user-select:none}.category-item:hover{color:var(--accent);background-color:#0fb9fa0d}.category-item.active{color:var(--accent);font-weight:600}.category-indicator{position:absolute;bottom:0;height:3px;background-color:var(--accent);border-radius:2px 2px 0 0;z-index:2;box-shadow:0 0 8px #0fb9fa80}.new-window-icon{display:inline-flex;margin-left:5px;vertical-align:middle;transform-origin:center;transition:transform .2s ease}.new-window-icon svg{width:12px;height:12px}.category-navbar-loading,.category-error{width:100%;height:50px;display:flex;justify-content:center;align-items:center;background-color:var(--background-gray);font-size:var(--font-size-sm);color:var(--medium-gray)}.category-error{color:var(--danger)}.fixed-menu{display:flex;justify-content:space-around;align-items:center;position:fixed;bottom:0;left:0;right:0;background-color:var(--background-dark);padding:10px 0;border-top:2px solid var(--primary);z-index:10}.menu-button{display:flex;flex-direction:column;justify-content:center;align-items:center;background:none;border:none;color:var(--background-light);cursor:pointer;padding:8px 16px;font-size:var(--font-size-md);transition:background-color .3s ease}.menu-button span{margin-top:5px}.menu-button:hover{background-color:var(--secondary)}.plus-button{width:50px;height:50px;border-radius:50%;background-color:var(--dark-blue);display:flex;justify-content:center;align-items:center;color:var(--background-light);font-size:24px;border:1px solid var(--light-blue);cursor:pointer}.plus-button:hover{background-color:var(--secondary);border-color:var(--secondary)}.post-list-container{display:flex;flex-direction:column;justify-content:center;padding:20px;width:100%;max-width:100%;box-sizing:border-box;position:relative;overflow-x:hidden}.post-navbar-header{width:100%;max-width:var(--web-container-width);position:relative;margin:0 auto}.post-list{background-color:#fff;border-radius:var(--border-radius-md);box-shadow:var(--shadow-md);padding:15px;border:1px solid #eee;width:100%;max-width:var(--web-container-width);margin:0 auto;position:relative;box-sizing:border-box;transition:all .3s ease}.posts{list-style:none;padding:0;margin:0;position:relative;min-height:400px}.post-list-item{padding-top:0;padding-bottom:0;margin:0;border-bottom:1px solid #eee;height:auto;min-height:70px;display:flex;flex-direction:column;justify-content:center;position:relative;z-index:1;background-color:#fff;transition:background-color .3s ease;will-change:transform,opacity;transform-origin:center left}.post-list-item:hover{background-color:#f8f9fa}.post-list-content{padding:0;margin:0;display:flex;flex-direction:column;gap:8px;width:100%}.post-list-title{margin-bottom:0;margin-top:0;line-height:1.4}.post-list-title a{color:#333;text-decoration:none;font-weight:500;word-break:break-word;display:inline-flex;align-items:center;flex-wrap:wrap}.post-list-title a:hover{color:var(--accent)}.post-info-line{display:flex;font-size:var(--font-size-xs);color:#666;flex-wrap:wrap;gap:12px}.post-author,.post-date,.post-likes,.post-views{display:inline-flex;align-items:center;color:#888}.comment-count{color:var(--accent);font-weight:700;margin-left:4px;display:inline-flex;align-items:center}.no-posts{padding:30px 0;text-align:center;color:#666;font-size:var(--font-size-md)}.pagination{display:flex;justify-content:center;margin-top:20px;gap:10px}.pagination-button{border:1px solid var(--border-gray);background-color:#fff;color:#333;padding:8px 16px;cursor:pointer;border-radius:var(--border-radius-sm);text-decoration:none;font-size:var(--font-size-xs);font-weight:500;box-shadow:var(--shadow-sm);transition:all .2s ease}.pagination-button.active{background-color:var(--accent);color:#fff;border-color:var(--accent)}.pagination-button:hover{background-color:#f5f5f5;border-color:#ccc}.visited-post .post-list-title{color:#a0a0a0!important}.visited-post:hover .post-list-title{color:var(--accent)!important}.post-detail-container{display:flex;flex-direction:column;justify-content:center;padding:20px;width:100%;max-width:100%;box-sizing:border-box}.post-detail{width:100%;max-width:var(--web-container-width);margin:0 auto;background-color:#fff;border-radius:var(--border-radius-md);box-shadow:var(--shadow-sm);padding:20px;border:1px solid #eee;position:relative;box-sizing:border-box;transition:all .3s ease}.post-header{border-bottom:1px solid #eee;padding-bottom:15px;margin-bottom:20px;width:100%;transition:all .3s ease}.back-button{background-color:#f1f1f1;border:1px solid #ddd;border-radius:var(--border-radius-sm);padding:8px 16px;color:#333;font-size:var(--font-size-sm);cursor:pointer;display:inline-flex;align-items:center;transition:all .2s ease}.back-button:hover{background-color:#e1e1e1;color:var(--accent)}.post-title{font-size:26px;margin-bottom:10px;color:#333;transition:all .3s ease}.post-meta{display:flex;gap:20px;color:#666;font-size:var(--font-size-sm);flex-direction:row}.post-options-container{display:flex;position:relative}.post-options-button{background:transparent;border:none;color:#aaa;cursor:pointer;padding:4px}.post-options-menu{position:absolute;right:0;top:30px;z-index:10;background-color:#fff;border-radius:var(--border-radius-md);box-shadow:var(--shadow-md);overflow:hidden;min-width:100px}.post-option-item{display:block;width:100%;text-align:left;background:none;border:none;color:#333;padding:12px 16px;font-size:var(--font-size-sm);cursor:pointer}.post-option-item:hover{background-color:#ffffff1a}.post-content{padding-bottom:10px;min-height:200px;line-height:1.8}.post-actions{display:flex;justify-content:space-between;padding-top:20px;padding-bottom:20px;border-top:1px solid #eee;border-bottom:1px solid #eee;flex-direction:row}.post-reactions{display:flex;gap:10px}.like-button,.dislike-button,.copy-url-button,.back-to-list-button{background-color:#f8f9fa;border:1px solid var(--border-gray);border-radius:var(--border-radius-sm);padding:8px 10px;cursor:pointer;display:flex;align-items:center;gap:4px;font-size:11px;transition:all .2s ease;will-change:transform}.like-button:hover{background-color:var(--primary-light);color:var(--accent)}.dislike-button:hover{background-color:var(--danger-light);color:var(--danger)}.active-like{background-color:var(--primary-light);color:var(--accent);border-color:var(--accent);font-weight:700}.active-dislike{background-color:var(--danger-light);color:var(--danger);border-color:var(--danger);font-weight:700}.post-edit-actions{display:flex;gap:10px}.edit-button,.delete-button{padding:8px 16px;border-radius:var(--border-radius-sm);cursor:pointer;font-size:var(--font-size-sm);display:inline-flex;align-items:center;justify-content:center}.edit-button{background-color:var(--accent);color:#fff;text-decoration:none;border:none}.edit-button:hover{background-color:var(--primary-dark)}.delete-button{background-color:var(--danger);color:#fff;border:none}.delete-button:hover{background-color:#c82333}.post-form{background-color:#fff;border-radius:var(--border-radius-md);box-shadow:var(--shadow-sm);padding:20px;max-width:var(--web-container-width);margin:0 auto;width:100%}.post-form h1{font-size:24px;margin-bottom:20px;color:#333}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:var(--dark-gray)}.form-group input[type=text]{width:100%;padding:10px;border:1px solid var(--border-gray);border-radius:var(--border-radius-sm);font-size:var(--font-size-md)}.editor-wrapper{border:1px solid var(--border-gray);border-radius:var(--border-radius-sm);margin-bottom:20px}.editor-custom-buttons{display:flex;gap:10px;margin-top:10px;padding:10px;background-color:#f8f9fa;border-top:1px solid var(--border-gray)}.custom-button{background-color:#fff;border:1px solid var(--border-gray);border-radius:var(--border-radius-sm);padding:8px 12px;cursor:pointer;font-size:var(--font-size-sm);display:flex;align-items:center}.custom-button:hover{background-color:#f8f9fa}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.tag-list{display:flex;flex-wrap:wrap;gap:.75rem;margin:1rem 0}.tag-item{display:inline-block;padding:.1rem .8rem;border-radius:2rem;background-color:var(--background-gray);border:1px solid var(--border-gray);color:#333;font-size:.8rem;text-decoration:none;transition:all .2s ease;margin-bottom:-10px}.tag-item:hover{background-color:var(--light-blue);border-color:var(--light-blue);text-decoration:none}.comments-section{margin-top:30px;width:100%;box-sizing:border-box;font-family:Roboto,Arial,sans-serif;background-color:#fff;color:#333}.comments-header{display:flex;justify-content:space-between;align-items:center;padding:16px 0;cursor:pointer}.comments-count{font-size:var(--font-size-md);font-weight:500;margin:0}.comments-header-right{display:flex;align-items:center}.sort-button{display:flex;align-items:center;gap:8px;background:transparent;border:none;color:#333;cursor:pointer;font-size:var(--font-size-sm);padding:8px}.sort-button:hover{background-color:#ffffff1a;border-radius:18px}.comment-form-container{display:flex;align-items:flex-start;padding:16px 0;gap:12px}.comment-form-profile{width:30px;height:40px;flex-shrink:0;display:flex;align-items:center}.my-profile-img,.author-profile-img{width:40px;height:40px;border-radius:50%;object-fit:cover}.author-profile-img{width:30px;height:30px}.profile-placeholder{width:40px;height:40px;background-color:var(--light-gray);border-radius:50%;display:flex;justify-content:center;align-items:center;color:#fff;font-weight:700;font-size:18px}.comment-form{flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.inline-reply-form{margin-top:12px;margin-left:-30px;margin-bottom:16px}.reply-form-container{display:flex;align-items:flex-start;gap:12px}.reply-form-profile{width:32px;height:32px;flex-shrink:0}.reply-form-profile .profile-placeholder{width:32px;height:32px;font-size:14px}.reply-form{flex:1;display:flex;flex-direction:column;align-items:stretch;gap:8px}.reply-input-container,.input-container{width:100%;position:relative}.comment-input,.reply-input{width:100%;padding:8px 0;background-color:transparent;border:none;border-bottom:1px solid rgba(0,0,0,.1);color:#333;font-size:var(--font-size-sm);outline:none;resize:none;overflow:hidden;min-height:24px;line-height:1.4;font-family:Roboto,Arial,sans-serif;margin:0;box-sizing:border-box;display:block}.comment-input:focus,.reply-input:focus{border-bottom:1px solid rgba(0,0,0,.3)}.comment-input::placeholder{color:#aaa}.reply-form-buttons,.comment-form-buttons{display:flex;gap:8px}.reply-cancel-button,.comment-clear-btn{padding:6px 12px!important;border-radius:18px!important;font-size:13px!important;background-color:transparent!important;color:#666!important;border:1px solid #ddd!important;cursor:pointer}.reply-cancel-button:hover,.comment-clear-btn:hover{background-color:#0000000d!important}.comment-submit-btn,.reply-submit-button{padding:6px 10px!important;border-radius:18px!important;font-size:11px!important;cursor:pointer!important;font-weight:500!important;color:#fff!important;background-color:var(--accent)!important;border:1px solid #ddd!important}.comment-submit-btn:hover,.reply-submit-button:hover{background-color:var(--primary-dark)!important}.comment-submit-btn:disabled,.reply-submit-button:disabled{background-color:#ccc!important;cursor:not-allowed!important}.comments-list{list-style:none;padding:0;margin:0}.comment-item{margin-bottom:0}.comment-container{display:flex;gap:12px;padding-top:12px}.comment-profile-image{width:30px;height:30px;flex-shrink:0}.comment-content-wrapper{flex:1}.comment-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2px}.comment-author-info{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.author-name{font-size:13px;font-weight:500}.comment-date{font-size:12px;color:#777}.comment-text{font-size:14px;line-height:1.4;margin-bottom:6px;white-space:pre-wrap;word-wrap:break-word}.comment-options-container{position:relative}.comment-options-button{background:transparent;border:none;color:#aaa;cursor:pointer;padding:4px;border-radius:50%}.comment-options-button:hover{background-color:#ffffff1a}.comment-options-menu{position:absolute;right:0;top:30px;z-index:10;background-color:#fff;border-radius:var(--border-radius-md);box-shadow:var(--shadow-md);overflow:hidden;min-width:100px}.option-item{display:block;width:100%;text-align:left;background:none;border:none;color:#333;padding:12px 16px;font-size:var(--font-size-sm);cursor:pointer}.option-item:hover{background-color:#ffffff1a}.comment-actions{margin-top:4px}.comment-reactions{display:flex;gap:8px}.reactions-container{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.reaction-button,.emoji-badge{height:32px;display:flex;align-items:center;background:transparent;border:none;color:#666;cursor:pointer;padding:4px 8px;font-size:13px;border-radius:16px}.reaction-button.active-like,.reaction-button.active-dislike,.emoji-badge.selected{background-color:var(--primary-light);color:var(--accent);border:1px solid var(--accent);font-weight:700}.reaction-button:hover{background-color:#0000000d}.thumb-icon{font-size:14px;line-height:1}.reaction-count{margin-left:4px}.reply-button{display:flex;align-items:center;gap:4px}.reply-text{font-size:13px}.comment-edit{margin:8px 0;width:100%;max-width:98%}.comment-edit-textarea{width:100%;padding:8px;background-color:#f5f5f5;border:1px solid #ddd;border-radius:var(--border-radius-sm);color:#333;font-size:var(--font-size-sm);resize:vertical;min-height:60px;margin-bottom:8px;box-sizing:border-box}.comment-edit-actions{display:flex;gap:8px;justify-content:flex-end;width:100%}.comment-save-button,.comment-cancel-button{padding:8px 16px;border-radius:18px;font-size:13px;font-weight:500;cursor:pointer}.comment-save-button{background-color:var(--accent);color:#fff;border:none}.comment-save-button:hover{background-color:var(--primary-dark)}.comment-cancel-button{background-color:transparent;color:#666;border:1px solid #ddd}.comment-cancel-button:hover{background-color:#0000000d}.comment-replies{margin-left:0;border-left:2px solid #f0f0f0;background-color:#f9f9f9;padding-left:25px}.comment-replies:hover{border-left-color:var(--accent)}.mention{color:var(--accent);font-weight:500}.comment-media-buttons,.reply-media-buttons{display:flex;gap:8px;margin-top:4px;margin-bottom:8px;width:100%;justify-content:flex-end!important}.media-button{padding:6px 10px!important;border-radius:18px!important;font-size:11px!important;cursor:pointer!important;font-weight:500!important;border:1px solid #ddd;background-color:#f8f9fa;transition:all .2s ease-in-out}.image-button{color:var(--accent)!important;border:1px solid var(--accent)!important;background-color:#fff!important}.image-button:hover{background-color:#e9f7ff!important;border-color:var(--accent)!important}.youtube-button{color:red!important;background-color:transparent!important;border:1px solid #ff0000!important}.youtube-button:hover{background-color:#fff8f8!important}.comment-image-container,.comment-youtube-container{margin-top:8px;margin-bottom:8px;max-width:100%}.comment-image{max-width:100%;max-height:300px;border-radius:var(--border-radius-md);border:1px solid #eee}.top-reactions{display:flex;gap:2px 4px;margin-bottom:8px;flex-wrap:wrap;width:100%}.emoji-reactions-container{display:flex;flex-grow:1}.emoji-style-button{display:flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:13px;background:transparent;border:1px solid #e0e0e0;cursor:pointer;height:32px}.emoji-style-button,.active-reaction{background-color:var(--primary-light);color:var(--accent);border-color:var(--accent);font-weight:700}.comments-loading,.comments-error,.comments-success,.no-comments{padding:16px;text-align:center;font-size:var(--font-size-sm)}.comments-error{color:var(--danger);background-color:#f443361a;border-radius:var(--border-radius-sm)}.comments-success{color:var(--success);background-color:#4caf501a;border-radius:var(--border-radius-sm);animation:fadeOut 3s forwards}.no-comments{color:#777;font-style:italic}.emoji-badge{display:flex;align-items:center;background-color:#f0f2f5;border:1px solid transparent;border-radius:16px;padding:2px 8px;font-size:12px;cursor:pointer;transition:all .2s ease;height:32px}.emoji-badge:hover{background-color:#e4e6eb}.emoji-badge.selected{background-color:#e6f2fe;border-color:var(--info);color:var(--accent);font-weight:700}.emoji-icon{margin-right:2px;cursor:pointer;display:flex;align-items:center}.emoji-count{font-size:10px}.emoji-picker-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;z-index:999;display:flex;justify-content:center;align-items:center}.emoji-picker-container{position:fixed;z-index:1000;background-color:#fff;border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg);width:340px;max-height:350px;overflow:hidden;display:flex;flex-direction:column;border:1px solid #e0e0e0;top:30%;left:50%;transform:translate(-50%,-50%);max-width:min(340px,100vw - 20px)}.emoji-picker-header{padding:8px 12px;border-bottom:1px solid #eaeaea;background-color:#f8f8f8}.emoji-search-container{display:flex;align-items:center;background-color:#fff;border-radius:16px;padding:0 10px;border:1px solid #e0e0e0}.search-icon{color:#757575;font-size:18px;margin-right:8px}.emoji-search-input{flex:1;border:none;outline:none;padding:8px 0;font-size:var(--font-size-sm);background:transparent}.clear-search-button{background:none;border:none;cursor:pointer;font-size:18px;color:#757575;display:flex;align-items:center;justify-content:center;padding:0;margin:0;width:20px;height:20px}.emoji-picker-content{flex:1;overflow-y:scroll;overflow-x:hidden;padding:8px}.emoji-category{margin-bottom:10px}.emoji-category-label{font-size:12px;font-weight:500;color:#757575;margin-bottom:8px;padding-left:4px;display:flex;align-items:center}.emoji-category-label svg{margin-right:4px;font-size:14px}.emoji-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:0}.emoji-option{background:none;border:none;cursor:pointer;border-radius:var(--border-radius-sm);padding:6px;display:flex;align-items:center;justify-content:center;transition:background-color .2s}.emoji-option:hover{background-color:#f0f0f0}.emoji-option.selected{background-color:#e3f2fd}.emoji-searching,.emoji-no-results{display:flex;align-items:center;justify-content:center;height:100px;color:#757575;font-size:var(--font-size-sm)}.emoji-search-results{margin-bottom:12px}.emoji-manager{width:100%;border:1px solid #e0e0e0;border-radius:var(--border-radius-md);background-color:#fff;box-shadow:var(--shadow-md);overflow:hidden}.emoji-manager-header{padding:12px 16px;background-color:#f8f8f8;border-bottom:1px solid #e0e0e0;display:flex;flex-direction:column;gap:10px}.emoji-manager-title{margin:0;font-size:var(--font-size-md);font-weight:500;color:#333;display:flex;align-items:center}.emoji-manager-icon{margin-right:8px;color:#757575}.emoji-tabs{display:flex;border-bottom:1px solid #e0e0e0;background-color:#f8f8f8}.emoji-tab{flex:1;background:none;border:none;padding:10px;font-size:var(--font-size-sm);font-weight:500;color:#757575;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:background-color .2s}.emoji-tab:hover{background-color:#f0f0f0}.emoji-tab.active{background-color:#fff;color:var(--secondary);border-bottom:2px solid var(--secondary)}.emoji-content,.emoji-search-results{padding:16px;max-height:300px;overflow-y:auto}.emoji-category-label{font-size:var(--font-size-sm);font-weight:500;color:#757575;margin-bottom:12px}.emoji-item{background:none;border:1px solid transparent;cursor:pointer;border-radius:var(--border-radius-sm);padding:8px;display:flex;align-items:center;justify-content:center;transition:all .2s}.emoji-item:hover{background-color:#f0f0f0;border-color:#e0e0e0}.emoji-loading,.emoji-empty-message{display:flex;align-items:center;justify-content:center;padding:32px 16px;color:#757575;font-size:var(--font-size-sm)}.emoji-upload-section{padding:12px 16px;border-top:1px solid #e0e0e0;background-color:#f8f8f8;display:flex;justify-content:center}.emoji-add-button{display:flex;align-items:center;gap:8px;background-color:var(--secondary);color:#fff;border:none;border-radius:20px;padding:8px 16px;font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:background-color .2s}.emoji-add-button:hover{background-color:#1976d2}.emoji-uploader-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.emoji-uploader-container{background-color:#fff;border-radius:var(--border-radius-md);box-shadow:var(--shadow-md);width:90%;max-width:500px;overflow:hidden}.emoji-uploader-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid #eaeaea}.emoji-uploader-header h3{margin:0;font-size:18px;color:#333}.emoji-uploader-close-button{background:none;border:none;cursor:pointer;color:#666;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:50%}.emoji-uploader-close-button:hover{background-color:#f0f0f0}.emoji-uploader-form{padding:16px}.emoji-uploader-input-group{margin-bottom:16px}.emoji-uploader-label{display:block;margin-bottom:8px;font-weight:500;color:#333}.emoji-uploader-input{width:100%;padding:10px;border:1px solid #ddd;border-radius:var(--border-radius-sm);font-size:var(--font-size-sm)}.emoji-uploader-input:focus{outline:none;border-color:var(--info)}.emoji-uploader-file-input{display:flex;align-items:center;position:relative}.emoji-uploader-file{opacity:0;position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer}.emoji-uploader-file-button{padding:10px 16px;background-color:#f0f2f5;border:1px solid #ddd;border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);cursor:pointer}.emoji-uploader-file-name{margin-left:10px;font-size:var(--font-size-sm);color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.emoji-uploader-preview{display:flex;flex-direction:column;align-items:center;margin-bottom:16px}.emoji-uploader-preview-container{width:100px;height:100px;background-color:#f0f2f5;border-radius:var(--border-radius-md);display:flex;align-items:center;justify-content:center;overflow:hidden;margin-bottom:8px}.emoji-uploader-preview-image{max-width:100%;max-height:100%;object-fit:contain}.emoji-uploader-preview-label{font-size:var(--font-size-sm);color:#666}.emoji-uploader-error{color:var(--danger);font-size:var(--font-size-sm);margin-bottom:16px;padding:8px;background-color:#d32f2f1a;border-radius:var(--border-radius-sm)}.emoji-uploader-actions{display:flex;justify-content:flex-end;gap:12px}.emoji-uploader-cancel-button{padding:10px 16px;background-color:transparent;border:1px solid #ddd;border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);cursor:pointer;color:#666}.emoji-uploader-cancel-button:hover{background-color:#f0f0f0}.emoji-uploader-submit-button{padding:10px 16px;background-color:var(--info);border:none;border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);cursor:pointer;color:#fff}.emoji-uploader-submit-button:hover{background-color:#0462d0}.emoji-uploader-submit-button:disabled{background-color:#ccc;cursor:not-allowed}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;z-index:1000}.modal-content{margin:120px auto;background-color:#efeeee;border-radius:18px;max-width:600px;display:flex;flex-direction:column;align-items:center}.modal-content button{margin-top:30px}.modal-header{display:flex;justify-content:space-between;align-items:center}.modal-close-btn{background:none;border:none;font-size:24px;cursor:pointer}.modal-submit-btn{padding:10px 20px;background-color:#007bff;color:#fff;border:none;border-radius:var(--border-radius-sm);cursor:pointer}.modal-submit-btn:hover{background-color:#0056b3}.modal-input{width:578px;padding:10px;margin:10px 0;border:1px solid #ccc;border-radius:var(--border-radius-sm)}.modal-editor{width:100%;margin:0;border:1px solid #ccc;border-radius:var(--border-radius-sm)}.profile-modal-content{background:#fff;padding:2rem;border-radius:var(--border-radius-lg);text-align:center;box-shadow:var(--shadow-md);max-width:300px;width:100%}.profile-modal-image{width:80px;height:80px;border-radius:50%;margin:1rem auto}.profile-modal-content .auth-profile-icon{width:80px;height:80px;margin:1rem auto}@media (max-width: 768px){.category-item{padding:0 15px;font-size:13px}.post-meta{flex-direction:row;gap:5px}.post-actions{gap:15px}.post-reactions,.post-edit-actions{justify-content:center}.post-detail,.post-detail-container{padding:10px}.post-form{padding:15px}.form-actions{display:flex;flex-direction:row;justify-content:flex-end}.cancel-button,.submit-button{width:auto;min-width:80px}.comment-form{flex-direction:column;align-items:stretch}.comment-form-buttons{display:flex;justify-content:flex-end;gap:8px;margin-top:8px;width:100%}.comment-options-menu{right:-8px}.comment-edit-actions{flex-wrap:wrap}.comment-replies{margin-left:0;padding-left:25px}.comment-media-buttons,.reply-media-buttons{flex-wrap:wrap}.modal-content{width:95%;padding:15px}.modal-input,.modal-submit-btn,.modal-editor{font-size:var(--font-size-sm)}.modal-editor{min-height:200px}.post-list-container,.post-detail-container{padding:2px!important}}@media (max-width: 480px){.post-list{padding:10px;border-radius:5px}.post-list-item{padding:2px 0;min-height:60px}.post-list-title{font-size:15px}.post-info-line{font-size:12px;gap:8px}.pagination-button{padding:6px 12px;font-size:11px}.emoji-grid{grid-template-columns:repeat(6,1fr)}.modal-content{width:100%;padding:10px}.modal-input,.modal-submit-btn,.modal-editor{font-size:12px}.modal-editor{min-height:150px}.modal-close-btn{font-size:18px}.form-actions{flex-direction:row;justify-content:flex-end}.cancel-button,.submit-button{padding:10px 15px}}.wiznut-toggle{position:relative!important;display:inline-block!important;z-index:1000}.wiznut-lang-button{background-color:transparent!important;border:1px solid #4fc3f7!important;color:#4fc3f7!important;cursor:pointer!important;font-size:12px!important;font-weight:700!important;padding:2px 7px!important;border-radius:10px!important;display:inline-flex!important;align-items:center!important;outline:none!important;white-space:nowrap!important;text-transform:uppercase!important;-webkit-user-select:none!important;user-select:none!important;width:auto!important;margin:0!important}.wiznut-lang-dropdown{background-color:#222!important;border-radius:8px!important;box-shadow:0 4px 12px #0000004d!important;border:1px solid #333!important;min-width:120px!important;margin:8px 0 0!important;padding:0!important;width:auto!important;z-index:9999999!important}.wiznut-lang-option{display:block!important;padding:10px 14px!important;width:100%!important;text-align:left!important;background-color:transparent!important;border:none!important;color:#fff!important;cursor:pointer!important;font-size:14px!important;margin:0!important}.wiznut-lang-option:hover{background-color:#333!important;color:#4fc3f7!important}.board-button-container{position:fixed;bottom:60px;right:10px;z-index:1000;display:flex;flex-direction:column;align-items:center;width:80px}.btn-floating{background-color:var(--accent);color:#fff;border:none;border-radius:50%;width:60px;height:60px;display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:24px;box-shadow:var(--shadow-md);transition:all .2s ease-in-out;animation:pulse 2s infinite,float 3s ease-in-out infinite;margin-bottom:-15px}.board-button-text{font-size:12px;font-weight:700;background-color:#fffc;padding:3px 8px;border-radius:10px;color:var(--accent);text-align:center;box-shadow:0 2px 4px #0000001a;white-space:nowrap;z-index:998}@keyframes pulse{0%{box-shadow:0 0 rgba(var(--accent-rgb),.7)}70%{box-shadow:0 0 0 10px rgba(var(--accent-rgb),0)}to{box-shadow:0 0 rgba(var(--accent-rgb),0)}}.btn-floating:hover{background-color:var(--primary-dark);transform:translateY(-3px) scale(1.05);box-shadow:var(--shadow-lg);animation-play-state:paused}@media (max-width: 768px){.board-button-container{bottom:50px;right:0;width:70px}.btn-floating{width:50px;height:50px;font-size:20px;margin-bottom:-15px}.board-button-text{font-size:10px;padding:2px 6px}}.auth-login{display:flex;justify-content:flex-end}.auth-login-btn{background-color:var(--dark-blue);color:#fff;border:none;padding:8px 16px;font-size:var(--font-size-md);border-radius:var(--border-radius-sm);cursor:pointer;transition:background-color .3s ease;width:100%;box-sizing:border-box}.auth-login-btn:hover{background-color:var(--secondary)}.auth-login-btn:focus{outline:none}.auth-profile-image{width:40px;height:40px;border-radius:50%;cursor:pointer;border:2px solid #fff;transition:transform .2s}.auth-profile-image:hover{transform:scale(1.1)}.auth-profile-icon{cursor:pointer;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background-color:var(--background-gray);transition:transform .2s ease}.auth-profile-icon:hover{transform:scale(1.1)}.auth-logout-btn{background-color:var(--danger);color:#fff;padding:8px 16px;border:none;border-radius:var(--border-radius-sm);cursor:pointer;margin-top:1rem;font-size:var(--font-size-sm)}.auth-logout-btn:hover{background-color:#f33}@media (max-width: 768px){.auth-profile-image,.auth-profile-icon{width:36px;height:36px}.auth-login-btn{padding:6px 12px;font-size:var(--font-size-sm)}}.crop-container{position:relative;z-index:2001;pointer-events:auto!important;max-width:100%;margin:0 auto;touch-action:none}.profile-button-container{position:relative}.profile-button-image{width:40px;height:40px;border-radius:50%;object-fit:cover;cursor:pointer;border:2px solid var(--light-blue);transition:all .2s ease}.profile-button-image:hover{border-color:var(--accent);transform:scale(1.05)}.profile-button-icon{cursor:pointer;color:var(--darkBlue);transition:all .2s ease;border-radius:50%;display:flex;align-items:center;justify-content:center}.profile-button-icon:hover{color:var(--accent);transform:scale(1.05)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.profile-modal{background-color:#fff;border-radius:var(--border-radius-md);box-shadow:var(--shadow-md);width:90%;max-width:400px;overflow:hidden;animation:modal-fade-in .3s ease;transition:transform .3s ease,opacity .3s ease}.profile-modal-exit{opacity:0;transform:scale(.95) translateY(10px)}@keyframes modal-fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.profile-header{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;border-bottom:1px solid #eee}.profile-header h2{margin:0;font-size:18px;color:var(--dark-gray)}.close-button{background:none;border:none;font-size:24px;cursor:pointer;color:#888;display:flex;align-items:center;justify-content:center;padding:0;width:30px;height:30px;border-radius:50%}.close-button:hover{background-color:#f5f5f5;color:var(--accent)}.profile-content{padding:20px}.profile-image-container{position:relative;width:100px;height:100px;margin:0 auto 20px;transition:transform .3s ease}.profile-image-container:hover{transform:scale(1.05)}.profile-image{width:100%;height:100%;border-radius:50%;object-fit:cover;border:3px solid var(--light-blue);transition:all .3s ease}.profile-image:hover{border-color:var(--accent);box-shadow:0 0 15px #007bff80}.profile-icon{width:100%;height:100%;color:var(--darkBlue)}.image-upload-button{position:absolute;bottom:0;right:0;background-color:var(--accent);color:#fff;border:none;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-sm);transition:all .3s ease;z-index:2;animation:pulse 2s infinite}@keyframes pulse{0%{transform:scale(1);box-shadow:0 0 #007bffb3}70%{transform:scale(1.1);box-shadow:0 0 0 10px #007bff00}to{transform:scale(1);box-shadow:0 0 #007bff00}}.image-upload-button:hover{background-color:var(--primary-dark);transform:scale(1.1)}.image-upload-button:disabled{background-color:#ccc;cursor:not-allowed}.profile-info{text-align:center}.profile-name{display:flex;align-items:center;justify-content:center;margin-bottom:10px;font-size:18px;font-weight:500;color:var(--dark-gray)}.profile-name span{margin-right:10px}.edit-button{background:none;border:none;color:#888;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:5px;border-radius:50%;transition:all .3s ease}.edit-button:hover{color:var(--accent);background-color:#f5f5f5;transform:rotate(15deg)}.profile-email{color:#888;margin:0;font-size:14px}.edit-profile-form{margin-top:20px;text-align:center}.form-group{margin-bottom:15px;text-align:left}.form-group label{display:block;margin-bottom:5px;font-size:14px;color:var(--dark-gray)}.form-input{width:100%;padding:10px;border:1px solid #ddd;border-radius:var(--border-radius-sm);font-size:14px}.button-group{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.cancel-button{background-color:#f5f5f5;border:1px solid #ddd;border-radius:var(--border-radius-sm);padding:8px 15px;cursor:pointer;font-size:14px;color:var(--dark-gray);transition:all .3s ease}.cancel-button:hover{background-color:#e5e5e5;transform:translateY(-2px)}.save-button{background-color:var(--accent);color:#fff;border:none;border-radius:var(--border-radius-sm);padding:8px 15px;cursor:pointer;font-size:14px;transition:all .3s ease}.save-button:hover{background-color:var(--primary-dark);transform:translateY(-2px);box-shadow:0 4px 8px #0000001a}.profile-footer{display:flex;justify-content:space-between;padding:15px 20px;border-top:1px solid #eee}.profile-footer .close-button{background-color:#f5f5f5;border:1px solid #ddd;border-radius:var(--border-radius-sm);padding:8px 15px;cursor:pointer;font-size:14px;color:var(--dark-gray);width:auto;height:auto;transition:all .3s ease}.profile-footer .close-button:hover{background-color:#e5e5e5;transform:translateY(-2px)}.logout-button{background-color:var(--danger);color:#fff;border:none;border-radius:var(--border-radius-sm);padding:8px 15px;cursor:pointer;font-size:14px;transition:all .3s ease}.logout-button:hover{background-color:#c82333;transform:translateY(-2px);box-shadow:0 4px 8px #c8233333}.hidden-file-input{display:none}.cropper-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;pointer-events:auto!important}.cropper-modal-content{background-color:#fff;border-radius:var(--border-radius-md);box-shadow:var(--shadow-md);width:90%;max-width:500px;max-height:90vh;overflow:auto;padding:20px}.image-cropper-container{display:flex;flex-direction:column;gap:20px}.image-cropper-header{text-align:center}.image-cropper-header h3{margin:0 0 10px;font-size:20px;color:var(--dark-gray)}.crop-hint{margin:0;font-size:14px;color:#888}.crop-actions{display:flex;justify-content:space-between;margin-top:20px}.crop-button{background-color:var(--accent);color:#fff;border:none;border-radius:var(--border-radius-sm);padding:10px 20px;cursor:pointer;font-size:14px}.crop-button:hover{background-color:var(--primary-dark)}.crop-button:disabled{background-color:#ccc;cursor:not-allowed}.ReactCrop{position:relative;max-width:100%;touch-action:none!important;-webkit-user-select:none;user-select:none;cursor:default}.ReactCrop__child-wrapper{max-width:100%}.ReactCrop__child-wrapper img{max-width:100%;max-height:400px;display:block!important;object-fit:contain}.ReactCrop__crop-selection{z-index:20;pointer-events:none}.ReactCrop__drag-handle{z-index:30;pointer-events:auto}.footprint-button-container{position:fixed;bottom:130px;right:10px;z-index:999;display:flex;flex-direction:column;align-items:center;width:80px}.footprint-floating-button{background-color:#ff9800;color:#fff;border:none;border-radius:50%;width:60px;height:60px;display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:24px;box-shadow:var(--shadow-md);transition:all .2s ease-in-out;cursor:pointer;margin-bottom:-15px}.footprint-button-text{font-size:12px;font-weight:700;background-color:#fffc;padding:3px 8px;border-radius:10px;color:#ff9800;text-align:center;box-shadow:0 2px 4px #0000001a;white-space:nowrap;z-index:998}.footprint-floating-button:hover{background-color:#f57c00;transform:translateY(-3px) scale(1.05);box-shadow:var(--shadow-lg)}.camera-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;z-index:1100;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.camera-modal{background-color:#fff;border-radius:12px;width:90%;max-width:500px;overflow:hidden;box-shadow:0 4px 20px #0003}.camera-modal-header{background-color:#f8f9fa;padding:15px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e9ecef}.camera-modal-header h3{margin:0;font-size:18px;font-weight:600;color:#333}.close-button{background:transparent;border:none;color:#777;font-size:24px;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center}.camera-modal-content{padding:20px}.camera-container{width:100%;display:flex;flex-direction:column;align-items:center;position:relative}.camera-preview{width:100%;max-height:70vh;background-color:#f0f0f0;border-radius:8px;object-fit:cover}.capture-button{position:absolute;bottom:20px;width:60px;height:60px;border-radius:50%;background-color:#fff;border:3px solid #FF9800;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #0003}.capture-button:hover{background-color:#f8f8f8}.capture-button svg{color:#ff9800;font-size:28px}.captured-image-container{width:100%;display:flex;flex-direction:column;align-items:center}.captured-image{width:100%;max-height:70vh;border-radius:8px;object-fit:contain}.captured-image-actions{margin-top:15px;display:flex;justify-content:space-between;width:100%}.captured-image-actions button{padding:10px 15px;border-radius:8px;border:none;display:flex;align-items:center;gap:5px;cursor:pointer;font-weight:500;transition:all .2s}.captured-image-actions button:first-child{background-color:#e9ecef;color:#495057}.captured-image-actions button.confirm-button{background-color:#ff9800;color:#fff}.captured-image-actions button:hover{opacity:.9}.captured-image-actions button:disabled{opacity:.5;cursor:not-allowed}.camera-error{padding:20px;text-align:center;background-color:#fff3f3;border:1px solid #ffcccc;border-radius:8px;margin:20px 0}.camera-error p{color:#e74c3c;margin-bottom:15px}.camera-error button{padding:8px 15px;background-color:#e74c3c;color:#fff;border:none;border-radius:5px;cursor:pointer}@media (max-width: 768px){.footprint-button-container{bottom:115px;right:0;width:70px}.footprint-floating-button{width:50px;height:50px;font-size:20px;margin-bottom:-15px}.footprint-button-text{font-size:10px;padding:2px 6px}.camera-modal{width:95%}.capture-button{width:50px;height:50px}.captured-image-actions button{padding:8px 12px;font-size:14px}}.header-buttons{display:flex;align-items:center}.map-button-container{position:fixed;bottom:200px;right:10px;z-index:999;display:flex;flex-direction:column;align-items:center;width:80px}.map-floating-button{background-color:#4caf50;color:#fff;border:none;border-radius:50%;width:60px;height:60px;display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:24px;box-shadow:var(--shadow-md);transition:all .2s ease-in-out;cursor:pointer;margin-bottom:-15px}.map-button-text{font-size:12px;font-weight:700;background-color:#fffc;padding:3px 8px;border-radius:10px;color:#4caf50;text-align:center;box-shadow:0 2px 4px #0000001a;white-space:nowrap;z-index:998}.map-floating-button:hover{background-color:#388e3c;transform:translateY(-3px) scale(1.05);box-shadow:var(--shadow-lg)}.map-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000000b3;z-index:1200;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.map-container{background-color:#fff;border-radius:12px;width:90%;height:90vh;max-width:1200px;max-height:90vh;overflow:hidden;box-shadow:0 4px 20px #0003;display:flex;flex-direction:column}.map-header{background-color:#f8f9fa;padding:15px 20px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e9ecef}.map-header h2{margin:0;font-size:20px;font-weight:600;color:#333;flex-grow:1;text-align:center}.back-button{background-color:#6c757d;color:#fff;border:none;border-radius:4px;padding:8px 12px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;margin-right:10px;box-shadow:0 1px 3px #0000001a}.back-button:hover{background-color:#5a6268;transform:translateY(-1px);box-shadow:0 2px 5px #00000026}.close-button{background-color:#e9ecef;border:1px solid #ced4da;color:#495057;font-size:14px;font-weight:500;cursor:pointer;padding:8px 15px;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s ease;margin-left:8px}.close-button:hover{background-color:#dee2e6;color:#212529;transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.map-content{flex-grow:1;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center;padding:20px;background-color:#f8f9fa}svg{max-width:100%;max-height:100%}.region-path{cursor:pointer;transition:fill .3s,stroke-width .3s;filter:drop-shadow(0px 2px 3px rgba(0,0,0,.2))}.region-path:hover{fill:#e0e0e0;stroke-width:2;filter:drop-shadow(0px 3px 5px rgba(0,0,0,.3));transform:translate(-1px,-1px)}.region-name{pointer-events:none;-webkit-user-select:none;user-select:none;fill:#333;font-weight:600;text-shadow:0 0 3px rgba(255,255,255,.8)}.stamp-count{pointer-events:none;-webkit-user-select:none;user-select:none;font-weight:700;text-shadow:0 0 4px rgba(255,255,255,.9)}@media (max-width: 768px){.map-button-container{bottom:170px;right:0;width:70px}.map-floating-button{width:50px;height:50px;font-size:20px;margin-bottom:-15px}.map-button-text{font-size:10px;padding:2px 6px}.map-header h2{font-size:16px}.back-button,.close-button{padding:6px 10px;font-size:12px}}.attendance-touch-icon{animation:tap 1.5s ease-in-out infinite}@keyframes tap{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(3px) scale(.9)}}.attendance-legend-dot{animation:legendPulse 2s infinite}@keyframes legendPulse{0%{box-shadow:0 0 #2196f3b3}70%{box-shadow:0 0 0 5px #2196f300}to{box-shadow:0 0 #2196f300}}.attendance-day-button{animation:pulse 2s infinite,float 3s ease-in-out infinite;cursor:pointer!important}@keyframes pulse{0%{box-shadow:0 0 #2196f3b3}70%{box-shadow:0 0 0 10px #2196f300}to{box-shadow:0 0 #2196f300}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.attendance-day-button:hover{animation-play-state:paused}.attendance-button-container{position:fixed;bottom:295px;right:10px;z-index:999;display:flex;flex-direction:column;align-items:center;width:80px}.attendance-floating-button{background-color:#2196f3;color:#fff;border:none;border-radius:50%;width:60px;height:60px;display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:24px;box-shadow:var(--shadow-md);transition:all .2s ease-in-out;cursor:pointer;margin-bottom:-15px}.attendance-button-text{font-size:12px;font-weight:700;background-color:#fffc;padding:3px 8px;border-radius:10px;color:#2196f3;text-align:center;box-shadow:0 2px 4px #0000001a;white-space:nowrap;z-index:998;display:flex;flex-direction:column;align-items:center}.streak-info{font-size:10px;margin-top:2px;background-color:#2196f3;color:#fff;padding:1px 6px;border-radius:8px;font-weight:700;white-space:nowrap}.attendance-floating-button:hover{background-color:#1976d2;transform:translateY(-3px) scale(1.05);box-shadow:var(--shadow-lg)}@media (max-width: 768px){.attendance-button-container{bottom:225px;right:0;width:70px}.attendance-floating-button{width:50px;height:50px;font-size:20px;margin-bottom:5px}.attendance-button-text{font-size:10px;padding:2px 6px}.streak-info{font-size:8px;padding:1px 4px;margin-top:1px}}.chat-container{display:flex;flex-direction:column;height:calc(100vh - 64px);overflow:hidden}.chat-content{display:flex;flex-grow:1;overflow:hidden}.chat-room-list-container{width:300px;border-right:1px solid #e0e0e0;overflow-y:auto;background-color:#f5f5f5}.chat-messages-container{flex-grow:1;display:flex;flex-direction:column;overflow:hidden}.chat-room-list{height:100%}.chat-room-item{display:flex;padding:12px 16px;border-bottom:1px solid #e0e0e0;cursor:pointer;transition:background-color .2s}.chat-room-item:hover{background-color:#0000000d}.chat-room-item.active{background-color:#00000014}.chat-room-avatar{margin-right:12px;position:relative}.chat-room-info{flex-grow:1;min-width:0}.chat-room-name{font-weight:500;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-room-last-message{color:#757575;font-size:.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-room-meta{display:flex;flex-direction:column;align-items:flex-end;min-width:60px}.chat-room-time{color:#757575;font-size:.75rem;margin-bottom:4px}.chat-room-badge{min-width:20px;height:20px;padding:0 6px;background-color:#2196f3;color:#fff;border-radius:10px;font-size:.75rem;display:flex;align-items:center;justify-content:center}.chat-messages{flex-grow:1;overflow-y:auto;padding:16px;background-color:#f5f5f5}.chat-message{margin-bottom:16px;display:flex;flex-direction:column}.chat-message-sender{display:flex;align-items:center;margin-bottom:4px}.chat-message-sender-name{font-weight:500;margin-left:8px;font-size:.875rem}.chat-message-content{display:flex;align-items:flex-end;margin-bottom:2px}.chat-message-bubble{max-width:60%;padding:8px 12px;border-radius:16px;word-wrap:break-word}.chat-message-incoming .chat-message-bubble{background-color:#fff;border:1px solid #e0e0e0;margin-right:auto;border-top-left-radius:4px}.chat-message-outgoing .chat-message-bubble{background-color:#dcf8c6;margin-left:auto;border-top-right-radius:4px}.chat-message-meta{font-size:.75rem;color:#757575;margin-top:2px;display:flex;align-items:center}.chat-message-time{margin-right:4px}.chat-message-status{display:flex;align-items:center}.chat-input-container{display:flex;align-items:center;padding:8px 16px;background-color:#fff;border-top:1px solid #e0e0e0}.chat-input{flex-grow:1;border:1px solid #e0e0e0;border-radius:24px;padding:8px 16px;margin:0 8px;outline:none;font-size:1rem}.chat-input:focus{border-color:#2196f3}.chat-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:32px;color:#757575}.chat-empty-icon{font-size:48px;margin-bottom:16px;color:#bdbdbd}.chat-loading,.chat-error{display:flex;align-items:center;justify-content:center;height:100%;color:#757575}@media (max-width: 768px){.chat-room-list-container{width:100%}.chat-content{flex-direction:column}.chat-message-bubble{max-width:80%}}.user-status{width:10px;height:10px;border-radius:50%;position:absolute;bottom:0;right:0;border:2px solid white}.user-status-online{background-color:#4caf50}.user-status-away{background-color:#ff9800}.user-status-busy{background-color:#f44336}.user-status-offline{background-color:#9e9e9e}.typing-indicator{display:flex;align-items:center;height:24px}.typing-indicator span{display:inline-block;width:6px;height:6px;border-radius:50%;background-color:#757575;margin-right:4px;animation:typing-dot 1.4s infinite ease-in-out}.typing-indicator span:nth-child(1){animation-delay:0s}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s;margin-right:0}@keyframes typing-dot{0%,60%,to{transform:translateY(0);opacity:.6}30%{transform:translateY(-4px);opacity:1}}@keyframes pulse{0%{box-shadow:0 0 #0000000d}70%{box-shadow:0 0 0 5px #0000}to{box-shadow:0 0 #0000}}.new-message-notification{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background-color:#2196f3;color:#fff;padding:8px 16px;border-radius:24px;box-shadow:0 2px 8px #0003;display:flex;align-items:center;cursor:pointer;z-index:100}.new-message-notification-icon{margin-right:8px}.chat-message-system{text-align:center;margin:16px 0}.chat-message-system .chat-message-bubble{background-color:#0000000d;display:inline-block;margin:0 auto;font-size:.875rem;color:#757575;padding:4px 12px;border-radius:16px}.chat-date-divider{display:flex;align-items:center;margin:16px 0;color:#757575;font-size:.75rem}.chat-date-divider:before,.chat-date-divider:after{content:"";flex-grow:1;height:1px;background-color:#e0e0e0}.chat-date-divider-text{margin:0 8px;padding:2px 8px;background-color:#f5f5f5;border-radius:8px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeOut{0%{opacity:1}70%{opacity:1}to{opacity:0}}@keyframes indicatorPulse{0%{opacity:.7}50%{opacity:1}to{opacity:.7}}.page-transition-enter{transform:translate(100%)}.page-transition-enter-active{transform:translate(0);transition:transform .3s}.page-transition-exit{transform:translate(0)}.page-transition-exit-active{transform:translate(-100%);transition:transform .3s}.hide-mobile{display:none}@media (min-width: 769px){.hide-mobile{display:initial}.hide-desktop{display:none}}.youtube-thumbnail-container{position:relative;width:100%;max-width:100%;margin:20px 0;cursor:pointer;border-radius:8px;overflow:hidden;box-shadow:0 4px 6px #0000001a;transition:transform .2s ease-in-out;aspect-ratio:16 / 9;background-color:#000}.youtube-thumbnail-container:hover{transform:translateY(-2px)}.youtube-thumbnail{position:relative;width:100%;height:100%;overflow:hidden}.youtube-thumbnail img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s ease}.youtube-thumbnail-container:hover img{transform:scale(1.05)}.play-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0003;transition:background-color .3s ease}.youtube-thumbnail-container:hover .play-overlay{background-color:#0000004d}.play-button-custom{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transition:transform .3s ease;z-index:10}.play-button-bg{fill:red}.play-button-arrow{fill:#fff}.youtube-thumbnail-container:hover .play-button-custom{transform:translate(-50%,-50%) scale(1.1)}.youtube-title{position:absolute;bottom:0;left:0;right:0;padding:10px 15px;background:linear-gradient(to top,#000c,#0000);color:#fff;font-size:14px;font-weight:500;z-index:5}.youtube-player-container{position:relative;width:100%;max-width:100%;margin:20px 0;height:0;padding-bottom:56.25%;overflow:hidden;border-radius:8px;box-shadow:0 4px 6px #0000001a}.youtube-player-container iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}.markdown-viewer{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6;color:#333;padding:10px 0}.markdown-viewer h1,.markdown-viewer h2,.markdown-viewer h3,.markdown-viewer h4,.markdown-viewer h5,.markdown-viewer h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-viewer h1{font-size:2em;border-bottom:1px solid #eaecef;padding-bottom:.3em}.markdown-viewer h2{font-size:1.5em;border-bottom:1px solid #eaecef;padding-bottom:.3em}.markdown-viewer a{color:#0366d6;text-decoration:none}.markdown-viewer a:hover{text-decoration:underline}.markdown-viewer code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;padding:.2em .4em;margin:0;font-size:85%;background-color:#1b1f230d;border-radius:3px}.markdown-viewer pre{margin-top:0;margin-bottom:16px;word-wrap:normal;background-color:#f6f8fa;border-radius:3px;overflow:auto}.markdown-viewer img{max-width:100%;box-sizing:content-box;border-radius:3px}.markdown-viewer hr{height:.25em;padding:0;margin:24px 0;background-color:#e1e4e8;border:0}.markdown-viewer blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5;margin:0 0 16px}.markdown-viewer ul,.markdown-viewer ol{padding-left:2em;margin-top:0;margin-bottom:16px}.markdown-viewer table{border-collapse:collapse;width:100%;margin:16px 0}.markdown-viewer table th,.markdown-viewer table td{padding:6px 13px;border:1px solid #dfe2e5}.markdown-viewer table tr{background-color:#fff;border-top:1px solid #c6cbd1}.markdown-viewer table tr:nth-child(2n){background-color:#f6f8fa}.image-change-actions{margin-top:12px;display:flex;justify-content:center;align-items:center;width:100%;padding-bottom:12px;gap:8px}.change-image-btn{background-color:#f0f4f8;color:#4b5563;border:1px solid #d1d5db;border-radius:6px;padding:8px 16px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;height:36px;display:flex;align-items:center;justify-content:center}.change-image-btn:hover{background-color:#e1e8f0;color:#1f2937}.change-image-separator{margin:0 10px;color:#d1d5db;font-weight:300;display:inline-block;line-height:1;vertical-align:middle}.change-image-btn-reset{background-color:#fee2e2;color:#ef4444;border-color:#fecaca}.change-image-btn-reset:hover{background-color:#fecaca;color:#dc2626}.image-preview-wrapper.dragging{border:2px dashed #3b82f6}.preview-drag-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#3b82f6b3;display:flex;justify-content:center;align-items:center;z-index:10}.preview-drag-content{display:flex;flex-direction:column;align-items:center;justify-content:center}.preview-drag-text{color:#fff;font-size:16px;font-weight:600;text-align:center;margin-top:8px;text-shadow:0 1px 2px rgba(0,0,0,.2)}.upload-zone.dragging{background-color:#e6f2ff;box-shadow:0 0 0 2px #3b82f6 inset}.upload-zone.dragging .upload-label{background-color:#e6f2ff;border-color:#3b82f6;transform:scale(.98)}.upload-zone.dragging .upload-icon{color:#3b82f6;transform:translateY(-5px)}.upload-zone.dragging .upload-prompt{color:#3b82f6;font-weight:700}.image-upload-modal{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background-color:#fff;padding:24px 32px;border-radius:12px;width:450px;max-width:92%;box-sizing:border-box;box-shadow:0 4px 20px #00000026}.modal-title{margin-bottom:24px;font-size:22px;font-weight:700;text-align:center;color:#333}.preview-container{margin-bottom:24px;position:relative}.image-preview-wrapper{width:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:0;border-radius:8px;overflow:hidden;background-color:#f8f9fa;position:relative}.image-preview{width:100%;max-height:250px;object-fit:contain;border-radius:4px}.file-name{font-size:14px;color:#555;margin-top:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:90%;text-align:center;padding:8px 0}.upload-zone{width:100%;height:220px;margin-bottom:24px;border-radius:10px;overflow:hidden;transition:all .2s ease}.upload-label{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;border:2px dashed #d1d5db;border-radius:10px;background-color:#f8f9fa;cursor:pointer;transition:all .2s ease}.upload-label:hover{background-color:#f0f2f5;border-color:#9ca3af}.upload-icon{margin-bottom:16px;color:#6b7280;transition:all .2s ease}.upload-text{display:flex;flex-direction:column;align-items:center}.upload-prompt{font-size:16px;font-weight:600;color:#374151;margin-bottom:8px;transition:all .2s ease}.upload-info{font-size:14px;color:#6b7280}.file-input{display:none}.modal-actions{display:flex;justify-content:space-between;gap:16px;margin-top:20px;width:100%}.btn-cancel{flex:1;padding:12px 20px;border:1px solid #e2e8f0;background-color:#f1f5f9;color:#475569;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s ease;width:100%;text-align:center;min-width:100px;height:44px;display:flex;justify-content:center;align-items:center}.btn-cancel:hover{background-color:#e2e8f0}.btn-cancel:disabled{opacity:.6;cursor:not-allowed}.btn-upload{flex:1;padding:12px 20px;border:none;background-color:#3b82f6;color:#fff;border-radius:8px;font-size:16px;font-weight:500;cursor:pointer;transition:all .2s ease;width:100%;text-align:center;min-width:100px;height:44px;display:flex;justify-content:center;align-items:center}.btn-upload:hover{background-color:#2563eb}.btn-upload:disabled{background-color:#93c5fd;cursor:not-allowed}.btn-container{flex:1;display:flex}.btn-cancel,.btn-upload{flex:1}@media (max-width: 480px){.modal-content{padding:16px 20px;width:85%}.modal-title{font-size:18px;margin-bottom:16px}.upload-zone{height:160px}.upload-icon svg{width:32px;height:32px}.upload-prompt{font-size:13px}.upload-info{font-size:11px}.modal-actions{margin-top:15px;gap:10px}.btn-cancel,.btn-upload{padding:10px 15px;font-size:14px;min-width:80px;height:38px}.image-change-actions{margin-top:8px;padding-bottom:8px}.change-image-btn{padding:6px 12px;font-size:12px}.preview-drag-text{font-size:14px}.change-image-separator{margin:0 6px}.image-preview{max-height:180px}}.youtube-embed{margin:15px 0;max-width:560px}.youtube-thumbnail{position:relative;display:block;width:100%}.youtube-thumbnail img{display:block;width:100%;border-radius:8px;border:1px solid #ddd}.play-button{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60px;height:60px;background-color:#000000b3;border-radius:50%;display:flex;justify-content:center;align-items:center;color:#fff;font-size:24px;z-index:10}.youtube-thumbnail:hover .play-button{background-color:#f00c}.youtube-link{display:inline-flex;align-items:center;color:#d62d20!important;font-weight:500}.markdown-editor{display:flex;flex-direction:column;border:1px solid #ddd;border-radius:4px;overflow:hidden}.markdown-tabs{display:flex;background-color:#f0f0f0;border-bottom:1px solid #ddd}.markdown-tabs button{padding:10px 15px;border:none;background:none;cursor:pointer;font-size:14px}.markdown-tabs button.active{background-color:#fff;border-bottom:2px solid #0fb9fa;font-weight:700}.toolbar{display:flex;flex-wrap:wrap;gap:5px;padding:8px;background-color:#f8f9fa;border-bottom:1px solid #ddd}.toolbar button{background-color:#fff;border:1px solid #ddd;border-radius:4px;padding:6px 10px;font-size:14px;cursor:pointer;transition:background-color .2s}.toolbar button:hover{background-color:#f0f0f0}.image-tag-warning{background-color:#fff3cd;color:#856404;padding:8px 15px;margin-bottom:0;border-bottom:1px solid #ffeeba;font-size:14px}.editor-content{display:flex;flex:1;flex-direction:column;overflow:hidden}.split-view .editor-content{flex-direction:row}.editor-write-container{display:flex;flex-direction:column;flex:1}.markdown-textarea{flex:1;padding:10px;font-family:monospace;resize:none;border:none;min-height:300px;outline:none;font-size:14px;line-height:1.6}.markdown-preview{flex:1;padding:10px;overflow:auto;background-color:#fff;min-height:300px}.split-view .markdown-preview{border-left:1px solid #ddd}.markdown-preview h1,.markdown-preview h2,.markdown-preview h3,.markdown-preview h4,.markdown-preview h5,.markdown-preview h6{margin-top:24px;margin-bottom:16px;font-weight:600;line-height:1.25}.markdown-preview h1{font-size:2em;border-bottom:1px solid #eaecef;padding-bottom:.3em}.markdown-preview h2{font-size:1.5em;border-bottom:1px solid #eaecef;padding-bottom:.3em}.markdown-preview a{color:#0366d6;text-decoration:none}.markdown-preview a:hover{text-decoration:underline}.markdown-preview code{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;padding:.2em .4em;margin:0;font-size:85%;background-color:#1b1f230d;border-radius:3px}.markdown-preview pre{margin-top:0;margin-bottom:16px;word-wrap:normal;background-color:#f6f8fa;border-radius:3px;overflow:auto}.markdown-preview img{max-width:100%;box-sizing:content-box;border-radius:3px}.markdown-preview hr{height:.25em;padding:0;margin:24px 0;background-color:#e1e4e8;border:0}.markdown-preview blockquote{padding:0 1em;color:#6a737d;border-left:.25em solid #dfe2e5;margin:0 0 16px}.markdown-preview ul,.markdown-preview ol{padding-left:2em;margin-top:0;margin-bottom:16px}.markdown-preview table{border-collapse:collapse;width:100%;margin:16px 0}.markdown-preview table th,.markdown-preview table td{padding:6px 13px;border:1px solid #dfe2e5}.markdown-preview table tr{background-color:#fff;border-top:1px solid #c6cbd1}.markdown-preview table tr:nth-child(2n){background-color:#f6f8fa}.markdown-html-notice{padding:5px 10px;background-color:#fffbdd;border-bottom:1px solid #eaecef;font-size:12px;color:#666}@media (max-width: 1023px){.split-view .editor-content{flex-direction:column}.split-view .markdown-preview{border-left:none;border-top:1px solid #ddd}}.attendance-container{position:relative;overflow:hidden}.MuiGrid-container .MuiGrid-item:nth-child(7n)>div>[role=button]>p{text-shadow:0px 0px 1px rgba(0,0,0,.2);font-weight:800!important;letter-spacing:.03em}.attendance-day-button{position:relative;background-color:#e3f2fd!important}.attendance-day-button p{position:relative;z-index:2;color:#0d47a1!important;font-weight:700!important}.attendance-guide-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;z-index:1000;display:flex;justify-content:center;align-items:center}.attendance-guide-popup{max-width:90%;width:450px;background-color:#fff;border-radius:8px;box-shadow:0 4px 20px #0003;padding:24px;position:relative;animation:slideInUp .3s ease-out}.attendance-guide-steps{margin:20px 0}.attendance-guide-step{display:flex;align-items:center;margin-bottom:12px}.step-number{width:28px;height:28px;border-radius:50%;background-color:#3f51b5;color:#fff;display:flex;justify-content:center;align-items:center;font-weight:700;margin-right:12px}.attendance-summary{display:flex;flex-wrap:wrap;justify-content:space-around;background:linear-gradient(135deg,#3f51b5,#2196f3);color:#fff;padding:12px 8px;border-radius:8px;margin-bottom:16px;box-shadow:0 4px 10px #0000001a}.attendance-summary-item{text-align:center;padding:8px;margin:8px}.attendance-summary-value{font-size:1.5rem;font-weight:700}.attendance-summary-label{font-size:.8rem;opacity:.9}.attendance-check-time{text-align:center;color:#757575;font-size:.9rem;display:flex;justify-content:center;align-items:center}.attendance-check-time .icon{margin-right:8px}.attendance-today-marker{position:absolute;text-align:center;color:#3f51b5;font-weight:700;font-size:.7rem;white-space:nowrap}.attendance-next-actions{margin-top:24px;text-align:center;padding:16px;background-color:#f5f5f5;border-radius:8px}.attendance-next-buttons{display:flex;justify-content:center;gap:12px;margin-top:12px}.special-day-marker{position:absolute;bottom:-18px;color:#f44336;font-size:.7rem;white-space:nowrap}.attendance-streak-effect{z-index:0}.streak-connection-line{pointer-events:none;opacity:.8;box-shadow:0 0 2px #4caf5099}.streak-low{width:120%;height:120%;border:1px solid #4caf50}.streak-medium{width:135%;height:135%;border:2px solid #4caf50}.streak-high{width:150%;height:150%;border:3px double #4caf50;animation:pulse 2s infinite}.MuiGrid-container .MuiGrid-item:not(:first-child) .streak-connection-line{left:-30%;width:60%}.MuiGrid-container .MuiGrid-item:nth-child(7n+1)>div>[role=button]{color:#f44336!important}.MuiGrid-container .MuiGrid-item:nth-child(7n)>div>[role=button]{color:#0d47a1!important}@keyframes slideInUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pulse{0%{box-shadow:0 0 #4caf5066}70%{box-shadow:0 0 0 10px #4caf5000}to{box-shadow:0 0 #4caf5000}}@keyframes checkmark-pop{0%{transform:scale(0);opacity:0}70%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.attendance-check-icon{animation:checkmark-pop .3s ease-out;z-index:2}[role=button][aria-label*=출석완료]{position:relative;overflow:visible!important;background-color:#e0f2f1e6!important;transition:all .2s ease-in-out!important}[role=button][aria-label*=출석완료]:hover{transform:translateY(-2px)!important;box-shadow:0 2px 4px #0003!important}[role=button][aria-label*=출석완료]>p{font-weight:600!important;text-shadow:0px 0px 1px rgba(0,0,0,.2)!important;transform:scale(1.05);letter-spacing:.02em;color:#1b5e20!important}@keyframes fadeInOut{0%{opacity:0;transform:translate(-50%,-50%) scale(.8)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}80%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}to{opacity:0;transform:translate(-50%,-50%) scale(.8)}}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 600px){.attendance-summary{align-items:center}.attendance-summary-item{flex:1;min-width:0}.attendance-summary-value{font-size:1rem;white-space:nowrap}.attendance-summary-label{font-size:.65rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attendance-next-buttons{flex-direction:column;gap:8px}}.attendance-page-container{max-width:800px;margin:0 auto;padding:20px;background:var(--content-background-gradient);border-radius:var(--content-container-border-radius);box-shadow:0 2px 20px #0000000d;position:relative}.attendance-page-container:after{content:"";display:block;position:absolute;top:65px;left:20px;right:20px;height:2px;background-color:var(--content-border-color)}.attendance-page-title{font-size:1.5rem;font-weight:700;margin-bottom:1rem;color:var(--content-title-color);padding-bottom:.5rem;text-shadow:0px 1px 2px rgba(0,0,0,.05)}.attendance-page-subtitle{font-size:1rem;color:var(--content-text-color);margin-bottom:1.5rem;line-height:1.5;padding:0 .5rem}.ranking-table{width:100%;border-collapse:collapse;margin-top:1rem;box-shadow:0 1px 3px #0000001a}.ranking-table th{padding:10px;text-align:left;border-bottom:1px solid #eee;background-color:#f9f9f9;font-weight:600}.ranking-table td{padding:10px;text-align:left;border-bottom:1px solid #eee}.ranking-table tr:hover{background-color:#f5f8ff}.ranking-table tr.current-user{background-color:#f0f7ff}.ranking-badge{font-weight:700;padding:3px 6px;border-radius:4px;display:inline-block;min-width:24px;text-align:center}.ranking-badge.gold{color:#ff9500;background-color:#fff9e6}.ranking-badge.silver{color:#6b7280;background-color:#f3f4f6}.ranking-badge.bronze{color:#cd7f32;background-color:#faf3e8}.ranking-badge.normal{color:#3b82f6;background-color:#eff6ff}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px;margin-top:20px}.activity-card,.reward-card{border:1px solid #e1e1e1;border-radius:8px;padding:16px;transition:all .3s ease;box-shadow:0 4px 12px #0000000d;background:#fff;position:relative;overflow:hidden}.activity-card:hover,.reward-card:hover{box-shadow:0 8px 15px #0000001a;transform:translateY(-5px);border-color:#c8d6f9}.card-title{font-size:1.1rem;font-weight:600;margin-bottom:.5rem;color:#1e40af;padding-bottom:.3rem;border-bottom:1px dashed #e5e7eb}.card-description{color:#4b5563;font-size:.95rem;margin-bottom:1rem;line-height:1.5}.point-badge{background:#3b82f6;color:#fff;border-radius:16px;padding:5px 10px;font-size:.85rem;display:inline-block;font-weight:600;box-shadow:0 2px 5px #3b82f64d}.card-footer{margin-top:12px;display:flex;justify-content:space-between;align-items:center}.point-price{color:#666;font-size:.875rem}.buy-button{background:#3b82f6;color:#fff;border:none;border-radius:6px;padding:8px 16px;cursor:pointer;font-size:.9rem;font-weight:600;transition:all .3s;box-shadow:0 2px 5px #3b82f64d}.buy-button:hover{background:#2563eb;transform:translateY(-2px);box-shadow:0 4px 8px #2563eb66}@media (max-width: 640px){.attendance-page-title{font-size:1.3rem}.cards-grid{grid-template-columns:1fr}.ranking-table th,.ranking-table td{padding:8px 6px;font-size:.875rem}}.ranking-ad-container{padding:0 1.5rem;margin:.5rem 0}.ranking-container{padding:0;margin-bottom:0;overflow:hidden;border-radius:var(--content-container-border-radius);background:var(--content-background-gradient);box-shadow:0 2px 20px #0000000d}.ranking-header{padding:1.5rem 1.5rem .5rem;border-bottom:none;position:relative}.ranking-header:after{content:"";display:block;position:absolute;bottom:.5rem;left:1.5rem;right:1.5rem;height:2px;background-color:var(--content-border-color)}.ranking-title{font-weight:700;color:var(--content-title-color);text-shadow:0px 1px 2px rgba(0,0,0,.05);margin-bottom:1rem}.ranking-table-container{overflow-x:auto;padding:.5rem 1.5rem 1.5rem;border-radius:8px 8px 0 0}.ranking-table{width:100%;border-collapse:separate;border-spacing:0;border-radius:8px 8px 0 0;overflow:hidden;box-shadow:0 4px 12px #0000000d;background-color:#fff;border:1px solid #E5E7EB;border-bottom:none}.ranking-table-header{background-color:#eff6ff}.ranking-table-header th:first-child{border-top-left-radius:8px}.ranking-table-header th:last-child{border-top-right-radius:8px}.ranking-table-header th{padding:16px 10px;font-weight:700;color:#1e40af;border-bottom:2px solid #BFDBFE;background-color:#eff6ff}.ranking-th-rank{text-align:center;width:60px}.ranking-th-user{text-align:left}.ranking-th-days,.ranking-th-points{text-align:center}.ranking-divider-row td{padding:16px 0;text-align:center;border-bottom:1px solid #e5e7eb}.ranking-divider-container{display:flex;align-items:center;justify-content:center;margin:.5rem 0}.ranking-divider-line{flex:1;border-bottom:2px dashed #CBD5E1}.ranking-divider-text{padding:0 1.5rem;color:#6b7280;font-size:.9rem;font-weight:500}.ranking-user-row{position:relative;transition:all .2s ease}.ranking-user-row:hover{background-color:#f0f9ff}.ranking-row-normal{background-color:#fff;border-bottom:1px solid #e5e7eb}.ranking-row-alt{background-color:#fafafa;border-bottom:1px solid #e5e7eb}.ranking-row-current{background-color:#dbeafe;position:relative;border-top:1px solid #93C5FD;border-bottom:1px solid #93C5FD;border-left:4px solid #3B82F6;box-shadow:0 3px 10px #3b82f61a}.ranking-your-rank-label{position:absolute;right:16px;top:-10px;background-color:#3b82f6;color:#fff;font-size:.75rem;padding:4px 10px;border-radius:12px;font-weight:600;box-shadow:0 3px 6px #3b82f64d;z-index:2;letter-spacing:.3px}.ranking-cell{padding:14px 10px}.ranking-cell-rank{text-align:center;width:60px}.ranking-cell-user{text-align:left}.ranking-cell-days,.ranking-cell-points{text-align:center}.ranking-cell-current{font-weight:600}.ranking-medal{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;text-align:center;border-radius:50%;font-weight:700;font-size:16px;color:#fff;box-shadow:0 3px 8px #0003;margin:0 auto;transition:transform .2s ease}.ranking-medal:hover{transform:scale(1.1)}.ranking-medal-gold{background:linear-gradient(135deg,gold,#ffc107);border:2px solid #FFC107}.ranking-medal-silver{background:linear-gradient(135deg,#e0e0e0,#bdbdbd);border:2px solid #BDBDBD}.ranking-medal-bronze{background:linear-gradient(135deg,#d7813e,#cd7f32);border:2px solid #CD7F32}.ranking-badge{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;text-align:center;border-radius:50%;font-weight:500;font-size:14px;color:#4b5563;background-color:#f3f4f6;border:1px solid #D1D5DB;margin:0 auto;transition:transform .2s ease}.ranking-badge:hover{transform:scale(1.05)}.ranking-badge-current{width:38px;height:38px;font-weight:700;font-size:16px;color:#1e40af;background-color:#dbeafe;border:2px solid #3B82F6;box-shadow:0 3px 6px #3b82f633}.ReactCrop{position:relative;display:inline-block;cursor:crosshair;overflow:hidden;max-width:100%}.ReactCrop *,.ReactCrop *:before,.ReactCrop *:after{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{max-height:inherit}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{display:block;max-width:100%;max-height:inherit}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video{touch-action:none}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-selection{position:absolute;top:0;left:0;transform:translateZ(0);cursor:move;box-shadow:0 0 0 9999em #00000080}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed white}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){animation:marching-ants 1s;background-image:linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%);background-size:10px 1px,10px 1px,1px 10px,1px 10px;background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;color:#fff;animation-play-state:running;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}.ReactCrop__crop-selection:focus{outline:none;border-color:#00f;border-style:solid}.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";display:block;position:absolute;background-color:#fff6}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333333333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6666666667%}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333333333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6666666667%}.ReactCrop__drag-handle{position:absolute}.ReactCrop__drag-handle:after{position:absolute;content:"";display:block;width:10px;height:10px;background-color:#0003;border:1px solid rgba(255,255,255,.7);outline:1px solid transparent}.ReactCrop__drag-handle:focus:after{border-color:#00f;background:#2dbfff}.ReactCrop .ord-nw{top:0;left:0;margin-top:-5px;margin-left:-5px;cursor:nw-resize}.ReactCrop .ord-nw:after{top:0;left:0}.ReactCrop .ord-n{top:0;left:50%;margin-top:-5px;margin-left:-5px;cursor:n-resize}.ReactCrop .ord-n:after{top:0}.ReactCrop .ord-ne{top:0;right:0;margin-top:-5px;margin-right:-5px;cursor:ne-resize}.ReactCrop .ord-ne:after{top:0;right:0}.ReactCrop .ord-e{top:50%;right:0;margin-top:-5px;margin-right:-5px;cursor:e-resize}.ReactCrop .ord-e:after{right:0}.ReactCrop .ord-se{bottom:0;right:0;margin-bottom:-5px;margin-right:-5px;cursor:se-resize}.ReactCrop .ord-se:after{bottom:0;right:0}.ReactCrop .ord-s{bottom:0;left:50%;margin-bottom:-5px;margin-left:-5px;cursor:s-resize}.ReactCrop .ord-s:after{bottom:0}.ReactCrop .ord-sw{bottom:0;left:0;margin-bottom:-5px;margin-left:-5px;cursor:sw-resize}.ReactCrop .ord-sw:after{bottom:0;left:0}.ReactCrop .ord-w{top:50%;left:0;margin-top:-5px;margin-left:-5px;cursor:w-resize}.ReactCrop .ord-w:after{left:0}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{top:0;left:0;width:100%;height:6px;margin-top:-3px}.ReactCrop__drag-bar.ord-e{right:0;top:0;width:6px;height:100%;margin-right:-3px}.ReactCrop__drag-bar.ord-s{bottom:0;left:0;width:100%;height:6px;margin-bottom:-3px}.ReactCrop__drag-bar.ord-w{top:0;left:0;width:6px;height:100%;margin-left:-3px}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media (pointer: coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:24px;height:24px}}.mypage-profile-logout-button{background-color:var(--danger);color:#fff;border:none;border-radius:var(--border-radius-sm);padding:10px 16px;cursor:pointer;font-weight:700;transition:all .2s ease}.mypage-profile-logout-button:hover{background-color:#c82333;transform:translateY(-2px);box-shadow:var(--shadow-md)}.profile-actions{display:flex;gap:15px;margin-top:10px}.mypage-loading{display:flex;justify-content:center;align-items:center;min-height:200px;width:100%;padding:40px 0;font-size:18px;color:var(--accent)}.mypage-loading p{padding:10px 20px;background-color:#ffffffe6;border-radius:var(--border-radius-md);box-shadow:var(--shadow-md);animation:pulse 1.5s infinite}@keyframes pulse{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}.mypage-container{max-width:var(--web-container-width);margin:20px auto 0;padding:20px;background:var(--background-light);border-radius:var(--border-radius-md);box-shadow:var(--shadow-md);position:relative;overflow-x:hidden;border:1px solid var(--border-light)}.mypage-container:after{display:none}.mypage-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;border-bottom:2px solid var(--accent);padding-bottom:15px}.mypage-title{font-size:1.5rem;font-weight:700;color:var(--dark-gray)}.mypage-tabs{display:flex;margin:20px 0;border-bottom:1px solid var(--border-light);overflow-x:auto;scrollbar-width:none;background-color:var(--background-gray);border-radius:var(--border-radius-sm)}.mypage-tabs::-webkit-scrollbar{display:none}.mypage-tab{padding:12px 24px;cursor:pointer;position:relative;font-weight:500;white-space:nowrap;display:flex;align-items:center;gap:8px;color:var(--medium-gray);text-decoration:none;transition:all .2s ease}.mypage-tab.active{color:var(--accent);background-color:#0fb9fa1a}.mypage-tab:hover{color:var(--accent);background-color:#0fb9fa0d}.mypage-tab.active:after{content:"";position:absolute;bottom:-1px;left:0;width:100%;height:3px;background-color:var(--accent)}.mypage-section{margin-bottom:30px;background-color:#fff;border-radius:var(--border-radius-md);box-shadow:var(--shadow-md);overflow:hidden;width:100%;border:1px solid var(--border-light)}.mypage-section-header{padding:15px 20px;background-color:var(--background-gray);display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid var(--accent)}.mypage-section-title{font-size:18px;font-weight:700;color:var(--dark-gray)}.mypage-section-content{padding:20px}.mypage-section-footer{padding:10px 15px;text-align:center;border-top:1px solid var(--border-color-light)}.mypage-list-item{padding:12px 0;border-bottom:1px solid var(--border-color-light)}.mypage-list-item:last-child{border-bottom:none}.mypage-item-title{font-weight:700;margin-bottom:5px;color:var(--primary-text-color);display:block;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mypage-item-meta{display:flex;align-items:center;gap:10px;font-size:.8rem;color:var(--secondary-text-color)}.mypage-item-date,.mypage-item-likes{display:flex;align-items:center;gap:4px}.mypage-profile{display:flex;flex-direction:column;align-items:center;padding:20px;background-color:#fff;border-radius:var(--border-radius-md);box-shadow:var(--shadow-sm)}.mypage-profile-image{width:120px;height:120px;border-radius:50%;object-fit:cover;margin-bottom:20px;border:3px solid var(--accent);box-shadow:var(--shadow-md)}.mypage-profile-name{font-size:24px;font-weight:700;margin-bottom:8px;color:var(--dark-gray)}.mypage-profile-email{color:var(--medium-gray);margin-bottom:20px;font-size:16px}.mypage-profile-edit-button{background-color:var(--accent);color:#fff;border:none;border-radius:var(--border-radius-sm);padding:10px 16px;cursor:pointer;font-weight:700;transition:all .2s ease;display:flex;align-items:center}.mypage-profile-edit-button:hover{background-color:var(--primary-dark);transform:translateY(-2px);box-shadow:var(--shadow-md)}.attendance-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;padding:15px}.attendance-stat-card{background-color:var(--primary-color-light);border-radius:8px;padding:15px;text-align:center}.attendance-stat-value{font-size:24px;font-weight:700;color:var(--primary-color);margin-bottom:5px}.attendance-stat-label{font-size:14px;color:var(--secondary-text-color)}.attendance-link{display:block;text-align:center;padding:10px;background-color:var(--primary-color-lighter);color:var(--primary-color);text-decoration:none;border-radius:4px;margin-top:15px;font-weight:700;transition:background-color .2s}.attendance-link:hover{background-color:var(--primary-color-light)}.mypage-empty-state{padding:30px;text-align:center;color:var(--secondary-text-color)}.mypage-empty-state svg{font-size:48px;color:var(--border-color);margin-bottom:10px}.mypage-empty-message{margin-bottom:15px}.mypage-load-more{display:block;width:100%;padding:10px;background-color:var(--secondary-background-color);border:none;border-radius:4px;text-align:center;cursor:pointer;transition:background-color .2s;margin-top:15px}.mypage-load-more:hover{background-color:var(--border-color-light)}.profile-edit-form{display:flex;flex-direction:column;gap:20px;max-width:500px;margin:0 auto}.form-group{display:flex;flex-direction:column;gap:8px}.form-label{font-weight:500;color:var(--dark-gray);font-size:16px}.form-input{padding:10px;border:1px solid var(--border-color);border-radius:4px;font-size:16px}.form-textarea{padding:10px;border:1px solid var(--border-color);border-radius:4px;font-size:16px;min-height:100px;resize:vertical}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:15px}.form-submit{background-color:var(--primary-color);color:#fff;border:none;border-radius:4px;padding:8px 16px;cursor:pointer;font-weight:700;transition:background-color .2s}.form-submit:hover{background-color:var(--primary-color-dark)}.form-cancel{background-color:var(--secondary-background-color);color:var(--primary-text-color);border:1px solid var(--border-color);border-radius:4px;padding:8px 16px;cursor:pointer;font-weight:700;transition:background-color .2s}.form-cancel:hover{background-color:var(--border-color-light)}@media (max-width: 768px){.mypage-container{padding:15px;margin:0 10px}.attendance-stats{grid-template-columns:1fr}.mypage-tab{padding:10px 15px;font-size:14px}}
